Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan penyedia kredensial tertentu
SDKMenggunakan penyedia kredensial untuk mengambil, mengelola, dan menyediakan kredensi otentikasi (seperti kunci akses dan token sesi) yang diperlukan untuk mengakses. Layanan AWS
Penyedia kredensi menyederhanakan pengambilan kredensi dari berbagai sumber, menerapkan praktik terbaik keamanan, dan mendukung strategi otentikasi fleksibel di seluruh lingkungan. AWS
Tentukan penyedia kredensial
Untuk melewati rantai penyedia kredensi default, tentukan penyedia kredensional mana yang harus digunakan klien layanan. Ketika Anda menyediakan penyedia kredensional tertentu, SDK melewatkan proses memeriksa berbagai lokasi, yang sedikit mengurangi waktu untuk membuat klien layanan.
Misalnya, jika Anda menyetel konfigurasi default menggunakan variabel lingkungan, berikan EnvironmentVariableCredentialsProvidercredentialsProvider
metode pada pembuat klien layanan, seperti yang ditunjukkan cuplikan kode berikut:
Region region = Region.US_WEST_2; DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .build();
Untuk daftar lengkap penyedia kredensi dan rantai penyedia, lihat Semua Kelas Penerapan yang Dikenal dalam API referensi untuk AwsCredentialsProvider
catatan
Anda juga dapat menggunakan penyedia kredensi atau rantai penyedia Anda sendiri dengan mengimplementasikan antarmuka. AwsCredentialsProvider
Konfigurasikan penyedia kredensial
Sebagai contoh mengonfigurasi implementasi penyedia kredensial, Anda mungkin ingin SDK menggunakan utas latar belakang untuk mengambil (mengambil terlebih dahulu) kredensial sebelum kedaluwarsa. Dengan begitu Anda dapat menghindari panggilan pemblokiran yang mengambil kredensil baru.
Berikut ini menunjukkan contoh yang membuat thread StsAssumeRoleCredentialsProvider
yang menggunakan thread latar belakang untuk mengambil kredenal sebelumnya dengan menyetel asyncCredentialUpdateEnabled
properti ke true
pada builder:
S3Client s3Client = S3Client.builder() .credentialsProvider(StsAssumeRoleCredentialsProvider.builder() .asyncCredentialUpdateEnabled(true) .stsClient(StsClient.create()) .refreshRequest(r -> r .roleArn("arn:aws:iam::111122223333:role/S3-listbuckets-only-role") .roleSessionName("test-temp-session") .durationSeconds(900)) .build()) .build();
Saat Anda menjalankan operasi s3Client
untuk pertama kalinya, an AssumeRoleRequest
dikirim ke AWS Security Token Service (STS). STSmengembalikan kredensi sementara yang berlaku selama 15 menit (900 detik). s3Client
Instance menggunakan kredensil yang di-cache hingga waktunya untuk menyegarkannya sebelum 15 menit berlalu. Secara default, SDK upaya untuk mengambil kredensi baru untuk sesi baru antara 5 menit dan 1 menit sebelum waktu kedaluwarsa sesi saat ini. Jendela pre-fetch dapat dikonfigurasi dengan menggunakan properti and. prefetchTime
staleTime
Anda dapat mengonfigurasi penyedia kredensi berbasis sesi berikut dengan cara yang sama:
-
StsWebIdentityTokenFileCredentialsProvider
-
StsGetSessionTokenCredentialsProvider
-
StsGetFederationTokenCredentialsProvider
-
StsAssumeRoleWithWebIdentityCredentialsProvider
-
StsAssumeRoleWithSamlCredentialsProvider
-
StsAssumeRoleCredentialsProvider
-
DefaultCredentialsProvider
(saat mendelegasikan ke penyedia kredensional yang menggunakan sesi) -
ProcessCredentialsProvider
-
WebIdentityTokenFileCredentialsProvider
-
ContainerCredentialsProvider
-
InstanceProfileCredentialsProvider