기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
보안 인증 제공업체
기본 자격 증명 공급자 체인이 버전 1.4.0으로 변경된 자격 증명을 확인하는 순서 자세한 내용은 아래 참고 사항을 참조하세요.
를 사용하여 Amazon Web Services에 요청하기 위해 SDK AWS SDK for Kotlin는에서 발급한 암호화 서명 보안 인증 정보를 사용합니다 AWS. SDK는 자격 증명을 획득하기 위해 JVM 시스템 속성, 환경 변수, 공유 AWS config
및 credentials
파일, Amazon EC2 인스턴스 메타데이터 등 여러 위치에 있는 구성 설정을 사용할 수 있습니다.
SDK는 자격 증명 공급자 추상화를 사용하여 다양한 소스에서 자격 증명을 검색하는 프로세스를 간소화합니다. SDK에는 여러 자격 증명 공급자 구현이 포함되어 있습니다
예를 들어 검색된 구성에 공유 config
파일의 IAM Identity Center Single Sign-On 액세스 설정이 포함된 경우 SDK는 IAM Identity Center와 협력하여 요청에 사용하는 임시 자격 증명을 검색합니다 AWS 서비스. 이러한 자격 증명 획득 접근 방식을 통해 SDK는 IAM Identity Center 공급자(SSO 자격 증명 공급자라고도 함)를 사용합니다. 이 가이드의 설정 섹션에서는이 구성을 설명합니다.
특정 자격 증명 공급자를 사용하려면 서비스 클라이언트를 생성할 때 자격 증명 공급자를 지정할 수 있습니다. 또는 기본 자격 증명 공급자 체인을 사용하여 구성 설정을 자동으로 검색할 수 있습니다.
기본 자격 증명 공급자 체인
클라이언트 구성에서 명시적으로 지정되지 않은 경우 SDK for Kotlin은 자격 증명을 제공할 수 있는 각 위치를 순차적으로 확인하는 자격 증명 공급자를 사용합니다. 이 기본 자격 증명 공급자는 자격 증명 공급자 체인으로 구현됩니다.
기본 체인을 사용하여 애플리케이션에서 자격 증명을 제공하려면 credentialsProvider
속성을 명시적으로 제공하지 않고 서비스 클라이언트를 생성합니다.
val ddb = DynamoDbClient { region = "us-east-2" }
서비스 클라이언트 생성에 대한 자세한 내용은 클라이언트 구성 및 구성을 참조하세요.
기본 자격 증명 공급자 체인에 대해 알아보기
기본 자격 증명 공급자 체인은 다음과 같은 사전 정의된 시퀀스를 사용하여 자격 증명 구성을 검색합니다. 구성된 설정이 유효한 자격 증명을 제공하면 체인이 중지됩니다.
- 1. AWS 액세스 키(JVM 시스템 속성)
-
SDK는
aws.accessKeyId
,aws.secretAccessKey
및aws.sessionToken
JVM 시스템 속성을 찾습니다. - 2. AWS 액세스 키(환경 변수)
-
SDK는
AWS_ACCESS_KEY_ID
및 환경AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
변수에서 자격 증명을 로드하려고 시도합니다. - 3. 웹 자격 증명 토큰
-
SDK는 환경 변수
AWS_WEB_IDENTITY_TOKEN_FILE
및AWS_ROLE_ARN
(또는 JVM 시스템 속성aws.webIdentityTokenFile
및aws.roleArn
)를 찾습니다. SDK는 토큰 정보와 역할에 따라 임시 자격 증명을 획득합니다. - 4. 구성 파일의 프로필
-
이 단계에서 SDK는 프로필과 연결된 설정을 사용합니다. 기본적으로 SDK는 공유 AWS
config
및credentials
파일을 사용하지만AWS_CONFIG_FILE
환경 변수가 설정된 경우 SDK는 해당 값을 사용합니다.AWS_PROFILE
환경 변수(또는aws.profile
JVM 시스템 속성)가 설정되지 않은 경우 SDK는 “기본” 프로파일을 찾고, 그렇지 않으면AWS_PROFILE’s
값과 일치하는 프로파일을 찾습니다.SDK는 이전 단락에 설명된 구성을 기반으로 프로파일을 찾고 여기에 정의된 설정을 사용합니다. SDK에서 찾은 설정에 서로 다른 자격 증명 공급자 접근 방식에 대한 설정 조합이 포함된 경우 SDK는 다음 순서를 사용합니다.
-
AWS 액세스 키(구성 파일) - SDK는
aws_access_key_id
,aws_access_key_id
및에 대한 설정을 사용합니다aws_session_token
. -
역할 구성 수임 - SDK가
role_arn
및source_profile
또는credential_source
설정을 찾으면 역할을 수임하려고 시도합니다. SDK가source_profile
설정을 찾으면 다른 프로필에서 자격 증명을 소싱하여에서 지정한 역할에 대한 임시 자격 증명을 수신합니다role_arn
. SDK가credential_source
설정을 찾으면credential_source
설정 값에 따라 Amazon ECS 컨테이너, Amazon EC2 인스턴스 또는 환경 변수에서 자격 증명을 소싱합니다. 그런 다음 해당 자격 증명을 사용하여 역할에 대한 임시 자격 증명을 획득합니다.프로필에는
source_profile
설정 또는credential_source
설정이 포함되어야 하지만 둘 다 포함될 수는 없습니다. -
웹 자격 증명 토큰 구성 - SDK가
role_arn
및web_identity_token_file
설정을 찾으면role_arn
및 토큰을 기반으로 AWS 리소스에 액세스할 수 있는 임시 자격 증명을 획득합니다. -
SSO 토큰 구성 - SDK가
sso_session
,sso_account_id
,sso_role_name
설정(구성 파일의 컴패니언sso-session
섹션과 함께)을 찾으면 SDK는 IAM Identity Center 서비스에서 임시 자격 증명을 검색합니다. -
레거시 SSO 구성 - SDK가
sso_start_url
,sso_region
sso_account_id
, 및sso_role_name
설정을 찾으면 SDK는 IAM Identity Center 서비스에서 임시 자격 증명을 검색합니다. -
프로세스 구성 - SDK가
credential_process
설정을 찾으면 경로 값을 사용하여 프로세스를 호출하고 임시 자격 증명을 획득합니다.
-
- 5. 컨테이너 자격 증명
-
SDK는 환경 변수
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
또는AWS_CONTAINER_CREDENTIALS_FULL_URI
및AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE
또는를 찾습니다AWS_CONTAINER_AUTHORIZATION_TOKEN
. 이 값을 사용하여 GET 요청을 통해 지정된 HTTP 엔드포인트에서 자격 증명을 로드합니다. - 6. IMDS 자격 증명
-
SDK는 기본 또는 구성된 HTTP 엔드포인트에서 인스턴스 메타데이터 서비스에서 자격 증명을 가져오려고 시도합니다. SDK는 IMDSv2만 지원합니다.
현재 자격 증명이 여전히 해결되지 않으면 예외를 제외하고 클라이언트 생성이 실패합니다.
참고: 자격 증명 확인 순서 변경
위에서 설명한 자격 증명 확인 순서는 SDK for Kotlin 1.4.x+
릴리스의 최신 상태입니다. 1.4.0
릴리스 전에 항목 번호 3과 4가 전환되었고 현재 4a 항목은 현재 4f 항목을 따랐습니다.
명시적 자격 증명 공급자
기본 공급자 체인을 사용하는 대신 SDK에서 사용해야 하는 특정 자격 증명 공급자 또는 사용자 지정 체인(CredentialsProviderChain
)을 지정할 수 있습니다. 예를 들어 환경 변수를 사용하여 기본 자격 증명을 설정하는 경우 다음 코드 조각과 같이 클라이언트 빌더EnvironmentCredentialsProvider
에를 제공합니다.
val ddb = DynamoDbClient { region = "us-east-1" credentialsProvider = EnvironmentCredentialsProvider() }
참고
기본 체인은 자격 증명을 캐시하지만 독립 실행형 공급자는 캐시하지 않습니다. CachedCredentialsProvider
클래스를 사용하여 모든 자격 증명 공급자를 래핑하여 모든 API 호출에서 자격 증명을 불필요하게 가져오지 않도록 할 수 있습니다. 캐시된 공급자는 현재 자격 증명이 만료될 때만 새 자격 증명을 가져옵니다.
참고
CredentialsProvider
인터페이스를 구현하여 자체 자격 증명 공급자 또는 공급자 체인을 구현할 수 있습니다.