翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
プロファイルを使用する
共有 config
と credentials
ファイルを使用して、複数のプロファイルを設定できます。これにより、アプリケーションは複数の認証情報設定を使用できます。[default]
プロファイルについては前述に記載したとおりです。SDK は ProfileCredentialsProvidercredentials
ファイルで定義されたプロファイルから設定をロードします。
次のコードスニペットは、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_key
、および aws_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()
が呼び出されると、SDK for Java は設定を再ロードします。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()
への呼び出しごとにファイルを再ロードするか、ファイルの設定を最初に読み取った時点で固定するかを決めることができます。
次の例は、プロファイル設定を含む 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. */