Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tentukan penyedia kredensi tertentu di AWS SDK for Java 2.x
Meskipun rantai penyedia kredensional default nyaman untuk banyak skenario, menentukan penyedia kredensional secara eksplisit memberi Anda kontrol yang lebih besar atas perilaku otentikasi, kinerja, dan keamanan.
Alasan mengapa Anda mungkin ingin menentukan penyedia kredensional mungkin termasuk:
-
Rantai penyedia default memeriksa beberapa sumber secara berurutan, yang dapat menambahkan latensi:
// 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();
-
Anda perlu menggunakan lokasi non-standar untuk mengakses konfigurasi kredensional:
// 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();
-
Gunakan kredensi yang berbeda untuk klien layanan yang berbeda. Misalnya, jika aplikasi Anda perlu mengakses beberapa AWS akun atau menggunakan izin yang berbeda untuk layanan yang berbeda:
// 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();
-
Kontrol perilaku penyegaran kredenal:
// 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();