개발팀으로부터 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"
                }
            }
        }

 

허용 후 바로 해결되었다.

+ Recent posts