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

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", "ec2:DescribeInstanceTopology", "kms:DescribeKey" ], "Resource": "*" } ] }
참고

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

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

기존 클러스터 역할 확인

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

  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. 신뢰 관계에 다음 정책이 포함되어 있는지 확인합니다. 신뢰 관계가 다음 정책과 일치하는 경우, 취소를 선택합니다. 신뢰 관계가 일치하지 않으면 정책을 신뢰 정책 편집 창에 복사하고 정책 업데이트를 선택합니다.

    { "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
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

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

  4. 다른 AWS 서비스의 사용 사례 드롭다운 목록에서 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