プロファイルを使用する - 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() メソッドを持つ認証情報プロバイダーならどれでも設定できます。これらの認証情報プロファイルクラスは ProfileCredentialsProviderDefaultCredentialsProviderInstanceProfileCredentialsProvider、および ProfileTokenProvider. です。

注記

プロファイル認証情報の再ロードは、プロファイルファイル内の設定でのみ機能します。aws_access_key_idaws_secret_access_key、および aws_session_token

regionsso_sessionsso_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() が呼び出されると、SDK for Java は設定を再ロードします。ProfileFileSupplier.defaultSupplier() は SDK が提供するProfileFileSupplierいくつかの便利な実装の 1 つです。ユースケースで必要な場合は、独自の実装を提供できます。

次の例は、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() への呼び出しごとにファイルを再ロードするか、ファイルの設定を最初に読み取った時点で固定するかを決めることができます。

次の例は、プロファイル設定を含む 2 つのファイルの設定を結合する 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. */