Notice
Recent Posts
Recent Comments
Link
devops
EKS Ingress 생성 시 failed to retrieve credentials, sts:AssumeRoleWithWebIdentity 오류 해결하기 본문
DevOps/Kubernetes
EKS Ingress 생성 시 failed to retrieve credentials, sts:AssumeRoleWithWebIdentity 오류 해결하기
vataops 2023. 5. 17. 22:09반응형
ServiceAccount에 적용된 Role의 신뢰관계 설정 문제일 가능성이 크다. ServiceAccount가 AWS 리소스에 접근할 권한이 없기 때문.
$ kubectl describe sa aws-load-balancer-controller -n kube-system
먼저 ALB Controller의 SA를 상세 정보를 확인하면, 위와 같이 Annotation에 선언된 Role을 확인할 수 있음. 위에선 AmazonEKSLoadBalancerControllerRole이 SA의 Role로 선언되어 있음.
AmazonEKSLoadBalancerControllerRole을 확인해보면 아래와 같은 신뢰관계가 구성되어있다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::{ account }:oidc-provider/oidc.eks.ap-northeast-2.amazonaws.com/id/{ oidc ID }"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.ap-northeast-2.amazonaws.com/id/{ oidc ID }:aud": "sts.amazonaws.com",
"oidc.eks.ap-northeast-2.amazonaws.com/id/{ oidc ID }:sub": "system:serviceaccount:kube-system:aws-load-balancer-controller"
}
}
}
]
}
여기서 oidc ID가 잘못 설정되어 있거나 AssumeRoleWithWebIdentity Action 선언이 안되어 있을 수 있다. 아니면 해당 Role에 ALB Controller에게 필요한 Policy가 연결안되어 있을 수 있다.
ALB Controller에게 필요한 Policy는 아래 명령어를 통해서 다운받아 생성하면 된다.
$ curl -o iam_policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.3.1/docs/install/iam_policy.json
반응형
'DevOps > Kubernetes' 카테고리의 다른 글
Karpenter의 Provisioner (0) | 2023.07.02 |
---|---|
EKS 스케일링의 강자 Karpenter (0) | 2023.06.27 |
EKS ALB Controller 생성 후, ALB Ingress 배포하기 (0) | 2023.05.17 |
EKS Kubeconfig 다중 클러스터 적용하기 (0) | 2023.03.07 |
Kubernetes App, Control Plane, Worker Node의 Failure 대처 명령어 (0) | 2023.01.01 |
Comments