OIDC 페더레이션

OIDC 페더레이션 (OIDC federation)

AWS 리소스에 접근하는 애플리케이션을 만들고 있다고 상상해 보세요. 예를 들어 GitHub Actions가 워크플로로 Amazon S3와 DynamoDB에 접근하는 경우요.

출처: 문서

본문

이런 워크플로를 사용할 때 AWS 서비스에 요청을 보내면 AWS 접근 키로 서명돼야 해요. 하지만 AWS 외부의 애플리케이션에 AWS 자격 증명을 장기간 저장하지 않는 것을 강력히 권장해요. 대신 OIDC 페더레이션으로 필요할 때 임시 AWS 보안 자격 증명을 동적으로 요청하도록 애플리케이션을 구성해요. 제공된 임시 자격 증명은 애플리케이션이 수행해야 하는 작업에 필요한 권한만 가진 AWS 역할에 매핑돼요.

OIDC 페더레이션을 쓰면 커스텀 로그인 코드를 만들거나 자체 사용자 아이덴티티를 관리할 필요가 없어요. 대신 GitHub Actions나 다른 OpenID Connect(OIDC) 호환 IdP 같은 애플리케이션에서 OIDC를 사용해 AWS로 인증할 수 있어요. 그들은 JSON 웹 토큰(JWT)이라는 인증 토큰을 받고, 그 토큰을 AWS 계정의 특정 리소스를 사용할 권한이 있는 IAM 역할에 매핑되는 임시 보안 자격 증명으로 교환해요. IdP를 사용하면 애플리케이션에 장기 보안 자격 증명을 내장·배포하지 않아도 되므로 AWS 계정을 안전하게 유지하는 데 도움이 돼요.

OIDC 페더레이션은 머신 간 인증(CI/CD 파이프라인, 자동화 스크립트, 서버리스 애플리케이션 같은)과 사람 사용자 인증을 모두 지원해요. 사용자 가입·로그인·사용자 프로필을 관리해야 하는 사람 사용자 인증 시나리오에서는 Amazon Cognito를 아이덴티티 브로커로 사용하는 것을 고려해 보세요. Amazon Cognito를 OIDC와 함께 사용하는 자세한 내용은 모바일 앱용 Amazon Cognito를 참고하세요.

참고

OpenID Connect(OIDC) 아이덴티티 프로바이더가 발급한 JSON 웹 토큰(JWT)에는 토큰이 만료되는 시점을 지정하는 exp 클레임의 만료 시간이 포함돼요. IAM은 OpenID Connect(OIDC) Core 1.0 표준이 허용하는 바에 따라 JWT에 지정된 만료 시간을 넘어 5분의 시계 오차(clock skew) 창을 제공해요. 즉 만료 시간 이후지만 이 5분 창 안에 IAM이 받은 OIDC JWT는 추가 평가·처리를 위해 받아들여져요.

다루는 주제

  • OIDC 페더레이션의 추가 리소스
  • IAM에서 OpenID Connect(OIDC) 아이덴티티 프로바이더 생성
  • OpenID Connect 아이덴티티 프로바이더의 지문(thumbprint) 얻기
  • 공유 OIDC 프로바이더용 아이덴티티 프로바이더 제어

OIDC 페더레이션의 추가 리소스

다음 리소스가 OIDC 페더레이션에 대해 더 배우는 데 도움이 될 수 있어요.

  • GitHub 워크플로 안에서 OpenID Connect 사용 — Amazon Web Services에서 OpenID Connect 구성
  • Amplify Libraries for Android 가이드의 Amazon Cognito Identity와 Amplify Libraries for Swift 가이드의 Amazon Cognito Identity
  • AWS Security Blog의 AWS 리소스 접근 권한을 부여할 때 외부 ID 사용 방법 — 교차 계정 접근과 외부 아이덴티티 페더레이션을 안전하게 구성하는 지침을 제공해요.

더 알아보기 (Learn more)