

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

# Asumsikan penyedia kredensi peran
<a name="feature-assume-role-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).

Dengan asumsi peran melibatkan penggunaan seperangkat kredensil keamanan sementara untuk mengakses AWS sumber daya yang mungkin tidak dapat Anda akses sebaliknya. Kredensial sementara ini terdiri dari access key ID, secret access key, dan token keamanan. 

Untuk menyiapkan SDK atau alat untuk mengambil peran, Anda harus terlebih dahulu membuat atau mengidentifikasi *peran* tertentu yang akan diambil. [Peran IAM diidentifikasi secara unik oleh peran Amazon Resource Name (ARN).](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) Peran membangun hubungan kepercayaan dengan entitas lain. Entitas tepercaya yang menggunakan peran tersebut mungkin Layanan AWS, yang lain Akun AWS, penyedia identitas web atau OIDC, atau federasi SAFL. 

Setelah peran IAM diidentifikasi, jika Anda dipercaya oleh peran tersebut, Anda dapat mengonfigurasi SDK atau alat untuk menggunakan izin yang diberikan oleh peran tersebut. Untuk melakukan ini, gunakan pengaturan berikut. 

Untuk panduan tentang mulai menggunakan pengaturan ini, lihat [Dengan asumsi peran dengan AWS kredensi untuk mengautentikasi dan alat AWS SDKs](access-assume-role.md) di panduan ini.

## Asumsikan pengaturan penyedia kredensi peran
<a name="feature-assume-role-credentials-settings"></a>

Konfigurasikan fungsi ini dengan menggunakan yang berikut:

**`credential_source`- Pengaturan AWS `config` file bersama**  
Digunakan dalam instans Amazon EC2 atau penampung Amazon Elastic Container Service untuk menentukan tempat SDK atau alat dapat menemukan kredenal yang memiliki izin untuk mengambil peran yang Anda tentukan dengan parameter. `role_arn`  
**Nilai default:** Tidak ada  
**Nilai yang valid:**  
+ **Lingkungan** [- Menentukan bahwa SDK atau alat adalah untuk mengambil kredenal sumber dari variabel lingkungan dan. `AWS_ACCESS_KEY_ID``AWS_SECRET_ACCESS_KEY`](feature-static-credentials.md)
+ **Ec2 InstanceMetadata** — Menentukan bahwa SDK atau alat adalah menggunakan [peran IAM yang dilampirkan ke profil instans EC2 untuk mendapatkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) kredensil sumber.
+ **EcsContainer**— Menentukan bahwa SDK atau alat adalah menggunakan peran [IAM yang dilampirkan ke wadah Amazon ECS atau peran IAM yang dilampirkan ke wadah Amazon EKS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html) [untuk mendapatkan](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-service-with-iam.html) kredensi sumber.
Anda tidak dapat menentukan keduanya `credential_source` dan `source_profile` di profil yang sama.  
Contoh pengaturan ini dalam `config` file untuk menunjukkan bahwa kredensil harus bersumber dari Amazon EC2:  

```
credential_source = Ec2InstanceMetadata
role_arn = arn:aws:iam::{{123456789012}}:role/{{my-role-name}}
```

**`duration_seconds`- Pengaturan AWS `config` file bersama**  
Menentukan durasi maksimum sesi peran, dalam hitungan detik.  
Pengaturan ini hanya berlaku ketika profil menentukan untuk mengambil peran.   
**Nilai default:** 3600 detik (satu jam)  
**Nilai yang valid:** Nilai dapat berkisar dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum yang dikonfigurasi untuk peran (yang bisa maksimal 43200 detik, atau 12 jam). Untuk informasi selengkapnya, lihat [Melihat Pengaturan Durasi Sesi Maksimum untuk Peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) di *Panduan Pengguna IAM*.  
Contoh pengaturan ini dalam `config` file:  

```
duration_seconds = {{43200}}
```

**`external_id`- Pengaturan AWS `config` file bersama**  
Menentukan pengenal unik yang digunakan oleh pihak ketiga untuk mengambil peran dalam akun pelanggan mereka.  
Setelan ini hanya berlaku jika profil menetapkan untuk mengambil peran dan kebijakan kepercayaan untuk peran tersebut memerlukan nilai untuk`ExternalId`. Nilai memetakan ke `ExternalId` parameter yang diteruskan ke `AssumeRole` operasi saat profil menentukan peran.   
**Nilai default:** Tidak ada.   
**Nilai yang valid:** Lihat [Cara menggunakan ID Eksternal Saat Memberikan Akses ke AWS Sumber Daya Anda kepada Pihak Ketiga](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) dalam *Panduan Pengguna IAM*.  
Contoh pengaturan ini dalam `config` file:  

```
external_id = {{unique_value_assigned_by_3rd_party}}
```

**`mfa_serial`- Pengaturan AWS `config` file bersama**  
Menentukan identifikasi atau nomor seri perangkat otentikasi multi-faktor (MFA) yang harus digunakan pengguna saat mengambil peran.  
Diperlukan saat mengasumsikan peran di mana kebijakan kepercayaan untuk peran itu mencakup kondisi yang memerlukan otentikasi MFA. *Untuk informasi selengkapnya tentang MFA, lihat [Autentikasi AWS multi-faktor di IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html).*   
**Nilai default:** Tidak ada.   
**Nilai yang valid:** Nilai dapat berupa nomor seri untuk perangkat keras (seperti`GAHT12345678`), atau Nama Sumber Daya Amazon (ARN) untuk perangkat MFA virtual. Format ARN adalah: `arn:aws:iam::{{account-id}}:mfa/{{mfa-device-name}}`  
Contoh pengaturan ini dalam `config` file:  
Contoh ini mengasumsikan perangkat MFA virtual, yang `MyMFADevice` disebut, yang telah dibuat untuk akun dan diaktifkan untuk pengguna.  

```
mfa_serial = arn:aws:iam::{{123456789012}}:mfa/{{MyMFADevice}}
```

**`role_arn`- Pengaturan AWS `config` file bersama`AWS_ROLE_ARN`- variabel lingkungan`aws.roleArn`- Properti sistem JVM: hanya Java/Kotlin **  
Menentukan Nama Sumber Daya Amazon (ARN) peran IAM yang ingin Anda gunakan untuk melakukan operasi yang diminta menggunakan profil ini.  
**Nilai default:** Tidak ada.   
**Nilai yang valid:** Nilai harus ARN dari peran IAM, diformat sebagai berikut: `arn:aws:iam::{{account-id}}:role/{{role-name}}`  
 Selain itu, Anda juga harus menentukan **salah satu** pengaturan berikut:  
+ `source_profile`— Untuk mengidentifikasi profil lain yang akan digunakan untuk menemukan kredensil yang memiliki izin untuk mengambil peran dalam profil ini.
+ `credential_source`— Untuk menggunakan kredenal yang diidentifikasi oleh variabel lingkungan saat ini atau kredenal yang dilampirkan ke profil instans Amazon EC2, atau instans penampung Amazon ECS.
+ `web_identity_token_file`Untuk menggunakan penyedia identitas publik atau penyedia identitas yang kompatibel dengan OpenID Connect (OIDC) untuk pengguna yang telah diautentikasi dalam aplikasi seluler atau web.

**`role_session_name`- Pengaturan AWS `config` file bersama`AWS_ROLE_SESSION_NAME`- variabel lingkungan`aws.roleSessionName`- Properti sistem JVM: hanya Java/Kotlin **  
Menentukan nama untuk melampirkan ke sesi peran. Nama ini muncul di AWS CloudTrail log untuk entri yang terkait dengan sesi ini, yang dapat berguna saat mengaudit. Untuk detailnya, lihat [elemen CloudTrail UserIdentity](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html) di *AWS CloudTrail Panduan Pengguna*.  
**Nilai default:** Parameter opsional. Jika Anda tidak memberikan nilai ini, nama sesi akan dibuat secara otomatis jika profil mengambil peran.  
**Nilai yang valid:** Disediakan untuk `RoleSessionName` parameter saat AWS API AWS CLI atau memanggil `AssumeRole` operasi (atau operasi seperti `AssumeRoleWithWebIdentity` operasi) atas nama Anda. Nilai menjadi bagian dari pengguna peran yang diasumsikan Amazon Resource Name (ARN) yang dapat Anda kueri, dan muncul sebagai bagian dari entri CloudTrail log untuk operasi yang dipanggil oleh profil ini.  
 `arn:aws:sts::{{123456789012}}:assumed-role/{{my-role-name}}/{{my-role_session_name}}`.  
Contoh pengaturan ini dalam `config` file:  

```
role_session_name = {{my-role-session-name}}
```

**`source_profile`- Pengaturan AWS `config` file bersama**  
Menentukan profil lain yang kredensialnya digunakan untuk mengambil peran yang ditentukan oleh `role_arn` pengaturan di profil asli. Untuk memahami bagaimana profil digunakan dalam file bersama AWS `config` dan `credentials` file, lihat[Berbagi `config` dan `credentials` file](file-format.md).  
Jika Anda menentukan profil yang juga merupakan profil peran asumsi, setiap peran akan diasumsikan secara berurutan untuk menyelesaikan kredensialnya sepenuhnya. Rantai ini dihentikan saat SDK menemukan profil dengan kredensil. Role chaining membatasi sesi peran Anda AWS CLI atau AWS API hingga maksimal satu jam dan tidak dapat ditingkatkan. Untuk informasi selengkapnya, lihat [Istilah dan konsep peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) dalam *Panduan Pengguna IAM*.  
**Nilai default:** Tidak ada.  
**Nilai yang valid:** String teks yang terdiri dari nama profil yang ditentukan dalam `credentials` file `config` dan. Anda juga harus menentukan nilai untuk `role_arn` di profil saat ini.  
Anda tidak dapat menentukan keduanya `credential_source` dan `source_profile` di profil yang sama.  
Contoh pengaturan ini dalam file konfigurasi:  

```
[profile {{A}}]
source_profile = {{B}}
role_arn =  arn:aws:iam::{{123456789012}}:role/{{RoleA}}
role_session_name = {{ProfileARoleSession}}
                
[profile {{B}}]
credential_process = {{./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID}}
```
Pada contoh sebelumnya, `A` profil memberi tahu SDK atau alat untuk secara otomatis mencari kredensil untuk profil yang ditautkan. `B` Dalam hal ini, `B` profil menggunakan alat bantu kredenal yang disediakan oleh [Menggunakan Peran IAM Di Mana Saja untuk mengautentikasi dan AWS SDKs alat](access-rolesanywhere.md) untuk mendapatkan kredensil untuk SDK. AWS Kredensi sementara tersebut kemudian digunakan oleh kode Anda untuk mengakses AWS sumber daya. Peran yang ditentukan harus memiliki kebijakan izin IAM yang dilampirkan yang memungkinkan kode yang diminta berjalan, seperti perintah Layanan AWS, atau metode API. Setiap tindakan yang diambil oleh profil `A` memiliki nama sesi peran yang disertakan dalam CloudTrail log.   
Untuk contoh rantai peran kedua, konfigurasi berikut dapat digunakan jika Anda memiliki aplikasi di instans Amazon Elastic Compute Cloud, dan Anda ingin aplikasi tersebut mengambil peran lain.   

```
[profile {{A}}]
source_profile = {{B}}
role_arn =  arn:aws:iam::{{123456789012}}:role/{{RoleA}}
role_session_name = {{ProfileARoleSession}}
                
[profile {{B}}]
credential_source=Ec2InstanceMetadata
```
Profil `A` akan menggunakan kredensil dari instans Amazon EC2 untuk mengambil peran yang ditentukan dan akan memperbarui kredensialnya secara otomatis.  


**`web_identity_token_file`- Pengaturan AWS `config` file bersama`AWS_WEB_IDENTITY_TOKEN_FILE`- variabel lingkungan`aws.webIdentityTokenFile`- Properti sistem JVM: hanya Java/Kotlin **  
Menentukan path ke file yang berisi token akses dari [penyedia OAuth 2.0 yang didukung atau penyedia](https://wikipedia.org/wiki/List_of_OAuth_providers) identitas [OpenID Connect ID](https://openid.net/developers/certified/).  
Pengaturan ini memungkinkan otentikasi dengan menggunakan penyedia federasi identitas web, seperti [Google](https://developers.google.com/identity/protocols/OAuth2), [Facebook](https://developers.facebook.com/docs/facebook-login/overview), dan [Amazon](https://login.amazon.com/), di antara banyak lainnya. SDK atau alat pengembang memuat konten file ini dan meneruskannya sebagai `WebIdentityToken` argumen saat memanggil `AssumeRoleWithWebIdentity` operasi atas nama Anda.  
**Nilai default:** Tidak ada.   
**Nilai yang valid:** Nilai ini harus berupa jalur dan nama file. File harus berisi token akses OAuth 2.0 atau token OpenID Connect yang diberikan kepada Anda oleh penyedia identitas. Jalur relatif diperlakukan sebagai relatif terhadap direktori kerja proses.

## Support oleh AWS SDKs dan alat
<a name="assume-role-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\+\+](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | Parsial | credential\_sourcetidak didukung. duration\_secondstidak didukung. mfa\_serialtidak didukung. | 
| [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/) | Parsial | mfa\_serialtidak didukung. duration\_secondstidak didukung. | 
| [SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | Parsial | credential\_sourcetidak didukung. mfa\_serialtidak didukung. Properti sistem JVM tidak didukung.  | 
| [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/) | Parsial | credential\_sourcetidak didukung. | 
| [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 |  | 