에서 AWS 공유 구성 프로필 사용 AWS SDK for Java 2.x - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에서 AWS 공유 구성 프로필 사용 AWS SDK for Java 2.x

공유 configcredentials 파일을 사용하여 여러 프로필을 설정할 수 있습니다. 이렇게 하면 애플리케이션에서 여러 자격 증명 구성 세트를 사용할 수 있습니다. [default] 프로필은 앞서 언급한 바 있습니다. SDK는 ProfileCredentialsProvider 클래스를 사용하여 공유 credentials 파일에 정의된 프로필에서 설정을 로드합니다.

다음 코드 조각은 이름이 my_profile로 지정된 프로필의 일부로 정의된 설정을 사용하는 서비스 클라이언트를 빌드하는 방법을 보여줍니다.

Region region = Region.US_WEST_2; DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create("my_profile")) .build();

다른 프로필을 기본값으로 설정

[default] 프로필 이외의 프로필을 애플리케이션의 기본 프로필로 설정하려면 AWS_PROFILE 환경 변수를 사용자 지정 프로필 이름으로 설정합니다.

Linux, macOS 또는 Unix에서 이러한 변수를 설정하려면 export를 사용합니다.

export AWS_PROFILE="other_profile"

Windows에서 이러한 변수를 설정하려면 set을 사용합니다.

set AWS_PROFILE="other_profile"

또는 aws.profile Java 시스템 속성을 프로필 이름으로 설정합니다.

프로필 자격 증명 다시 로드

빌더에 프로필 자격 증명을 다시 로드하는 profileFile() 메서드가 있는 모든 자격 증명 공급자를 구성할 수 있습니다. 이러한 자격 증명 프로필 클래스는 ProfileCredentialsProvider, DefaultCredentialsProvider, InstanceProfileCredentialsProvider, 및 ProfileTokenProvider.입니다.

참고

프로필 자격 증명 재로드는 프로필 파일의 다음 설정(aws_access_key_id, aws_secret_access_keyaws_session_token)에서만 작동합니다.

region, sso_session, sso_account_id, 및 source_profile 등의 설정은 무시됩니다.

지원되는 자격 증명 공급자가 프로필 설정을 다시 로드하도록 구성하려면 profileFile() 빌더 메서드에 ProfileFileSupplier 인스턴스를 제공하세요. 다음 코드 예제는 [default] 프로필에서 자격 증명 설정을 다시 로드하는 ProfileCredentialsProvider를 보여줍니다.

ProfileCredentialsProvider provider = ProfileCredentialsProvider .builder() .profileFile(ProfileFileSupplier.defaultSupplier()) .build(); // Set up a service client with the provider instance. DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .region(Region.US_EAST_1) .credentialsProvider(provider) .build(); /* Before dynamoDbClient makes a request, it reloads the credentials settings by calling provider.resolveCredentials(). */

ProfileCredentialsProvider.resolveCredentials()가 호출되면 Java용 SDK가 설정을 다시 로드합니다. ProfileFileSupplier.defaultSupplier()는 SDK에서 제공하는 ProfileFileSupplier여러 편의 구현 중 하나입니다. 사용 사례에 필요한 경우 자체 구현을 제공할 수 있습니다.

다음 예제는 ProfileFileSupplier.reloadWhenModified() 편의 메서드를 사용하는 방법을 보여줍니다. reloadWhenModified()Path 매개 변수를 사용하여 표준 ~/.aws/credentials(또는 config) 위치가 아닌 구성의 소스 파일을 유연하게 지정할 수 있습니다.

SDK에서 파일 내용이 수정되었다고 판단하는 경우에만 resolveCredentials()가 호출될 때 설정이 다시 로드됩니다.

Path credentialsFilePath = ... ProfileCredentialsProvider provider = ProfileCredentialsProvider .builder() .profileFile(ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS)) .profileName("my-profile") .build(); /* A service client configured with the provider instance calls provider.resolveCredential() before each request. */

ProfileFileSupplier.aggregate() 메서드는 여러 구성 파일의 내용을 병합합니다. 파일을 resolveCredentials()를 호출할 때마다 다시 로드할지 아니면 파일을 처음 읽을 때 파일 설정을 고정할지를 결정합니다.

다음 예제는 프로필 설정이 포함된 두 파일의 설정을 병합하는 DefaultCredentialsProvider를 보여줍니다. SDK는 resolveCredentials()가 호출되고 설정이 변경될 때마다 credentialsFilePath 변수가 가리키는 파일에 설정을 다시 로드합니다. profileFile 객체의 설정은 동일하게 유지됩니다.

Path credentialsFilePath = ...; ProfileFile profileFile = ...; DefaultCredentialsProvider provider = DefaultCredentialsProvider .builder() .profileFile(ProfileFileSupplier.aggregate( ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS), ProfileFileSupplier.fixedProfileFile(profileFile))) .profileName("my-profile") .build(); /* A service client configured with the provider instance calls provider.resolveCredential() before each request. */