EKS Pod에 IAM 권한 주기 — IRSA vs Pod Identity
EKS 에서 파드가 AWS API 를 쓰려면 IAM 권한이 필요합니다. 그 권한을 ServiceAccount 마다 다르게 주는 AWS 기능이 둘인데, IRSA(IAM Roles for Service Accounts)와 EKS Pod Identity 입니다.
기본값이면 Pod가 Node의 IAM Role을 씀
EC2 에서 AWS API 를 쓰려면 IAM Role 이 필요합니다. 그런데 Kubernetes Pod 는 EC2 가 아니라 Node 위에서 돕니다. 기본값으로 두면 Pod 가 Node 의 IAM Role 을 쓰게 됩니다.
문제는 그 노드의 모든 Pod 가 같은 권한을 갖는다는 겁니다. S3 만 필요한 Pod 도 노드 롤에 붙은 모든 권한을 갖게 됩니다. 최소 권한 원칙이 깨집니다.
그래서 Pod(정확히는 ServiceAccount)마다 다른 IAM Role 을 주는 방법이 필요합니다.
IRSA — OIDC 기반
IRSA(IAM Roles for Service Accounts)는 OIDC 로 동작합니다. EKS 클러스터가 OIDC Provider 역할을 합니다.
1. EKS 클러스터에 OIDC Provider 생성
2. IAM Role 의 Trust Policy 에:
"이 OIDC Provider 의 이 ServiceAccount 만 이 Role 을 AssumeRole 가능"
3. ServiceAccount 에 annotation:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-role
4. Pod 시작 시 Web Identity 토큰 파일이 자동 마운트
5. SDK 가 토큰 → STS → 임시 자격증명 교환
Pod 안에서 일어나는 일은 이렇습니다.
Pod 시작
└── 토큰 파일 마운트
↓
AWS SDK 가 토큰 감지
↓
STS AssumeRoleWithWebIdentity 호출
↓
임시 자격증명(1시간) 받아서 사용
동작은 잘 되는데 Trust Policy 가 번거롭습니다. “이 OIDC Provider 의 이 SA 만” 이라는 조건을 매번 정확히 써야 하고, OIDC Provider 는 클러스터마다 따로 있습니다. 멀티 클러스터면 클러스터 수만큼 OIDC 설정이 늘어납니다.
EKS Pod Identity — OIDC 제거
2023년에 나온 방식으로, OIDC 없이 EKS 가 Agent(DaemonSet)를 띄워 자격증명을 직접 주입합니다.
1. EKS Pod Identity Agent 설치 (DaemonSet)
2. IAM Role 의 Trust Policy 에:
"EKS Pod Identity 서비스가 이 Role 을 AssumeRole 가능" (단순)
3. EKS 콘솔/CLI 에서 ServiceAccount ↔ IAM Role 매핑
4. Pod 시작 시 Agent 가 자격증명 자동 주입
Trust Policy 도 훨씬 단순해서, OIDC ARN 과 condition 을 쓰는 대신 EKS 서비스 principal 하나면 됩니다. 클러스터마다 OIDC 를 세팅할 필요도 없어서, 같은 IAM Role 을 여러 클러스터에서 재사용할 수 있습니다.
항목별 차이 — OIDC 설정과 Trust Policy
| 항목 | IRSA | EKS Pod Identity |
|---|---|---|
| 출시 | 2019 | 2023 |
| OIDC 설정 | 클러스터마다 필요 | 불필요 |
| Trust Policy | OIDC ARN + condition | 서비스 principal (단순) |
| 자격증명 갱신 | SDK 가 자동 | Agent 가 자동 |
| 멀티 클러스터 | 클러스터마다 OIDC | Role 재사용 가능 |
어느 걸 쓰나
신규 클러스터면 Pod Identity 가 설정이 단순해서 낫습니다. 기존에 IRSA 로 잘 돌고 있는 환경을 급하게 바꿀 이유는 없습니다. IRSA 도 계속 지원됩니다.
결국 차이는 하나로 좁혀지는데, IRSA 는 OIDC Trust Policy 를 직접 관리하고 Pod Identity 는 그 관리를 EKS 서비스에 넘깁니다. 클러스터가 여러 개일수록 이 차이가 커집니다.
댓글 0