Penyedia kredensi proses - AWS SDKsdan Tools

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

Penyedia kredensi proses

SDK menyediakan cara untuk memperluas rantai penyedia kredensyal untuk kasus penggunaan khusus.

IAM Roles Anywhere menyediakan cara untuk mendapatkan kredensyal sementara untuk beban kerja atau proses yang berjalan di luar. AWScredential_processUntuk mengonfigurasi penggunaan ini, lihatPeran IAM Di Mana Saja.

Awas

Berikut ini menjelaskan metode sumber kredensyal dari proses eksternal. Ini berpotensi berbahaya, jadi lanjutkan dengan hati-hati. Penyedia kredensi lainnya harus lebih disukai jika memungkinkan. Jika menggunakan opsi ini, Anda harus memastikan bahwa config file tersebut dikunci semaksimal mungkin menggunakan praktik terbaik keamanan untuk sistem operasi Anda. Konfirmasikan bahwa alat kredensi kustom Anda tidak menulis informasi rahasia apa punStdErr, karena SDK dan AWS CLI dapat menangkap dan mencatat informasi tersebut, berpotensi mengeksposnya kepada pengguna yang tidak sah.

Konfigurasikan fungsi ini dengan menggunakan yang berikut ini:

credential_process- Pengaturan AWS config file bersama

Menentukan perintah eksternal yang dijalankan SDK atau alat atas nama Anda untuk menghasilkan atau mengambil kredensyal otentikasi untuk digunakan. Pengaturan menentukan nama program/perintah 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 kredensyal yang dapat digunakan SDK atau alat untuk mengautentikasi Anda.

catatan

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

Menentukan jalur ke program kredensyal

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

  • Jalur dan nama file hanya dapat terdiri dari karakter-karakter ini: A-Z, a-z, 0-9, tanda hubung (-), garis bawah (_), periode (.), 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 tersebut dengan tanda kutip ganda (“”). Kelilingi hanya nama atau nilainya, bukan pasangannya.

  • 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.

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

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

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

    credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"

Output yang valid dari program kredensyal

SDK menjalankan perintah seperti yang ditentukan dalam profil dan kemudian membaca data dari aliran output 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" }
catatan

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

ExpirationKuncinya adalah stempel waktu berformat RFC3339. Jika Expiration kunci tidak ada dalam output alat, SDK mengasumsikan bahwa kredensialnya adalah kredensial jangka panjang yang tidak disegarkan. Jika tidak, kredensialnya dianggap sebagai kredensial sementara, dan secara otomatis disegarkan dengan menjalankan kembali perintah sebelum kredensialnya kedaluwarsa. credential_process

catatan

SDK tidak menyimpan kredensyal proses eksternal seperti halnya kredensyal peran asumsi. Jika caching diperlukan, Anda harus menerapkannya dalam proses eksternal.

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

Kompatibilitas dengan AWS SDK

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

SDK Didukung Catatan atau informasi lebih lanjut
AWS CLI v2 Ya
SDK for C++ Ya
SDK for Go V2 (1.x) Ya
SDK for Go 1.x (V1) Ya Untuk menggunakan pengaturan config file bersama, Anda harus mengaktifkan pemuatan dari file konfigurasi; lihat Sesi.
SDK for Java 2.x Ya
SDK for Java 1.x Ya
SDK untuk 3.x JavaScript Ya
SDK untuk 2.x JavaScript Ya
SDK para Kotlin Ya
SDK for .NET 3.x Ya
SDK for PHP 3.x Ya
SDK untuk Python (Boto3) Ya
SDK for Ruby 3.x Ya
SDK untuk Rust Ya
Alat untuk PowerShell Ya