개발팀으로부터 cloudon 네임스페이스에 있는 cloudon-ingress를 삭제하려고 하는데 권한오류로 삭제가 안되어서 재배포가 안된다고 요청이 왔다.
에러 메시지는 다음과 같다.
Error Message :
{"level":"error","ts":xxxxxxxx.xxxxxx,"logger":"controller.ingress","msg":"Reconciler error","name":"cloudon-ingress","namespace":"cloudon","error":"AccessDenied: User: arn:aws:sts::[account id]:assumed-role/AmazonEKSLoadBalancerControllerRole/xxxxxxxxxxxxx is not authorized to perform: elasticloadbalancing:DeleteLoadBalancer on resource: arn:aws:elasticloadbalancing:[region]:[account id]:loadbalancer/app/xxxxxx-cloudon-cloudonin-xxxx/xxxxxxxxxxxx because no identity-based policy allows the elasticloadbalancing:DeleteLoadBalancer action\n\tstatus code: 403, request id: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"}
확인해보니 해당 역할 신뢰관계에 해당 EKS 클러스터의 OIDC 네임스페이스가 특정 네임스페이스만 명시적으로 sts 액션이 허용되어있어, cloudon 네임스페이스를 추가하였다.
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::[account id]:oidc-provider/oidc.eks.[region].amazonaws.com/id/[eks oidc id]"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.[region].amazonaws.com/id/[eks oidc id]:sub": "system:serviceaccount:cloudon:aws-load-balancer-controller",
"oidc.eks.[region].amazonaws.com/id/[eks oidc id]:aud": "sts.amazonaws.com"
}
}
}
허용 후 바로 해결되었다.
'aws > k8s, eks study' 카테고리의 다른 글
Adding rules (metric) on Prometheus config (2) | 2023.03.07 |
---|---|
How to set the keep-alive setting on EKS pod (0) | 2023.03.06 |
Delete EKS pod and deploy again with pulled image (0) | 2023.02.28 |
Error of getting credential - no kind "ExecCredential" is registered for version (0) | 2023.02.15 |
Difference between kubectl apply & create (0) | 2022.06.28 |