View a markdown version of this page

Proseskan penyedia kredenSIAL - AWS SDK dan Alat

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Proseskan penyedia kredenSIAL

catatan

Untuk bantuan dalam memahami tata letak halaman pengaturan, atau dalam menafsirkan tabel AWS Dukungan oleh SDK dan alat berikut, lihatMemahami halaman pengaturan panduan ini.

SDK menyediakan cara untuk memperluas rantai penyedia kredensia untuk kasus penggunaan khusus. Penyedia ini dapat digunakan untuk menyediakan implementasi kustom, seperti mengambil kredenSIAL dari penyimpanan kredenSIAL lokal atau mengintegrasikan dengan penyedia identifikasi lokal Anda.

Misalnya, IAM Roles Anywhere digunakan credential_process untuk mendapatkan kredenSIAL sementara atas nama aplikasi Anda. credential_processUntuk mengkonfigurasi penggunaan ini, lihatMenggunakan Peran IAM Di Mana Saja untuk mengautentikasi dan AWS SDKs alat.

penting

Peng credential_process aturan menjalankan program eksternal pada sistem Anda untuk mengambil kredenSIAL. Pastikan Anda mempercayai program yang ditentukan dalam pengaturan ini, karena siapa pun yang memiliki akses menulis ke config file bersama Anda dapat mengubah perintah yang dijalankan. Lindungi config file Anda dengan izin sistem file yang sesuai untuk sistem operasi Anda.

catatan

Berikut ini menjelaskan metode sumber kredenSIAL dari proses eksternal dan mungkin digunakan jika Anda menjalankan perangkat lunak di luar AWS. Jika Anda membangun sumber daya AWS komputasi, gunakan penyedia kredensia lainnya. Jika menggunakan opsi ini, Anda harus memastikan bahwa file konfigurasi terkunci sebanyak mungkin menggunakan praktik terbaik keamanan untuk sistem operasi Anda. Konfirmasikan bahwa alat kredensi kustom Anda tidak menulis informasi rahasia apa punStdErr, karena SDK AWS CLI dapat menangkap dan mencatat informasi tersebut, berpotensi mengeksposnya kepada pengguna yang tidak sah.

Konfigurasikan fungsionalitas ini dengan menggunakan yang berikut:

credential_process- pengaturan AWS config file bersama

Menentukan perintah eksternal yang dijalankan SDK atau alat atas nama Anda untuk menghasilkan atau mengambil kredentif otentikasi untuk digunakan. Pengaturan menentukan nama a program/command yang akan dipanggil SDK. Ketika SDK memanggil proses, ia menunggu proses untuk menulis data JSON. stdout Penyedia kustom harus mengembalikan informasi dalam format tertentu. Informasi tersebut berisi kredenSIAL yang dapat digunakan SDK atau alat untuk mengotentikasi Anda.

catatan

Penyedia kredensi proses adalah bagian dariMemahami rantai penyedia kredensi. Namun, penyedia kredensi proses hanya diperiksa setelah beberapa penyedia lain yang ada dalam seri ini. Oleh karena itu, jika Anda ingin program Anda menggunakan kredenSIAL penyedia ini, Anda harus menghapus penyedia kredensia valid lainnya dari konfigurasi Anda atau menggunakan profil yang berbeda. Atau, alih-alih mengandalkan rantai penyedia kredensia untuk secara otomatis menemukan penyedia mana yang mengembalikan kredenSIAL yang valid, tentukan penggunaan penyedia kredensia proses dalam kode. Anda dapat menentukan sumber kredensi secara langsung saat membuat klien layanan.

Menentukan jalur ke program kredenSIAL

Nilai pengaturan adalah string yang berisi jalur ke program yang dijalankan SDK atau alat pengembangan atas nama Anda:

  • Nama jalur dan file hanya dapat terdiri dari karakter ini: A-Z, a-z, 0-9, tanda hubung (-), garis bawah (_), titik (.), garis miring maju (/), garis miring terbalik (\), dan spasi.

  • Jika jalur atau nama file berisi spasi, kelilingi jalur lengkap dan nama file dengan tanda kutip ganda (” “).

  • Jika nama parameter atau nilai parameter berisi spasi, kelilingi elemen itu dengan tanda kutip ganda (” “). Kelilingi hanya nama atau nilai, bukan pasangan.

  • Jangan sertakan variabel lingkungan apa pun dalam string. Misalnya, jangan sertakan $HOME atau%USERPROFILE%.

  • Jangan tentukan folder beranda sebagai~. * Anda harus menentukan jalur lengkap atau nama file dasar. Jika ada nama file dasar, sistem mencoba untuk menemukan program dalam folder yang ditentukan oleh variabel PATH lingkungan. Jalur bervariasi tergantung pada sistem operasi:

    Contoh berikut menunjukkan pengaturan credential_process dalam file bersama config aktif. Linux/macOS

    credential_process = "/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"

    Contoh berikut menunjukkan pengaturan credential_process dalam config file bersama di Windows.

    credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
  • Dapat ditentukan dalam profil khusus:

    [profile cred_process] credential_process = /Users/username/process.sh region = us-east-1

Output yang valid dari program kredenSIAL

SDK menjalankan perintah seperti yang ditentukan dalam profil dan kemudian membaca data dari aliran keluaran standar. Perintah yang Anda tentukan, apakah skrip atau program biner, harus menghasilkan output JSON STDOUT yang cocok dengan sintaks berikut.

{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "RFC3339 timestamp for when the credentials expire", "AccountId": "the AWS account ID associated with these credentials" }
catatan

Pada tulisan ini, Version kunci harus diatur ke1. Ini mungkin meningkat seiring waktu seiring berkembangnya struktur.

Kuncin Expiration ya adalah stempel waktu berformat RFC3339. Jika Expiration kunci tidak ada dalam output alat, SDK mengasumsikan bahwa kredensialnya adalah kredenSIAL jangka panjang yang tidak di-refresh. Jika tidak, kredenSIAL dianggap kredenSIAL sementara, dan secara otomatis diperbarui dengan menjalankan kembali credential_process perintah sebelum kredenSIAL kedaluwarsa.

catatan

SDK tidak menyimpan kreden tif proses eksternal seperti kredenSIAL ASUM-role. Jika caching diperlukan, Anda harus menerapkannya dalam proses eksternal.

catatan

AccountIdbersifat opsional sehingga kredenSIAL berfungsi tanpanya, tetapi menyediakannya memungkinkan resolusi titik akhir yang dioptimalkan untuk layanan yang mendukungnya. Ketika SDK mengetahui akun mana yang dimiliki kredensialnya, AWS layanan tertentu dapat menggunakan titik akhir khusus akun. Misalnya Amazon S3 dapat merutekan permintaan ke titik akhir dengan cakupan akun, bukan titik akhir global. TanpaAccountId, SDK harus bergantung pada mekanisme lain untuk menentukan akun, atau SDK tidak dapat menggunakan perutean titik akhir berbasis akun.

Proses eksternal dapat mengembalikan kode pengembalian bukan nol untuk menunjukkan bahwa kesalahan terjadi saat mengambil kredenSIAL.

Dukungan oleh AWS SDK dan alat

SDK berikut mendukung fitur dan pengaturan yang dijelaskan dalam topik ini. Setiap pengecualian sebagian dicatat. Setiap pengaturan properti sistem JVM didukung oleh AWS SDK untuk Java dan AWS SDK untuk Kotlin satu-satunya.