
EKS에서 쿠버네티스 포드의 IAM 권한 제어하기: Pod Identity Webhook
두줄요약
EKS Pod Identity Webhook으로 서비스 어카운트별 IAM 역할을 분리하는 방식을 설명했습니다. OIDC 토큰과 AssumeRoleWithWebIdentity 기반의 권한 검증 흐름을 다뤘습니다.
문제 상황
- 워커 노드 IAM 역할을 여러 포드가 공유하는 과도한 권한 집중
- 포드별 최소 권한 분리를 위한 별도 IAM 역할 필요
구조와 흐름
- Pod Identity Webhook의 mutating webhook 기반 환경 변수와 projected 서비스 어카운트 토큰 주입
- AWS SDK의
AssumeRoleWithWebIdentity호출과 EKS OpenID Connect Provider 기반 토큰 검증 - IAM Trust Relationship의 서비스 어카운트·네임스페이스 조건 기반 Assume Role 제한
선택 이유
- iptables 트래픽 가로채기와 애드온의 Assume Role 대행이 필요한 kube2iam·kiam 대비 EKS 내장 기능 활용
- kiam의 서버·에이전트 TLS 인증서 및 노드 배치 관리, kube2iam의 전체 워커 노드 Assume Role 권한 부담 완화
주의할 점
- Pod Identity Webhook 이미지 직접 빌드·배포와 인증서 서명 요청 승인 필요 가능성
- Web Identity 토큰을 지원하는 AWS SDK 버전 필요
- OIDC Provider 등록 시 thumbprint 설정과 IAM Trust Relationship의 세밀한 조건 구성 필요


