Amazon EKS 클러스터 IAM 역할
각 클러스터에는 Amazon EKS 클러스터 IAM 역할이 필수입니다. Amazon EKS에서 관리하는 Kubernetes 클러스터는 이 역할을 사용하여 노드를 관리하고, 레거시 클라우드 제공업체
Amazon EKS 클러스터를 생성하기 전에 다음 IAM 정책 중 하나를 사용하여 IAM 역할을 생성해야 합니다.
-
사용자 지정 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일 이전에는 AmazonEKSServicePolicy 및 AmazonEKSClusterPolicy도 필요했으며 제안된 이름은 eksServiceRole
이었습니다. AWSServiceRoleForAmazonEKS
서비스 연결 역할을 사용하면 2020년 4월 16일 이후에 생성된 클러스터에 AmazonEKSServicePolicy 정책이 더 이상 필요하지 않습니다.
기존 클러스터 역할 확인
다음 절차를 사용하여 계정에 이미 Amazon EKS 클러스터 역할이 있는지 확인할 수 있습니다.
-
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
왼쪽 탐색 창에서 역할을 선택합니다.
-
역할 목록에서
eksClusterRole
을 검색합니다.eksClusterRole
을 포함하는 역할이 존재하지 않을 경우 Amazon EKS 클러스터 역할 생성 섹션을 참조하여 역할을 생성합니다.eksClusterRole
을 포함하는 역할이 존재하지 않을 경우, 연결된 정책을 볼 역할을 선택합니다. -
권한을 선택합니다.
-
[AmazonEKSClusterPolicy] 관리형 정책이 역할에 연결되었는지 확인합니다. 정책이 연결된 경우 Amazon EKS 클러스터 역할이 적절히 구성된 것입니다.
-
신뢰 관계(Trust relationships)를 선택한 후 신뢰 정책 편집(Edit 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
-
-
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
역할을 선택한 다음 역할 생성을 선택합니다.
-
신뢰할 수 있는 엔터티 유형(Trusted entity type)에서 AWS서비스( service)를 선택합니다.
-
다른 AWS 서비스의 사용 사례 드롭다운 목록에서 EKS를 선택합니다.
-
사용 사례에 대한 EKS - 클러스터(EKS - Cluster)를 선택한 후 다음(Next)을 선택합니다.
-
권한 추가(Add permissions) 탭에서 다음(Next)을 선택합니다.
-
역할 이름(Role name)에 역할의 고유한 이름(예:
eksClusterRole
)을 입력합니다. -
설명(Description)에서
Amazon EKS - Cluster role
과 같은 설명 텍스트를 입력합니다. -
역할 생성을 선택합니다.
-
- AWS CLI
-
-
다음 콘텐츠를
cluster-trust-policy.json
라는 파일에 복사합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
역할을 생성합니다.
eksClusterRole
을 선택한 모든 이름으로 바꿀 수 있습니다.aws iam create-role \ --role-name eksClusterRole \ --assume-role-policy-document file://"cluster-trust-policy.json"
-
필요한 IAM 정책을 역할에 연결합니다.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name eksClusterRole
-