Gunakan penyedia kredensial tertentu - AWS SDK for Java 2.x

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 EnvironmentVariableCredentialsProviderobjek ke credentialsProvider 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). s3ClientInstance 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