Sumber kredensyal dengan proses eksternal di AWS CLI - AWS Command Line Interface

Dokumentasi ini AWS CLI hanya untuk Versi 1. Untuk dokumentasi yang terkait dengan Versi 2 AWS CLI, lihat Panduan Pengguna Versi 2.

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.

ExpirationKuncinya adalah ISO86stempel waktu berformat 01. Jika Expiration 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.