

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

# Penyedia kredensi proses
<a name="feature-process-credentials"></a>

**catatan**  
Untuk bantuan dalam memahami tata letak halaman pengaturan, atau dalam menafsirkan tabel **Support by AWS SDKs and tools** berikut, lihat[Memahami halaman pengaturan panduan ini](settings-reference.md#settingsPages).

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

 Misalnya, IAM Roles Anywhere digunakan `credential_process` untuk mendapatkan kredensyal sementara atas nama aplikasi Anda. `credential_process`Untuk mengonfigurasi penggunaan ini, lihat[Menggunakan Peran IAM Di Mana Saja untuk mengautentikasi dan AWS SDKs alat](access-rolesanywhere.md).

**catatan**  
Berikut ini menjelaskan metode sumber kredensional dari proses eksternal dan dapat digunakan jika Anda menjalankan perangkat lunak di luar. AWS Jika Anda membangun sumber daya AWS komputasi, gunakan penyedia kredensi lainnya. Jika menggunakan opsi ini, Anda harus memastikan bahwa file konfigurasi dikunci sebanyak mungkin menggunakan praktik terbaik keamanan untuk sistem operasi Anda. Konfirmasikan bahwa alat kredensi 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.

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 kredensi otentikasi untuk digunakan. Pengaturan menentukan nama 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 kredensyal yang dapat digunakan SDK atau alat untuk mengautentikasi Anda. 

**catatan**  
Penyedia kredensi proses adalah bagian dari. [Memahami rantai penyedia kredensi](standardized-credentials.md#credentialProviderChain) 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
<a name="feature-process-credentials-detail-path"></a>

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 (\$1), periode (.), garis miring maju (/), garis miring terbalik (\$1), 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`~`. \$1 Anda harus menentukan jalur lengkap atau nama file dasar. Jika ada nama file dasar, sistem mencoba menemukan program dalam folder yang ditentukan oleh variabel `PATH` lingkungan. Jalur bervariasi tergantung pada sistem operasi:

  Contoh berikut menunjukkan pengaturan credential\$1process dalam file bersama `config` di Linux/macOS.

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

  Contoh berikut menunjukkan pengaturan credential\$1process dalam file bersama `config` pada 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 kredensyal
<a name="feature-process-credentials-output"></a>

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 ke`1`. Ini mungkin meningkat seiring waktu seiring berkembangnya struktur.

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

**catatan**  
SDK ***tidak*** menyimpan kredensi proses eksternal seperti yang dilakukannya kredensial-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.

## Support oleh AWS SDKs dan alat
<a name="feature-process-credentials-sdk-compat"></a>

Berikut ini SDKs 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 satu-satunya. AWS SDK untuk Kotlin 


| SDK | Didukung | Catatan atau informasi lebih lanjut | 
| --- | --- | --- | 
| [AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/) | Ya |  | 
| [SDK for C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | Ya |  | 
| [SDK for Go V2 (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | Ya |  | 
| [SDK for Go 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | Ya | Untuk menggunakan pengaturan config file bersama, Anda harus mengaktifkan pemuatan dari file konfigurasi; lihat [Sesi](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/). | 
| [SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | Ya |  | 
| [SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | Ya |  | 
| [SDK untuk 3.x JavaScript ](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | Ya |  | 
| [SDK untuk 2.x JavaScript ](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | Ya |  | 
| [SDK para Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | Ya |  | 
| [SDK for .NET 4.x](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | Ya |  | 
| [SDK for .NET 3.x](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | Ya |  | 
| [SDK for PHP 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | Ya |  | 
| [SDK untuk Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | Ya |  | 
| [SDK for Ruby 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | Ya |  | 
| [SDK untuk Rust](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | Ya |  | 
| [SDK para Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | Ya |  | 
| [Alat untuk PowerShell V5](https://docs.aws.amazon.com/powershell/latest/userguide/) | Ya |  | 
| [Alat untuk PowerShell V4](https://docs.aws.amazon.com/powershell/v4/userguide/) | Ya |  | 