Amazon EKS Auto Mode 노드 IAM 역할

Amazon EKS Auto Mode 노드 IAM 역할 (Node IAM role)

참고

어떤 클러스터를 만드는 데 사용한 역할은 사용할 수 없어요.

노드를 만들기 전에 다음 정책 또는 동등한 권한으로 IAM 역할을 만들어야 해요.

  • AmazonEKSWorkerNodeMinimalPolicy
  • AmazonEC2ContainerRegistryPullOnly

출처: 문서

본문

기존 노드 역할 확인하기

계정에 Amazon EKS 노드 역할이 이미 있는지 확인하려면 다음 절차를 사용할 수 있어요.

  1. https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.
  2. 왼쪽 탐색 창에서 Roles를 선택합니다.
  3. 역할 목록에서 AmazonEKSAutoNodeRole을 검색합니다. 그 이름 중 하나를 가진 역할이 없으면 다음 섹션의 지침을 참고해 역할을 만듭니다. AmazonEKSAutoNodeRole이 포함된 역할이 있으면 그 역할을 선택해 연결된 정책을 봅니다.
  4. Permissions를 선택합니다.
  5. 위의 필수 정책 또는 동등한 사용자 지정 정책이 연결되어 있는지 확인합니다.
  6. Trust relationships를 선택한 다음 Edit trust policy를 선택합니다.
  7. 신뢰 관계에 다음 정책이 포함되어 있는지 확인합니다. 신뢰 관계가 다음 정책과 일치하면 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

  1. https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.
  2. 왼쪽 탐색 창에서 Roles를 선택합니다.
  3. Roles 페이지에서 Create role을 선택합니다.
  4. Select trusted entity 페이지에서 다음을 수행합니다.
    • Trusted entity type 섹션에서 AWS service를 선택합니다.
    • Use case에서 EC2를 선택합니다.
    • Next를 선택합니다.
  5. Add permissions 페이지에서 다음 정책을 연결합니다.
    • AmazonEKSWorkerNodeMinimalPolicy
    • AmazonEC2ContainerRegistryPullOnly
  6. Name, review, and create 페이지에서 다음을 수행합니다.
    • Role name에 AmazonEKSAutoNodeRole 같은 역할의 고유한 이름을 입력합니다.
    • Description에서 현재 텍스트를 Amazon EKS - Node role 같은 설명 텍스트로 바꿉니다.
    • Add tags (Optional)에서 키-값 쌍으로 태그를 붙여 역할에 메타데이터를 추가합니다. IAM에서 태그 사용에 대한 자세한 내용은 IAM 사용자 가이드의 Tagging IAM resources를 참고하세요.
    • Create role을 선택합니다.

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

더 알아보기 (Learn more)