AWS ID를 외부 서비스에 페더레이션 - AWS Identity and Access Management

AWS ID를 외부 서비스에 페더레이션

IAM 아웃바운드 ID 페더레이션은 AWS 워크로드가 장기 자격 증명을 저장하지 않고도 외부 서비스에 안전하게 액세스할 수 있게 합니다. AWS 워크로드는 GetWebIdentityToken API를 직접 호출하여 AWS Security Token Service(AWS STS)에서 수명이 짧은 JSON 웹 토큰(JWT)을 요청할 수 있습니다. 이러한 토큰은 암호화 방식으로 서명되고 공개적으로 확인 가능하며 AWS 워크로드의 ID를 외부 서비스에 주장하는 포괄적인 클레임 세트를 포함합니다. 이러한 토큰은 다양한 서드 파티 클라우드 공급자, SaaS 플랫폼 및 자체 호스팅 애플리케이션에서 사용할 수 있습니다. 외부 서비스는 잘 알려진 엔드포인트에 게시된 AWS의 검증 키를 사용하여 토큰의 신뢰성을 확인하고 토큰의 정보를 사용하여 인증 및 권한 부여 결정을 내립니다.

아웃바운드 ID 페더레이션을 사용하면 애플리케이션 코드 또는 환경 변수에 API 키 또는 암호와 같은 장기 자격 증명을 저장할 필요가 없으므로 보안 태세가 강화됩니다. IAM 정책을 사용하여 토큰 생성에 대한 액세스를 제어하고 서명 알고리즘, 허용된 대상 및 기간 등의 토큰 속성을 적용할 수 있습니다. 모든 토큰 요청은 AWS에 로깅되어 보안 모니터링 및 규정 준수 보고를 위한 전체 감사 추적을 제공합니다. 사용자 지정 클레임으로 표시되는 태그로 토큰을 사용자 지정하여 외부 서비스가 세분화된 속성 기반 액세스 제어를 구현할 수 있습니다.

일반 사용 사례

아웃바운드 ID 페더레이션을 사용하면 AWS 워크로드가 안전하게 다음을 수행할 수 있습니다.

  • 외부 클라우드 공급자의 리소스 및 서비스에 액세스합니다. 예를 들어 Lambda 함수 처리 데이터는 외부 클라우드 공급자의 스토리지 서비스에 결과를 쓰거나 데이터베이스를 쿼리할 수 있습니다.

  • 분석, 데이터 처리, 모니터링 등을 위해 외부 서비스형 소프트웨어(SaaS) 공급자와 통합합니다. 예를 들어 Lambda 함수는 관찰성 플랫폼에 지표를 전송할 수 있습니다.

  • AWS, 외부 클라우드 공급자 또는 온프레미스 데이터 센터에서 호스팅되는 자체 애플리케이션으로 인증하여 안전한 하이브리드 및 멀티 클라우드 아키텍처를 지원합니다. 예를 들어 AWS 워크로드는 온프레미스 Kubernetes 클러스터에서 실행되는 컨테이너화된 애플리케이션과 상호 작용할 수 있습니다.

작동 방식

  1. Lambda 함수는 GetWebIdentityToken API를 직접 호출하여 AWS Security Token Service(AWS STS)에서 JSON 웹 토큰(JWT)을 요청합니다.

  2. AWS STS는 요청을 검증하고 서명된 JWT를 Lambda 함수에 반환합니다.

  3. Lambda 함수는 JWT를 외부 서비스에 전송합니다.

  4. 외부 서비스는 토큰에서 발급자 URL을 추출하고, 알려진 신뢰할 수 있는 발급자와 일치하는지 확인하고, OIDC 검색 엔드포인트에서 AWS의 검증 키와 메타데이터를 가져옵니다.

  5. 외부 서비스는 검증 키를 사용하여 토큰의 서명을 확인하고 만료 시간, 주체, 대상 등의 클레임을 검증합니다.

  6. 검증에 성공하면 외부 서비스는 Lambda 함수에 대한 액세스 권한을 부여합니다.