이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
태그를 기반으로 포드에 AWS 리소스에 대한 액세스 권한 부여
속성 기반 액세스 제어(ABAC)는 속성을 함께 결합하는 정책을 통해 사용자에게 권한을 부여합니다. EKS Pod Identity는 클러스터 이름, 네임스페이스, 서비스 계정 이름 등의 속성을 사용하여 각 포드의 임시 자격 증명에 태그를 연결합니다. 관리자는 이러한 역할 세션 태그를 사용하여 일치하는 태그를 기반으로 AWS 리소스에 대한 액세스를 허용하여 여러 서비스 계정에서 작업할 수 있는 단일 역할을 작성할 수 있습니다. 역할 세션 태그에 대한 지원을 추가함으로써 동일한 IAM 역할과 IAM 정책을 재사용하면서 클러스터 간 및 클러스터 내 워크로드 간에 더 엄격한 보안 경계를 적용할 수 있습니다.
태그가 있는 샘플 정책
다음은 해당 객체에 EKS 클러스터 이름으로 태그가 지정되었을 때 s3:GetObject
권한을 부여하는 IAM 정책 예제입니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/eks-cluster-name": "${aws:PrincipalTag/eks-cluster-name}" } } } ] }
세션 태그 활성화 또는 비활성화
EKS Pod Identity는 역할을 수임할 때 사전 정의된 세션 태그 세트를 추가합니다. 관리자는 이러한 세션 태그를 사용하여 일치하는 태그를 기반으로 AWS 리소스에 대한 액세스를 허용하여 여러 리소스에서 작업할 수 있는 단일 역할을 작성할 수 있습니다.
세션 태그 활성화
세션 태그는 EKS Pod Identity에서 자동으로 활성화되므로 사용자가 별도의 조치를 취할 필요가 없습니다. 기본적으로 EKS Pod Identity는 미리 정의된 태그 세트를 세션에 연결합니다. 정책에서 이러한 태그를 참조하려면 구문 ${aws:PrincipalTag/
와 태그 키를 사용합니다. 예를 들어 ${aws:PrincipalTag/kubernetes-namespace}
입니다.
-
eks-cluster-arn
-
eks-cluster-name
-
kubernetes-namespace
-
kubernetes-service-account
-
kubernetes-pod-name
-
kubernetes-pod-uid
세션 태그 비활성화
AWS는 인라인 세션 정책, 관리형 정책 ARN 및 세션 태그를 별도의 제한이 있는 압축된 바이너리 형식으로 압축합니다. 압축된 바이너리 형식이 크기 제한을 초과했다는 PackedPolicyTooLarge
오류가 발생하면 EKS Pod Identity에서 추가한 세션 태그를 비활성화하여 크기를 줄여볼 수 있습니다. 이러한 세션 태그를 비활성화하려면 다음 단계를 따르세요.
-
Amazon EKS 콘솔
을 엽니다. -
왼쪽 탐색 창에서 클러스터를 선택한 다음 수정할 클러스터의 이름을 선택합니다.
-
액세스 탭을 선택합니다.
-
Pod Identity 연결의 연결 ID에서 수정하려는 연결 ID를 선택하고 편집을 선택합니다.
-
세션 태그에서 세션 태그 비활성화를 선택합니다.
-
변경 사항 저장을 선택합니다.
교차 계정 태그
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
입니다.