Amazon EKS 클러스터 IAM 역할 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

Amazon EKS 클러스터 IAM 역할

각 클러스터에는 Amazon EKS 클러스터 IAM 역할이 필수입니다. Amazon EKS에서 관리하는 Kubernetes 클러스터는 이 역할을 사용하여 노드를 관리하고, 레거시 클라우드 제공업체는 이 역할을 사용하여 서비스용 Elastic Load Balancing으로 로드 밸런서를 생성합니다.

Amazon EKS 클러스터를 생성하기 전에 다음 IAM 정책 중 하나를 사용하여 IAM 역할을 생성해야 합니다.

  • AmazonEKSClusterPolicy

  • 사용자 지정 IAM 정책. 다음 최소 권한으로는 Kubernetes 클러스터가 노드를 관리할 수 있지만, 기존 클라우드 공급자가 Elastic Load Balancing으로 로드 밸런서를 생성하는 것은 허용되지 않습니다. 사용자 지정 IAM 정책에는 적어도 다음과 같은 권한이 있어야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "ForAnyValue:StringLike": { "aws:TagKeys": "kubernetes.io/cluster/*" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeAvailabilityZones", "kms:DescribeKey" ], "Resource": "*" } ] }
참고

2023년 10월 3일 이전에는 각 클러스터의 IAM 역할에 AmazonEKSClusterPolicy이 필요했습니다.

2020년 4월 16일 이전에는 AmazonEKSServicePolicyAmazonEKSClusterPolicy도 필요했으며 제안된 이름은 eksServiceRole이었습니다. AWSServiceRoleForAmazonEKS 서비스 연결 역할을 사용하면 2020년 4월 16일 이후에 생성된 클러스터에 AmazonEKSServicePolicy 정책이 더 이상 필요하지 않습니다.

기존 클러스터 역할 확인

다음 절차를 사용하여 계정에 이미 Amazon EKS 클러스터 역할이 있는지 확인할 수 있습니다.

IAM 콘솔에서 eksClusterRole을 확인하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 역할을 선택합니다.

  3. 역할 목록에서 eksClusterRole(을)를 검색합니다. eksClusterRole을 포함하는 역할이 존재하지 않을 경우 Amazon EKS 클러스터 역할 생성 섹션을 참조하여 역할을 생성합니다. eksClusterRole을 포함하는 역할이 존재하지 않을 경우, 연결된 정책을 볼 역할을 선택합니다.

  4. 권한을 선택합니다.

  5. [AmazonEKSClusterPolicy] 관리형 정책이 역할에 연결되었는지 확인합니다. 정책이 연결된 경우 Amazon EKS 클러스터 역할이 적절히 구성된 것입니다.

  6. 신뢰 관계(Trust relationships)를 선택한 후 신뢰 정책 편집(Edit trust policy)을 선택합니다.

  7. 신뢰 관계에 다음 정책이 포함되어 있는지 확인합니다. 신뢰 관계가 다음 정책과 일치하는 경우, 취소(Cancel)를 선택합니다. 신뢰 관계가 일치하지 않는 경우 정책을 정책 문서(Policy Document) 창에 복사하고 신뢰 정책 업데이트(Update Trust Policy)를 선택합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Amazon EKS 클러스터 역할 생성

클러스터 역할을 생성하려면 AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

AWS Management Console
IAM 콘솔에서 Amazon EKS 클러스터 역할을 생성하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 역할을 선택한 다음 역할 생성을 선택합니다.

  3. 신뢰할 수 있는 엔터티 유형(Trusted entity type)에서 AWS 서비스( service)를 선택합니다.

  4. 기타 AWS 서비스에 대한 사용 사례(Use cases for other ) 드롭다운 목록에서 EKS를 선택합니다.

  5. 사용 사례에 대한 EKS - 클러스터(EKS - Cluster)를 선택한 후 다음(Next)을 선택합니다.

  6. 권한 추가(Add permissions) 탭에서 다음(Next)을 선택합니다.

  7. 역할 이름(Role name)에 역할의 고유한 이름(예: eksClusterRole)을 입력합니다.

  8. 설명(Description)에서 Amazon EKS - Cluster role과 같은 설명 텍스트를 입력합니다.

  9. 역할 생성을 선택합니다.

AWS CLI
  1. 다음 콘텐츠를 cluster-trust-policy.json라는 파일에 복사합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 역할을 생성합니다. eksClusterRole을 선택한 모든 이름으로 바꿀 수 있습니다.

    aws iam create-role \ --role-name eksClusterRole \ --assume-role-policy-document file://"cluster-trust-policy.json"
  3. 필요한 IAM 정책을 역할에 연결합니다.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name eksClusterRole