공유 OIDC 프로바이더용 아이덴티티 프로바이더 제어
공유 OIDC 프로바이더용 아이덴티티 프로바이더 제어 (Identity-provider controls for shared OIDC providers)
인식된 **공유 OpenID Connect(OIDC) 아이덴티티 프로바이더(IdP)**에 대해 IAM은 역할 트러스트 정책에서 특정 클레임의 명시적 평가를 요구해요. 아이덴티티 프로바이더 제어라고 하는 이러한 필수 클레임은 역할 생성과 트러스트 정책 업데이트 중에 IAM이 평가해요. 역할 트러스트 정책이 공유 OIDC IdP가 요구하는 제어를 평가하지 않으면 역할 생성이나 업데이트가 실패해요. 이렇게 하면 의도된 조직의 인가된 아이덴티티만 역할을 수임하고 AWS 리소스에 접근할 수 있게 보장해요. 이 보안 제어는 OIDC 프로바이더가 여러 AWS 고객에 걸쳐 공유될 때 중요해요.
출처: 문서
본문
아이덴티티 프로바이더 제어는 기존 OIDC 역할 트러스트 정책에 대해서는 IAM이 평가하지 않아요. 기존 OIDC 역할의 트러스트 정책을 수정하는 경우에는 IAM이 역할 트러스트 정책에 아이덴티티 프로바이더 제어가 포함되도록 요구해요.
OIDC 프로바이더 유형
IAM은 OIDC 아이덴티티 프로바이더를 **프라이빗(private)**과 공유(shared) 두 가지 유형으로 분류해요. 프라이빗 OIDC IdP는 단일 조직이 소유·관리하거나 SaaS 프로바이더의 테넌트일 수 있으며, 그 OIDC Issuer URL이 그 조직에 특정한 고유 식별자 역할을 해요. 반면 공유 OIDC IdP는 여러 조직에 걸쳐 사용되며, 그 공유 아이덴티티 프로바이더를 사용하는 모든 조직에 대해 OIDC Issuer URL이 동일할 수 있어요.
다음 표는 프라이빗 OIDC 프로바이더와 공유 OIDC 프로바이더의 핵심 차이를 정리해요.
| 특성 | 프라이빗 OIDC 프로바이더 | 공유 OIDC 프로바이더 |
|---|---|---|
| Issuer | 조직에 고유 | 여러 조직에 걸쳐 공유 |
| 테넌시 정보 | 고유 Issuer로 전달 | JWT의 클레임으로 전달 |
| 트러스트 정책 요구 사항 | 특정 클레임 평가 불필요 | 특정 클레임 평가 필요 |
아이덴티티 프로바이더 제어가 있는 공유 OIDC 아이덴티티 프로바이더
IAM에서 OIDC 프로바이더를 만들거나 수정할 때, 시스템이 인식된 공유 OIDC 프로바이더의 필수 클레임을 자동으로 식별하고 평가해요. 아이덴티티 프로바이더 제어가 역할 트러스트 정책에 구성되지 않으면 역할 생성이나 업데이트가 MalformedPolicyDocument 오류로 실패해요.
다음 표는 역할 트러스트 정책에 아이덴티티 프로바이더 제어가 필요한 공유 OIDC 프로바이더와, 아이덴티티 프로바이더 제어 구성에 도움이 되는 추가 정보를 나열해요.
| OIDC IdP | OIDC URL | 테넌시 클레임 | 필수 클레임 |
|---|---|---|---|
| Amazon Cognito | cognito-identity.amazonaws.com | aud | cognito-identity.amazonaws.com:aud |
| Azure Sentinel | https://sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d | sts:RoleSessionName | sts:RoleSessionName |
| Buildkite | https://agent.buildkite.com | sub | agent.buildkite.com:sub |
| Codefresh SaaS | https://oidc.codefresh.io | sub | oidc.codefresh.io:sub |
| DVC Studio | https://studio.datachain.ai/api | sub | studio.datachain.ai/api:sub |
| GitHub actions | https://token.actions.githubusercontent.com | sub | token.actions.githubusercontent.com:sub |
| GitHub audit log streaming | https://oidc-configuration.audit-log.githubusercontent.com | sub | oidc-configuration.audit-log.githubusercontent.com:sub |
| GitHub vstoken | https://vstoken.actions.githubusercontent.com | sub | vstoken.actions.githubusercontent.com:sub |
| GitLab | https://gitlab.com | sub | gitlab.com:sub |
| IBM Turbonomic SaaS* | https://rh-oidc.s3.us-east-1.amazonaws.com/22ejnvnnturfmt6km08idd0nt4hekbn7 외 여러 Issuer | sub | rh-oidc.s3.us-east-1.amazonaws.com/22ejnvnnturfmt6km08idd0nt4hekbn7:sub 외 |
| Pulumi Cloud | https://api.pulumi.com/oidc | aud | api.pulumi.com/oidc:aud |
| sandboxes.cloud | https://sandboxes.cloud | aud | sandboxes.cloud:aud |
| Scalr | https://scalr.io | sub | scalr.io:sub |
| Shisho Cloud | https://tokens.cloud.shisho.dev | sub | tokens.cloud.shisho.dev:sub |
| Terraform Cloud | https://app.terraform.io | sub | app.terraform.io:sub |
| Upbound | https://proidc.upbound.io | sub | proidc.upbound.io:sub |
| Vercel global endpoint | https://oidc.vercel.com | aud | oidc.vercel.com:aud |
- IBM Turbonomic은 플랫폼의 새 버전으로 OIDC Issuer URL을 주기적으로 업데이트해요. 필요에 따라 추가 Turbonomic OIDC 발급자를 공유 프로바이더로 범위에 추가할 거예요.
IAM이 공유로 식별하는 새 OIDC IdP에 대해서도 역할 트러스트 정책의 필수 아이덴티티 프로바이더 제어가 비슷한 방식으로 문서화되고 강제될 거예요.
추가 리소스
- OIDC 페더레이션용 IAM 역할 만드는 방법은 OpenID Connect 페더레이션용 역할 만들기(콘솔)를 참고하세요.
- 클레임에 사용할 수 있는 IAM 조건 키 목록은 AWS OIDC 페더레이션에 사용할 수 있는 키를 참고하세요.
더 알아보기 (Learn more)
- IAM에서 OpenID Connect(OIDC) 아이덴티티 프로바이더 생성 — OIDC IdP를 IAM에 연결하는 방법을 확인해 보세요.
- OIDC 페더레이션 — OIDC 페더레이션의 개념을 살펴보세요.
- AWS OIDC 페더레이션에 사용할 수 있는 키 — 조건 키 목록을 참고하세요.