웹 ID 또는 OpenID Connect를 사용해 역할을 수임하여 AWS SDK 및 도구 인증 - AWS SDK 및 도구

웹 ID 또는 OpenID Connect를 사용해 역할을 수임하여 AWS SDK 및 도구 인증

역할 수임에는 액세스 권한이 없을 수 있는 AWS 리소스에 액세스하기 위해 일련의 임시 보안 보안 인증을 사용하는 것이 포함됩니다. 이러한 임시 보안 인증은 액세스 키 ID, 보안 액세스 키 및 보안 토큰으로 구성됩니다. AWS Security Token Service(AWS STS) API 요청에 대해 자세히 알아보려면 AWS Security Token Service API 참조작업을 참조하세요.

역할을 수임하도록 SDK 또는 도구를 설정하려면 먼저 수임할 특정 역할을 만들거나 식별해야 합니다. IAM 역할은 Amazon 리소스 이름(ARN)역할로 고유하게 식별됩니다. 역할은 다른 엔티티와 신뢰 관계를 구축합니다. 해당 역할을 사용하는 신뢰 주체는 웹 ID 공급자, OpenID Connect(OIDC), 또는 SAML 페더레이션일 수 있습니다. IAM 역할에 대한 자세한 내용은 IAM 사용 설명서역할 수임 방법을 참조하세요.

SDK에서 IAM 역할을 구성한 뒤, 해당 역할이 사용자 ID 공급자를 신뢰하도록 설정되어 있다면, 임시 AWS 자격 증명을 얻기 위해 SDK가 그 역할을 수임하도록 추가로 구성할 수 있습니다.

참고

가능한 경우 항상 리전 엔드포인트를 사용하고 AWS 리전를 구성하는 것이 AWS 모범 사례입니다.

웹 ID 또는 OpenID Connect와 페더레이션

Login With Amazon, Facebook, Google 같은 공개 ID 공급자의 JSON 웹 토큰(JWT)을 사용해, AssumeRoleWithWebIdentity를 통해 임시 AWS 자격 증명을 얻을 수 있습니다. 사용 방식에 따라 이러한 JWT는 ID 토큰 또는 액세스 토큰이라고 불릴 수 있습니다. 또한 EntraID나 PingFederate처럼 OIDC 디스커버리 프로토콜을 지원하는 ID 제공업체(idP)가 발급한 JWT도 사용할 수 있습니다.

Amazon Elastic Kubernetes Service를 사용하는 경우, 이 기능을 통해 Amazon EKS 클러스터 내 각 서비스 계정마다 서로 다른 IAM 역할을 지정할 수 있습니다. 이 Kubernetes 기능은 JWT를 각 포드에 배포하며, 해당 JWT는 자격 증명 공급자가 임시 AWS 자격 증명을 얻는 데 사용됩니다. 이 Amazon EKS 구성에 대한 자세한 내용은 Amazon EKS 사용 설명서서비스 계정에 대한 IAM 역할을 참조하세요. 그러나 더 간단한 옵션을 원하면 SDK에서 지원하는 경우 Amazon EKS Pod Identitie를 대신 사용하는 것이 좋습니다.

1단계: 보안 인증 공급자 및 IAM 역할 설정

외부 idP와의 페더레이션을 구성하려는 경우 IAM ID 제공업체를 생성하여 외부 IdP 및 구성에 대해 AWS에 알려줍니다. 이렇게 하면 AWS 계정 계정과 외부 IdP 사이에 신뢰가 구축됩니다. SDK에서 인증을 위해 JSON 웹 토큰(JWT)을 사용하도록 구성하기 전에, 먼저 ID 제공업체(idP)와 해당 idP에 접근하는 데 사용될 IAM 역할을 설정해야 합니다. 이러한 설정을 하려면 IAM 사용 설명서웹 보안 인증 또는 OpenID Connect 페더레이션을 위한 역할 생성(콘솔)을 참조하십시오.

2단계: SDK 또는 도구 구성

인증을 위해 AWS STS의 JSNO 웹 토큰(JWT)을 사용하도록 SDK 또는 도구를 구성합니다.

프로파일에서 이를 지정할 때 SDK 또는 도구에서 해당 AWS STS AssumeRoleWithWebIdentity API 직접 호출을 수행합니다. 웹 ID 페더레이션을 사용하여 임시 보안 인증을 검색하고 사용하려면 공유 AWS config 파일에서 다음 구성 값을 지정합니다. 이러한 설정에 대한 자세한 내용은 역할 보안 인증 제공자 수임 설정 섹션을 참조하십시오.

  • role_arn - 1단계에서 생성한 IAM 역할에서

  • web_identity_token_file- 외부 IdP에서

  • (선택 사항) duration_seconds

  • (선택 사항) role_session_name

다음은 웹 ID를 사용하여 역할을 수임하는 공유 config 파일 구성의 예입니다.

[profile web-identity] role_arn=arn:aws:iam::123456789012:role/my-role-name web_identity_token_file=/path/to/a/token
참고

모바일 애플리케이션의 경우 Amazon Cognito를 사용하는 것이 좋습니다. Amazon Cognito는 ID 브로커로 활동하며 사용자를 대신하여 상당한 페더레이션을 합니다. 하지만 Amazon Cognito 보안 인증 공급자는 다른 보안 인증 공급자처럼 SDK 및 도구 코어 라이브러리에 포함되지 않습니다. Amazon Cognito API에 액세스하려면 SDK 또는 도구용 빌드 또는 라이브러리에 Amazon Cognito 서비스 클라이언트를 포함시키십시오. AWS SDK와 함께 사용하는 방법은 Amazon Cognito 개발자 안내서코드 예제를 참조하십시오.

모든 역할 수임 보안 인증 공급자 설정에 대한 자세한 내용은 이 안내서의 역할 보안 인증 제공자 수임를 참조하세요.