기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
특정 자격 증명 공급자 사용
SDK는 자격 증명 공급자를 사용하여 액세스에 필요한 인증 자격 증명(예: 액세스 키 및 세션 토큰)을 검색, 관리 및 제공합니다 AWS 서비스.
자격 증명 공급자는 다양한 소스에서 자격 증명을 쉽게 검색하고, 보안 모범 사례를 구현하고, 환경 전반에서 AWS 유연한 인증 전략을 지원합니다.
자격 증명 공급자 지정
기본 자격 증명 공급자 체인을 우회하려면 서비스 클라이언트가 사용해야 하는 자격 증명 공급자를 지정합니다. 특정 자격 증명 공급자를 제공하면 SDK는 다양한 위치를 확인하는 프로세스를 건너뛰므로 서비스 클라이언트를 생성하는 데 걸리는 시간이 약간 줄어듭니다.
예를 들어 환경 변수를 사용하여 기본 구성을 설정하는 경우 다음 코드 코드 조각과 같이 서비스 클라이언트 빌더의 credentialsProvider
메서드에 EnvironmentVariableCredentialsProvider
Region region = Region.US_WEST_2; DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .build();
자격 증명 공급자 및 공급자 체인의 전체 목록은 AwsCredentialsProvider
참고
AwsCredentialsProvider
인터페이스를 구현하여 자체 자격 증명 공급자 또는 공급자 체인을 사용할 수도 있습니다.
자격 증명 공급자 구성
자격 증명 공급자 구현을 구성하는 예로 SDK가 만료되기 전에 백그라운드 스레드를 사용하여 자격 증명을 미리 가져오도록(사전 검색) 할 수 있습니다. 이렇게 하면 새 자격 증명을 검색하는 호출 차단을 방지할 수 있습니다.
다음은 빌더true
에서 asyncCredentialUpdateEnabled
속성을 로 설정하여 백그라운드 스레드를 사용하여 보안 인증 정보를 미리 가져오는 StsAssumeRoleCredentialsProvider
를 생성하는 예제입니다.
S3Client s3Client = S3Client.builder() .credentialsProvider(StsAssumeRoleCredentialsProvider.builder() .asyncCredentialUpdateEnabled(true) .stsClient(StsClient.create()) .refreshRequest(r -> r .roleArn("arn:aws:iam::111122223333:role/S3-listbuckets-only-role") .roleSessionName("test-temp-session") .durationSeconds(900)) .build()) .build();
에서 작업을 s3Client
처음 호출하면 AssumeRoleRequest
가 AWS Security Token Service (STS)로 전송됩니다. STS는 15분(900초) 동안 유효한 임시 자격 증명을 반환합니다. s3Client
인스턴스는 15분이 경과하기 전에 새로 고칠 때까지 캐시된 보안 인증 정보를 사용합니다. 기본적으로 SDK는 현재 세션의 만료 시간 5분~1분 전에 새 세션에 대한 새 자격 증명을 검색하려고 시도합니다. 사전 가져오기 창은 prefetchTime
및 staleTime
속성을 사용하여 구성할 수 있습니다.
다음과 같은 세션 기반 자격 증명 공급자를 유사하게 구성할 수 있습니다.
-
StsWebIdentityTokenFileCredentialsProvider
-
StsGetSessionTokenCredentialsProvider
-
StsGetFederationTokenCredentialsProvider
-
StsAssumeRoleWithWebIdentityCredentialsProvider
-
StsAssumeRoleWithSamlCredentialsProvider
-
StsAssumeRoleCredentialsProvider
-
DefaultCredentialsProvider
(세션을 사용하는 보안 인증 제공업체에 위임하는 경우) -
ProcessCredentialsProvider
-
WebIdentityTokenFileCredentialsProvider
-
ContainerCredentialsProvider
-
InstanceProfileCredentialsProvider