

**Dokumentasi ini AWS CLI hanya untuk Versi 1.**

Kami mengumumkan yang akan datang end-of-support untuk AWS CLI versi 1. Kami menyarankan Anda bermigrasi ke AWS CLI versi 2. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, lihat [pengumuman](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/). Untuk dokumentasi yang terkait dengan Versi 2 AWS CLI, lihat [Panduan Pengguna Versi 2](https://docs.aws.amazon.com/cli/latest/userguide/).

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

# Otentikasi dan akses kredensional untuk AWS CLI
<a name="cli-chap-authentication"></a>

Anda harus menetapkan bagaimana AWS CLI otentikasi dengan AWS ketika Anda mengembangkan dengan AWS layanan. Untuk mengonfigurasi kredensi untuk akses terprogram untuk AWS CLI, pilih salah satu opsi berikut. Pilihannya adalah dalam urutan rekomendasi.


****  

| Jenis autentikasi | Tujuan | Petunjuk | 
| --- | --- | --- | 
| Kredensi jangka pendek pengguna IAM | Gunakan kredensi jangka pendek pengguna IAM, yang lebih aman daripada kredensi jangka panjang. Jika kredensi Anda dikompromikan, ada waktu terbatas mereka dapat digunakan sebelum kedaluwarsa. | [Mengautentikasi dengan kredensi jangka pendek untuk AWS CLI](cli-authentication-short-term.md) | 
|  Amazon EC2.  | Gunakan metadata instans Amazon EC2 untuk menanyakan kredenal sementara menggunakan peran yang ditetapkan ke instans Amazon EC2. | [Menggunakan metadata instans Amazon EC2 sebagai kredensional di AWS CLI](cli-configure-metadata.md) | 
| Asumsikan peran untuk izin | Pasangkan metode kredensi lain dan ambil peran untuk akses sementara ke pengguna Layanan AWS Anda mungkin tidak dapat mengaksesnya. | [Menggunakan peran IAM dalam AWS CLI](cli-configure-role.md) | 
| Kredensi jangka panjang pengguna IAM | (Tidak disarankan) Gunakan kredenal jangka panjang, yang tidak memiliki kedaluwarsa. | [Mengautentikasi menggunakan kredensi pengguna IAM untuk AWS CLI](cli-authentication-user.md) | 
| Penyimpanan eksternal pengguna tenaga kerja IAM  | (Tidak disarankan) Pasangkan metode kredensi lain tetapi simpan nilai kredensi di lokasi di luar. AWS CLI Metode ini hanya seaman lokasi eksternal kredensialnya disimpan. | [Sumber kredensyal dengan proses eksternal di AWS CLI](cli-configure-sourcing-external.md) | 

## Konfigurasi dan prioritas kredenal
<a name="cli-chap-authentication-precedence"></a>

Kredensi dan pengaturan konfigurasi terletak di beberapa tempat, seperti variabel sistem atau lingkungan pengguna, file AWS konfigurasi lokal, atau secara eksplisit dideklarasikan pada baris perintah sebagai parameter. Lokasi tertentu lebih diutamakan daripada yang lain. Pengaturan AWS CLI kredensional dan konfigurasi diutamakan dalam urutan berikut:

1. **[Opsi baris perintah](cli-configure-options.md)** — Mengganti pengaturan di lokasi lain, seperti, `--region``--output`, dan `--profile` parameter.

1. **[Variabel lingkungan](cli-configure-envvars.md)** — Anda dapat menyimpan nilai dalam variabel lingkungan sistem Anda.

1. **[Asumsikan peran](cli-configure-role.md)** - Asumsikan izin peran IAM melalui konfigurasi atau perintah. [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html)

1. **[Asumsikan peran dengan identitas web](cli-configure-role.md)** - Asumsikan izin peran IAM menggunakan identitas web melalui konfigurasi atau perintah. [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html)

1. **[File kredensial](cli-configure-files.md)** — `config` File `credentials` dan diperbarui saat Anda menjalankan perintah. `aws configure` `credentials`File ini terletak `~/.aws/credentials` di Linux atau macOS, atau `C:\Users\USERNAME\.aws\credentials` di Windows.

1. **[Proses kustom](cli-configure-sourcing-external.md)** - Dapatkan kredensional Anda dari sumber eksternal.

1. **[File konfigurasi](cli-configure-files.md)** — `config` File `credentials` dan diperbarui saat Anda menjalankan perintah`aws configure`. `config`File ini terletak `~/.aws/config` di Linux atau macOS, atau `C:\Users\USERNAME\.aws\config` di Windows.

1. **[Kredensi kontainer](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)** - Anda dapat mengaitkan peran IAM dengan masing-masing definisi tugas Amazon Elastic Container Service (Amazon ECS). Kredensi sementara untuk peran itu kemudian tersedia untuk wadah tugas itu. Untuk informasi lebih lanjut, lihat [Peran IAM untuk Tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam *Panduan Developer Amazon Elastic Container Service*.

1. **[Kredensional profil instans Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)** — Anda dapat mengaitkan peran IAM dengan setiap instans Amazon Elastic Compute Cloud (Amazon EC2). Kredensi sementara untuk peran itu kemudian tersedia untuk kode yang berjalan dalam instance. Kredensialnya dikirimkan melalui layanan metadata Amazon EC2. *Untuk informasi selengkapnya, lihat [Peran IAM untuk Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) EC2 di Panduan Pengguna *Amazon EC2 [dan Menggunakan Profil Instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) di Panduan Pengguna* IAM.*

## Topik tambahan di bagian ini
<a name="cli-chap-authentication-topics"></a>
+ [Mengautentikasi dengan kredensi jangka pendek untuk AWS CLI](cli-authentication-short-term.md)
+ [Menggunakan peran IAM dalam AWS CLI](cli-configure-role.md)
+ [Mengautentikasi menggunakan kredensi pengguna IAM untuk AWS CLI](cli-authentication-user.md)
+ [Menggunakan metadata instans Amazon EC2 sebagai kredensional di AWS CLI](cli-configure-metadata.md)
+ [Sumber kredensyal dengan proses eksternal di AWS CLI](cli-configure-sourcing-external.md)

# Mengautentikasi dengan kredensi jangka pendek untuk AWS CLI
<a name="cli-authentication-short-term"></a>

Sebaiknya konfigurasi SDK atau alat Anda untuk menggunakan [autentikasi IAM Identity Center](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) dengan opsi durasi sesi yang diperpanjang. Namun, Anda dapat menyalin dan menggunakan kredensi sementara yang tersedia di portal AWS akses. Kredensi baru perlu disalin ketika ini kedaluwarsa. Anda dapat menggunakan kredensi sementara di profil atau menggunakannya sebagai nilai untuk properti sistem dan variabel lingkungan.

1. [Masuk ke portal AWS akses](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html).

1. Ikuti [petunjuk ini](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) untuk menyalin kredensi peran IAM dari portal akses. AWS 

   1. Untuk langkah 2 dalam petunjuk yang ditautkan, pilih AWS akun dan nama peran IAM yang memberikan akses untuk kebutuhan pengembangan Anda. Peran ini biasanya memiliki nama seperti **PowerUserAccess**atau **Pengembang**. 

   1. Untuk langkah 4, pilih opsi **Tambahkan profil ke file AWS kredensial Anda** dan salin isinya. 

1. Buat atau buka `credentials` file bersama. File ini ada `~/.aws/credentials` di sistem Linux dan macOS, dan `%USERPROFILE%\.aws\credentials` di Windows. Untuk informasi selengkapnya, lihat [Konfigurasi dan pengaturan file kredensi di AWS CLI](cli-configure-files.md). 

1. Tambahkan teks berikut ke `credentials` file bersama. Ganti nilai sampel dengan kredenal yang Anda salin. 

   ```
   [default] 
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE 
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. Tambahkan wilayah dan format default pilihan Anda ke `config` file bersama. 

   ```
   [default]
   region=us-west-2
   output=json
   
   [profile user1]
   region=us-east-1
   output=text
   ```

Saat SDK membuat klien layanan, SDK akan mengakses kredensi sementara ini dan menggunakannya untuk setiap permintaan. Pengaturan untuk peran IAM yang dipilih pada langkah 2a menentukan [berapa lama kredensi sementara valid](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html). Durasi maksimum adalah dua belas jam.

Ulangi langkah-langkah ini setiap kali kredensialmu kedaluwarsa.

# Menggunakan peran IAM dalam AWS CLI
<a name="cli-configure-role"></a>

[Peran AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) adalah alat otorisasi yang memungkinkan pengguna mendapatkan izin tambahan (atau berbeda), atau mendapatkan izin untuk melakukan tindakan di akun yang berbeda. AWS 

**Topics**
+ [Prasyarat](#cli-role-prereqs)
+ [Ikhtisar penggunaan peran IAM](#cli-role-overview)
+ [Mengkonfigurasi dan menggunakan peran](#cli-role-prepare)
+ [Menggunakan otentikasi multi-faktor](#cli-configure-role-mfa)
+ [Peran lintas akun dan ID eksternal](#cli-configure-role-xaccount)
+ [Menentukan nama sesi peran untuk audit yang lebih mudah](#cli-configure-role-session-name)
+ [Asumsikan peran dengan identitas web](#cli-configure-role-oidc)
+ [Membersihkan kredenal yang di-cache](#cli-configure-role-cache)

## Prasyarat
<a name="cli-role-prereqs"></a>

Untuk menjalankan `iam` perintah, Anda perlu menginstal dan mengkonfigurasi AWS CLI. Ini termasuk menyiapkan profil yang dikonfigurasi, karena dengan asumsi peran dipasangkan dengan metode kredensi lain. Untuk informasi selengkapnya, lihat [Menginstal, memperbarui, dan menghapus instalasi AWS CLI](cli-chap-install.md). 

## Ikhtisar penggunaan peran IAM
<a name="cli-role-overview"></a>

Anda dapat mengonfigurasi AWS Command Line Interface (AWS CLI) untuk menggunakan peran IAM dengan menentukan profil untuk peran dalam file. `~/.aws/config` 

Contoh berikut menunjukkan profil peran bernama`marketingadmin`. Jika Anda menjalankan perintah dengan `--profile marketingadmin` (atau menentukannya dengan [variabel AWS\$1PROFILE lingkungan](cli-configure-envvars.md)), akan AWS CLI menggunakan kredensional yang ditentukan dalam profil terpisah `user1` untuk mengambil peran dengan Amazon Resource Name (ARN). `arn:aws:iam::123456789012:role/marketingadminrole` Anda dapat menjalankan operasi apa pun yang diizinkan oleh izin yang ditetapkan untuk peran tersebut.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1
```

Anda kemudian dapat menentukan `source_profile` yang menunjuk ke profil bernama terpisah yang berisi kredenal pengguna dengan izin untuk menggunakan peran tersebut. Pada contoh sebelumnya, `marketingadmin` profil menggunakan kredensional di profil. `user1` Ketika Anda menentukan bahwa AWS CLI perintah adalah untuk menggunakan profil`marketingadmin`, AWS CLI secara otomatis mencari kredensional untuk `user1` profil tertaut dan menggunakannya untuk meminta kredensi sementara untuk peran IAM yang ditentukan. CLI menggunakan AssumeRole operasi [sts:](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) di latar belakang untuk mencapai ini. Kredensi sementara tersebut kemudian digunakan untuk menjalankan perintah yang diminta AWS CLI . Peran yang ditentukan harus telah melampirkan kebijakan izin IAM yang memungkinkan AWS CLI perintah yang diminta untuk dijalankan.

Untuk menjalankan AWS CLI perintah dari dalam instans Amazon Elastic Compute Cloud (Amazon EC2) atau container Amazon Elastic Container Service (Amazon ECS), Anda dapat menggunakan peran IAM yang dilampirkan ke profil instance atau container. Jika Anda menentukan tidak ada profil atau tidak menyetel variabel lingkungan, peran itu digunakan secara langsung. Hal ini memungkinkan Anda untuk menghindari menyimpan kunci akses berumur panjang pada instans Anda. Anda juga dapat menggunakan peran instance atau kontainer tersebut hanya untuk mendapatkan kredensional untuk peran lain. Untuk melakukan ini, Anda menggunakan `credential_source` (bukan`source_profile`) untuk menentukan cara menemukan kredensialnya. `credential_source`Atribut mendukung nilai-nilai berikut:
+ `Environment`— Mengambil kredensi sumber dari variabel lingkungan.
+ `Ec2InstanceMetadata`— Menggunakan peran IAM yang dilampirkan ke profil instans Amazon EC2.
+ `EcsContainer`— Menggunakan peran IAM yang dilampirkan ke wadah Amazon ECS.

Contoh berikut menunjukkan `marketingadminrole` peran yang sama yang digunakan dengan mereferensikan profil instans Amazon EC2.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
```

Ketika Anda memanggil peran, Anda memiliki opsi tambahan yang dapat Anda perlukan, seperti penggunaan otentikasi multi-faktor dan ID Eksternal (digunakan oleh perusahaan pihak ketiga untuk mengakses sumber daya klien mereka). Anda juga dapat menentukan nama sesi peran unik yang dapat lebih mudah diaudit di AWS CloudTrail log.

## Mengkonfigurasi dan menggunakan peran
<a name="cli-role-prepare"></a>

Saat Anda menjalankan perintah menggunakan profil yang menentukan peran IAM, akan AWS CLI menggunakan kredenal profil sumber untuk memanggil AWS Security Token Service (AWS STS) dan meminta kredenal sementara untuk peran yang ditentukan. Pengguna di profil sumber harus memiliki izin `sts:assume-role` untuk memanggil peran dalam profil yang ditentukan. Peran harus memiliki hubungan kepercayaan yang memungkinkan pengguna di profil sumber untuk menggunakan peran tersebut. Proses pengambilan dan kemudian menggunakan kredensi sementara untuk suatu peran sering disebut sebagai *asumsi* peran.

*Anda dapat membuat peran di IAM dengan izin yang ingin diasumsikan pengguna dengan mengikuti prosedur di bawah [Membuat Peran untuk Mendelegasikan Izin ke pengguna IAM di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).AWS Identity and Access Management * Jika peran dan pengguna profil sumber berada di akun yang sama, Anda dapat memasukkan ID akun Anda sendiri saat mengonfigurasi hubungan kepercayaan peran.

Setelah membuat peran, ubah hubungan kepercayaan untuk memungkinkan pengguna untuk menganggapnya. 

Contoh berikut menunjukkan kebijakan kepercayaan yang dapat Anda lampirkan ke peran. Kebijakan ini memungkinkan peran diasumsikan oleh setiap pengguna di akun 123456789012, ***jika*** administrator akun tersebut secara eksplisit memberikan izin kepada pengguna. `sts:AssumeRole`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Kebijakan kepercayaan sebenarnya tidak memberikan izin. Administrator akun harus mendelegasikan izin untuk mengambil peran tersebut kepada pengguna individu dengan melampirkan kebijakan dengan izin yang sesuai. Contoh berikut menunjukkan kebijakan yang dapat Anda lampirkan ke pengguna yang memungkinkan pengguna untuk mengambil `marketingadminrole` peran saja. Untuk informasi selengkapnya tentang pemberian akses pengguna untuk mengambil peran, lihat [Memberikan Izin Pengguna untuk Beralih Peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) di Panduan Pengguna *IAM*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::123456789012:role/marketingadminrole"
    }
  ]
}
```

------

Pengguna tidak perlu memiliki izin tambahan untuk menjalankan AWS CLI perintah menggunakan profil peran. Sebaliknya, izin untuk menjalankan perintah berasal dari yang dilampirkan pada *peran*. Anda melampirkan kebijakan izin ke peran untuk menentukan tindakan mana yang dapat dilakukan terhadap AWS sumber daya yang mana. *Untuk informasi selengkapnya tentang melampirkan izin ke peran (yang bekerja secara identik dengan pengguna), lihat [Mengubah Izin untuk pengguna IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html).*

Sekarang setelah Anda memiliki profil peran, izin peran, hubungan kepercayaan peran, dan izin pengguna yang dikonfigurasi dengan benar, Anda dapat menggunakan peran di baris perintah dengan menjalankan opsi. `--profile` Misalnya, berikut ini memanggil `ls` perintah Amazon S3 menggunakan izin yang dilampirkan pada `marketingadmin` peran seperti yang ditentukan oleh contoh di awal topik ini.

```
$ aws s3 ls --profile marketingadmin
```

Untuk menggunakan peran untuk beberapa panggilan, Anda dapat mengatur variabel `AWS_PROFILE` lingkungan untuk sesi saat ini dari baris perintah. Sementara variabel lingkungan didefinisikan, Anda tidak perlu menentukan `--profile` opsi pada setiap perintah. 

**Linux atau macOS**

```
$ export AWS_PROFILE=marketingadmin
```

**Windows**

```
C:\> setx AWS_PROFILE marketingadmin
```

*Untuk informasi selengkapnya tentang mengonfigurasi pengguna dan peran, lihat [Identitas IAM (pengguna, grup pengguna, dan peran) dan peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-roles.html) dalam Panduan Pengguna IAM.*

## Menggunakan otentikasi multi-faktor
<a name="cli-configure-role-mfa"></a>

Untuk keamanan tambahan, Anda dapat meminta pengguna menyediakan kunci satu kali yang dihasilkan dari perangkat multi-faktor otentikasi (MFA), perangkat U2F, atau aplikasi seluler saat mereka mencoba melakukan panggilan menggunakan profil peran.

Pertama, Anda dapat memilih untuk memodifikasi hubungan kepercayaan pada peran IAM untuk meminta MFA. Ini mencegah siapa pun menggunakan peran tanpa terlebih dahulu mengautentikasi dengan menggunakan MFA. Sebagai contoh, lihat `Condition` baris dalam contoh berikut. Kebijakan ini memungkinkan pengguna yang diberi nama `anika` untuk mengambil peran yang dilampirkan kebijakan, tetapi hanya jika mereka mengautentikasi dengan menggunakan MFA. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" },
      "Action": "sts:AssumeRole",
      "Condition": { "Bool": { "aws:multifactorAuthPresent": true } }
    }
  ]
}
```

------

Selanjutnya, tambahkan baris ke profil peran yang menentukan ARN perangkat MFA pengguna. Entri `config` file contoh berikut menunjukkan dua profil peran yang keduanya menggunakan kunci akses bagi pengguna `anika` untuk meminta kredensi sementara untuk peran tersebut. `cli-role` Pengguna `anika` memiliki izin untuk mengambil peran, yang diberikan oleh kebijakan kepercayaan peran.

```
[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user

[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user

[profile cli-user]
region = us-west-2
output = json
```

`mfa_serial`Pengaturan dapat mengambil ARN, seperti yang ditunjukkan, atau nomor seri token MFA perangkat keras.

Profil pertama,`role-without-mfa`, tidak memerlukan MFA. Namun, karena contoh kebijakan kepercayaan sebelumnya yang dilampirkan pada peran memerlukan MFA, setiap upaya untuk menjalankan perintah dengan profil ini gagal.

```
$ aws iam list-users --profile role-without-mfa

An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied
```

Entri profil kedua,`role-with-mfa`, mengidentifikasi perangkat MFA untuk digunakan. Ketika pengguna mencoba menjalankan AWS CLI perintah dengan profil ini, pengguna AWS CLI meminta pengguna untuk memasukkan kata sandi satu kali (OTP) yang disediakan perangkat MFA. Jika otentikasi MFA berhasil, perintah melakukan operasi yang diminta. OTP tidak ditampilkan di layar.

```
$ aws iam list-users --profile role-with-mfa
Enter MFA code for arn:aws:iam::123456789012:mfa/cli-user:
{
    "Users": [
        {
            ...
```

## Peran lintas akun dan ID eksternal
<a name="cli-configure-role-xaccount"></a>

Anda dapat mengaktifkan pengguna untuk menggunakan peran yang dimiliki oleh akun yang berbeda dengan mengonfigurasi peran sebagai peran lintas akun. Selama pembuatan peran, setel tipe peran ke ** AWS Akun lain**, seperti yang dijelaskan dalam [Membuat Peran untuk Mendelegasikan Izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html). Secara opsional, pilih **Memerlukan MFA**. **Memerlukan MFA** mengkonfigurasi kondisi yang sesuai dalam hubungan kepercayaan, seperti yang dijelaskan dalam. [Menggunakan otentikasi multi-faktor](#cli-configure-role-mfa)

Jika Anda menggunakan [ID eksternal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) untuk memberikan kontrol tambahan atas siapa yang dapat menggunakan peran di seluruh akun, Anda juga harus menambahkan `external_id` parameter ke profil peran. Anda biasanya menggunakan ini hanya ketika akun lain dikendalikan oleh seseorang di luar perusahaan atau organisasi Anda.

```
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456
```

## Menentukan nama sesi peran untuk audit yang lebih mudah
<a name="cli-configure-role-session-name"></a>

Ketika banyak individu berbagi peran, audit menjadi lebih dari sebuah tantangan. Anda ingin mengaitkan setiap operasi yang dipanggil dengan individu yang memanggil tindakan. Namun, ketika individu menggunakan peran, asumsi peran oleh individu adalah tindakan terpisah dari pemanggilan operasi, dan Anda harus mengkorelasikan keduanya secara manual.

Anda dapat menyederhanakan ini dengan menentukan nama sesi peran unik saat pengguna mengambil peran. Anda melakukan ini dengan menambahkan `role_session_name` parameter ke setiap profil bernama dalam `config` file yang menentukan peran. `role_session_name`Nilai diteruskan ke `AssumeRole` operasi dan menjadi bagian dari ARN untuk sesi peran. Ini juga termasuk dalam AWS CloudTrail log untuk semua operasi yang dicatat.

Misalnya, Anda dapat membuat profil berbasis peran sebagai berikut. 

```
[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia
```

Hal ini mengakibatkan sesi peran memiliki ARN berikut.

```
arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia
```

Selain itu, semua AWS CloudTrail log menyertakan nama sesi peran dalam informasi yang diambil untuk setiap operasi.

## Asumsikan peran dengan identitas web
<a name="cli-configure-role-oidc"></a>

Anda dapat mengonfigurasi profil untuk menunjukkan bahwa AWS CLI harus mengambil peran menggunakan [federasi identitas web dan Open ID Connect (OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html)). Saat Anda menentukan ini di profil, secara AWS CLI otomatis membuat AWS STS `AssumeRoleWithWebIdentity` panggilan yang sesuai untuk Anda.

**catatan**  
Saat Anda menentukan profil yang menggunakan peran IAM, akan AWS CLI membuat panggilan yang sesuai untuk mengambil kredensi sementara. Kredensi ini disimpan di. `~/.aws/cli/cache` AWS CLI Perintah selanjutnya yang menentukan profil yang sama menggunakan kredenal sementara yang di-cache hingga kedaluwarsa. Pada saat itu, secara AWS CLI otomatis menyegarkan kredensialnya.

Untuk mengambil dan menggunakan kredenal sementara menggunakan federasi identitas web, Anda dapat menentukan nilai konfigurasi berikut di profil bersama.

[role\$1arn](#cli-configure-role)  
Menentukan ARN dari peran yang akan diasumsikan.

web\$1identity\$1token\$1file  
Menentukan path ke file yang berisi token akses OAuth 2.0 atau token OpenID Connect ID yang disediakan oleh penyedia identitas. AWS CLI Memuat file ini dan meneruskan isinya sebagai `WebIdentityToken` argumen `AssumeRoleWithWebIdentity` operasi.

[role\$1session\$1name](#cli-configure-role-session-name)  
Menentukan nama opsional diterapkan untuk sesi assume-role ini.

Berikut ini adalah contoh dari jumlah minimal konfigurasi yang diperlukan untuk mengkonfigurasi peran asumsi dengan profil identitas web.

```
# In ~/.aws/config

[profile web-identity]
role_arn=arn:aws:iam:123456789012:role/RoleNameToAssume
web_identity_token_file=/path/to/a/token
```

Anda juga dapat menyediakan konfigurasi ini dengan menggunakan [variabel lingkungan](cli-configure-envvars.md).

AWS\$1ROLE\$1ARN  
ARN dari peran yang harus diasumsikan.

AWS\$1WEB\$1IDENTITAY\$1TOKEN\$1FILE  
Jalur ke file token identitas web.

AWS\$1ROLE\$1SESSION\$1NAMA  
Nama yang diterapkan pada sesi peran asumsi ini.

**catatan**  
Variabel lingkungan ini saat ini hanya berlaku untuk peran asumsi dengan penyedia identitas web. Mereka tidak berlaku untuk konfigurasi penyedia peran asumsi umum.

## Membersihkan kredenal yang di-cache
<a name="cli-configure-role-cache"></a>

Saat Anda menggunakan peran, kredensi sementara akan AWS CLI di-cache secara lokal hingga mereka kedaluwarsa. Lain kali Anda mencoba menggunakannya, AWS CLI upaya untuk memperbaruinya atas nama Anda. 

Jika kredensi sementara peran Anda [dicabut](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html), kredensialnya tidak diperbarui secara otomatis, dan upaya untuk menggunakannya gagal. Namun, Anda dapat menghapus cache untuk memaksa AWS CLI untuk mengambil kredenal baru.

**Linux atau macOS**

```
$ rm -r ~/.aws/cli/cache
```

**Windows**

```
C:\> del /s /q %UserProfile%\.aws\cli\cache
```

# Mengautentikasi menggunakan kredensi pengguna IAM untuk AWS CLI
<a name="cli-authentication-user"></a>

**Awas**  
Untuk menghindari risiko keamanan, jangan gunakan pengguna IAM untuk otentikasi saat mengembangkan perangkat lunak yang dibuat khusus atau bekerja dengan data nyata. Sebaliknya, gunakan federasi dengan penyedia identitas seperti [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

Bagian ini menjelaskan cara mengkonfigurasi pengaturan dasar dengan pengguna IAM. Ini termasuk kredensi keamanan Anda menggunakan file `config` dan `credentials` file. 

**Contents**
+ [Langkah 1: Buat pengguna IAM Anda](#cli-authentication-user-create)
+ [Langkah 2: Dapatkan kunci akses Anda](#cli-authentication-user-get)
+ [Langkah 3: Konfigurasikan AWS CLI](#cli-authentication-user-configure.title)
  + [Menggunakan `aws configure`](#cli-authentication-user-configure-wizard)

## Langkah 1: Buat pengguna IAM Anda
<a name="cli-authentication-user-create"></a>

Buat pengguna IAM Anda dengan mengikuti prosedur [Membuat pengguna IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) di Panduan Pengguna *IAM*. 
+ Untuk **opsi Izin**, pilih **Lampirkan kebijakan secara langsung** untuk mengetahui cara Anda ingin menetapkan izin kepada pengguna ini.
+ Sebagian besar tutorial SDK “Memulai” menggunakan layanan Amazon S3 sebagai contoh. Untuk menyediakan aplikasi Anda dengan akses penuh ke Amazon S3, pilih `AmazonS3FullAccess` kebijakan untuk melampirkan ke pengguna ini.

## Langkah 2: Dapatkan kunci akses Anda
<a name="cli-authentication-user-get"></a>

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi konsol IAM, pilih **Pengguna** dan kemudian pilih pengguna **`User name`**yang Anda buat sebelumnya. 

1. Pada halaman pengguna, pilih halaman **Security credentials.** Kemudian, di bawah **tombol Access**, pilih **Create Access Key**.

1.  Untuk **Buat tombol akses Langkah 1**, pilih **Antarmuka Baris Perintah (CLI)**.

1. Untuk **Buat tombol akses Langkah 2**, masukkan tag opsional dan pilih **Berikutnya**. 

1. Untuk **Buat kunci akses Langkah 3**, pilih **Unduh file.csv** untuk menyimpan `.csv` file dengan kunci akses pengguna IAM dan kunci akses rahasia Anda. Anda memerlukan informasi ini untuk nanti.

1. Pilih Selesai.

## Langkah 3: Konfigurasikan AWS CLI
<a name="cli-authentication-user-configure.title"></a>

Untuk penggunaan umum, AWS CLI kebutuhan potongan-potongan informasi berikut:
+ ID kunci akses
+ Kunci akses rahasia
+ AWS Wilayah
+ Format output

 AWS CLI Menyimpan informasi ini dalam *profil* (kumpulan pengaturan) yang disebutkan `default` dalam `credentials` file. Secara default, informasi dalam profil ini digunakan saat Anda menjalankan AWS CLI perintah yang tidak secara eksplisit menentukan profil yang akan digunakan. Untuk informasi lebih lanjut tentang file `credentials`, lihat [Konfigurasi dan pengaturan file kredensi di AWS CLI](cli-configure-files.md).

Untuk mengkonfigurasi AWS CLI, gunakan salah satu prosedur berikut:

**Topics**
+ [Menggunakan `aws configure`](#cli-authentication-user-configure-wizard)

### Menggunakan `aws configure`
<a name="cli-authentication-user-configure-wizard"></a>

Untuk penggunaan umum, `aws configure` perintah adalah cara tercepat untuk mengatur AWS CLI instalasi Anda. Wizard konfigurasi ini meminta Anda untuk setiap informasi yang Anda butuhkan untuk memulai. Kecuali ditentukan lain dengan menggunakan `--profile` opsi, AWS CLI menyimpan informasi ini di `default` profil.

Contoh berikut mengkonfigurasi `default` profil menggunakan nilai sampel. Ganti dengan nilai Anda sendiri seperti yang dijelaskan di bagian berikut.

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

Contoh berikut mengkonfigurasi profil bernama `userprod` menggunakan nilai sampel. Ganti dengan nilai Anda sendiri seperti yang dijelaskan di bagian berikut.

```
$ aws configure --profile userprod
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

# Menggunakan metadata instans Amazon EC2 sebagai kredensional di AWS CLI
<a name="cli-configure-metadata"></a>

Saat menjalankan instans Amazon Elastic Compute Cloud (Amazon EC2) AWS CLI dari dalam instans Amazon Elastic Compute Cloud (Amazon EC2), Anda dapat menyederhanakan penyediaan kredensi ke perintah Anda. Setiap instans Amazon EC2 berisi metadata yang AWS CLI dapat langsung kueri untuk kredensi sementara. Ketika peran IAM dilampirkan ke instance, AWS CLI secara otomatis dan aman mengambil kredensional dari metadata instance. 

Untuk menonaktifkan layanan ini, gunakan variabel lingkungan [AWS\$1EC2\$1METADATA\$1DISABLED](cli-configure-envvars.md#envvars-list-AWS_EC2_METADATA_DISABLED).

**Topics**
+ [Prasyarat](#cli-configure-metadata-prereqs)
+ [Mengonfigurasi profil untuk metadata Amazon EC2](#cli-configure-metadata-configure)

## Prasyarat
<a name="cli-configure-metadata-prereqs"></a>

Untuk menggunakan kredensi Amazon EC2 dengan AWS CLI, Anda harus menyelesaikan yang berikut ini:
+ Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, lihat [Menginstal, memperbarui, dan menghapus instalasi AWS CLI](cli-chap-install.md) dan [Otentikasi dan akses kredensional untuk AWS CLI](cli-chap-authentication.md).
+ Anda memahami file konfigurasi dan profil bernama. Untuk informasi selengkapnya, lihat [Konfigurasi dan pengaturan file kredensi di AWS CLI](cli-configure-files.md). 
+ Anda telah membuat peran AWS Identity and Access Management (IAM) yang memiliki akses ke sumber daya yang dibutuhkan, dan melampirkan peran tersebut ke instans Amazon EC2 saat Anda meluncurkannya. *Untuk informasi selengkapnya, lihat [kebijakan IAM untuk Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) EC2 di Panduan *Pengguna Amazon EC2* [dan Pemberian Aplikasi yang Berjalan di Instans Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html) Akses ke Sumber Daya di Panduan Pengguna IAM. AWS *

## Mengonfigurasi profil untuk metadata Amazon EC2
<a name="cli-configure-metadata-configure"></a>

Untuk menentukan bahwa Anda ingin menggunakan kredenal yang tersedia di profil instans Amazon EC2 hosting, gunakan sintaks berikut di profil bernama di file konfigurasi Anda. Lihat langkah-langkah berikut untuk petunjuk lebih lanjut. 

```
[profile profilename]
role_arn = arn:aws:iam::123456789012:role/rolename
credential_source = Ec2InstanceMetadata
region = region
```

1. Buat profil di file konfigurasi Anda.

   ```
   [profile profilename]
   ```

1. Tambahkan peran ARN IAM Anda yang memiliki akses ke sumber daya yang dibutuhkan.

   ```
   role_arn = arn:aws:iam::123456789012:role/rolename
   ```

1. Tentukan `Ec2InstanceMetadata` sebagai sumber kredensi Anda.

   ```
   credential_source = Ec2InstanceMetadata
   ```

1. Atur Wilayah Anda.

   ```
   region = region
   ```

**Contoh**

Contoh berikut mengasumsikan *`marketingadminrole`* peran dan menggunakan `us-west-2` Wilayah dalam profil instans Amazon EC2 bernama. `marketingadmin`

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
region = us-west-2
```

# Sumber kredensyal dengan proses eksternal di AWS CLI
<a name="cli-configure-sourcing-external"></a>

**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 kredensi kustom 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
```

**Sintaksis**  
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 - \$1. spasi
+ 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, 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 dari`STDOUT`. Perintah yang Anda tentukan 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": "ISO8601 timestamp 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 [ISO8601](https://en.wikipedia.org/wiki/ISO_8601)waktu yang diformat. Jika `Expiration` kunci tidak ada dalam output alat, CLI mengasumsikan bahwa kredensialnya adalah kredensyal jangka panjang yang tidak disegarkan. Jika tidak, kredensyal dianggap sebagai 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.