Amazon EKS Auto Mode 노드 IAM 역할
Amazon EKS Auto Mode 노드 IAM 역할 (Node IAM role)
참고
어떤 클러스터를 만드는 데 사용한 역할은 사용할 수 없어요.
노드를 만들기 전에 다음 정책 또는 동등한 권한으로 IAM 역할을 만들어야 해요.
AmazonEKSWorkerNodeMinimalPolicyAmazonEC2ContainerRegistryPullOnly
출처: 문서
본문
기존 노드 역할 확인하기
계정에 Amazon EKS 노드 역할이 이미 있는지 확인하려면 다음 절차를 사용할 수 있어요.
- https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.
- 왼쪽 탐색 창에서 Roles를 선택합니다.
- 역할 목록에서
AmazonEKSAutoNodeRole을 검색합니다. 그 이름 중 하나를 가진 역할이 없으면 다음 섹션의 지침을 참고해 역할을 만듭니다.AmazonEKSAutoNodeRole이 포함된 역할이 있으면 그 역할을 선택해 연결된 정책을 봅니다. - Permissions를 선택합니다.
- 위의 필수 정책 또는 동등한 사용자 지정 정책이 연결되어 있는지 확인합니다.
- Trust relationships를 선택한 다음 Edit trust policy를 선택합니다.
- 신뢰 관계에 다음 정책이 포함되어 있는지 확인합니다. 신뢰 관계가 다음 정책과 일치하면 Cancel을 선택합니다. 일치하지 않으면 정책을 Edit trust policy 창에 복사하고 Update policy를 선택합니다.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Amazon EKS 노드 IAM 역할 생성
노드 IAM 역할은 AWS Management Console이나 AWS CLI로 만들 수 있어요.
AWS Management Console
- https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.
- 왼쪽 탐색 창에서 Roles를 선택합니다.
- Roles 페이지에서 Create role을 선택합니다.
- Select trusted entity 페이지에서 다음을 수행합니다.
- Trusted entity type 섹션에서 AWS service를 선택합니다.
- Use case에서 EC2를 선택합니다.
- Next를 선택합니다.
- Add permissions 페이지에서 다음 정책을 연결합니다.
AmazonEKSWorkerNodeMinimalPolicyAmazonEC2ContainerRegistryPullOnly
- Name, review, and create 페이지에서 다음을 수행합니다.
- Role name에
AmazonEKSAutoNodeRole같은 역할의 고유한 이름을 입력합니다. - Description에서 현재 텍스트를
Amazon EKS - Node role같은 설명 텍스트로 바꿉니다. - Add tags (Optional)에서 키-값 쌍으로 태그를 붙여 역할에 메타데이터를 추가합니다. IAM에서 태그 사용에 대한 자세한 내용은 IAM 사용자 가이드의 Tagging IAM resources를 참고하세요.
- Create role을 선택합니다.
- Role name에
AWS CLI
노드 IAM 역할 생성
이전 단계의 node-trust-policy.json 파일을 사용해 역할을 맡을 수 있는 엔터티를 정의합니다. 다음 명령을 실행해 노드 IAM 역할을 만듭니다.
aws iam create-role \
--role-name AmazonEKSAutoNodeRole \
--assume-role-policy-document file://node-trust-policy.json
역할 ARN 기록
역할을 만든 뒤 노드 IAM 역할의 ARN을 검색해 저장합니다. 이후 단계에서 이 ARN이 필요해요. 다음 명령으로 ARN을 가져옵니다.
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
필수 정책 연결
노드 IAM 역할에 필요한 권한을 제공하려면 다음 AWS 관리형 정책을 연결합니다.
AmazonEKSWorkerNodeMinimalPolicy를 연결하려면:
aws iam attach-role-policy \
--role-name AmazonEKSAutoNodeRole \
--policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
AmazonEC2ContainerRegistryPullOnly를 연결하려면:
aws iam attach-role-policy \
--role-name AmazonEKSAutoNodeRole \
--policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
선택적 정책 연결
Public ECR에서 컨테이너 이미지를 가져올 것이라면 노드가 Public ECR에 인증하고 제한 없이 이미지를 가져올 수 있도록 다음 AWS 관리형 정책을 노드 IAM 역할에 연결해야 해요.
AmazonElasticContainerRegistryPublicReadOnly를 연결하려면:
aws iam attach-role-policy \
--role-name AmazonEKSAutoNodeRole \
--policy-arn arn:aws:iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly