Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sumber kredensyal dengan proses eksternal di AWS CLI
Awas
Topik ini membahas sumber kredensyal dari proses eksternal. Ini bisa menjadi risiko keamanan jika perintah untuk menghasilkan kredensyal dapat diakses oleh proses atau pengguna yang tidak disetujui. Kami menyarankan Anda menggunakan alternatif yang didukung dan aman yang disediakan oleh AWS CLI dan AWS untuk mengurangi risiko mengorbankan kredensi Anda. Pastikan Anda mengamankan config
file dan file dan alat pendukung apa pun untuk mencegah pengungkapan.
Pastikan bahwa alat kredensyal khusus Anda tidak menulis informasi rahasia apa pun StdErr
karena SDKs dan AWS CLI dapat menangkap dan mencatat informasi tersebut, berpotensi mengeksposnya kepada pengguna yang tidak sah.
Jika Anda memiliki metode untuk menghasilkan atau mencari kredensyal yang tidak didukung secara langsung oleh AWS CLI, Anda dapat mengonfigurasi AWS CLI untuk menggunakannya dengan mengonfigurasi credential_process
pengaturan dalam file. config
Misalnya, Anda mungkin menyertakan entri yang mirip dengan yang berikut ini dalam config
file.
[profile developer] credential_process = /opt/bin/awscreds-custom --username helen
Sintaks
Untuk membuat string ini dengan cara yang kompatibel dengan sistem operasi apa pun, ikuti aturan ini:
-
Jika jalur atau nama file berisi spasi, kelilingi jalur lengkap dan nama file dengan tanda kutip ganda (“”). Jalur dan nama file hanya dapat terdiri dari karakter: A-Z a-z 0-9 - _. spasi
-
Jika nama parameter atau nilai parameter berisi spasi, kelilingi elemen tersebut dengan tanda kutip ganda (“”). Kelilingi hanya nama atau nilai, bukan pasangannya.
-
Jangan sertakan variabel lingkungan apa pun dalam string. Misalnya, Anda tidak dapat memasukkan
$HOME
atau%USERPROFILE%
. -
Jangan tentukan folder beranda sebagai
~
. Anda harus menentukan jalur lengkap.
Contoh untuk Windows
credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
Contoh untuk Linux atau macOS
credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
Output yang diharapkan dari program Credentials
AWS CLI Menjalankan perintah seperti yang ditentukan dalam profil dan kemudian membaca data dariSTDOUT
. Perintah yang Anda tentukan harus menghasilkan JSON output 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": "ISO8601 timestamp when the credentials expire
" }
catatan
Pada tulisan ini, Version
kuncinya harus diatur ke1
. Ini mungkin meningkat seiring waktu seiring berkembangnya struktur.
Expiration
Kuncinya adalah ISO86stempel waktu berformat 01Expiration
kunci tidak ada dalam output alat, CLI mengasumsikan bahwa kredensialnya adalah kredensyal jangka panjang yang tidak disegarkan. Jika tidak, kredensyal dianggap kredensyal sementara dan disegarkan secara otomatis dengan menjalankan kembali perintah sebelum kedaluwarsa. credential_process
catatan
AWS CLI Itu tidak menyimpan kredensyal proses eksternal seperti yang dilakukannya 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.