EKS access policies와 함께 IAM ID 사용하기
EKS access policies와 함께 IAM ID 사용하기
EKS access policies를 사용해 IAM ID에 Kubernetes 권한을 부여하는 방법을 알아봐요. access policies는 AWS가 유지 관리하는 사전 정의된 Kubernetes 권한 템플릿이에요.
출처: 문서
본문
참고: 이 토픽은 EKS access entries에 대한 접근 정책을 설명해요. 원문 페이지는 예시와 정책 참조가 포함된 상세 구성 지침을 제공하며, 핵심 개념과 절차는 다음과 같아요.
EKS access entry에 접근 정책(access policy)을 연결하면 IAM ID에 대해 미리 구성된 Kubernetes 권한을 부여할 수 있어요. Amazon EKS는 여러 관리형 access policies를 제공하며, 각 정책은 특정 작업을 수행하는 데 필요한 Kubernetes 권한 집합을 정의해요.
access policy 사용 방법 (How to use an access policy)
- IAM ID와 연결하려는 access policy를 식별합니다. 사용 가능한 정책과 그 권한을 검토하려면 Review access policy permissions 참고.
- access entry를 만들거나 기존 항목에 policy를 연결합니다:
CreateAccessEntryAPI를 사용해 access entry를 만들 때accessPolicies파라미터로 policy를 지정하거나,AssociateAccessPolicyAPI를 사용해 기존 access entry에 policy를 연결할 수 있어요.
- policy를 연결할 때 policy의 ARN과 함께 접근 범위(access scope)를 지정할 수 있어요. access scope는 policy가 적용되는 네임스페이스나 클러스터 전체 수준을 제한해요.
- 정책을 연결한 후에는 해당 IAM ID가 정의된 Kubernetes 권한을 클러스터에서 갖게 됩니다.
access policy 구성 요소 (Access policy structure)
각 access policy는 다음을 포함해요:
- Policy ARN — 클러스터 내에서 policy를 고유하게 식별하는 이름이 지정된 ARN.
- Access scope — policy가 적용되는 수준.
namespace유형으로 지정하거나cluster전체로 지정할 수 있어요. - Permissions — policy가 부여하는 Kubernetes RBAC 권한(예:
list,get,create등).
사전 조건과 고려 사항 (Prerequisites and considerations)
- 클러스터가
API또는API_AND_CONFIG_MAP인증 모드를 사용해야 access entries와 policies를 사용할 수 있어요. - access policy를 연결하려면 해당 access entry가 이미 존재해야 해요 (또는 만들 때 함께 지정).
- 각 IAM ID에 대해 여러 access policies를 연결할 수 있어요.
진행 방법 (Steps)
access entry 생성 시 policy 연결하기:
aws eks create-access-entry \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/Developer \
--type STANDARD \
--access-policies '[{"policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy", "accessScope": {"type": "cluster"}}]'
기존 access entry에 policy 연결하기:
aws eks associate-access-policy \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/Developer \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
--access-scope type=cluster
연결된 policies 목록 보기:
aws eks list-associated-access-policies \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/Developer
access entry에서 policy 분리하기:
aws eks disassociate-access-policy \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/Developer \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy
참고: 사용 가능한 관리형 access policies 목록(예:
AmazonEKSClusterAdminPolicy,AmazonEKSViewPolicy,AmazonEKSEditPolicy)과 각 policy가 부여하는 정확한 권한은 Review access policy permissions에서 확인할 수 있어요.