교차 계정 IAM 권한 - Amazon EKS

이 페이지 개선에 도움 주기

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

교차 계정 IAM 권한

다른 계정의 클러스터에서 ID 제공업체를 생성하거나 연결된 AssumeRole 작업을 사용하여 크로스 계정 IAM 권한을 구성할 수 있습니다. 다음 예제에서 계정 A는 서비스 계정에 대한 IAM 역할을 지원하는 Amazon EKS 클러스터를 소유합니다. 해당 클러스터에서 실행 중인 Pods는 계정 B의 IAM 권한을 수임해야 합니다.

예 다른 계정의 클러스터에서 ID 제공업체 생성

이 예제에서 계정 A는 계정 B에 클러스터의 OpenID Connect(OIDC) 발행자 URL을 제공합니다. 계정 B는 계정 A의 클러스터에서 OIDC 발행자 URL을 사용하여 클러스터에 대한 IAM OIDC 공급자 생성IAM 역할을 수임하도록 Kubernetes 서비스 계정 구성의 지침을 따릅니다. 그런 다음 클러스터 관리자는 계정 B(444455556666)의 역할을 사용할 계정 A의 클러스터에 있는 서비스 계정에 주석을 답니다.

apiVersion: v1 kind: ServiceAccount metadata: annotations: eks.amazonaws.com/role-arn: arn:aws:iam::444455556666:role/account-b-role
예 연결된 AssumeRole 작업 사용

이 예에서 계정 B는 계정 A의 클러스터에 있는 Pods에 부여할 권한이 포함된 IAM 정책을 생성합니다. 계정 B(444455556666)는 계정 A(111122223333)에 AssumeRole 권한을 허용하는 신뢰 관계를 사용하여 이 정책을 IAM 역할에 연결합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "sts:AssumeRole", "Condition": {} } ] }

계정 A는 클러스터의 OIDC 발행자 주소로 생성된 ID 제공업체의 자격 증명을 가져오는 신뢰 정책을 이용해 역할을 생성합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity" } ] }

계정 A는 이 역할을 계정 B가 생성한 역할을 맡을 수 있는 다음과 같은 권한이 포함된 정책에 연결합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::444455556666:role/account-b-role" } ] }

Pods가 계정 B의 역할을 맡을 수 있게 해주는 애플리케이션 코드에서는 두 가지 프로필, 즉 account_b_roleaccount_a_role을 사용합니다. account_b_role 프로필에서는 account_a_role 프로필을 소스로 사용합니다. AWS CLI의 경우 ~/.aws/config 파일은 다음과 유사합니다.

[profile account_b_role] source_profile = account_a_role role_arn=arn:aws:iam::444455556666:role/account-b-role [profile account_a_role] web_identity_token_file = /var/run/secrets/eks.amazonaws.com/serviceaccount/token role_arn=arn:aws:iam::111122223333:role/account-a-role

연결된 프로파일을 다른 AWS SDK에 지정하려면 사용 중인 SDK에 대한 설명서를 참조하세요. 자세한 내용은 AWS 기반의 도구를 참조하십시오.