AWS 아이덴티티를 외부 서비스로 페더레이션

AWS 아이덴티티를 외부 서비스로 페더레이션 (Federating AWS Identities to external services)

IAM 아웃바운드 아이덴티티 페더레이션은 AWS 워크로드가 장기 자격 증명을 저장하지 않고 외부 서비스에 안전하게 접근할 수 있게 해줘요. AWS 워크로드는 AWS Security Token Service(AWS STS)의 GetWebIdentityToken API를 호출해 **단기 JSON 웹 토큰(JWT)**을 요청할 수 있어요. 이 토큰은 암호화 서명되고, 공개 검증 가능하며, AWS 워크로드의 아이덴티티를 외부 서비스에 주장하는 포괄적인 클레임 집합을 포함해요. 이 토큰을 다양한 타사 클라우드 프로바이더, SaaS 플랫폼, 자체 호스팅 애플리케이션에 사용할 수 있어요. 외부 서비스는 잘 알려진 엔드포인트에 게시된 AWS의 검증 키로 토큰의 진위를 검증하고, 토큰의 정보로 인증·인가 결정을 내려요.

출처: 문서

본문

아웃바운드 아이덴티티 페더레이션은 API 키나 비밀번호 같은 장기 자격 증명을 애플리케이션 코드나 환경 변수에 저장하는 것을 없애 보안 상태를 개선해요. IAM 정책으로 토큰 생성에 대한 접근을 제어하고 서명 알고리즘, 허용된 오디언스(audience), 지속 시간 같은 토큰 속성을 강제할 수 있어요. 모든 토큰 요청은 AWS에서 기록되어 보안 모니터링·규정 준수 보고용 완전한 감사 추적을 제공해요. 또한 태그로 토큰을 커스터마이즈해 커스텀 클레임으로 나타나게 할 수 있어서, 외부 서비스가 세분화된 **속성 기반 접근 제어(ABAC)**를 구현할 수 있게 해줘요.

아웃바운드 페더레이션 설정 방법은 아웃바운드 아이덴티티 페더레이션 시작하기를, 토큰 내용에 대한 자세한 내용은 토큰 클레임 이해를, 어떤 워크로드가 토큰을 요청할 수 있는지 제어하는 방법은 IAM 정책으로 접근 제어를 참고하세요.

일반적인 사용 사례

아웃바운드 아이덴티티 페더레이션으로 AWS 워크로드는 안전하게 다음을 할 수 있어요.

  • 외부 클라우드 프로바이더의 리소스·서비스에 접근 — 예를 들어 데이터를 처리하는 Lambda 함수가 결과를 외부 클라우드 프로바이더의 스토리지 서비스에 쓰거나 그 데이터베이스에 질의할 수 있어요.
  • 외부 SaaS 프로바이더와 통합 — 분석, 데이터 처리, 모니터링 등. 예를 들어 Lambda 함수가 관측성(observability) 플랫폼에 메트릭을 보낼 수 있어요.
  • 자체 애플리케이션으로 인증 — AWS에 호스팅된 자체 애플리케이션, 외부 클라우드 프로바이더, 또는 온프레미스 데이터 센터. 이를 통해 안전한 하이브리드·멀티클라우드 아키텍처를 가능하게 해요. 예를 들어 AWS 워크로드가 온프레미스 Kubernetes 클러스터에서 실행되는 컨테이너화된 애플리케이션과 상호작용할 수 있어요.

동작 방식

  1. Lambda 함수가 GetWebIdentityToken API를 호출해 AWS STS에서 JSON 웹 토큰(JWT)을 요청해요.
  2. AWS STS가 요청을 검증하고 서명된 JWT를 Lambda 함수에 반환해요.
  3. Lambda 함수가 JWT를 외부 서비스에 보내요.
  4. 외부 서비스가 토큰에서 발급자(issuer) URL을 추출하고, 알려진 신뢰할 수 있는 발급자와 일치하는지 확인한 뒤, OIDC 디스커버리 엔드포인트에서 AWS의 검증 키와 메타데이터를 가져와요.
  5. 외부 서비스가 검증 키로 토큰의 서명을 검증하고 만료 시간, 주체, 오디언스 같은 클레임을 검증해요.
  6. 검증에 성공한 후 외부 서비스가 Lambda 함수에 접근을 부여해요.

더 알아보기 (Learn more)