で特定の認証情報プロバイダーを指定する AWS SDK for Java 2.x - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

で特定の認証情報プロバイダーを指定する AWS SDK for Java 2.x

デフォルトの認証情報プロバイダーチェーンは多くのシナリオで便利ですが、認証情報プロバイダーを明示的に指定すると、認証の動作、パフォーマンス、セキュリティをより細かく制御できます。

認証情報プロバイダーを指定する理由には、次のようなものがあります。

  • デフォルトのプロバイダーチェーンは複数のソースを順番にチェックするため、レイテンシーが増加する可能性があります。

    // The default provider chain checks might check multiple sources until it finds // sufficient configuration. S3Client s3Client = S3Client.builder().build(); // You can specify exactly where to look. S3Client optimizedClient = S3Client.builder() .credentialsProvider(InstanceProfileCredentialsProvider.create()) .build();
  • 認証情報設定にアクセスするには、非標準の場所を使用する必要があります。

    // Use configuration from a custom file location. S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileFile(ProfileFile.builder() .content(Paths.get("/custom/path/to/configuration/file")) .type(ProfileFile.Type.CONFIGURATION) // Expects all non-default profiles to be prefixed with "profile". .build()) .profileName("custom") .build()) .build();
  • サービスクライアントごとに異なる認証情報を使用します。たとえば、アプリケーションが複数の AWS アカウントにアクセスしたり、異なるサービスに異なるアクセス許可を使用する必要がある場合です。

    // S3 client using one set of credentials. S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.create("s3-readonly")) .build(); // DynamoDB client using different credentials. DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .credentialsProvider(ProfileCredentialsProvider.create("dynamodb-admin")) .build();
  • 認証情報の更新動作を制御します。

    // Create a provider with custom refresh behavior. StsAssumeRoleCredentialsProvider customRefreshProvider = StsAssumeRoleCredentialsProvider.builder() .refreshRequest(AssumeRoleRequest.builder() .roleArn("arn:aws:iam::123456789012:role/my-role") .roleSessionName("custom-session") .build()) .stsClient(StsClient.create()) .asyncCredentialUpdateEnabled(true) // Use a background thread to prefetch credentials. .build(); S3Client s3Client = S3Client.builder() .credentialsProvider(customRefreshProvider) .build();