태그를 기반으로 AWS 리소스에 대한 pods 액세스 제어 - Amazon EKS

이 페이지 개선에 도움 주기

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

태그를 기반으로 AWS 리소스에 대한 pods 액세스 제어

EKS Pod Identity는 클러스터 이름, 네임스페이스, 서비스 계정 이름 등의 속성을 사용하여 각 포드의 임시 보안 인증 정보에 태그를 연결합니다. 관리자는 이러한 역할 세션 태그를 사용하여 일치하는 태그를 기반으로 AWS 리소스에 대한 액세스를 허용하여 여러 서비스 계정에서 작업할 수 있는 단일 역할을 작성할 수 있습니다. 역할 세션 태그에 대한 지원을 추가함으로써 고객은 동일한 IAM 역할과 IAM 정책을 재사용하면서 클러스터 간 및 클러스터 내 워크로드 간에 더 엄격한 보안 경계를 적용할 수 있습니다.

예를 들어 다음 정책에서는 객체에 EKS 클러스터 이름이 태그가 지정된 경우 s3:GetObject 작업을 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/eks-cluster-name": "${aws:PrincipalTag/eks-cluster-name}" } } } ] }

EKS Pod Identity에서 추가한 세션 태그 목록

다음 목록에는 Amazon EKS의 AssumeRole 요청에 추가된 태그의 모든 키가 포함되어 있습니다. 정책에서 이러한 태그를 사용하려면 ${aws:PrincipalTag/ 다음에 키를 사용합니다(예: ${aws:PrincipalTag/kubernetes-namespace}).

  • eks-cluster-arn

  • eks-cluster-name

  • kubernetes-namespace

  • kubernetes-service-account

  • kubernetes-pod-name

  • kubernetes-pod-uid

교차 계정 태그

EKS Pod Identity에서 추가한 모든 세션 태그는 전이적이며, 워크로드가 역할을 다른 계정으로 전환하는 데 사용하는 모든 AssumeRole 작업에 태그 키와 값이 전달됩니다. 다른 계정의 정책에 이러한 태그를 사용하여 교차 계정 시나리오에서 액세스를 제한할 수 있습니다. 자세한 내용은 IAM 사용 설명서의 세션 태그를 사용하는 역할 체인을 참조하세요.

사용자 지정 태그

EKS Pod Identity는 수행하는 AssumeRole 작업에 사용자 지정 태그를 추가할 수 없습니다. 하지만 IAM 역할에 적용하는 태그는 항상 동일한 형식(${aws:PrincipalTag/ 다음에 키 사용)을 통해 사용 가능합니다(예: ${aws:PrincipalTag/MyCustomTag}).

참고

sts:AssumeRole 요청을 통해 세션에 추가된 태그가 충돌하는 경우 우선시됩니다. 예를 들어 EKS가 고객 역할을 수임할 때 Amazon EKS가 세션에 eks-cluster-name 키와 my-cluster 값을 추가한다고 가정해 보겠습니다. 또한 IAM 역할에 my-own-cluster 값이 있는 eks-cluster-name 태그를 추가했습니다. 이 경우 전자가 우선하여 eks-cluster-name 태그의 값은 my-cluster입니다.