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 클러스터에서 실행되는 컨테이너화된 애플리케이션과 상호 작용할 수 있습니다.
작동 방식
-
Lambda 함수는 GetWebIdentityToken API를 직접 호출하여 AWS Security Token Service(AWS STS)에서 JSON 웹 토큰(JWT)을 요청합니다.
-
AWS STS는 요청을 검증하고 서명된 JWT를 Lambda 함수에 반환합니다.
-
Lambda 함수는 JWT를 외부 서비스에 전송합니다.
-
외부 서비스는 토큰에서 발급자 URL을 추출하고, 알려진 신뢰할 수 있는 발급자와 일치하는지 확인하고, OIDC 검색 엔드포인트에서 AWS의 검증 키와 메타데이터를 가져옵니다.
-
외부 서비스는 검증 키를 사용하여 토큰의 서명을 확인하고 만료 시간, 주체, 대상 등의 클레임을 검증합니다.
-
검증에 성공하면 외부 서비스는 Lambda 함수에 대한 액세스 권한을 부여합니다.