EKS access entries로 IAM 사용자에게 Kubernetes 접근 권한 부여하기
EKS access entries로 IAM 사용자에게 Kubernetes 접근 권한 부여하기
EKS access entries와 policies를 사용해 Amazon Elastic Kubernetes Service(EKS) 클러스터에 IAM 주체 접근을 관리하는 방법을 알아봐요. 인증 모드 변경, 레거시 aws-auth ConfigMap 항목 마이그레이션, access entries 생성·업데이트·삭제, 엔트리에 정책 연결, 사전 정의된 정책 권한 검토, 안전한 접근 관리를 위한 핵심 사전 조건과 고려 사항을 다뤄요.
출처: 문서
본문
개요 (Overview)
EKS access entries는 사용자에게 Kubernetes API 접근 권한을 부여하는 가장 좋은 방법이에요. 예를 들어 access entries로 개발자에게 kubectl 사용 접근 권한을 부여할 수 있어요. 근본적으로 EKS access entry는 IAM 역할 같은 IAM ID에 일련의 Kubernetes 권한을 연결해요. 예를 들어 개발자가 IAM 역할을 가정하고 이를 사용해 EKS 클러스터에 인증할 수 있어요.
기능 (Features)
- 중앙 집중식 인증 및 권한 부여 (Centralized Authentication and Authorization) — Amazon EKS API를 통해 Kubernetes 클러스터에 대한 접근을 직접 제어해, 사용자 권한에 대해 AWS와 Kubernetes API를 오가며 전환할 필요가 없어요.
- 세분화된 권한 관리 (Granular Permissions Management) — access entries와 policies로 AWS IAM 주체에 대한 세밀한 권한을 정의하며, 생성자의 cluster-admin 접근 수정 또는 철회도 포함해요.
- IaC 도구 통합 (IaC Tool Integration) — AWS CloudFormation, Terraform, AWS CDK 같은 infrastructure as code 도구를 지원해 클러스터 생성 중 접근 구성을 정의할 수 있어요.
- 잘못된 구성 복구 (Misconfiguration Recovery) — 직접 Kubernetes API 접근 없이 Amazon EKS API를 통해 클러스터 접근을 복원할 수 있게 해줘요.
- 낮은 오버헤드와 향상된 보안 (Reduced Overhead and Enhanced Security) — CloudTrail 감사 로깅과 다중 인증(MFA) 같은 AWS IAM 기능을 활용하면서 운영을 중앙화해 오버헤드를 낮춰요.
권한 연결 방법 (How to attach permissions)
두 가지 방법으로 access entries에 Kubernetes 권한을 연결할 수 있어요:
- access policy 사용 — access policies는 AWS가 유지 관리하는 사전 정의된 Kubernetes 권한 템플릿이에요. 자세한 내용은 Review access policy permissions 참고.
- Kubernetes 그룹 참조 — IAM ID를 Kubernetes 그룹과 연결하면 그룹에 권한을 부여하는 Kubernetes 리소스를 만들 수 있어요. 자세한 내용은 Kubernetes 문서의 Using RBAC Authorization 참고.
고려 사항 (Considerations)
기존 클러스터에서 EKS access entries를 활성화할 때 다음을 유의해 주세요:
- 레거시 클러스터 동작 (Legacy Cluster Behavior) — access entries 도입 전에 생성된 클러스터(초기 플랫폼 버전이 Platform version requirements에 지정된 것보다 이른)의 경우 EKS가 기존 권한을 반영하는 access entry를 자동으로 생성해요. 이 항목에는 원래 클러스터를 만든 IAM ID와 클러스터 생성 중 그 ID에 부여된 관리 권한이 포함돼요.
- 레거시
aws-authConfigMap 처리 (Handling Legacyaws-authConfigMap) — 클러스터가 접근 관리를 위해 레거시aws-authConfigMap에 의존한다면, access entries 활성화 시 원래 클러스터 생성자에 대한 access entry만 자동으로 생성돼요. ConfigMap에 추가된 추가 역할이나 권한(예: 개발자나 서비스용 사용자 지정 IAM 역할)은 자동으로 마이그레이션되지 않아요. 이에 대처하려면 해당 access entries를 수동으로 만들어 주세요.
시작하기 (Get started)
- 사용할 IAM ID와 접근 정책을 결정합니다.
- Review access policy permissions 참고
- 클러스터에서 EKS Access Entries를 활성화합니다. 지원되는 플랫폼 버전을 확인합니다.
- Change authentication mode to use access entries 참고
- IAM ID를 Kubernetes 권한과 연결하는 access entry를 만듭니다.
- Create access entries 참고
- IAM ID를 사용해 클러스터에 인증합니다.
- Set up AWS CLI 참고
- Set up kubectl and eksctl 참고