기존 aws-auth ConfigMap 항목을 access entries로 마이그레이션하기

기존 aws-auth ConfigMap 항목을 access entries로 마이그레이션하기

클러스터의 aws-auth ConfigMap에 추가한 항목에 대해 access entries를 만들어 마이그레이션하는 방법을 알아봐요.

출처: 문서

본문

클러스터의 aws-auth ConfigMap에 항목을 추가했다면 aws-auth ConfigMap의 기존 항목에 대해 access entries를 만들 것을 권장합니다. access entries를 만든 후 ConfigMap에서 항목을 제거할 수 있어요. aws-auth ConfigMap의 항목에는 access policies를 연결할 수 없어요. IAM 주체에 access policies를 연결하려면 access entries를 만들어 주세요.

중요: 클러스터가 API_AND_CONFIGMAP 인증 모드에 있고 같은 IAM 역할에 대해 aws-auth ConfigMap과 access entries 모두에 매핑이 있다면, 그 역할은 인증에 access entry의 매핑을 사용해요. 같은 IAM 주체에 대해 access entries가 ConfigMap 항목보다 우선합니다.

관리형 노드 그룹이나 Fargate 프로파일을 위해 Amazon EKS가 만든 기존 aws-auth ConfigMap 항목을 제거하기 전에, 그러한 특정 리소스에 대한 올바른 access entries가 클러스터에 존재하는지 다시 확인해 주세요. Amazon EKS가 만든 ConfigMap 항목을 이에 해당하는 access entries 없이 제거하면 클러스터가 제대로 작동하지 않아요.

사전 조건 (Prerequisites)

  • access entries와 access policies에 대한 이해. 자세한 내용은 Grant IAM users access to Kubernetes with EKS access entries 및 Associate access policies with access entries 참고.
  • 플랫폼 버전이 Grant IAM users access to Kubernetes with EKS access entries 토픽의 사전 조건에 나열된 버전 이상인 기존 클러스터.
  • 기기 또는 AWS CloudShell에 설치된 eksctl 명령줄 도구 버전 0.215.0 이상. eksctl 설치 또는 업데이트는 eksctl 문서의 Installation 참고.
  • kube-system 네임스페이스에서 aws-auth ConfigMap을 수정할 Kubernetes 권한.
  • 다음 권한이 있는 AWS Identity and Access Management 역할 또는 사용자: CreateAccessEntry 및 ListAccessEntries. 자세한 내용은 Service Authorization Reference의 Actions defined by Amazon Elastic Kubernetes Service 참고.

eksctl (using eksctl)

  1. aws-auth ConfigMap의 기존 항목을 봅니다. my-cluster를 클러스터 이름으로 바꿉니다.
eksctl get iamidentitymapping --cluster my-cluster

예시 출력:

ARN                                                                                             USERNAME                                GROUPS                                                  ACCOUNT
arn:aws:iam::111122223333:role/EKS-my-cluster-Admins                                            Admins                                  system:masters
arn:aws:iam::111122223333:role/EKS-my-cluster-my-namespace-Viewers                              my-namespace-Viewers                    Viewers
arn:aws:iam::111122223333:role/EKS-my-cluster-self-managed-ng-1                                 system:node:{{EC2PrivateDNSName}}       system:bootstrappers,system:nodes
arn:aws:iam::111122223333:user/my-user                                                          my-user
arn:aws:iam::111122223333:role/EKS-my-cluster-fargateprofile1                                   system:node:{{SessionName}}             system:bootstrappers,system:nodes,system:node-proxier
arn:aws:iam::111122223333:role/EKS-my-cluster-managed-ng                                        system:node:{{EC2PrivateDNSName}}       system:bootstrappers,system:nodes
  1. 이전 출력에 반환된 직접 만든 ConfigMap 항목에 대해 access entries를 만듭니다. access entries를 만들 때 출력에 반환된 ARN, USERNAME, GROUPS, ACCOUNT와 같은 값을 지정해 주세요. 예시 출력에서 Fargate 프로파일과 관리형 노드 그룹에 대해 Amazon EKS가 만든 마지막 두 항목을 제외한 모든 항목에 access entries를 만들게 돼요.
  2. 만든 access entries에 대해 ConfigMap에서 항목을 삭제합니다. ConfigMap에서 항목을 삭제하지 않으면 IAM 주체 ARN에 대한 access entry의 설정이 ConfigMap 항목보다 우선해요. 111122223333을 AWS 계정 ID로, EKS-my-cluster-my-namespace-Viewers를 ConfigMap의 항목에 있는 역할 이름으로 바꿉니다. 제거하는 항목이 IAM 역할이 아닌 IAM 사용자라면 role을 user로, EKS-my-cluster-my-namespace-Viewers를 사용자 이름으로 바꿉니다.
eksctl delete iamidentitymapping --arn arn:aws:iam::111122223333:role/EKS-my-cluster-my-namespace-Viewers --cluster my-cluster

더 알아보기 (Learn more)