

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

# Identitas IAM
<a name="id"></a>

Identitas IAM dapat dikaitkan dengan satu atau lebih kebijakan, yang menentukan tindakan apa yang diizinkan untuk dilakukan identitas, pada AWS sumber daya mana, dan dalam kondisi apa. Identitas IAM termasuk pengguna IAM, grup IAM, dan peran IAM. Entitas IAM adalah jenis identitas yang mewakili pengguna manusia atau beban kerja terprogram yang dapat diautentikasi dan kemudian diberi wewenang untuk melakukan tindakan di. Akun AWS Entitas IAM mencakup pengguna IAM dan peran IAM. Untuk definisi istilah yang umum digunakan, lihat[Ketentuan](introduction_identity-management.md#intro-structure-terms).

Anda dapat menggabungkan identitas yang ada dari penyedia identitas eksternal. Identitas ini akan mengambil peran IAM untuk mengakses AWS sumber daya. Untuk informasi selengkapnya, lihat [Penyedia identitas dan federasi ke AWS](id_roles_providers.md).

Anda juga dapat menggunakan AWS IAM Identity Center untuk membuat dan mengelola identitas dan akses ke AWS sumber daya. Set izin IAM Identity Center secara otomatis membuat peran IAM yang diperlukan untuk menyediakan akses ke sumber daya. Untuk informasi lebih lanjut, lihat [Apa itu Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)?

 Pengguna root akun AWS Itu adalah Akun AWS prinsip yang dibuat ketika Anda Akun AWS didirikan. Pengguna root memiliki akses ke semua AWS layanan dan sumber daya di akun. Untuk informasi selengkapnya, lihat [Pengguna root IAM](#id_root). 

**catatan**  
Ikuti [praktik terbaik Keamanan di IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/best-practices-use-cases.html) saat bekerja dengan identitas IAM. 
Ikuti [praktik terbaik pengguna root untuk Anda Akun AWS](root-user-best-practices.md) saat bekerja dengan pengguna root.
Jika Anda mengalami masalah saat masuk, lihat [Masuk ke Konsol Manajemen AWS](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html). 

## Pengguna root IAM
<a name="id_root"></a>

Saat pertama kali membuat Akun AWS, Anda mulai dengan satu identitas masuk yang memiliki akses lengkap ke semua Layanan AWS dan sumber daya di akun. Identitas ini disebut *pengguna Akun AWS root*. Untuk informasi selengkapnya, lihat [pengguna root AWS akun.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)

## Pengguna IAM:
<a name="id_iam-users"></a>

*Pengguna IAM* adalah identitas dalam diri Anda Akun AWS yang memiliki izin khusus untuk satu orang atau aplikasi. Untuk informasi selengkapnya, lihat [pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html). 

## Grup pengguna IAM
<a name="id_iam-groups"></a>

*Grup pengguna IAM* adalah identitas yang menentukan kumpulan pengguna IAM. Untuk informasi selengkapnya, lihat [Grup pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html).

## Peran IAM
<a name="id_iam-roles"></a>

*Peran IAM* adalah identitas dalam diri Anda Akun AWS yang memiliki izin khusus. Ini mirip dengan pengguna IAM, tetapi tidak terkait dengan orang tertentu. Untuk informasi selengkapnya, lihat [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

# Pengguna root akun AWS
<a name="id_root-user"></a>

Saat pertama kali membuat akun Amazon Web Services (AWS), Anda mulai dengan satu identitas masuk yang memiliki akses lengkap ke semua AWS layanan dan sumber daya di akun. Identitas ini disebut *pengguna root AWS * akun. Alamat email dan kata sandi yang Anda gunakan untuk membuat Akun AWS adalah kredensil yang Anda gunakan untuk masuk sebagai pengguna root Anda.
+ Gunakan pengguna root hanya untuk melakukan tugas-tugas yang memerlukan izin tingkat root. Untuk daftar lengkap tugas yang mengharuskan Anda masuk sebagai pengguna root, lihat[Tugas yang memerlukan kredensial pengguna root](#root-user-tasks). 
+ Ikuti [praktik terbaik pengguna root untuk Anda Akun AWS](root-user-best-practices.md).
+ Jika Anda mengalami masalah saat masuk, lihat [Masuk ke Konsol Manajemen AWS](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html).

**penting**  
Kami sangat menyarankan agar Anda tidak menggunakan pengguna root untuk tugas sehari-hari Anda dan Anda mengikuti [praktik terbaik pengguna root untuk Anda Akun AWS](root-user-best-practices.md). Lindungi kredensial pengguna root Anda dan gunakan kredensial tersebut untuk melakukan tugas yang hanya dapat dilakukan pengguna root. Untuk daftar lengkap tugas yang mengharuskan Anda masuk sebagai pengguna root, lihat[Tugas yang memerlukan kredensial pengguna root](#root-user-tasks). 

Meskipun MFA diberlakukan untuk pengguna root secara default, MFA memerlukan tindakan pelanggan untuk menambahkan MFA selama pembuatan akun awal atau seperti yang diminta saat masuk. Untuk informasi selengkapnya tentang penggunaan MFA untuk melindungi pengguna root, lihat. [Otentikasi multi-faktor untuk Pengguna root akun AWS](enable-mfa-for-root.md)

## Kelola akses root untuk akun anggota secara terpusat
<a name="id_root-user-access-management"></a>

Untuk membantu Anda mengelola kredensi dalam skala besar, Anda dapat mengamankan akses ke kredensi pengguna root untuk akun anggota secara terpusat. AWS Organizations Ketika Anda mengaktifkan AWS Organizations, Anda menggabungkan semua AWS akun Anda ke dalam organisasi untuk manajemen pusat. Memusatkan akses root memungkinkan Anda menghapus kredensi pengguna root dan melakukan tugas-tugas istimewa berikut pada akun anggota.

**Hapus kredensi pengguna root akun anggota**  
Setelah Anda [memusatkan akses root untuk akun anggota](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-enable-root-access.html), Anda dapat memilih untuk menghapus kredensyal pengguna root dari akun anggota di Organizations Anda. Anda dapat menghapus kata sandi pengguna root, kunci akses, menandatangani sertifikat, dan menonaktifkan otentikasi multi-faktor (MFA). Akun baru yang Anda buat di Organizations tidak memiliki kredensi pengguna root secara default. Akun anggota tidak dapat masuk ke pengguna root mereka atau melakukan pemulihan kata sandi untuk pengguna root mereka kecuali pemulihan akun diaktifkan.

**Lakukan tugas istimewa yang memerlukan kredensi pengguna root**  
Beberapa tugas hanya dapat dilakukan ketika Anda masuk sebagai pengguna root akun. Beberapa di antaranya [Tugas yang memerlukan kredensial pengguna root](#root-user-tasks) dapat dilakukan oleh akun manajemen atau administrator yang didelegasikan untuk IAM. Untuk mempelajari lebih lanjut tentang mengambil tindakan istimewa pada akun anggota, lihat[Lakukan tugas istimewa](id_root-user-privileged-task.md).

**Aktifkan pemulihan akun pengguna root**  
Jika Anda perlu memulihkan kredensi pengguna root untuk akun anggota, akun manajemen Organisasi atau administrator yang didelegasikan dapat melakukan tugas istimewa **Izinkan pemulihan kata sandi**. Orang yang memiliki akses ke kotak masuk email pengguna root untuk akun anggota dapat [mengatur ulang kata sandi pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/reset-root-password.html) untuk memulihkan kredensyal pengguna root. Sebaiknya hapus kredensi pengguna root setelah Anda menyelesaikan tugas yang memerlukan akses ke pengguna root.

# Memusatkan akses root untuk akun anggota
<a name="id_root-enable-root-access"></a>

Kredensi pengguna root adalah kredenal awal yang ditetapkan untuk masing-masing Akun AWS yang memiliki akses lengkap ke semua AWS layanan dan sumber daya di akun. Ketika Anda mengaktifkan AWS Organizations, Anda menggabungkan semua AWS akun Anda ke dalam organisasi untuk manajemen pusat. Setiap akun anggota memiliki pengguna root sendiri dengan izin default untuk melakukan tindakan apa pun di akun anggota. Kami menyarankan Anda mengamankan kredenal pengguna root secara terpusat dari penggunaan yang Akun AWS dikelola AWS Organizations untuk mencegah pemulihan kredensi pengguna root dan akses dalam skala besar.

Setelah Anda memusatkan akses root, Anda dapat memilih untuk menghapus kredensi pengguna root dari akun anggota di organisasi Anda. Anda dapat menghapus kata sandi pengguna root, kunci akses, menandatangani sertifikat, dan menonaktifkan otentikasi multi-faktor (MFA). Akun baru yang Anda buat tidak AWS Organizations memiliki kredensi pengguna root secara default. Akun anggota tidak dapat masuk ke pengguna root mereka atau melakukan pemulihan kata sandi untuk pengguna root mereka.

**catatan**  
Sementara beberapa [Tugas yang memerlukan kredensial pengguna root](id_root-user.md#root-user-tasks) dapat dilakukan oleh akun manajemen atau administrator yang didelegasikan untuk IAM, beberapa tugas hanya dapat dilakukan ketika Anda masuk sebagai pengguna root akun.  
Jika Anda perlu memulihkan kredensi pengguna root untuk akun anggota untuk melakukan salah satu tugas ini, ikuti langkah-langkahnya [Lakukan tugas istimewa](id_root-user-privileged-task.md) dan pilih **Izinkan pemulihan kata sandi**. Orang yang memiliki akses ke kotak masuk email pengguna root untuk akun anggota kemudian dapat mengikuti langkah-langkah untuk [mengatur ulang kata sandi pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/reset-root-password.html) dan masuk ke pengguna root akun anggota.  
 Sebaiknya hapus kredensi pengguna root setelah Anda menyelesaikan tugas yang memerlukan akses ke pengguna root.

## Prasyarat
<a name="enable-root-access-management_prerequisite"></a>

Sebelum Anda memusatkan akses root, Anda harus memiliki akun yang dikonfigurasi dengan pengaturan berikut:
+ Anda harus memiliki izin IAM berikut:
  + `iam:GetAccessKeyLastUsed`
  + `iam:GetAccountSummary`
  + `iam:GetLoginProfile`
  + `iam:GetUser`
  + `iam:ListAccessKeys`
  + `iam:ListMFADevices`
  + `iam:ListSigningCertificates`
  + `sts:AssumeRoot`
**catatan**  
Untuk mengaudit status kredensi pengguna root dari akun anggota, Anda dapat menggunakan kebijakan [IAMAuditRootUserCredentials](security-iam-awsmanpol.md#security-iam-awsmanpol-IAMAuditRootUserCredentials) AWS terkelola untuk mengurangi izin saat Anda melakukan tugas istimewa di akun AWS Organizations anggota, atau menggunakan kebijakan apa pun yang dapat diakses. `iam:GetAccountSummary`  
Untuk menghasilkan laporan informasi kredensi pengguna root, kebijakan lain hanya memerlukan `iam:GetAccountSummary` tindakan untuk menghasilkan output yang sama. Anda juga dapat membuat daftar atau mendapatkan informasi kredensi pengguna root individual, termasuk:  
Apakah ada kata sandi pengguna root
Apakah kunci akses pengguna root hadir dan kapan terakhir digunakan
Apakah pengguna root telah mengaitkan sertifikat penandatanganan
Perangkat MFA terkait pengguna root
Daftar status kredensi pengguna root yang dikonsolidasikan
+ Anda harus mengelola Akun AWS masuk Anda [AWS Organizations](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_introduction.html).
+ Anda harus memiliki izin berikut untuk mengaktifkan fitur ini di organisasi Anda:
  + `iam:EnableOrganizationsRootCredentialsManagement`
  + `iam:EnableOrganizationsRootSessions`
  + `iam:ListOrganizationsFeatures`
  + `organizations:EnableAwsServiceAccess`
  + `organizations:ListAccountsForParent`
  + `organizations:RegisterDelegatedAdministrator` 
+ Untuk memastikan fungsionalitas konsol yang optimal, sebaiknya aktifkan izin tambahan berikut:
  + `organizations:DescribeAccount`
  + `organizations:DescribeOrganization`
  + `organizations:ListAWSServiceAccessForOrganization`
  + `organizations:ListDelegatedAdministrators`
  + `organizations:ListOrganizationalUnitsForParent`
  + `organizations:ListParents`
  + `organizations:ListTagsForResource`

## Mengaktifkan akses root terpusat (konsol)
<a name="enable-root-access-console"></a>

**Untuk mengaktifkan fitur ini untuk akun anggota di Konsol Manajemen AWS**

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, pilih **Manajemen akses Root**, lalu pilih **Aktifkan**.
**catatan**  
Jika Anda melihat **manajemen akses Root dinonaktifkan**, aktifkan akses tepercaya untuk AWS Identity and Access Management masuk AWS Organizations. Untuk detailnya, lihat [AWS IAM dan AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-iam.html) di *Panduan AWS Organizations Pengguna*.

1. Di bagian Kemampuan untuk mengaktifkan, pilih fitur mana yang akan diaktifkan.
   + Pilih **manajemen kredensi Root** untuk mengizinkan akun manajemen dan administrator yang didelegasikan untuk IAM menghapus kredensi pengguna root untuk akun anggota. Anda harus mengaktifkan tindakan root Privileged di akun anggota untuk memungkinkan akun anggota memulihkan kredensi pengguna root mereka setelah dihapus.
   + Pilih **tindakan root Privileged di akun anggota untuk memungkinkan akun** manajemen dan administrator yang didelegasikan untuk IAM untuk melakukan tugas-tugas tertentu yang memerlukan kredensi pengguna root.

1. (Opsional) Masukkan ID akun **administrator yang didelegasikan** yang berwenang untuk mengelola akses pengguna root dan mengambil tindakan istimewa pada akun anggota. Kami merekomendasikan akun yang ditujukan untuk tujuan keamanan atau manajemen.

1. Pilih **Aktifkan**.

## Mengaktifkan akses root terpusat ()AWS CLI
<a name="enable-root-access-cli"></a>

**Untuk mengaktifkan akses root terpusat dari AWS Command Line Interface ()AWS CLI**

1. Jika Anda belum mengaktifkan akses tepercaya untuk AWS Identity and Access Management in AWS Organizations, gunakan perintah berikut: [aws organizations enable-aws-service-access](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/organizations/enable-aws-service-access.html).

1. Gunakan perintah berikut untuk mengizinkan akun manajemen dan administrator yang didelegasikan menghapus kredensi pengguna root untuk akun anggota: [aws](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-organizations-root-credentials-management.html) iam -management. enable-organizations-root-credentials

1. [Gunakan perintah berikut untuk mengizinkan akun manajemen dan administrator yang didelegasikan untuk melakukan tugas-tugas tertentu yang memerlukan kredensi pengguna root: aws iam. enable-organizations-root-sessions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-organizations-root-sessions.html)

1. (Opsional) Gunakan perintah berikut untuk mendaftarkan administrator yang didelegasikan: [aws organizations register-delegated-administrator](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/organizations/register-delegated-administrator.html).

   Contoh berikut menetapkan akun 111111111111 sebagai administrator yang didelegasikan untuk layanan IAM.

   ```
   aws organizations register-delegated-administrator 
   --service-principal iam.amazonaws.com
   --account-id 111111111111
   ```

## Mengaktifkan akses root terpusat (API)AWS
<a name="enable-root-access-api"></a>

**Untuk mengaktifkan akses root terpusat dari API AWS**

1. Jika Anda belum mengaktifkan akses tepercaya untuk AWS Identity and Access Management in AWS Organizations, gunakan perintah berikut: [Aktifkan AWSService Akses](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html).

1. Gunakan perintah berikut untuk mengizinkan akun manajemen dan administrator yang didelegasikan menghapus kredensi pengguna root untuk akun anggota:. [EnableOrganizationsRootCredentialsManagement](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableOrganizationsRootCredentialsManagement.html)

1. Gunakan perintah berikut untuk mengizinkan akun manajemen dan administrator yang didelegasikan untuk melakukan tugas-tugas tertentu yang memerlukan kredensi pengguna root:. [EnableOrganizationsRootSessions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableOrganizationsRootSessions.html)

1. (Opsional) Gunakan perintah berikut untuk mendaftarkan administrator yang didelegasikan: [RegisterDelegatedAdministrator](https://docs.aws.amazon.com/organizations/latest/APIReference/API_RegisterDelegatedAdministrator.html).

## Langkah selanjutnya
<a name="enable-root-access_next-steps"></a>

Setelah Anda mengamankan kredensi istimewa secara terpusat untuk akun anggota di organisasi Anda, lihat [Lakukan tugas istimewa](id_root-user-privileged-task.md) untuk mengambil tindakan istimewa pada akun anggota.

# Lakukan tugas istimewa di akun AWS Organizations anggota
<a name="id_root-user-privileged-task"></a>

Akun AWS Organizations manajemen atau akun administrator yang didelegasikan untuk IAM dapat melakukan beberapa tugas istimewa pada akun anggota yang jika tidak memerlukan kredensil pengguna root. Dengan akses root terpusat, tugas-tugas ini dilakukan melalui sesi istimewa jangka pendek. Sesi ini menyediakan kredensil sementara yang mencakup tindakan istimewa tertentu, tanpa memerlukan login pengguna root di akun anggota.

Setelah meluncurkan sesi istimewa, Anda dapat menghapus kebijakan bucket Amazon S3 yang salah dikonfigurasi, menghapus kebijakan antrian Amazon SQS yang salah dikonfigurasi, menghapus kredensi pengguna root untuk akun anggota, dan mengaktifkan kembali kredensi pengguna root untuk akun anggota.

**catatan**  
Untuk menggunakan akses root terpusat, Anda harus masuk melalui akun manajemen atau akun administrator yang didelegasikan sebagai pengguna IAM atau peran dengan `sts:AssumeRoot` izin yang diberikan secara eksplisit. Anda tidak dapat menggunakan kredensil pengguna root untuk menelepon. `sts:AssumeRoot`

## Prasyarat
<a name="root-user-privileged-task_prerequisite"></a>

Sebelum Anda dapat meluncurkan sesi istimewa, Anda harus memiliki pengaturan berikut:
+ Anda telah mengaktifkan akses root terpusat di organisasi Anda. Untuk langkah-langkah untuk mengaktifkan fitur ini, lihat[Memusatkan akses root untuk akun anggota](id_root-enable-root-access.md).
+ Akun manajemen atau akun administrator yang didelegasikan memiliki izin berikut: `sts:AssumeRoot`

## Mengambil tindakan istimewa pada akun anggota (konsol)
<a name="root-user-privileged-task_action-console"></a>

**Untuk meluncurkan sesi untuk tindakan istimewa di akun anggota di Konsol Manajemen AWS**

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, pilih **Manajemen akses Root**.

1. Pilih nama dari daftar akun anggota, dan pilih **Ambil tindakan istimewa**.

1. Pilih tindakan istimewa yang ingin Anda ambil di akun anggota.
   + Pilih kebijakan bucket **Delete Amazon S3 untuk menghapus kebijakan bucket** yang salah konfigurasi yang menolak semua prinsipal mengakses bucket Amazon S3.

     1. **Pilih **Browse S3** untuk memilih nama dari bucket yang dimiliki oleh akun anggota, dan pilih Pilih.**

     1. Pilih **kebijakan Hapus bucket**.

     1. Gunakan konsol Amazon S3 untuk memperbaiki kebijakan bucket setelah menghapus kebijakan yang salah konfigurasi. Untuk informasi selengkapnya, lihat [Menambahkan kebijakan bucket menggunakan konsol Amazon S3 di Panduan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) Pengguna *Amazon S3*.
   + Pilih kebijakan **Hapus Amazon SQS untuk menghapus kebijakan** berbasis sumber daya Amazon Simple Queue Service yang menolak semua prinsipal mengakses antrian Amazon SQS.

     1. Masukkan nama antrian dalam nama antrian **SQS**, dan pilih **Hapus** kebijakan SQS.

     1. Gunakan konsol Amazon SQS untuk memperbaiki kebijakan antrian setelah menghapus kebijakan yang salah konfigurasi. Untuk informasi selengkapnya, lihat [Mengonfigurasi kebijakan akses di Amazon](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-add-permissions.html) SQS di Panduan Pengembang *Amazon SQS*.
   + Pilih **Hapus kredenal root** untuk menghapus akses root dari akun anggota. Menghapus kredensi pengguna root menghapus kata sandi pengguna root, kunci akses, menandatangani sertifikat, dan menonaktifkan otentikasi multi-faktor (MFA) untuk akun anggota.

     1. Pilih **Hapus kredenal root**.
   + Pilih **Izinkan pemulihan kata sandi** untuk memulihkan kredensi pengguna root untuk akun anggota.

     Opsi ini hanya tersedia ketika akun anggota tidak memiliki kredensi pengguna root.

     1. Pilih **Izinkan pemulihan kata sandi**.

     1. Setelah mengambil tindakan istimewa ini, orang yang memiliki akses ke kotak masuk email pengguna root untuk akun anggota dapat [mengatur ulang kata sandi pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/reset-root-password.html) dan masuk ke pengguna root akun anggota.

## Mengambil tindakan istimewa pada akun anggota ()AWS CLI
<a name="root-user-privileged-task_action-cli"></a>

**Untuk meluncurkan sesi untuk tindakan istimewa di akun anggota dari AWS Command Line Interface**

1. Gunakan perintah berikut untuk mengasumsikan sesi pengguna root: [aws sts assume-root](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-root.html).
**catatan**  
Titik akhir global tidak didukung untuk`sts:AssumeRoot`. Anda harus mengirim permintaan ini ke AWS STS titik akhir Regional. Untuk informasi selengkapnya, lihat [Kelola AWS STS dalam sebuah Wilayah AWS](id_credentials_temp_enable-regions.md).

   Saat Anda meluncurkan sesi pengguna root istimewa untuk akun anggota, Anda harus menentukan `task-policy-arn` cakupan sesi ke tindakan istimewa yang akan dilakukan selama sesi. Anda dapat menggunakan salah satu kebijakan AWS terkelola berikut untuk mencakup tindakan sesi istimewa.
   + [IAMAuditRootUserCredentials](security-iam-awsmanpol.md#security-iam-awsmanpol-IAMAuditRootUserCredentials)
   + [IAMCreateRootUserPassword](security-iam-awsmanpol.md#security-iam-awsmanpol-IAMCreateRootUserPassword)
   + [IAMDeleteRootUserCredentials](security-iam-awsmanpol.md#security-iam-awsmanpol-IAMDeleteRootUserCredentials)
   + [S3 UnlockBucketPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-S3UnlockBucketPolicy)
   + [SQSUnlockQueuePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-SQSUnlockQueuePolicy)

   Untuk membatasi tindakan yang dapat dilakukan oleh akun manajemen atau administrator yang didelegasikan selama sesi pengguna root istimewa, Anda dapat menggunakan kunci AWS STS kondisi [sts](reference_policies_iam-condition-keys.md#ck_taskpolicyarn):. TaskPolicyArn

    Dalam contoh berikut, administrator yang didelegasikan mengasumsikan root untuk menghapus kredensi pengguna root untuk ID akun anggota. *111122223333* 

   ```
   aws sts assume-root \
     --target-principal 111122223333 \
     --task-policy-arn arn=arn:aws:iam::aws:policy/root-task/IAMDeleteRootUserCredentials \
     --duration-seconds 900
   ```

1. Gunakan`SessionToken`,`AccessKeyId`, dan `SecretAccessKey` dari respons untuk melakukan tindakan istimewa di akun anggota. Anda dapat menghilangkan nama pengguna dan kata sandi dalam permintaan untuk default ke akun anggota.
   + **Periksa status kredenal pengguna root**. Gunakan perintah berikut untuk memeriksa status kredensi pengguna root untuk akun anggota.
     + [dapatkan-pengguna](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/get-user.html)
     + [get-login-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/get-login-profile.html)
     + [list-access-keys](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-access-keys.html)
     + [list-signing-certificates](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-signing-certificates.html)
     + [list-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-mfa-devices.html)
     + [get-access-key-last-digunakan](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/get-access-key-last-used.html)
   + **Hapus kredensial pengguna root**. Gunakan perintah berikut untuk menghapus akses root. Anda dapat menghapus kata sandi pengguna root, kunci akses, menandatangani sertifikat, dan menonaktifkan otentikasi multi-faktor (MFA) untuk menghapus semua akses ke dan pemulihan pengguna root.
     + [delete-login-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-login-profile.html)
     + [delete-access-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-access-key.html)
     + [delete-signing-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-signing-certificate.html)
     + [deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html)
   + **Hapus kebijakan bucket Amazon S3**. Gunakan perintah berikut untuk membaca, mengedit, dan menghapus kebijakan bucket yang salah konfigurasi yang menolak semua prinsipal mengakses bucket Amazon S3.
     + [daftar-ember](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-buckets.html)
     + [get-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html)
     + [put-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-policy.html)
     + [delete-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-policy.html)
   + **Hapus kebijakan Amazon SQS.** Gunakan perintah berikut untuk melihat dan menghapus kebijakan berbasis sumber daya Amazon Simple Queue Service yang menolak semua prinsipal mengakses antrian Amazon SQS.
     + [daftar-antrian](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sqs/list-queues.html)
     + [get-queue-url](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sqs/get-queue-url.html)
     + [get-queue-attributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sqs/get-queue-attributes.html)
     + [set-queue-attributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sqs/set-queue-attributes.html)
   + **Izinkan pemulihan kata sandi**. Gunakan perintah berikut untuk melihat nama pengguna dan memulihkan kredensi pengguna root untuk akun anggota.
     + [get-login-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/get-login-profile.html)
     + [create-login-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-login-profile.html)

## Mengambil tindakan istimewa pada akun anggota (AWS API)
<a name="root-user-privileged-task_action-api"></a>

**Untuk meluncurkan sesi untuk tindakan istimewa di akun anggota dari API AWS**

1. Gunakan perintah berikut untuk mengasumsikan sesi pengguna root: [AssumeRoot](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html).
**catatan**  
Titik akhir global tidak didukung untuk AssumeRoot. Anda harus mengirim permintaan ini ke AWS STS titik akhir Regional. Untuk informasi selengkapnya, lihat [Kelola AWS STS dalam sebuah Wilayah AWS](id_credentials_temp_enable-regions.md).

   Saat Anda meluncurkan sesi pengguna root istimewa untuk akun anggota, Anda harus menentukan `TaskPolicyArn` cakupan sesi ke tindakan istimewa yang akan dilakukan selama sesi. Anda dapat menggunakan salah satu kebijakan AWS terkelola berikut untuk mencakup tindakan sesi istimewa.
   + [IAMAuditRootUserCredentials](security-iam-awsmanpol.md#security-iam-awsmanpol-IAMAuditRootUserCredentials)
   + [IAMCreateRootUserPassword](security-iam-awsmanpol.md#security-iam-awsmanpol-IAMCreateRootUserPassword)
   + [IAMDeleteRootUserCredentials](security-iam-awsmanpol.md#security-iam-awsmanpol-IAMDeleteRootUserCredentials)
   + [S3 UnlockBucketPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-S3UnlockBucketPolicy)
   + [SQSUnlockQueuePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-SQSUnlockQueuePolicy)

   Untuk membatasi tindakan yang dapat dilakukan oleh akun manajemen atau administrator yang didelegasikan selama sesi pengguna root istimewa, Anda dapat menggunakan kunci AWS STS kondisi [sts](reference_policies_iam-condition-keys.md#ck_taskpolicyarn):. TaskPolicyArn

   Dalam contoh berikut, administrator yang didelegasikan mengasumsikan root untuk membaca, mengedit, dan menghapus kebijakan berbasis sumber daya yang salah konfigurasi untuk bucket Amazon S3 untuk ID akun anggota. *111122223333*

   ```
   https://sts.us-east-2.amazonaws.com/
     ?Version=2011-06-15
     &Action=AssumeRoot
     &TargetPrincipal=111122223333
     &PolicyArns.arn=arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy 
     &DurationSeconds 900
   ```

1. Gunakan`SessionToken`,`AccessKeyId`, dan `SecretAccessKey` dari respons untuk melakukan tindakan istimewa di akun anggota. Anda dapat menghilangkan nama pengguna dan kata sandi dalam permintaan untuk default ke akun anggota.
   + **Periksa status kredenal pengguna root**. Gunakan perintah berikut untuk memeriksa status kredensi pengguna root untuk akun anggota.
     + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)
     + [GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html)
     + [ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html)
     + [ListSigningCertificates](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSigningCertificates.html)
     + [Daftar MFADevices](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADevices.html)
     + [GetAccessKeyLastUsed](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)
   + **Hapus kredensial pengguna root**. Gunakan perintah berikut untuk menghapus akses root. Anda dapat menghapus kata sandi pengguna root, kunci akses, menandatangani sertifikat, dan menonaktifkan otentikasi multi-faktor (MFA) untuk menghapus semua akses ke dan pemulihan pengguna root.
     + [DeleteLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html)
     + [DeleteAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)
     + [DeleteSigningCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html)
     + [DeactivateMfaDevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)
   + **Hapus kebijakan bucket Amazon S3**. Gunakan perintah berikut untuk membaca, mengedit, dan menghapus kebijakan bucket yang salah konfigurasi yang menolak semua prinsipal mengakses bucket Amazon S3.
     + [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
     + [GetBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)
     + [PutBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)
     + [DeleteBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)
   + **Hapus kebijakan Amazon SQS.** Gunakan perintah berikut untuk melihat dan menghapus kebijakan berbasis sumber daya Amazon Simple Queue Service yang menolak semua prinsipal mengakses antrian Amazon SQS.
     + [ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)
     + [GetQueueUrl](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html)
     + [GetQueueAttributes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html)
     + [SetQueueAttributes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)
   + **Izinkan pemulihan kata sandi**. Gunakan perintah berikut untuk melihat nama pengguna dan memulihkan kredensi pengguna root untuk akun anggota.
     + [GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html)
     + [CreateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateLoginProfile.html)

# Otentikasi multi-faktor untuk Pengguna root akun AWS
<a name="enable-mfa-for-root"></a>

**penting**  
AWS merekomendasikan agar Anda menggunakan kunci sandi atau kunci keamanan untuk MFA, AWS sedapat mungkin karena mereka lebih tahan terhadap serangan seperti phishing. Untuk informasi selengkapnya, lihat [Kunci sandi dan kunci keamanan](#passkeys-security-keys-for-root).

Otentikasi multi-faktor (MFA) adalah mekanisme sederhana dan efektif untuk meningkatkan keamanan Anda. Faktor pertama — kata sandi Anda — adalah rahasia yang Anda hafal, juga dikenal sebagai faktor pengetahuan. Faktor lain dapat berupa faktor kepemilikan (sesuatu yang Anda miliki, seperti kunci keamanan) atau faktor warisan (sesuatu yang Anda miliki, seperti pemindaian biometrik). Untuk meningkatkan keamanan, kami sangat menyarankan Anda mengonfigurasi otentikasi multi-faktor (MFA) untuk membantu melindungi sumber daya Anda. AWS 

**catatan**  
Semua Akun AWS jenis (akun mandiri, manajemen, dan anggota) memerlukan MFA untuk dikonfigurasi untuk pengguna root mereka. Pengguna harus mendaftarkan MFA dalam waktu 35 hari sejak upaya masuk pertama mereka untuk mengakses jika Konsol Manajemen AWS MFA belum diaktifkan.

Anda dapat mengaktifkan MFA untuk pengguna Pengguna root akun AWS dan IAM. Saat Anda mengaktifkan MFA untuk pengguna root, itu hanya memengaruhi kredensi pengguna root. Untuk informasi selengkapnya tentang cara mengaktifkan MFA untuk pengguna IAM Anda, lihat. [AWS Otentikasi multi-faktor di IAM](id_credentials_mfa.md)

**catatan**  
Akun AWS managed using AWS Organizations mungkin memiliki opsi untuk [mengelola akses root secara terpusat](id_root-user.md#id_root-user-access-management) untuk akun anggota untuk mencegah pemulihan kredensi dan akses dalam skala besar. Jika opsi ini diaktifkan, Anda dapat menghapus kredensi pengguna root dari akun anggota, termasuk kata sandi dan MFA, yang secara efektif mencegah masuk sebagai pengguna root, pemulihan kata sandi, atau pengaturan MFA. Atau, jika Anda lebih suka mempertahankan metode masuk berbasis kata sandi, amankan akun Anda dengan mendaftarkan MFA untuk meningkatkan perlindungan akun.

Sebelum Anda mengaktifkan MFA untuk pengguna root Anda, tinjau dan [perbarui pengaturan akun dan informasi kontak](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-root-user.html) Anda untuk memastikan bahwa Anda memiliki akses ke email dan nomor telepon. Jika perangkat MFA Anda hilang, dicuri, atau tidak berfungsi, Anda masih dapat masuk sebagai pengguna akar dengan memverifikasi identitas menggunakan email dan nomor telepon tersebut. Untuk mempelajari tentang proses masuk menggunakan faktor autentikasi alternatif, lihat [Pulihkan identitas yang dilindungi MFA di IAM](id_credentials_mfa_lost-or-broken.md). Untuk menonaktifkan fitur ini, hubungi [AWS Dukungan](https://console.aws.amazon.com/support/home#/). 

AWS mendukung jenis MFA berikut untuk pengguna root Anda:
+ [Kunci sandi dan kunci keamanan](#passkeys-security-keys-for-root)
+ [Aplikasi otentikator virtual](#virtual-auth-apps-for-root)
+ [Token TOTP perangkat keras](#hardware-totp-token-for-root)

## Kunci sandi dan kunci keamanan
<a name="passkeys-security-keys-for-root"></a>

AWS Identity and Access Management mendukung kunci sandi dan kunci keamanan untuk MFA. Berdasarkan standar FIDO, kunci sandi menggunakan kriptografi kunci publik untuk memberikan otentikasi yang kuat dan tahan phishing yang lebih aman daripada kata sandi. AWS mendukung dua jenis kunci sandi: kunci sandi terikat perangkat (kunci keamanan) dan kunci sandi yang disinkronkan.
+ **Kunci keamanan**: Ini adalah perangkat fisik, seperti YubiKey, digunakan sebagai faktor kedua untuk otentikasi. Satu kunci keamanan dapat mendukung beberapa akun pengguna root dan pengguna IAM. 
+ **Kunci sandi yang disinkronkan**: Ini menggunakan pengelola kredensi dari penyedia seperti Google, Apple, akun Microsoft, dan layanan pihak ketiga seperti 1Password, Dashlane, dan Bitwarden sebagai faktor kedua.

Anda dapat menggunakan autentikator biometrik bawaan, seperti Touch ID di Apple MacBooks, untuk membuka kunci pengelola kredensi dan masuk. AWS Kunci sandi dibuat dengan penyedia pilihan Anda menggunakan sidik jari, wajah, atau PIN perangkat Anda. Anda juga dapat menggunakan kunci sandi otentikasi lintas perangkat (CDA) dari satu perangkat, seperti perangkat seluler atau kunci keamanan perangkat keras, untuk masuk di perangkat lain seperti laptop. Untuk informasi selengkapnya, lihat [otentikasi lintas perangkat](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda) (CDA).

Anda dapat menyinkronkan kunci sandi di seluruh perangkat Anda untuk memfasilitasi masuk dengan AWS, meningkatkan kegunaan dan pemulihan. Untuk informasi selengkapnya tentang mengaktifkan kunci sandi dan kunci keamanan, lihat. [Aktifkan kunci sandi atau kunci keamanan untuk pengguna root (konsol)](enable-fido-mfa-for-root.md)

Aliansi FIDO menyimpan daftar semua [produk Bersertifikat FIDO](https://fidoalliance.org/certification/fido-certified-products/) yang kompatibel dengan spesifikasi FIDO.

## Aplikasi otentikator virtual
<a name="virtual-auth-apps-for-root"></a>

Aplikasi otentikator virtual berjalan di telepon atau perangkat lain dan mengemulasi perangkat fisik. Aplikasi otentikator virtual menerapkan [algoritma kata sandi satu kali berbasis waktu (TOTP)](https://datatracker.ietf.org/doc/html/rfc6238) dan mendukung beberapa token pada satu perangkat. Pengguna harus mengetikkan kode yang valid dari perangkat saat diminta saat masuk. Setiap token yang ditetapkan untuk pengguna harus unik. Pengguna tidak dapat mengetik kode dari token pengguna lain untuk mengautentikasi.

Kami menyarankan agar Anda menggunakan perangkat MFA virtual saat menunggu untuk mendapatkan persetujuan pembelian perangkat keras atau saat menunggu kedatangan perangkat keras Anda. Untuk daftar beberapa aplikasi yang didukung yang dapat Anda gunakan sebagai perangkat MFA virtual, lihat [Multi-Factor Authentication (MFA](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)). Untuk petunjuk tentang pengaturan perangkat MFA virtual dengan AWS, lihat. [Aktifkan perangkat MFA virtual untuk pengguna root (konsol)](enable-virt-mfa-for-root.md)

## Token TOTP perangkat keras
<a name="hardware-totp-token-for-root"></a>

Perangkat keras menghasilkan kode numerik enam digit berdasarkan algoritma [kata sandi satu kali berbasis waktu](https://datatracker.ietf.org/doc/html/rfc6238) (TOTP). Pengguna harus mengetik kode yang valid dari perangkat di halaman web kedua saat masuk. Setiap perangkat MFA yang ditetapkan ke pengguna harus unik. Pengguna tidak dapat mengetik kode dari perangkat pengguna lain untuk diautentikasi. Untuk informasi tentang perangkat MFA perangkat keras yang didukung, lihat [Multi-Factor Authentication (MFA](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)). Untuk petunjuk tentang menyiapkan token TOTP perangkat keras dengan AWS, lihat. [Aktifkan token TOTP perangkat keras untuk pengguna root (konsol)](enable-hw-mfa-for-root.md)

Jika Anda ingin menggunakan perangkat MFA fisik, kami sarankan Anda menggunakan kunci keamanan FIDO sebagai alternatif perangkat TOTP perangkat keras. Kunci keamanan FIDO menawarkan manfaat tanpa persyaratan baterai, ketahanan phishing, dan mereka mendukung beberapa pengguna root dan IAM pada satu perangkat untuk meningkatkan keamanan.

**Topics**
+ [Kunci sandi dan kunci keamanan](#passkeys-security-keys-for-root)
+ [Aplikasi otentikator virtual](#virtual-auth-apps-for-root)
+ [Token TOTP perangkat keras](#hardware-totp-token-for-root)
+ [Aktifkan kunci sandi atau kunci keamanan untuk pengguna root (konsol)](enable-fido-mfa-for-root.md)
+ [Aktifkan perangkat MFA virtual untuk pengguna root (konsol)](enable-virt-mfa-for-root.md)
+ [Aktifkan token TOTP perangkat keras untuk pengguna root (konsol)](enable-hw-mfa-for-root.md)

# Aktifkan kunci sandi atau kunci keamanan untuk pengguna root (konsol)
<a name="enable-fido-mfa-for-root"></a>

Anda dapat mengonfigurasi dan mengaktifkan kunci sandi untuk pengguna root Anda dari Konsol Manajemen AWS satu-satunya, bukan dari AWS CLI atau AWS API. <a name="enable_fido_root"></a>

**Untuk mengaktifkan kunci sandi atau kunci keamanan untuk pengguna root Anda (konsol)**

1. Buka [AWS Management Console](https://console.aws.amazon.com/) dan masuk menggunakan kredensi pengguna root Anda.

   Untuk petunjuk, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sisi kanan bilah navigasi, pilih nama akun Anda, lalu pilih **Kredensi keamanan**.  
![\[Kredensi keamanan di menu navigasi\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. **Pada pengguna root Anda Halaman **kredensial keamanan saya**, di bawah **Autentikasi multi-faktor (MFA), pilih Tetapkan perangkat MFA**.**

1. **Pada halaman **nama perangkat MFA, masukkan nama** **Perangkat**, pilih **Kunci Sandi atau Kunci Keamanan**, lalu pilih Berikutnya.**

1. Pada **Siapkan perangkat**, atur kunci sandi Anda. Buat passkey dengan data biometrik seperti wajah atau sidik jari Anda, dengan pin perangkat, atau dengan memasukkan kunci keamanan FIDO ke port USB komputer Anda dan mengetuknya.

1. Ikuti petunjuk di browser Anda untuk memilih penyedia kunci sandi atau tempat Anda ingin menyimpan kunci sandi untuk digunakan di seluruh perangkat Anda. 

1. Pilih **Lanjutkan**.

Anda sekarang telah mendaftarkan passkey Anda untuk digunakan dengan AWS. Lain kali Anda menggunakan kredensi pengguna root Anda untuk masuk, Anda harus mengautentikasi dengan kunci sandi Anda untuk menyelesaikan proses masuk.

Untuk membantu memecahkan masalah dengan kunci keamanan FIDO Anda, lihat. [Memecahkan Masalah Kunci Sandi dan Kunci Keamanan FIDO](troubleshoot_mfa-fido.md)

# Aktifkan perangkat MFA virtual untuk pengguna root (konsol)
<a name="enable-virt-mfa-for-root"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk mengkonfigurasi dan mengaktifkan perangkat MFA virtual untuk pengguna root Anda. Untuk mengaktifkan perangkat MFA Akun AWS, Anda harus masuk AWS menggunakan kredenal pengguna root Anda. 

**Untuk mengonfigurasi dan mengaktifkan perangkat MFA virtual untuk digunakan dengan pengguna akar Anda (konsol)**

1. Buka [AWS Management Console](https://console.aws.amazon.com/) dan masuk menggunakan kredensi pengguna root Anda.

   Untuk petunjuk, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sisi kanan bilah navigasi, pilih nama akun Anda, dan pilih **Kredensi keamanan**.  
![\[Kredensi keamanan di menu navigasi\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. **Di bagian **Multi-Factor Authentication (MFA), pilih Tetapkan** perangkat MFA.**

1. Di wizard, ketikkan **nama Perangkat**, pilih **Aplikasi Authenticator**, lalu pilih **Berikutnya**.

   IAM menghasilkan dan menampilkan informasi konfigurasi untuk perangkat MFA virtual, termasuk grafik kode QR. Grafik adalah representasi kunci konfigurasi rahasia yang tersedia untuk entri manual pada perangkat yang tidak mendukung kode QR.

1. Buka aplikasi MFA virtual di perangkat. 

   Jika aplikasi MFA virtual mendukung beberapa perangkat atau akun MFA virtual, pilih opsi untuk membuat perangkat atau akun MFA virtual baru.

1. Cara termudah untuk mengonfigurasi aplikasi adalah menggunakan aplikasi untuk memindai kode QR. Jika Anda tidak dapat memindai kode, Anda dapat mengetik informasi konfigurasi secara manual. Kode QR dan kunci konfigurasi rahasia yang dihasilkan oleh IAM terikat dengan Anda Akun AWS dan tidak dapat digunakan dengan akun yang berbeda. Namun, mereka dapat digunakan kembali untuk mengonfigurasi perangkat MFA baru untuk akun Anda jika Anda kehilangan akses ke perangkat MFA asli.
   + Untuk menggunakan kode QR untuk mengonfigurasi perangkat MFA virtual, dari wizard, pilih **Tampilkan kode QR**. Lalu, ikuti petunjuk aplikasi untuk memindai kode. Misalnya, Anda mungkin perlu memilih ikon kamera atau memilih perintah seperti **Kode batang akun pemindaian**, lalu gunakan kamera perangkat untuk memindai kode QR.
   + Di wizard **Siapkan perangkat**, pilih **Tampilkan kunci rahasia**, lalu ketik kunci rahasia ke dalam aplikasi MFA Anda.
**penting**  
Buat cadangan kode QR atau kunci konfigurasi rahasia yang aman, atau pastikan Anda mengaktifkan beberapa perangkat MFA untuk akun Anda. Anda dapat mendaftarkan hingga **delapan** perangkat MFA dari kombinasi [jenis MFA yang saat ini didukung dengan pengguna Anda Pengguna root akun AWS dan IAM](https://aws.amazon.com/iam/features/mfa/). Perangkat MFA virtual mungkin menjadi tidak tersedia, misalnya, jika Anda kehilangan ponsel cerdas tempat perangkat MFA virtual di-host. Jika itu terjadi dan Anda tidak dapat masuk ke akun Anda tanpa perangkat MFA tambahan yang terpasang pada pengguna atau bahkan oleh[Pemulihan perangkat MFA pengguna akar](id_credentials_mfa_lost-or-broken.md#root-mfa-lost-or-broken), Anda tidak akan dapat masuk ke akun Anda dan Anda harus [menghubungi layanan pelanggan untuk menghapus](https://support.aws.amazon.com/#/contacts/aws-mfa-support) perlindungan MFA untuk akun tersebut. 

   Alat mulai menghasilkan angka enam-digit.

1. Di wizard, di kotak **kode MFA 1**, ketik kata sandi satu kali yang saat ini muncul di perangkat MFA virtual. Tunggu hingga 30 detik untuk membuat kata sandi sekali pakai yang baru. Lalu ketikkan kata sandi satu kali kedua ke kotak **Kode MFA 2**. Pilih **Tambahkan MFA**. 
**penting**  
Kirim permintaan Anda segera setelah membuat kode. Jika Anda membuat kode dan kemudian menunggu terlalu lama untuk mengirim permintaan, perangkat MFA berhasil menghubungkan pengguna namun perangkat MFA tidak sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu. Jika ini terjadi, Anda dapat [menyinkronisasi ulang perangkat](id_credentials_mfa_sync.md).

Perangkat siap digunakan dengan AWS. Untuk informasi lebih lanjut tentang penggunaan MFA dengan Konsol Manajemen AWS, lihat [MFA mengaktifkan login](console_sign-in-mfa.md).

# Aktifkan token TOTP perangkat keras untuk pengguna root (konsol)
<a name="enable-hw-mfa-for-root"></a>

Anda dapat mengonfigurasi dan mengaktifkan perangkat MFA fisik untuk pengguna root Anda dari Konsol Manajemen AWS satu-satunya, bukan dari AWS CLI atau AWS API.

**catatan**  
Anda mungkin melihat teks yang berbeda, seperti **Masuk menggunakan MFA** dan **Atasi masalah perangkat autentikasi Anda**. Namun, fitur yang sama disediakan. Dalam kedua kasus tersebut, jika Anda tidak dapat memverifikasi alamat email akun dan nomor telepon Anda menggunakan faktor otentikasi alternatif, hubungi [AWS Dukungan](https://aws.amazon.com/forms/aws-mfa-support)untuk menghapus pengaturan MFA Anda.<a name="enable_physical_root"></a>

**Untuk mengaktifkan token TOTP perangkat keras untuk pengguna root Anda (konsol)**

1. Buka [AWS Management Console](https://console.aws.amazon.com/) dan masuk menggunakan kredensi pengguna root Anda.

   Untuk petunjuk, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sisi kanan bilah navigasi, pilih nama akun Anda, lalu pilih **Kredensi keamanan**.  
![\[Kredensi keamanan di menu navigasi\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. Perluas bagian **Multi-Factor Authentication (MFA)**.

1. Pilih **Tetapkan perangkat MFA**.

1. **Di wizard, ketik **nama Perangkat**, pilih **token TOTP Perangkat Keras**, lalu pilih Berikutnya.**

1. Di kotak **Nomor seri**, ketik nomor seri yang ditemukan di bagian belakang perangkat MFA.

1. Di kotak **Kode MFA 1**, ketik angka enam-digit yang ditampilkan oleh perangkat MFA. Anda mungkin perlu menekan tombol di bagian depan perangkat untuk menampilkan nomor.  
![\[Dasbor IAM, Perangkat MFA\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/MFADevice.png)

1. Tunggu 30 detik saat perangkat menyegarkan kode, lalu ketik angka enam digit berikutnya ke kotak **Kode MFA 2**. Anda mungkin perlu menekan tombol di bagian depan perangkat untuk menampilkan nomor kedua.

1. Pilih **Tambahkan MFA**. Perangkat MFA sekarang dikaitkan dengan. Akun AWS
**penting**  
Segera kirim permintaan Anda setelah membuat kode autentikasi. Jika Anda membuat kode dan kemudian menunggu terlalu lama untuk mengirim permintaan, perangkat MFA berhasil menghubungkan pengguna namun perangkat MFA tidak akan sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu. Jika ini terjadi, Anda dapat [mensinkronisasi ulang perangkat](id_credentials_mfa_sync.md).

   Saat berikutnya Anda menggunakan kredensial pengguna akar Anda untuk masuk, Anda harus mengetik kode dari perangkat MFA.

# Ubah kata sandi untuk Pengguna root akun AWS
<a name="root-user-password"></a>

Anda dapat mengubah alamat email dan kata sandi dari [Kredensial Keamanan](https://console.aws.amazon.com/iam/home?#security_credential) atau halaman **Akun**. Anda juga dapat memilih **Lupa kata sandi?** pada halaman AWS login untuk mengatur ulang kata sandi Anda.

Untuk mengubah kata sandi pengguna root, Anda harus masuk sebagai Pengguna root akun AWS dan bukan sebagai pengguna IAM. Untuk mempelajari cara mengatur ulang kata sandi pengguna akar yang *lupa*, lihat [Setel ulang kata sandi pengguna root yang hilang atau terlupakan](reset-root-password.md). 

Untuk melindungi kata sandi Anda, penting untuk mengikuti praktik terbaik ini:
+ Ubah kata sandi Anda secara berkala. 
+ Jaga kerahasiaan kata sandi Anda karena siapa pun yang mengetahui kata sandi Anda dapat mengakses akun Anda.
+ Gunakan kata sandi yang berbeda AWS dari yang Anda gunakan di situs lain. 
+ Hindari kata sandi yang mudah ditebak. Ini termasuk kata sandi seperti `secret`, `password`, `amazon`, atau `123456`. Hindari juga hal-hal seperti kata-kata kamus, nama Anda, alamat email, atau informasi pribadi lainnya yang dapat diperoleh seseorang dengan mudah.

**penting**  
Akun AWS dikelola menggunakan AWS Organizations mungkin memiliki [akses root terpusat](id_root-user.md#id_root-user-access-management) yang diaktifkan untuk akun anggota. Akun anggota ini tidak memiliki kredensi pengguna root, tidak dapat masuk sebagai pengguna root, dan dicegah memulihkan kata sandi pengguna root. Hubungi administrator Anda jika Anda perlu melakukan tugas yang memerlukan kredensi pengguna root.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengubah kata sandi bagi pengguna akar**
**Izin minimum**  
Untuk melakukan langkah-langkah berikut, Anda harus memiliki setidaknya izin IAM berikut:  
Anda harus masuk sebagai pengguna Akun AWS root, yang tidak memerlukan izin tambahan AWS Identity and Access Management (IAM). Anda tidak dapat melakukan langkah-langkah ini sebagai pengguna atau peran IAM.

1. Buka [AWS Management Console](https://console.aws.amazon.com/) dan masuk menggunakan kredensi pengguna root Anda.

   Untuk petunjuk, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sudut kanan atas konsol, pilih nama atau nomor akun Anda, lalu pilih **Kredensial Keamanan**.

1. Pada halaman **Akun**, di samping **Pengaturan akun**, pilih **Edit**. Anda diminta untuk mengautentikasi ulang untuk tujuan keamanan.
**catatan**  
Jika Anda tidak melihat opsi **Edit**, kemungkinan Anda tidak masuk sebagai pengguna root untuk akun Anda. Anda tidak dapat mengubah setelan akun saat masuk sebagai pengguna atau peran IAM.

1. Pada halaman **Perbarui pengaturan akun**, di bawah **Kata Sandi**, pilih **Edit**.

1. Pada halaman **Perbarui kata sandi Anda**, isi kolom untuk **Kata sandi saat ini, Kata sandi** **baru**, dan **Konfirmasi kata sandi baru**.
**penting**  
Pastikan untuk memilih kata sandi yang kuat. Meskipun Anda dapat menetapkan kebijakan kata sandi akun untuk pengguna IAM, kebijakan tersebut tidak berlaku untuk pengguna root.

   AWS mengharuskan kata sandi Anda memenuhi ketentuan berikut:
   + Itu harus memiliki minimal 8 karakter dan maksimal 128 karakter.
   + Ini harus mencakup minimal tiga dari campuran tipe karakter berikut: huruf besar, huruf kecil, angka, dan\$1 @ \$1 \$1% ^ & \$1 () <> [] \$1\$1 \$1 \$1\$1-= simbol.
   + Itu tidak boleh identik dengan Akun AWS nama atau alamat email Anda.

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI or AWS SDK ]

Tugas ini tidak didukung di AWS CLI atau oleh operasi API dari salah satu AWS SDKs. Anda dapat melakukan tugas ini hanya dengan menggunakan Konsol Manajemen AWS.

------

# Setel ulang kata sandi pengguna root yang hilang atau terlupakan
<a name="reset-root-password"></a>

Saat pertama kali membuat Akun AWS, Anda memberikan alamat email dan kata sandi. Ini adalah Pengguna root akun AWS kredensialmu. Jika Anda lupa kata sandi pengguna root Anda, Anda dapat mengatur ulang kata sandi dari file Konsol Manajemen AWS.

Akun AWS dikelola menggunakan AWS Organizations mungkin memiliki [akses root terpusat](id_root-user.md#id_root-user-access-management) yang diaktifkan untuk akun anggota. Akun anggota ini tidak memiliki kredensi pengguna root, tidak dapat masuk sebagai pengguna root, dan dicegah memulihkan kata sandi pengguna root. Hubungi administrator Anda jika Anda perlu melakukan tugas yang memerlukan kredensi pengguna root.

**penting**  
**Mengalami masalah saat masuk AWS?** Pastikan Anda berada di [halaman masuk AWS](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html) yang benar untuk jenis pengguna Anda. Jika Anda adalah Pengguna root akun AWS (pemilik akun), Anda dapat masuk AWS menggunakan kredenal yang Anda atur saat membuat. Akun AWS Jika Anda adalah pengguna IAM, administrator akun Anda dapat memberi Anda kredensi yang dapat Anda gunakan untuk masuk. AWS Jika Anda perlu meminta dukungan, jangan gunakan tautan umpan balik di halaman ini, karena formulir diterima oleh tim AWS Dokumentasi, bukan Dukungan. Sebagai gantinya, pada halaman [Hubungi Kami](https://aws.amazon.com/contact-us/) pilih **Masih tidak dapat masuk ke AWS akun Anda** dan kemudian pilih salah satu opsi dukungan yang tersedia.

**Untuk mengatur ulang kata sandi pengguna root Anda**

1. Buka [AWS Management Console](https://console.aws.amazon.com/) dan masuk menggunakan kredensi pengguna root Anda.

   Untuk petunjuk, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.
**catatan**  
 Jika Anda masuk ke kredensi *pengguna [Konsol Manajemen AWS](https://console.aws.amazon.com/)dengan IAM*, maka Anda harus keluar sebelum Anda dapat mengatur ulang kata sandi pengguna root. Jika Anda melihat halaman masuk pengguna IAM khusus akun, pilih **Masuk menggunakan kredensial akun akar** di dekat bagian bawah halaman. Jika perlu, berikan alamat email akun Anda dan pilih **Selanjutnya** untuk mengakses halaman **Masuk ke pengguna akar**.

1. Pilih **Lupa kata sandi Anda?**.
**catatan**  
Jika Anda adalah pengguna IAM, opsi ini tidak tersedia. **Lupa kata sandi Anda?** opsi hanya tersedia untuk akun pengguna root. Pengguna IAM harus meminta administrator mereka untuk mengatur ulang kata sandi yang terlupakan. Untuk informasi selengkapnya, lihat [Saya lupa kata sandi pengguna IAM untuk akun saya AWS](https://docs.aws.amazon.com/signin/latest/userguide/troubleshooting-sign-in-issues.html#troubleshoot-forgot-iam-password). Jika Anda masuk melalui portal AWS akses, lihat [Menyetel ulang kata sandi pengguna Pusat Identitas IAM Anda](https://docs.aws.amazon.com/singlesignon/latest/userguide/resetpassword-accessportal.html).

1. Masukkan alamat email yang terkait dengan akun tersebut. Kemudian berikan teks CAPTCHA dan pilih **Lanjutkan**.

1. Periksa email yang terkait dengan Anda Akun AWS untuk pesan dari Amazon Web Services. Email akan datang dari alamat yang berakhiran`@verify.signin.aws`. Ikuti petunjuk di dalam email. Jika Anda tidak melihat email di akun Anda, periksa folder spam Anda. Jika Anda tidak lagi memiliki akses ke email, lihat [Saya tidak memiliki akses ke email untuk AWS akun saya](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-troubleshooting.html#credentials-not-working-console) di *Panduan AWS Sign-In Pengguna*.

# Buat kunci akses untuk pengguna root
<a name="id_root-user_manage_add-key"></a>

**Awas**  
Kami sangat menyarankan agar Anda **tidak** membuat pasangan kunci akses untuk pengguna root Anda. Karena [hanya beberapa tugas yang memerlukan pengguna root](id_root-user.md#root-user-tasks) dan Anda biasanya jarang melakukan tugas-tugas tersebut, kami sarankan masuk ke Konsol Manajemen AWS untuk melakukan tugas pengguna root. Sebelum membuat kunci akses, tinjau [alternatif untuk kunci akses jangka panjang](security-creds-programmatic-access.md#security-creds-alternatives-to-long-term-access-keys).

Meskipun kami tidak merekomendasikannya, Anda dapat membuat kunci akses untuk pengguna root Anda sehingga Anda dapat menjalankan perintah di AWS Command Line Interface (AWS CLI) atau menggunakan operasi API dari salah satu kredensi pengguna root yang AWS SDKs menggunakan. Saat Anda membuat access key, Anda membuat access key ID dan secret access key sebagai satu set. Selama pembuatan kunci akses, AWS memberi Anda satu kesempatan untuk melihat dan mengunduh bagian kunci akses rahasia dari kunci akses. Jika Anda tidak mengunduhnya atau Anda kehilangannya, Anda dapat menghapus access key itu lalu membuat yang baru. Anda dapat membuat kunci akses pengguna root dengan konsol, AWS CLI, atau AWS API.

Access key yang baru dibuat memiliki status *aktif*, yang berarti bahwa Anda dapat menggunakan access key itu untuk panggilan CLI dan API. Anda dapat menetapkan hingga dua kunci akses ke pengguna root.

Kunci akses yang tidak digunakan harus dinonaktifkan. Setelah kunci akses tidak aktif, Anda tidak dapat menggunakannya untuk panggilan API. Kunci tidak aktif masih dihitung terhadap batas Anda. Anda dapat membuat atau menghapus access key kapan saja. Namun, ketika Anda menghapus access key, kunci tersebut hilang selamanya dan tidak dapat diambil kembali.

------
#### [ Konsol Manajemen AWS ]

**Untuk membuat kunci akses untuk Pengguna root akun AWS**
**Izin minimum**  
Untuk melakukan langkah-langkah berikut, Anda harus memiliki setidaknya izin IAM berikut:  
Anda harus masuk sebagai pengguna Akun AWS root, yang tidak memerlukan izin tambahan AWS Identity and Access Management (IAM). Anda tidak dapat melakukan langkah-langkah ini sebagai pengguna atau peran IAM.

1. Buka [AWS Management Console](https://console.aws.amazon.com/) dan masuk menggunakan kredensi pengguna root Anda.

   Untuk petunjuk, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sudut kanan atas konsol, pilih nama atau nomor akun Anda, lalu pilih **Kredensial Keamanan**. 

1. Pada bagian **Access key**, pilih **Buat access key**. Jika opsi ini tidak tersedia, maka Anda sudah memiliki jumlah maksimum kunci akses. Anda harus menghapus salah satu kunci akses yang ada sebelum Anda dapat membuat kunci baru. Untuk informasi selengkapnya, lihat [Kuota Objek IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entities). 

1. Pada halaman **Alternatives to root user access keys**, tinjau rekomendasi keamanan. Untuk melanjutkan, pilih kotak centang, lalu pilih **Buat kunci akses**. 

1. Pada halaman **Retrieve access key**, ID **kunci Access** Anda akan ditampilkan. 

1. Di bawah **Kunci akses rahasia**, pilih **Tampilkan** dan kemudian salin ID kunci akses dan kunci rahasia dari jendela browser Anda dan tempelkan di tempat yang aman. Atau, Anda dapat memilih **Unduh file.csv** yang akan mengunduh file bernama `rootkey.csv` yang berisi ID kunci akses dan kunci rahasia. Simpan file di tempat yang aman.

1. Pilih **Selesai**. Ketika Anda tidak lagi memerlukan kunci akses, [kami sarankan Anda menghapusnya](id_root-user_manage_delete-key.md), atau setidaknya pertimbangkan untuk menonaktifkannya sehingga tidak ada yang bisa menyalahgunakannya.

------
#### [ AWS CLI & SDKs ]

**Untuk membuat kunci akses untuk pengguna root**
**catatan**  
Untuk menjalankan perintah berikut atau operasi API sebagai pengguna root, Anda harus sudah memiliki satu active access key pair. Jika Anda tidak memiliki kunci akses, buat kunci akses pertama menggunakan tombol Konsol Manajemen AWS. Kemudian, Anda dapat menggunakan kredensil dari kunci akses pertama dengan AWS CLI untuk membuat kunci akses kedua, atau untuk menghapus kunci akses.
+ AWS CLI: [aws iam create-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)  
**Example**  

  ```
  $ aws iam create-access-key
  {
      "AccessKey": {
          "UserName": "MyUserName",
          "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
          "Status": "Active",
          "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
          "CreateDate": "2021-04-08T19:30:16+00:00"
      }
  }
  ```
+ AWS API: [CreateAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html)dalam *Referensi API IAM*. 

------

# Hapus kunci akses untuk pengguna root
<a name="id_root-user_manage_delete-key"></a>

Anda dapat menggunakan Konsol Manajemen AWS, AWS CLI atau AWS API untuk menghapus kunci akses pengguna root.

------
#### [ Konsol Manajemen AWS ]

**Untuk menghapus kunci akses untuk pengguna root**
**Izin minimum**  
Untuk melakukan langkah-langkah berikut, Anda harus memiliki setidaknya izin IAM berikut:  
Anda harus masuk sebagai pengguna Akun AWS root, yang tidak memerlukan izin tambahan AWS Identity and Access Management (IAM). Anda tidak dapat melakukan langkah-langkah ini sebagai pengguna atau peran IAM.

1. Buka [AWS Management Console](https://console.aws.amazon.com/) dan masuk menggunakan kredensi pengguna root Anda.

   Untuk petunjuk, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sudut kanan atas konsol, pilih nama atau nomor akun Anda, lalu pilih **Kredensial Keamanan**. 

1. Di bagian **Kunci akses**, pilih tombol akses yang ingin Anda hapus, lalu, di bawah **Tindakan**, pilih **Hapus**.
**catatan**  
Atau, Anda dapat **Menonaktifkan** kunci akses, alih-alih menghapusnya secara permanen. Dengan cara ini Anda dapat melanjutkan menggunakannya di masa depan tanpa harus mengubah ID kunci atau kunci rahasia. Meskipun kuncinya tidak aktif, setiap upaya untuk menggunakannya dalam permintaan ke AWS API gagal dengan akses kesalahan ditolak.

1. Pada <access key ID>kotak dialog **Hapus**, pilih **Nonaktifkan**, masukkan ID kunci akses untuk mengonfirmasi bahwa Anda ingin menghapusnya, lalu pilih **Hapus**. 

------
#### [ AWS CLI & SDKs ]

**Untuk menghapus kunci akses untuk pengguna root**
**Izin minimum**  
Untuk melakukan langkah-langkah berikut, Anda harus memiliki setidaknya izin IAM berikut:  
Anda harus masuk sebagai pengguna Akun AWS root, yang tidak memerlukan izin tambahan AWS Identity and Access Management (IAM). Anda tidak dapat melakukan langkah-langkah ini sebagai pengguna atau peran IAM.
+ AWS CLI: [aws iam delete-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)  
**Example**  

  ```
  $ aws iam delete-access-key \
      --access-key-id AKIAIOSFODNN7EXAMPLE
  ```

  Perintah ini tidak menghasilkan output saat berhasil.
+ AWS API: [DeleteAccessKey](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html) 

------

## Tugas yang memerlukan kredensial pengguna root
<a name="root-user-tasks"></a>

Kami menyarankan Anda [mengonfigurasi pengguna administratif AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) untuk melakukan tugas sehari-hari dan mengakses AWS sumber daya. Namun, Anda dapat melakukan tugas yang tercantum di bawah ini hanya saat masuk sebagai pengguna root akun.

Untuk menyederhanakan pengelolaan kredensyal pengguna root istimewa di seluruh akun anggota di AWS Organizations, Anda dapat mengaktifkan akses root terpusat untuk membantu Anda mengamankan akses yang sangat istimewa secara terpusat ke akun Anda. Akun AWS[Kelola akses root untuk akun anggota secara terpusat](#id_root-user-access-management)memungkinkan Anda menghapus dan mencegah pemulihan kredensi pengguna root jangka panjang secara terpusat, meningkatkan keamanan akun di organisasi Anda. Setelah mengaktifkan fitur ini, Anda dapat melakukan tugas istimewa berikut di akun anggota.
+ Hapus kredensi pengguna root akun anggota untuk mencegah pemulihan akun pengguna root. Anda juga dapat mengizinkan pemulihan kata sandi untuk memulihkan kredensi pengguna root untuk akun anggota.
+ Hapus kebijakan bucket yang salah konfigurasi yang menolak semua prinsipal mengakses bucket Amazon S3.
+ Hapus kebijakan berbasis sumber daya Amazon Simple Queue Service yang menolak semua prinsipal mengakses antrian Amazon SQS.

**Tugas Manajemen Akun**
+ [Ubah Akun AWS pengaturan Anda.](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-root-user.html) Standalone Akun AWS yang bukan bagian dari AWS Organizations memerlukan kredensyal root untuk memperbarui alamat email, kata sandi pengguna root, dan kunci akses pengguna root. Pengaturan akun lainnya, seperti nama akun, informasi kontak, kontak alternatif, preferensi mata uang pembayaran, dan Wilayah AWS, tidak memerlukan kredensi pengguna root.
**catatan**  
AWS Organizations, dengan semua fitur diaktifkan, dapat digunakan untuk mengelola pengaturan akun anggota secara terpusat dari akun manajemen dan akun admin yang didelegasikan. Pengguna IAM resmi atau peran IAM di akun manajemen dan akun admin yang didelegasikan dapat menutup akun anggota dan memperbarui alamat email root, nama akun, informasi kontak, kontak alternatif, dan akun Wilayah AWS anggota. 
+ [Tutup Anda Akun AWS.](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/close-account.html) Standalone Akun AWS yang bukan bagian dari AWS Organizations memerlukan kredensi root untuk menutup akun. Dengan AWS Organizations, Anda dapat menutup akun anggota secara terpusat dari akun manajemen dan akun admin yang didelegasikan.
+ [Kembalikan izin pengguna IAM.](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) Jika satu-satunya administrator IAM secara tidak sengaja mencabut izinnya sendiri, Anda dapat masuk sebagai pengguna root untuk mengedit kebijakan dan memulihkan izin tersebut.

**Tugas Penagihan**
+ [Aktifkan akses IAM ke konsol Manajemen Penagihan dan Biaya](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/control-access-billing.html#ControllingAccessWebsite-Activate).
+ Beberapa tugas Penagihan terbatas pada pengguna root. Lihat [Mengelola](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-account-payment.html) Panduan AWS Billing Pengguna Akun AWS di untuk informasi selengkapnya.
+ Lihat faktur pajak tertentu. Pengguna IAM dengan [aws-portal: ViewBilling](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#user-permissions) izin dapat melihat dan mengunduh faktur PPN dari AWS Eropa, tetapi tidak AWS Inc. atau (AISPL). Amazon Internet Services Private Limited

**AWS GovCloud (US) Tugas**
+ [Daftar AWS GovCloud (US)](https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/getting-started-sign-up.html).
+ Minta kunci akses pengguna root AWS GovCloud (US) akun dari AWS Dukungan.

**Tugas Amazon EC2**
+ [Mendaftar sebagai penjual](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html) di Marketplace Instans Cadangan.

**AWS KMS Tugas**
+ Jika AWS Key Management Service kunci menjadi tidak dapat dikelola, administrator dapat memulihkannya dengan menghubungi Dukungan; Namun, Dukungan menanggapi nomor telepon utama pengguna root Anda untuk otorisasi dengan mengonfirmasi OTP tiket.

**Tugas Amazon Mechanical Turk**
+  [Tautkan Anda Akun AWS ke akun MTurk Pemohon Anda](https://docs.aws.amazon.com/AWSMechTurk/latest/AWSMechanicalTurkGettingStartedGuide/SetUp.html#accountlinking).

**Tugas Layanan Penyimpanan Sederhana Amazon**
+ [Konfigurasikan bucket Amazon S3 untuk mengaktifkan MFA (otentikasi multi-faktor)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html).
+ [Edit atau hapus kebijakan bucket Amazon S3 yang menyangkal semua prinsipal](https://aws.amazon.com/premiumsupport/knowledge-center/change-vpc-endpoint-s3-bucket-policy/).

  Anda dapat menggunakan tindakan istimewa untuk membuka kunci bucket Amazon S3 dengan kebijakan bucket yang salah dikonfigurasi. Lihat perinciannya di [Lakukan tugas istimewa di akun AWS Organizations anggota](id_root-user-privileged-task.md).

**Tugas Layanan Antrian Sederhana Amazon**
+ [Mengedit atau menghapus kebijakan berbasis sumber daya Amazon SQS yang menyangkal semua](https://aws.amazon.com/premiumsupport/knowledge-center/sqs-queue-access-issues-deny-policy) prinsipal.

  Anda dapat menggunakan tindakan istimewa untuk membuka kunci antrean Amazon SQS dengan kebijakan berbasis sumber daya yang salah dikonfigurasi. Lihat perinciannya di [Lakukan tugas istimewa di akun AWS Organizations anggota](id_root-user-privileged-task.md).

## Sumber daya tambahan
<a name="id_root-user-resources"></a>

Untuk informasi selengkapnya tentang pengguna AWS root, lihat sumber daya berikut:
+ Untuk bantuan terkait masalah pengguna root, lihat[Memecahkan masalah dengan pengguna root](troubleshooting_root-user.md).
+ Untuk mengelola alamat email pengguna root secara terpusat AWS Organizations, lihat [Memperbarui alamat email pengguna root untuk akun anggota](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_update_primary_email.html) di *Panduan AWS Organizations Pengguna*.

Artikel berikut memberikan informasi tambahan tentang bekerja dengan pengguna root.
+ [Apa saja praktik terbaik untuk mengamankan sumber daya saya Akun AWS dan sumber dayanya?](https://repost.aws/knowledge-center/security-best-practices)
+ [Bagaimana cara membuat aturan EventBridge acara untuk memberi tahu saya bahwa pengguna root saya digunakan?](https://repost.aws/knowledge-center/root-user-account-eventbridge-rule) 
+ [Memantau dan memberi tahu aktivitas Pengguna root akun AWS](https://aws.amazon.com/blogs/mt/monitor-and-notify-on-aws-account-root-user-activity/) 
+ [Pantau aktivitas pengguna root IAM](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-iam-root-user-activity.html) 

# Pengguna IAM:
<a name="id_users"></a>

**penting**  
 [Praktik terbaik](best-practices.md) IAM merekomendasikan agar Anda mengharuskan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara alih-alih menggunakan pengguna IAM dengan kredensi jangka panjang. Kami menyarankan Anda hanya menggunakan pengguna IAM untuk [kasus penggunaan tertentu](gs-identities-iam-users.md) yang tidak didukung oleh pengguna federasi.

*Pengguna IAM* adalah entitas yang Anda buat di. Akun AWS Pengguna IAM mewakili pengguna manusia atau beban kerja yang menggunakan pengguna IAM untuk berinteraksi dengan sumber daya. AWS Pengguna IAM terdiri dari nama dan kredensional.

Pengguna IAM dengan izin administrator tidak sama dengan. Pengguna root akun AWS Untuk informasi lebih lanjut tentang pengguna akar, lihat [Pengguna root akun AWS](id_root-user.md).

## Bagaimana AWS mengidentifikasi pengguna IAM
<a name="id_users_create_aws-identifiers"></a>

Saat Anda membuat pengguna IAM, IAM menciptakan cara-cara berikut untuk mengidentifikasi pengguna tersebut:
+ Sebuah “nama ramah” untuk pengguna IAM, yang merupakan nama yang Anda tentukan ketika Anda membuat pengguna IAM, seperti `Richard` atau. `Anaya` Ini adalah nama yang Anda lihat di Konsol Manajemen AWS. Karena nama pengguna IAM muncul di Amazon Resource Names (ARNs), kami tidak menyarankan untuk menyertakan informasi identifikasi pribadi dalam nama IAM. Lihat persyaratan dan batasan untuk nama IAM. [Persyaratan nama IAM](reference_iam-quotas.md#reference_iam-quotas-names)
+ Nama Sumber Daya Amazon (ARN) untuk pengguna IAM. Anda menggunakan ARN ketika Anda perlu mengidentifikasi pengguna IAM secara unik di semua. AWS Misalnya, Anda dapat menggunakan ARN untuk menentukan pengguna IAM sebagai `Principal` kebijakan IAM untuk bucket Amazon S3. ARN untuk pengguna IAM mungkin terlihat seperti berikut ini: 

  `arn:aws:iam::account-ID-without-hyphens:user/Richard`
+ Pengidentifikasi unik untuk pengguna IAM. ID ini dikembalikan hanya ketika Anda menggunakan API, Alat untuk Windows PowerShell, atau AWS CLI untuk membuat pengguna IAM; Anda tidak melihat ID ini di konsol.

Untuk informasi selengkapnya tentang pengidentifikasi ini, lihat [Pengidentifikasi IAM](reference_identifiers.md).

## Pengguna dan kredensialnya IAM
<a name="id_users_creds"></a>

Anda dapat mengakses dengan berbagai AWS cara tergantung pada kredensi pengguna IAM:
+ [**Kata sandi konsol**](id_credentials_passwords.md): Kata sandi yang dapat diketik pengguna IAM untuk masuk ke sesi interaktif seperti. Konsol Manajemen AWS Menonaktifkan kata sandi (akses konsol) untuk pengguna IAM mencegah mereka masuk ke Konsol Manajemen AWS menggunakan kredenal masuk mereka. Hal ini tidak mengubah izin mereka atau mencegah mereka mengakses konsol menggunakan peran yang diasumsikan. Pengguna IAM dengan akses konsol diaktifkan juga dapat menggunakan kredensi yang sama ini untuk mengautentikasi untuk AWS CLI dan akses SDK menggunakan perintah. `aws login` AWS CLI Pengguna ini harus memiliki [SignInLocalDevelopmentAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/SignInLocalDevelopmentAccess.html)izin. Lihat [Authentication and access credentials for the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html) in *Panduan AWS Command Line Interface Pengguna* untuk detail selengkapnya. 
+ [**Kunci akses**](id_credentials_access-keys.md): Digunakan untuk melakukan panggilan terprogram ke AWS. Namun, ada alternatif yang lebih aman untuk dipertimbangkan sebelum Anda membuat kunci akses untuk pengguna IAM. Untuk informasi selengkapnya, lihat [Pertimbangan dan alternatif untuk kunci akses jangka panjang](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#alternatives-to-long-term-access-keys) di. *Referensi Umum AWS* Jika pengguna IAM memiliki kunci akses aktif, mereka terus berfungsi dan mengizinkan akses melalui AWS CLI, Alat untuk Windows, AWS API PowerShell, atau AWS Console Mobile Application.
+ [**Kunci SSH untuk digunakan dengan CodeCommit**](id_credentials_ssh-keys.md): Kunci publik SSH dalam format OpenSSH yang dapat digunakan untuk diautentikasi dengan CodeCommit.
+ [**Sertifikat server**](id_credentials_server-certs.md): SSL/TLS sertifikat yang dapat Anda gunakan untuk mengautentikasi dengan beberapa AWS layanan. Kami menyarankan Anda menggunakan AWS Certificate Manager (ACM) untuk menyediakan, mengelola, dan menyebarkan sertifikat server Anda. Gunakan IAM hanya ketika Anda harus mendukung koneksi HTTPS di wilayah yang tidak didukung oleh ACM. Untuk mempelajari wilayah mana yang mendukung ACM, lihat [AWS Certificate Manager titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/acm.html) di. *Referensi Umum AWS*

Anda dapat memilih kredensial yang tepat untuk pengguna IAM Anda. Ketika Anda menggunakan Konsol Manajemen AWS untuk membuat pengguna IAM, Anda harus memilih untuk setidaknya menyertakan kata sandi konsol atau kunci akses. Secara default, pengguna IAM baru yang dibuat menggunakan AWS API AWS CLI atau tidak memiliki kredensi apa pun. Anda harus membuat jenis kredensi untuk pengguna IAM berdasarkan kasus penggunaan Anda. 

Anda memiliki opsi berikut untuk mengelola kata sandi, kunci akses, dan perangkat otentikasi multi-faktor (MFA):
+ **[Kelola kata sandi untuk pengguna IAM Anda](id_credentials_passwords.md).** Buat dan ubah kata sandi yang mengizinkan akses ke Konsol Manajemen AWS. Atur kebijakan kata sandi untuk menerapkan kerumitan kata sandi minimum. Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri. 
+ **[Kelola kunci akses untuk pengguna IAM Anda](id_credentials_access-keys.md).** Buat dan perbarui kunci akses untuk akses terprogram ke sumber daya di akun Anda. 
+ **[Aktifkan otentikasi multi-faktor (MFA) untuk](id_credentials_mfa.md) pengguna IAM.** Sebagai [praktik terbaik](best-practices.md), kami menyarankan Anda memerlukan otentikasi multi-faktor untuk semua pengguna IAM di akun Anda. Dengan MFA, pengguna IAM harus memberikan dua bentuk identifikasi: Pertama, mereka memberikan kredensi yang merupakan bagian dari identitas pengguna mereka (kata sandi atau kunci akses). Selain itu, mereka menyediakan kode numerik sementara yang dihasilkan pada perangkat keras atau oleh aplikasi pada smartphone atau tablet.
+ **[Temukan kata sandi dan kunci akses yang tidak digunakan](id_credentials_finding-unused.md).** Siapa pun yang memiliki kata sandi atau kunci akses untuk akun Anda atau pengguna IAM di akun Anda memiliki akses ke AWS sumber daya Anda. [Praktik keamanan terbaik](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) adalah menghapus kata sandi dan kunci akses saat pengguna IAM tidak lagi membutuhkannya.
+ **[Unduh laporan kredenal untuk akun Anda](id_credentials_getting-report.md).** Anda dapat membuat dan mengunduh laporan kredensial yang mencantumkan semua pengguna IAM di akun Anda dan status berbagai kredensial mereka, termasuk kata sandi, kunci akses, dan perangkat MFA. Untuk kata sandi dan access key, laporan kredensial menunjukkan bagaimana kata sandi atau access key telah digunakan baru-baru ini.

## Pengguna dan izin IAM
<a name="id_users_perms"></a>

Secara default, pengguna IAM baru tidak memiliki [izin](access.md) untuk melakukan apa pun. Mereka tidak berwenang untuk melakukan AWS operasi apa pun atau mengakses AWS sumber daya apa pun. Keuntungan memiliki pengguna IAM individual adalah Anda dapat memberikan izin secara individu kepada setiap pengguna. Anda dapat menetapkan izin administratif untuk beberapa pengguna, yang kemudian dapat mengelola AWS sumber daya Anda dan bahkan dapat membuat dan mengelola pengguna IAM lainnya. Namun, dalam kebanyakan kasus, Anda ingin membatasi izin pengguna hanya pada tugas (AWS tindakan atau operasi) dan sumber daya yang diperlukan untuk pekerjaan itu. 

Bayangkan seorang pengguna bernama Diego. Saat Anda membuat pengguna IAM`Diego`, Anda membuat kata sandi untuknya dan melampirkan izin yang memungkinkannya meluncurkan EC2 instance Amazon tertentu dan membaca (`GET`) informasi dari tabel di database Amazon RDS. Untuk prosedur tentang cara membuat pengguna IAM dan memberi mereka kredensional dan izin awal, lihat. [Buat pengguna IAM di Akun AWS](id_users_create.md) Untuk prosedur tentang cara mengubah izin untuk pengguna yang sudah ada, lihat [Mengubah izin untuk pengguna IAM](id_users_change-permissions.md). Untuk prosedur tentang cara mengubah kata sandi atau access key pengguna, lihat [Kata sandi pengguna di AWS](id_credentials_passwords.md) dan [Kelola access key untuk pengguna IAM](id_credentials_access-keys.md).

Anda juga dapat menambahkan batas izin ke pengguna IAM Anda. Batas izin adalah fitur lanjutan yang memungkinkan Anda menggunakan kebijakan AWS terkelola untuk membatasi izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas kepada pengguna atau peran IAM. Untuk informasi selengkapnya tentang tipe dan penggunaan kebijakan, lihat [Kebijakan dan izin di AWS Identity and Access Management](access_policies.md).

## Pengguna dan akun IAM
<a name="id_users_accounts"></a>

Setiap pengguna IAM dikaitkan dengan satu dan hanya satu Akun AWS. Karena pengguna IAM didefinisikan dalam Anda Akun AWS, mereka tidak perlu memiliki metode pembayaran yang tersimpan. AWS Setiap AWS aktivitas yang dilakukan oleh pengguna IAM di akun Anda akan ditagih ke akun Anda.

Jumlah dan ukuran sumber daya IAM dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat [IAM dan AWS STS kuota](reference_iam-quotas.md).

## Pengguna IAM sebagai akun layanan
<a name="id_users_service_accounts"></a>

Pengguna IAM adalah sumber daya di IAM yang memiliki kredensial dan izin terkait. Pengguna IAM dapat mewakili seseorang atau aplikasi yang menggunakan kredensialnya untuk membuat permintaan. AWS Ini biasanya disebut sebagai *akun layanan*. Jika Anda memilih untuk menggunakan kredensial jangka panjang seorang pengguna IAM di aplikasi Anda, **jangan menyematkan kunci akses secara langsung ke kode aplikasi Anda.** Itu AWS SDKs dan AWS Command Line Interface memungkinkan Anda untuk meletakkan kunci akses di lokasi yang diketahui sehingga Anda tidak harus menyimpannya dalam kode. Untuk informasi selengkapnya, lihat [Mengelola Kunci Akses Pengguna IAM dengan Benar](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html#iam-user-access-keys) di. *Referensi Umum AWS* Atau, sebagai praktik terbaik, Anda dapat [menggunakan kredensial keamanan sementara (peran IAM) alih-alih kunci akses jangka panjang](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html#use-roles).

# Cara pengguna IAM masuk AWS
<a name="id_users_sign-in"></a>

Untuk masuk ke Konsol Manajemen AWS sebagai pengguna IAM, Anda harus memberikan ID akun atau alias akun Anda selain nama pengguna dan kata sandi Anda. Saat administrator Anda membuat pengguna IAM di konsol, seharusnya mereka mengirimkan kredensial masuk Anda, termasuk nama pengguna Anda dan URL ke halaman masuk akun Anda yang mencakup ID akun atau alias akun Anda. 

```
https://My_AWS_Account_ID.signin.aws.amazon.com/console/
```

**Kiat**  
Untuk membuat bookmark untuk halaman masuk akun di browser web, Anda harus mengetikkan URL masuk secara manual untuk akun Anda di entri bookmark. Jangan gunakan fitur bookmark browser web karena pengalihan dapat mengaburkan URL masuk. 

Anda juga dapat masuk di titik akhir masuk umum berikut dan mengetikkan ID akun atau alias akun Anda secara manual:

```
[https://console.aws.amazon.com/](https://console.aws.amazon.com/)
```

Untuk kenyamanan, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna IAM dan informasi akun. Lain kali pengguna pergi ke halaman mana pun di Konsol Manajemen AWS, konsol menggunakan cookie untuk mengarahkan pengguna ke halaman masuk akun.

Anda hanya memiliki akses ke AWS sumber daya yang ditentukan administrator dalam kebijakan yang dilampirkan ke identitas pengguna IAM Anda. Untuk bekerja di konsol, Anda harus memiliki izin untuk melakukan tindakan yang dilakukan konsol, seperti membuat daftar dan membuat AWS sumber daya. Untuk informasi selengkapnya, lihat [Manajemen akses untuk AWS sumber daya](access.md) dan [Contoh kebijakan berbasis identitas IAM](access_policies_examples.md).

**catatan**  
Jika organisasi Anda memiliki sistem identitas yang sudah ada, Anda mungkin ingin membuat satu sistem sekali masuk (SSO). SSO memberi pengguna akses ke Konsol Manajemen AWS akun Anda tanpa mengharuskan mereka memiliki identitas pengguna IAM. SSO juga menghilangkan kebutuhan pengguna untuk masuk ke situs organisasi Anda dan secara AWS terpisah. Untuk informasi selengkapnya, lihat [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md). 

**Detail login login masuk CloudTrail**  
Jika Anda mengaktifkan CloudTrail untuk mencatat peristiwa login ke log Anda, Anda harus mengetahui caranya CloudTrail memilih tempat untuk mencatat peristiwa.
+ Jika pengguna Anda masuk langsung ke konsol, mereka diarahkan ke titik akhir masuk global atau regional, berdasarkan apakah konsol layanan yang dipilih mendukung wilayah. Misalnya, halaman beranda konsol utama mendukung wilayah, jadi jika Anda masuk ke URL berikut ini:

  ```
  https://alias.signin.aws.amazon.com/console
  ```

  Anda dialihkan ke titik akhir masuk regional seperti`https://us-east-2.signin.aws.amazon.com`, menghasilkan entri CloudTrail log regional di log wilayah pengguna:

  Di sisi lain, konsol Amazon S3 tidak mendukung wilayah, jadi jika Anda masuk ke URL berikut ini

  ```
  https://alias.signin.aws.amazon.com/console/s3
  ```

  AWS mengarahkan Anda ke titik akhir masuk global di`https://signin.aws.amazon.com`, menghasilkan entri log global. CloudTrail 
+ Anda dapat secara manual meminta titik akhir masuk regional tertentu dengan masuk ke beranda konsol utama yang diaktifkan wilayah menggunakan sintaks URL seperti berikut ini:

  ```
  https://alias.signin.aws.amazon.com/console?region=ap-southeast-1
  ```

  AWS mengarahkan Anda ke titik akhir masuk `ap-southeast-1` regional dan menghasilkan peristiwa log regional. CloudTrail 

Untuk informasi selengkapnya tentang CloudTrail dan IAM, lihat [Mencatat peristiwa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html) dengan. CloudTrail

Jika pengguna memerlukan akses terprogram untuk bekerja dengan akun Anda, Anda dapat membuat access key pair (ID kunci akses dan kunci akses rahasia) untuk setiap pengguna. Namun, ada alternatif yang lebih aman untuk dipertimbangkan sebelum Anda membuat kunci akses untuk pengguna. Untuk informasi selengkapnya, lihat [Pertimbangan dan alternatif untuk kunci akses jangka panjang](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#alternatives-to-long-term-access-keys) di. *Referensi Umum AWS*

## Sumber daya tambahan
<a name="id_users_sign-in-additional-resources"></a>

Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang AWS login.
+ [Panduan Pengguna AWS Masuk](https://docs.aws.amazon.com/signin/latest/userguide/what-is-sign-in.html) membantu Anda memahami berbagai cara masuk ke Amazon Web Services (AWS), tergantung pada jenis pengguna Anda.
+ Anda dapat mendaftar hingga lima identitas berbeda secara bersamaan dalam satu browser web di file. Konsol Manajemen AWS Untuk detailnya, lihat [Masuk ke beberapa akun](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/multisession.html) di *Panduan Konsol Manajemen AWS Memulai*.

# MFA mengaktifkan login
<a name="console_sign-in-mfa"></a>

Pengguna yang dikonfigurasi dengan perangkat [otentikasi multi-faktor (MFA) harus](id_credentials_mfa.md) menggunakan perangkat MFA mereka untuk masuk ke perangkat MFA. Konsol Manajemen AWS Setelah pengguna memasukkan kredensialnya masuk, AWS periksa akun pengguna untuk melihat apakah MFA diperlukan untuk pengguna tersebut. 

**penting**  
Jika Anda menggunakan kunci akses dan kredenal kunci rahasia untuk Konsol Manajemen AWS akses langsung dengan panggilan AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)API, MFA TIDAK akan diperlukan. Untuk informasi selengkapnya, lihat [Menggunakan kunci akses dan kredensil kunci rahasia untuk akses konsol](securing_access-keys.md#console-access-security-keys).

Topik berikut memberikan informasi tentang bagaimana pengguna menyelesaikan masuk saat MFA diperlukan. 

**Topics**
+ [Beberapa perangkat MFA diaktifkan](#console_sign-in-multiple-mfa)
+ [Kunci keamanan FIDO](#console_sign-in-mfa-fido)
+ [Perangkat MFA virtual](#console_sign-in-mfa-virtual)
+ [Token TOTP perangkat keras](#console_sign-in-mfa-hardware)

## Beberapa perangkat MFA diaktifkan
<a name="console_sign-in-multiple-mfa"></a>

Jika pengguna masuk Konsol Manajemen AWS sebagai pengguna Akun AWS root atau pengguna IAM dengan beberapa perangkat MFA diaktifkan untuk akun itu, mereka hanya perlu menggunakan satu perangkat MFA untuk masuk. Setelah pengguna mengautentikasi dengan kata sandi pengguna, mereka memilih jenis perangkat MFA mana yang ingin mereka gunakan untuk menyelesaikan otentikasi. Kemudian pengguna diminta untuk mengautentikasi dengan jenis perangkat yang mereka pilih. 

## Kunci keamanan FIDO
<a name="console_sign-in-mfa-fido"></a>

Jika MFA diperlukan untuk pengguna, akan muncul halaman masuk kedua. Pengguna perlu mengetuk kunci keamanan FIDO.

**catatan**  
Pengguna Google Chrome tidak boleh memilih salah satu opsi yang tersedia pada pop-up yang meminta **Verifikasi identitas Anda dengan amazon.com**. Anda hanya perlu mengetuk tombol keamanan.

Tidak seperti perangkat MFA lainnya, kunci keamanan FIDO tidak keluar dari sinkron. Administrator dapat menonaktifkan kunci keamanan FIDO jika hilang atau rusak. Untuk informasi selengkapnya, lihat [Menonaktifkan perangkat MFA (konsol)](id_credentials_mfa_disable.md#deactive-mfa-console).

Untuk informasi tentang browser yang mendukung WebAuthn dan perangkat yang mendukung FIDO yang AWS mendukung, lihat. [Konfigurasi yang didukung untuk menggunakan kunci sandi dan kunci keamanan](id_credentials_mfa_fido_supported_configurations.md)

## Perangkat MFA virtual
<a name="console_sign-in-mfa-virtual"></a>

Jika MFA diperlukan untuk pengguna, akan muncul halaman masuk kedua. Di kotak **kode MFA** pengguna harus memasukkan kode numerik yang diberikan oleh aplikasi MFA.

Jika kode MFA sudah benar, pengguna dapat mengakses Konsol Manajemen AWS. Jika kode salah, pengguna dapat mencoba kembali dengan kode lain. 

Perangkat MFA virtual bisa jadi tidak sinkron. Jika pengguna tidak dapat masuk ke Konsol Manajemen AWS setelah beberapa kali mencoba, pengguna diminta untuk menyinkronkan perangkat MFA virtual. Pengguna dapat mengikuti perintah di layar untuk menyinkronkan perangkat MFA virtual. Untuk informasi tentang cara menyinkronkan perangkat atas nama pengguna di perangkat Anda Akun AWS, lihat[Sinkronisasi ulang perangkat MFA virtual dan perangkat keras](id_credentials_mfa_sync.md). 

## Token TOTP perangkat keras
<a name="console_sign-in-mfa-hardware"></a>

Jika MFA diperlukan untuk pengguna, akan muncul halaman masuk kedua. Dalam kotak **kode MFA**, pengguna harus memasukkan kode numerik yang disediakan oleh token TOTP perangkat keras. 

Jika kode MFA sudah benar, pengguna dapat mengakses Konsol Manajemen AWS. Jika kode salah, pengguna dapat mencoba kembali dengan kode lain. 

Token TOTP perangkat keras bisa tidak sinkron. Jika pengguna tidak dapat masuk Konsol Manajemen AWS setelah beberapa kali mencoba, pengguna diminta untuk menyinkronkan perangkat token MFA. Pengguna dapat mengikuti perintah di layar untuk menyinkronkan perangkat token MFA. Untuk informasi tentang cara menyinkronkan perangkat atas nama pengguna di perangkat Anda Akun AWS, lihat[Sinkronisasi ulang perangkat MFA virtual dan perangkat keras](id_credentials_mfa_sync.md). 

# Buat pengguna IAM di Akun AWS
<a name="id_users_create"></a>

**penting**  
 [Praktik terbaik](best-practices.md) IAM merekomendasikan agar Anda mengharuskan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara alih-alih menggunakan pengguna IAM dengan kredensi jangka panjang. Kami menyarankan Anda hanya menggunakan pengguna IAM untuk [kasus penggunaan tertentu](gs-identities-iam-users.md) yang tidak didukung oleh pengguna federasi.

Proses pembuatan pengguna IAM dan memungkinkan pengguna untuk melakukan tugas terdiri dari langkah-langkah berikut:

1. Buat [pengguna di Konsol Manajemen AWSAWS CLI, Alat](getting-started-workloads.md) untuk Windows PowerShell, atau menggunakan operasi AWS API. Jika Anda membuat pengguna di Konsol Manajemen AWS, maka langkah 1-4 ditangani secara otomatis, berdasarkan pilihan Anda. Jika Anda membuat pengguna IAM secara terprogram, maka Anda harus melakukan masing-masing langkah tersebut secara individual.

1. Buat kredensial untuk pengguna, tergantung pada jenis akses yang diperlukan pengguna:
   + **Aktifkan akses konsol — *opsional***: Jika pengguna perlu mengakses Konsol Manajemen AWS, [buat kata sandi untuk pengguna](id_credentials_passwords_admin-change-user.md). Menonaktifkan akses konsol untuk pengguna mencegah mereka masuk ke Konsol Manajemen AWS menggunakan nama pengguna dan kata sandi mereka. Hal ini tidak mengubah izin mereka atau mencegah mereka mengakses konsol menggunakan peran yang diasumsikan.
**Tip**  
Buat hanya kredenal yang dibutuhkan pengguna. Misalnya, untuk pengguna yang membutuhkan akses hanya melalui Konsol Manajemen AWS, jangan membuat kunci akses.

1. Berikan izin pengguna untuk melakukan tugas yang diperlukan. Kami menyarankan Anda menempatkan pengguna IAM Anda dalam grup dan mengelola izin melalui kebijakan yang dilampirkan ke grup tersebut. Namun, Anda juga dapat memberikan izin dengan melampirkan kebijakan izin langsung ke pengguna. Jika Anda menggunakan konsol untuk menambahkan pengguna, Anda dapat menyalin izin dari pengguna yang ada ke pengguna baru.

   Anda juga dapat menambahkan [batas izin](access_policies_boundaries.md) untuk membatasi izin pengguna dengan menentukan kebijakan yang menentukan izin maksimum yang dapat dimiliki pengguna. Batas izin tidak memberikan izin apa pun.

   Untuk petunjuk cara membuat kebijakan izin khusus yang akan digunakan untuk memberikan izin atau menetapkan batas izin, lihat. [Tentukan izin IAM khusus dengan kebijakan terkelola pelanggan](access_policies_create.md)

1. (Opsional) Tambahkan metadata ke pengguna dengan melampirkan tag. Untuk informasi selengkapnya tentang menggunakan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md).

1. Berikan informasi masuk yang diperlukan kepada pengguna. Ini mencakup kata sandi dan URL konsol untuk halaman masuk akun tempat pengguna memberikan kredensial tersebut. Untuk informasi selengkapnya, lihat [Cara pengguna IAM masuk AWS](id_users_sign-in.md).

1. (Opsional) Konfigurasi [Multi-Factor Authentication (MFA)](id_credentials_mfa.md) bagi pengguna. MFA mengharuskan pengguna untuk memberikan one-time-use kode setiap kali dia masuk ke dalam. Konsol Manajemen AWS

1. (Opsional) Berikan izin kepada pengguna IAM untuk mengelola kredensi keamanan mereka sendiri. (Secara default, pengguna IAM tidak memiliki izin untuk mengelola kredensialnya sendiri.) Untuk informasi selengkapnya, lihat [Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri](id_credentials_passwords_enable-user-change.md).
**catatan**  
Jika Anda menggunakan konsol untuk membuat pengguna dan Anda memilih **Pengguna harus membuat kata sandi baru saat masuk berikutnya (disarankan)**, pengguna memiliki izin yang diperlukan.

Untuk informasi tentang izin yang Anda butuhkan untuk membuat pengguna, lihat [Izin diperlukan untuk mengakses sumber daya IAM](access_permissions-required.md).

Untuk petunjuk cara membuat pengguna IAM untuk kasus penggunaan tertentu, lihat topik berikut:
+ [Buat pengguna IAM untuk akses darurat](getting-started-emergency-iam-user.md)
+ [Buat pengguna IAM untuk beban kerja yang tidak dapat menggunakan peran IAM](getting-started-workloads.md)

# Lihat pengguna IAM
<a name="id_users_list"></a>

Anda dapat mencantumkan pengguna IAM di grup IAM Anda Akun AWS atau di grup IAM tertentu, dan mencantumkan semua grup IAM tempat pengguna berada. Untuk informasi tentang izin yang Anda butuhkan untuk membuat daftar pengguna, lihat [Izin diperlukan untuk mengakses sumber daya IAM](access_permissions-required.md). 

## Untuk mencantumkan semua pengguna IAM di akun Anda
<a name="id_users_manage_list-users"></a>

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna). 

Konsol menampilkan pengguna IAM di file Anda Akun AWS.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ `[aws iam list-users](https://docs.aws.amazon.com/cli/latest/reference/iam/list-users.html)`

------
#### [ API ]

Panggil operasi berikut:
+ `[ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)` 

------

## Untuk daftar pengguna IAM dalam grup IAM
<a name="id_users_manage_list-users-group"></a>

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Pada panel navigasi, pilih **User groups** (Grup pengguna).

1. Pilih nama grup pengguna. 

Pengguna IAM yang merupakan anggota grup terdaftar di tab **Pengguna**.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ `[aws iam get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html)`

------
#### [ API ]

Panggil operasi berikut:
+ `[GetGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html)` 

------

## Untuk mencantumkan semua grup IAM tempat pengguna berada
<a name="id_users_manage_list-groups-users"></a>

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM. 

1. Pilih tab **Grup** untuk menampilkan daftar grup yang menyertakan pengguna saat ini.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ `[aws iam list-groups-for-user](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups-for-user.html)`

------
#### [ API ]

Panggil operasi berikut:
+ `[ListGroupsForUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html)` 

------

## Langkah selanjutnya
<a name="id_users_list-next-steps"></a>

Setelah Anda memiliki daftar pengguna IAM Anda, Anda dapat mengganti nama, menghapus, atau menonaktifkan pengguna IAM menggunakan prosedur berikut.
+ [Ganti nama pengguna IAM](id_users_rename.md)
+ [Menghapus atau menonaktifkan pengguna IAM](id_users_remove.md)

# Ganti nama pengguna IAM
<a name="id_users_rename"></a>

**catatan**  
Sebagai [praktik terbaik](best-practices.md), kami menyarankan Anda meminta pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara. Jika Anda mengikuti praktik terbaik, Anda tidak mengelola pengguna dan grup IAM. Sebaliknya, pengguna dan grup Anda dikelola di luar AWS dan dapat mengakses AWS sumber daya sebagai *identitas federasi*. Identitas federasi adalah pengguna dari direktori pengguna perusahaan Anda, penyedia identitas web, AWS Directory Service, direktori Pusat Identitas, atau pengguna mana pun yang mengakses AWS layanan dengan menggunakan kredensi yang disediakan melalui sumber identitas. Identitas federasi menggunakan grup yang ditentukan oleh penyedia identitas mereka. Jika Anda menggunakan AWS IAM Identity Center, lihat [Mengelola identitas di Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-sso.html) di *Panduan AWS IAM Identity Center Pengguna* untuk informasi tentang membuat pengguna dan grup di Pusat Identitas IAM.

Amazon Web Services menawarkan beberapa alat untuk mengelola pengguna IAM di Anda Akun AWS. Anda dapat mencantumkan pengguna IAM di akun Anda atau di grup pengguna, atau daftar semua grup IAM yang menjadi anggota pengguna. Anda dapat mengganti nama atau mengubah jalur pengguna IAM. Jika Anda beralih menggunakan identitas federasi alih-alih pengguna IAM, Anda dapat menghapus pengguna IAM dari AWS akun Anda, atau menonaktifkan pengguna.

Untuk informasi lebih lanjut tentang menambahkan, mengubah, atau menghapus kebijakan terkelola untuk pengguna IAM, lihat [Mengubah izin untuk pengguna IAM](id_users_change-permissions.md). Untuk informasi tentang mengelola kebijakan inline untuk pengguna IAM, lihat [Menambahkan dan menghapus izin identitas IAM](access_policies_manage-attach-detach.md), [Edit kebijakan IAM](access_policies_manage-edit.md), dan [Hapus kebijakan IAM](access_policies_manage-delete.md). Sebagai praktik terbaik, gunakan kebijakan terkelola alih-alih kebijakan inline. *AWS kebijakan terkelola* memberikan izin untuk banyak kasus penggunaan umum. Perlu diingat bahwa kebijakan AWS terkelola mungkin tidak memberikan izin hak istimewa paling sedikit untuk kasus penggunaan spesifik Anda karena tersedia untuk digunakan oleh semua pelanggan. AWS Oleh karena itu, kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan [kebijakan terkelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) yang spesifik untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola](access_policies_managed-vs-inline.md#aws-managed-policies). Untuk informasi selengkapnya tentang kebijakan AWS terkelola yang dirancang untuk fungsi pekerjaan tertentu, lihat[AWS kebijakan terkelola untuk fungsi pekerjaan](access_policies_job-functions.md).

Untuk mempelajari tentang memvalidasi kebijakan IAM, lihat. [Validasi kebijakan IAM](access_policies_policy-validator.md)

**Tip**  
[IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) dapat menganalisis layanan dan tindakan yang digunakan peran IAM Anda, dan kemudian menghasilkan kebijakan berbutir halus yang dapat Anda gunakan. Setelah menguji setiap kebijakan yang dihasilkan, Anda dapat menerapkan kebijakan tersebut ke lingkungan produksi. Ini memastikan bahwa Anda hanya memberikan izin yang diperlukan untuk beban kerja Anda. Untuk informasi selengkapnya tentang pembuatan kebijakan, lihat pembuatan [kebijakan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html).

Untuk informasi tentang mengelola kata sandi pengguna IAM, lihat[Kelola kata sandi untuk pengguna IAM](id_credentials_passwords_admin-change-user.md).

## Mengubah nama pengguna IAM
<a name="id_users_renaming"></a>

Untuk mengubah nama atau jalur pengguna, Anda harus menggunakan AWS CLI, Alat untuk Windows PowerShell, atau AWS API. Tidak ada opsi di konsol untuk mengubah nama pengguna. Untuk informasi tentang izin yang Anda butuhkan untuk mengubah nama pengguna, lihat [Izin diperlukan untuk mengakses sumber daya IAM](access_permissions-required.md). 

Saat Anda mengubah nama atau alur pengguna, hal berikut terjadi: 
+ Kebijakan apa pun yang terlampir pada pengguna akan tetap melekat ke pengguna dengan nama baru.
+ Pengguna tetap berada di grup IAM yang sama dengan nama baru.
+ ID unik untuk pengguna tetap sama. Untuk informasi lebih lanjut tentang unik IDs, lihat[Pengidentifikasi unik](reference_identifiers.md#identifiers-unique-ids).
+ Semua kebijakan sumber daya atau peran yang mengacu pada pengguna *sebagai utama* (pengguna diberi akses) secara otomatis diperbarui untuk menggunakan nama atau jalur baru. Misalnya, setiap kebijakan berbasis antrean di Amazon SQS atau kebijakan berbasis sumber daya di Amazon S3 diperbarui secara otomatis untuk menggunakan nama dan jalur baru. 

IAM tidak secara otomatis memperbarui kebijakan yang merujuk ke pengguna *sebagai sumber daya* untuk menggunakan nama atau alur baru; Anda harus melakukannya secara manual. Misalnya, bayangkan pengguna tersebut `Richard` memiliki kebijakan terlampir padanya yang memungkinkannya mengelola kredensial keamanannya. Jika administrator mengubah nama `Richard` untuk `Rich`, administrator juga perlu memperbarui kebijakan tersebut untuk mengubah sumber daya dari:

```
arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Richard
```

ke ini:

```
arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Rich
```

Hal ini juga berlaku jika administrator mengubah alur; administrator perlu memperbarui kebijakan agar mencerminkan jalur baru bagi pengguna. 

### Untuk mengganti nama pengguna
<a name="id_users_manage_list-users-rename"></a>
+ AWS CLI: [aws iam update-user](https://docs.aws.amazon.com/cli/latest/reference/iam/update-user.html)
+ AWS API: [UpdateUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html) 

# Menghapus atau menonaktifkan pengguna IAM
<a name="id_users_remove"></a>

[Praktik terbaik](best-practices.md#remove-credentials) merekomendasikan agar Anda menghapus pengguna IAM yang tidak digunakan dari Anda. Akun AWS Jika Anda ingin mempertahankan kredensi pengguna IAM untuk penggunaan di masa mendatang, alih-alih menghapusnya dari akun, Anda dapat menonaktifkan akses pengguna. Untuk informasi selengkapnya, lihat [Menonaktifkan pengguna IAM](#id_users_deactivating).

**Awas**  
Setelah pengguna IAM dan kunci aksesnya dihapus, mereka tidak dapat dipulihkan atau dipulihkan.

## Prasyarat — Lihat akses pengguna IAM
<a name="users-manage_prerequisites"></a>

Sebelum Anda menghapus pengguna, tinjau aktivitas tingkat layanan terbaru mereka. Ini membantu mencegah penghapusan akses dari kepala sekolah (orang atau aplikasi) yang menggunakannya. Untuk informasi selengkapnya perihal melihat informasi yang terakhir diakses, lihat [Memperbaiki izin dalam AWS menggunakan informasi yang terakhir diakses](access_policies_last-accessed.md).

## Menghapus pengguna IAM (konsol)
<a name="id_users_deleting_console"></a>

Ketika Anda menggunakan Konsol Manajemen AWS untuk menghapus pengguna IAM, IAM secara otomatis menghapus informasi terkait berikut: 
+ Pengidentifikasi pengguna IAM
+ Setiap keanggotaan grup — yaitu, pengguna IAM dihapus dari grup mana pun yang menjadi anggota pengguna IAM
+ Kata sandi apa pun yang terkait dengan pengguna IAM 
+ Semua kebijakan inline yang disematkan di pengguna IAM (kebijakan yang diterapkan pada pengguna IAM menggunakan izin grup pengguna tidak terpengaruh) 
**catatan**  
IAM menghapus kebijakan terkelola apa pun yang dilampirkan ke pengguna IAM saat Anda menghapus pengguna, tetapi tidak menghapus kebijakan terkelola. 
+ Semua perangkat MFA yang terkait

### Untuk menghapus pengguna IAM (konsol)
<a name="id_users_remove-section-1"></a>

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Pengguna**, lalu pilih kotak centang di sebelah nama pengguna IAM yang ingin Anda hapus. 

1. Pilih **Hapus** di bagian atas halaman.
**catatan**  
Jika ada pengguna yang memiliki kunci akses aktif, Anda harus menonaktifkan kunci akses sebelum menghapus pengguna. Untuk informasi selengkapnya, lihat [Untuk menonaktifkan kunci akses untuk pengguna IAM](access-keys-admin-managed.md#admin-deactivate-access-key).

1. Dalam kotak dialog konfirmasi, masukkan nama pengguna dalam bidang input teks untuk mengonfirmasi penghapusan pengguna. Pilih **Hapus**. 

Konsol menampilkan pemberitahuan status bahwa pengguna IAM telah dihapus.

------

## Menghapus pengguna IAM (AWS CLI)
<a name="id_users_deleting_cli"></a>

Berbeda dengan Konsol Manajemen AWS, ketika Anda menghapus pengguna IAM dengan AWS CLI, Anda harus menghapus item yang dilampirkan ke pengguna IAM secara manual. Prosedur ini menggambarkan proses. 

**Untuk menghapus pengguna IAM dari Akun AWS ()AWS CLI**

1. Hapus kata sandi pengguna, jika pengguna memilikinya.

   `[aws iam delete-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-login-profile.html)`

1. Hapus kunci akses pengguna, jika pengguna memilikinya.

   `[aws iam list-access-keys](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)` (untuk mencantumkan kunci akses pengguna) dan `[aws iam delete-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)`

1. Hapus sertifikat masuk pengguna. Perhatikan bahwa ketika Anda menghapus kredensial keamanan, akan hilang selamanya dan tidak dapat dipulihkan.

   `[aws iam list-signing-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-signing-certificates.html)` (untuk mencantumkan sertifikat masuk pengguna) dan `[aws iam delete-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-signing-certificate.html)`

1. Hapus kunci publik SSH pengguna, jika pengguna memilikinya.

   `[aws iam list-ssh-public-keys](https://docs.aws.amazon.com/cli/latest/reference/iam/list-ssh-public-keys.html)` (untuk mencantumkan kunci publik SSH pengguna) dan `[aws iam delete-ssh-public-key](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-ssh-public-key.html)`

1. Hapus kredensial Git pengguna.

   `[aws iam list-service-specific-credentials](https://docs.aws.amazon.com/cli/latest/reference/iam/list-service-specific-credentials.html)` (untuk mencantumkan kredensial git pengguna) dan `[aws iam delete-service-specific-credential](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-specific-credential.html)`

1. Nonaktifkan perangkat Multi-Factor Authentication (MFA) pengguna, jika pengguna memilikinya.

   `[aws iam list-mfa-devices](https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-devices.html)` (untuk mencantumkan perangkat MFA pengguna), `[aws iam deactivate-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html)` (untuk menonaktifkan perangkat), dan `[aws iam delete-virtual-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html)` (untuk menghapus perangkat MFA virtual secara permanen) 

1. Hapus kebijakan inline pengguna. 

   `[aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)` (untuk mencantumkan kebijakan inline bagi pengguna) dan [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html) (untuk menghapus kebijakan) 

1. Lepaskan kebijakan terkelola yang melekat pada pengguna. 

   `[aws iam list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)` (untuk mencantumkan kebijakan terkelola yang melekat pada pengguna) dan [https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html) (untuk melepaskan kebijakan) 

1. Hapus pengguna dari grup IAM apa pun. 

   `[aws iam list-groups-for-user](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups-for-user.html)`(untuk mencantumkan grup IAM yang menjadi milik pengguna) dan `[aws iam remove-user-from-group](https://docs.aws.amazon.com/cli/latest/reference/iam/remove-user-from-group.html)` 

1. Hapus pengguna.

   `[aws iam delete-user](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user.html)` 

## Menonaktifkan pengguna IAM
<a name="id_users_deactivating"></a>

Anda mungkin perlu menonaktifkan pengguna IAM saat mereka sementara jauh dari perusahaan Anda. Anda dapat meninggalkan kredensi pengguna IAM mereka di tempat dan masih memblokir akses mereka. AWS 

Untuk menonaktifkan pengguna, buat dan lampirkan kebijakan untuk menolak akses pengguna. AWS Anda dapat memulihkan akses pengguna nanti.

Berikut adalah dua contoh kebijakan penolakan yang dapat Anda lampirkan ke pengguna untuk menolak akses mereka.

Kebijakan berikut tidak termasuk batas waktu. Anda harus menghapus kebijakan untuk memulihkan akses pengguna.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [ 
      {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*"
      } 
   ]
}
```

------

Kebijakan berikut mencakup kondisi yang memulai kebijakan pada 24 Desember 2024 pukul 23.59 (UTC) dan berakhir pada 28 Februari 2025 pukul 23.59 (UTC).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
          "DateGreaterThan": {"aws:CurrentTime": "2024-12-24T23:59:59Z"},
          "DateLessThan": {"aws:CurrentTime": "2025-02-28T23:59:59Z"}
          }
       }
   ]
}
```

------

# Kontrol akses pengguna IAM ke Konsol Manajemen AWS
<a name="console_controlling-access"></a>

Pengguna IAM dengan izin yang masuk ke Anda Akun AWS melalui Konsol Manajemen AWS dapat mengakses AWS sumber daya Anda. Daftar berikut menunjukkan cara-cara yang dapat Anda berikan kepada pengguna IAM akses ke Akun AWS sumber daya Anda melalui. Konsol Manajemen AWS Ini juga menunjukkan bagaimana pengguna IAM dapat mengakses fitur AWS akun lain melalui AWS situs web.

**catatan**  
Tidak ada biaya untuk menggunakan IAM.

**The Konsol Manajemen AWS**  
Anda membuat kata sandi untuk setiap pengguna IAM yang membutuhkan akses ke file. Konsol Manajemen AWS Pengguna mengakses konsol melalui halaman masuk berkemampuan IAM Akun AWS . Untuk informasi tentang mengakses halaman login, lihat [Cara masuk di AWS Sign-In](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) *Panduan Pengguna*. AWS Untuk informasi tentang cara membuat kata sandi, lihat [Kata sandi pengguna di AWS](id_credentials_passwords.md).  
Anda dapat mencegah pengguna IAM mengakses Konsol Manajemen AWS dengan menghapus kata sandi mereka. Hal ini mencegah mereka masuk ke dalam Konsol Manajemen AWS menggunakan kredensi masuk mereka. Hal ini tidak mengubah izin mereka atau mencegah mereka mengakses konsol menggunakan peran yang diasumsikan. Jika pengguna memiliki kunci akses aktif, mereka terus berfungsi dan mengizinkan akses melalui AWS CLI, Alat untuk Windows, AWS API PowerShell, atau AWS Console Mobile Application.

** AWS Sumber daya Anda, seperti instans Amazon EC2, bucket Amazon S3, dan sebagainya**  
Bahkan jika pengguna IAM Anda memiliki kata sandi, mereka masih memerlukan izin untuk mengakses AWS sumber daya Anda. Saat Anda membuat pengguna IAM, pengguna tersebut tidak memiliki izin secara default. Untuk memberi pengguna IAM izin yang mereka butuhkan, Anda melampirkan kebijakan kepada mereka. Jika Anda memiliki banyak pengguna IAM yang melakukan tugas yang sama dengan sumber daya yang sama, Anda dapat menetapkan pengguna IAM tersebut ke grup. Kemudian tetapkan izin untuk grup tersebut. Untuk informasi tentang membuat pengguna dan grup IAM, lihat[Identitas IAM](id.md). Untuk informasi tentang menggunakan kebijakan untuk mengatur izin, lihat [Manajemen akses untuk AWS sumber daya](access.md).

**AWS Forum Diskusi**  
Siapa pun dapat membaca tulisan di [Forum Diskusi AWS](https://forums.aws.amazon.com/). Pengguna yang ingin memposting pertanyaan atau komentar ke Forum AWS Diskusi dapat melakukannya menggunakan nama pengguna mereka. Saat pertama kali pengguna memposting ke Forum AWS Diskusi, pengguna diminta untuk memasukkan nama panggilan dan alamat email. Hanya pengguna yang dapat menggunakan nama panggilan itu di Forum AWS Diskusi. 

**Informasi Akun AWS penagihan dan penggunaan Anda**  
Anda dapat memberi pengguna akses informasi Akun AWS penagihan dan penggunaan Anda. Untuk informasi selengkapnya, lihat [Mengontrol Akses ke Informasi Penagihan Anda](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/control-access-billing.html) di *Panduan AWS Billing Pengguna*. 

**Informasi Akun AWS profil Anda**  
Pengguna tidak dapat mengakses informasi Akun AWS profil Anda.

**Kredensi Akun AWS keamanan Anda**  
Pengguna tidak dapat mengakses Akun AWS kredensil keamanan Anda.

**catatan**  
Kebijakan IAM mengontrol akses terlepas dari antarmuka. Misalnya, Anda dapat memberikan pengguna dengan kata sandi untuk mengakses Konsol Manajemen AWS. Kebijakan untuk pengguna tersebut (atau grup apa pun yang dimiliki pengguna) akan mengontrol apa yang dapat dilakukan pengguna di Konsol Manajemen AWS. Atau, Anda bisa memberi pengguna kunci AWS akses untuk melakukan panggilan API AWS. Kebijakan ini akan mengontrol tindakan mana yang dapat pengguna hubungi melalui perpustakaan atau klien yang menggunakan access key tersebut untuk autentikasi.

# Mengubah izin untuk pengguna IAM
<a name="id_users_change-permissions"></a>

[Anda dapat mengubah izin untuk pengguna IAM di Anda Akun AWS dengan mengubah keanggotaan grupnya, dengan menyalin izin dari pengguna yang ada, dengan melampirkan kebijakan langsung ke pengguna, atau dengan menetapkan batas izin.](access_policies_boundaries.md) Batas izin mengontrol izin maksimum yang dapat dimiliki pengguna. Batas izin adalah AWS fitur lanjutan.

Untuk informasi tentang izin yang Anda butuhkan untuk memodifikasi izin pengguna, lihat [Izin diperlukan untuk mengakses sumber daya IAM](access_permissions-required.md).

**Topics**
+ [Lihat akses pengguna](#users-modify_prerequisites)
+ [Menghasilkan kebijakan berdasarkan aktivitas akses pengguna](#users_change_permissions-gen-policy)
+ [Menambahkan izin ke pengguna (konsol)](#users_change_permissions-add-console)
+ [Mengubah izin untuk pengguna (konsol)](#users_change_permissions-change-console)
+ [Untuk menghapus kebijakan izin dari pengguna (konsol)](#users_change_permissions-remove-policy-console)
+ [Untuk menghapus batas izin dari pengguna (konsol)](#users_change_permissions-remove-boundary-console)
+ [Menambahkan dan menghapus izin pengguna (AWS CLI atau AWS API)](#users_change_permissions-add-programmatic)

## Lihat akses pengguna
<a name="users-modify_prerequisites"></a>

Sebelum mengubah izin pengguna, Anda harus meninjau aktivitas tingkat-layanan terakhirnya. Ini penting karena Anda tidak ingin menghapus akses dari (orang atau aplikasi) utama yang menggunakannya. Untuk informasi selengkapnya tentang melihat informasi yang terakhir diakses, lihat [Memperbaiki izin dalam AWS menggunakan informasi yang terakhir diakses](access_policies_last-accessed.md).

## Menghasilkan kebijakan berdasarkan aktivitas akses pengguna
<a name="users_change_permissions-gen-policy"></a>

Terkadang Anda dapat memberikan izin ke entitas IAM (pengguna atau peran) di luar yang mereka butuhkan. Untuk membantu Anda menyaring izin yang Anda berikan, Anda dapat membuat kebijakan IAM yang didasarkan pada aktivitas akses untuk entitas. IAM Access Analyzer meninjau AWS CloudTrail log Anda dan menghasilkan templat kebijakan yang berisi izin yang telah digunakan oleh entitas dalam rentang tanggal yang ditentukan. Anda dapat menggunakan templat untuk membuat kebijakan terkelola dengan izin berbutir halus, lalu melampirkannya ke entitas IAM. Dengan begitu, Anda hanya memberikan izin yang dibutuhkan pengguna atau peran untuk berinteraksi dengan AWS sumber daya untuk kasus penggunaan spesifik Anda. Untuk mempelajari selengkapnya, lihat Pembuatan [kebijakan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html).

## Menambahkan izin ke pengguna (konsol)
<a name="users_change_permissions-add-console"></a>

IAM menawarkan tiga cara untuk menambahkan kebijakan izin kepada pengguna:
+ **Tambahkan pengguna IAM ke grup IAM** — Jadikan pengguna sebagai anggota grup. Kebijakan dari grup melekat ke pengguna.
+ **Salin izin dari pengguna IAM yang ada** — Salin semua keanggotaan grup, kebijakan terkelola terlampir, kebijakan sebaris, dan batasan izin yang ada dari pengguna sumber.
+ **Lampirkan kebijakan langsung ke pengguna IAM** — Lampirkan kebijakan terkelola langsung ke pengguna. Untuk pengelolaan izin yang lebih mudah, lampirkan kebijakan Anda ke grup, lalu jadikan anggota pengguna IAM dari grup yang sesuai.

**penting**  
Jika pengguna memiliki batas izin, maka Anda tidak dapat menambahkan lebih banyak izin kepada pengguna daripada yang diizinkan oleh batas izin.

### Untuk menambahkan izin dengan menambahkan pengguna IAM ke grup
<a name="users_change_permissions-add-group-console"></a>

Menambahkan pengguna IAM ke grup IAM akan segera memperbarui izin pengguna dengan izin yang ditentukan untuk grup tersebut.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM. 

1. Pilih tab **Grup** untuk menampilkan daftar grup yang menyertakan pengguna saat ini.

1. Pilih **Tambahkan pengguna ke grup**. 

1. Pilih kotak centang untuk setiap grup yang Anda ingin pengguna bergabung. Daftar ini menunjukkan nama masing-masing grup dan kebijakan yang diterima pengguna jika telah menjadi anggota grup tersebut.

1. (Opsional) Anda dapat memilih **Buat grup** untuk menentukan grup baru. Ini berguna jika Anda ingin menambahkan pengguna ke grup dengan kebijakan terlampir yang berbeda dari grup yang ada:

   1. Di tab baru, untuk **Nama grup pengguna**, ketikkan nama untuk grup baru Anda.
**catatan**  
Jumlah dan ukuran sumber daya IAM dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat [IAM dan AWS STS kuota](reference_iam-quotas.md). Nama grup dapat berupa kombinasi hingga 128 huruf, digit, dan karakter ini: plus (\$1), sama dengan (=), koma (,), titik (.), tanda a keong (@), dan tanda hubung (-). Nama harus unik dalam akun. Grup tidak dibedakan berdasarkan huruf besar-kecil. Misalnya, Anda tidak dapat membuat dua grup yang diberi nama *TESTGROUP* dan *testgroup*.

   1. Pilih satu atau beberapa kotak centang untuk kebijakan terkelola yang ingin dilampirkan ke grup. Anda juga dapat membuat kebijakan pengelolaan baru dengan memilih **Buat kebijakan**. Jika Anda melakukannya, kembali ke tab atau jendela browser ini ketika kebijakan baru selesai; pilih **Segarkan**; lalu pilih kebijakan baru untuk dilekatkan ke grup Anda. Untuk informasi selengkapnya, lihat [Tentukan izin IAM khusus dengan kebijakan terkelola pelanggan](access_policies_create.md).

   1. Pilih **Buat grup pengguna**.

   1. Kembali ke tab asal, muat ulang daftar grup Anda. Kemudian pilih kotak centang untuk grup baru Anda.

1. Pilih **Tambahkan pengguna ke grup**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa pengguna telah ditambahkan ke grup yang Anda tentukan.

------

### Untuk menambahkan izin dengan menyalin dari pengguna IAM lain
<a name="users_change_permissions-add-copy-console"></a>

Jika Anda memilih untuk menambahkan izin ke pengguna IAM dengan menyalin izin, IAM akan menyalin semua keanggotaan grup, kebijakan terkelola terlampir, kebijakan sebaris, dan batasan izin yang ada dari pengguna yang ditentukan dan langsung menerapkannya ke pengguna yang dipilih saat ini.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM. 

1. Pada tab **Izin** pilih dan pilih **Tambahkan izin**.

1. Pada halaman **Tambahkan izin**, pilih **Salin izin**. Daftar ini menampilkan pengguna IAM yang tersedia bersama dengan keanggotaan grup dan kebijakan terlampir mereka. 

1. Pilih tombol radio di samping pengguna yang izinnya ingin Anda salin. 

1. Pilih **Berikutnya** untuk melihat daftar perubahan yang akan dilakukan pada pengguna. Lalu, pilih **Tambahkan izin**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa izin telah disalin dari pengguna IAM yang Anda tentukan.

------

### Untuk menambahkan izin dengan melampirkan kebijakan langsung ke pengguna IAM
<a name="users_change_permissions-add-directly-console"></a>

Anda dapat melampirkan kebijakan terkelola langsung ke pengguna IAM. Izin yang diperbarui diterapkan segera.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM. 

1. Pada tab **Izin**, pilih dan pilih **Tambahkan izin**.

1. Pada halaman **Tambahkan izin**, pilih **Lampirkan kebijakan secara langsung**. Daftar **kebijakan izin menampilkan kebijakan** yang tersedia beserta jenis kebijakan dan entitas terlampirnya. 

1. Pilih tombol radio di sebelah **Nama kebijakan** yang ingin Anda lampirkan. 

1. Pilih **Berikutnya** untuk melihat daftar perubahan yang akan dilakukan pada pengguna. Lalu, pilih **Tambahkan izin**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa kebijakan telah ditambahkan ke pengguna IAM yang Anda tentukan.

------

### Untuk mengatur batas izin untuk pengguna IAM
<a name="users_change_permissions-set-boundary-console"></a>

Batas izin adalah fitur lanjutan untuk mengelola izin yang digunakan untuk mengatur izin maksimum AWS yang dapat dimiliki pengguna IAM. Menetapkan batas izin segera membatasi izin pengguna IAM ke batas, terlepas dari izin lain yang diberikan.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM yang batas izinnya ingin Anda ubah. 

1. Pilih tab **Izin**. Jika perlu, buka bagian **batas Izin dan kemudian pilih **Tetapkan** batas** izin.

1. Pada halaman **Setel batas izin**, di bawah Kebijakan **izin pilih kebijakan** yang ingin Anda gunakan untuk batas izin.

1. Pilih **Tetapkan batas**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa batas izin telah ditambahkan.

------

## Mengubah izin untuk pengguna (konsol)
<a name="users_change_permissions-change-console"></a>

IAM memungkinkan Anda mengubah izin yang terkait dengan pengguna dalam cara berikut:
+ **Edit kebijakan izin** – Edit kebijakan inline pengguna, kebijakan inline grup pengguna, atau edit kebijakan yang terkelola yang dilampirkan pada pengguna secara langsung atau dari grup. Jika pengguna memiliki batas izin, maka Anda tidak dapat memberikan izin lebih dari yang diizinkan oleh kebijakan yang digunakan sebagai batas izin pengguna.
+ **Mengubah batas izin** – Ubah kebijakan yang digunakan sebagai batas izin bagi pengguna. Ini dapat memperluas atau membatasi izin maksimum yang dapat dimiliki pengguna. 

### Mengedit kebijakan izin yang terlampir pada pengguna
<a name="users_change_permissions-edit-policy-console"></a>

Mengubah izin segera memperbarui akses pengguna.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM yang batas izinnya ingin Anda ubah. 

1. Pilih tab **Izin**. Jika perlu, buka bagian **batas Izin**.

1. Pilih nama kebijakan yang ingin Anda edit untuk melihat perincian tentang kebijakan tersebut. Pilih tab **Entitas yang dilampirkan** untuk melihat entitas lain (pengguna, grup, dan peran IAM) yang mungkin terpengaruh jika Anda mengedit kebijakan. 

1. Pilih **Tab Izin** dan meninjau izin yang diberikan oleh kebijakan. Untuk membuat perubahan pada izin, pilih **Edit**. 

1. Edit kebijakan dan selesaikan rekomendasi [validasi kebijakan](access_policies_policy-validator.md) apa pun. Untuk informasi selengkapnya, lihat [Edit kebijakan IAM](access_policies_manage-edit.md).

1. Pilih **Berikutnya**, tinjau ringkasan kebijakan, lalu pilih **Simpan perubahan**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa kebijakan telah diperbarui.

------

### Untuk mengubah batas izin bagi pengguna
<a name="users_change_permissions-change-boundary-console"></a>

Mengubah batas izin akan segera memperbarui akses pengguna.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM yang batas izinnya ingin Anda ubah. 

1. Pilih tab **Izin**. Jika perlu, buka bagian **Batas izin** lalu pilih **Ubah batas**.

1. Pilih kebijakan yang ingin Anda gunakan untuk batasan izin.

1. Pilih **Tetapkan batas**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa batas izin telah diubah.

------

## Untuk menghapus kebijakan izin dari pengguna (konsol)
<a name="users_change_permissions-remove-policy-console"></a>

Menghapus kebijakan izin akan segera memperbarui akses pengguna.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Pilih nama pengguna yang kebijakan izinnya ingin Anda hapus. 

1. Pilih tab **Izin**. 

1. Jika Anda ingin menghapus izin dengan menghapus kebijakan yang ada, lihat kolom **Terlampir melalui** untuk memahami cara pengguna mendapatkan kebijakan tersebut sebelum memilih **Hapus** untuk menghapus kebijakan:
   + Jika kebijakan berlaku karena keanggotaan grup, maka memilih **Hapus** akan menghapus pengguna dari grup. Ingatlah bahwa Anda mungkin memiliki beberapa kebijakan yang terlampir pada satu grup. Jika Anda menghapus pengguna dari grup, pengguna kehilangan akses ke *semua* kebijakan yang diterima melalui keanggotaan grup tersebut.
   + Jika kebijakan tersebut merupakan kebijakan terkelola yang dilampirkan langsung ke pengguna, maka memilih **Hapus** akan melepaskan kebijakan dari pengguna. Hal ini tidak memengaruhi kebijakan itu sendiri atau entitas lainnya yang mungkin menyertai kebijakan tersebut.
   + Jika kebijakan tersebut merupakan kebijakan yang disematkan sebaris, maka memilih **Hapus** akan menghapus kebijakan dari IAM. Kebijakan inline yang dilampirkan langsung ke pengguna hanya ada pada pengguna tersebut.

Jika kebijakan diberikan kepada pengguna melalui keanggotaan grup, konsol akan menampilkan pesan status yang memberi tahu Anda bahwa pengguna IAM telah dihapus dari grup IAM. Jika kebijakan langsung dilampirkan atau sebaris, pesan status akan memberi tahu Anda bahwa kebijakan tersebut telah dihapus.

------

## Untuk menghapus batas izin dari pengguna (konsol)
<a name="users_change_permissions-remove-boundary-console"></a>

Menghapus batas izin akan segera memperbarui akses pengguna.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM yang batas izinnya ingin Anda hapus. 

1. Pilih tab **Izin**. Jika perlu, buka bagian **batas Izin**.

1.  Pilih **Ubah batas**. **Untuk mengonfirmasi bahwa Anda ingin menghapus batas izin, dalam dialog konfirmasi, pilih Hapus batas.**

Konsol menampilkan pesan status yang memberi tahu Anda bahwa batas izin telah dihapus.

------

## Menambahkan dan menghapus izin pengguna (AWS CLI atau AWS API)
<a name="users_change_permissions-add-programmatic"></a>

Untuk menambah atau menghapus izin secara terprogram, Anda harus menambahkan atau menghapus keanggotaan grup, melampirkan atau melepaskan kebijakan terkelola, atau menambahkan atau menghapus kebijakan inline. Untuk informasi selengkapnya, lihat topik berikut:
+ [Mengedit pengguna dalam grup IAM](id_groups_manage_add-remove-users.md)
+ [Menambahkan dan menghapus izin identitas IAM](access_policies_manage-attach-detach.md)

# Kata sandi pengguna di AWS
<a name="id_credentials_passwords"></a>

Anda dapat mengelola kata sandi untuk pengguna IAM di akun Anda. Pengguna IAM membutuhkan kata sandi untuk mengakses file. Konsol Manajemen AWS Pengguna tidak memerlukan kata sandi untuk mengakses AWS sumber daya secara terprogram dengan menggunakan AWS CLI, Alat untuk Windows PowerShell, atau. AWS SDKs APIs Untuk lingkungan tersebut, Anda memiliki opsi untuk menetapkan kunci [akses](id_credentials_access-keys.md) pengguna IAM. Namun, ada alternatif lain yang lebih aman untuk mengakses kunci yang kami sarankan Anda pertimbangkan terlebih dahulu. Untuk informasi selengkapnya, lihat [AWS kredensi keamanan](security-creds.md).

**catatan**  
Jika salah satu pengguna IAM Anda kehilangan atau lupa kata sandi mereka, Anda *tidak dapat* mengambilnya dari IAM. Tergantung pada pengaturan Anda, baik pengguna atau administrator harus membuat kata sandi baru.

**Topics**
+ [Menetapkan kebijakan kata sandi akun untuk pengguna IAM](id_credentials_passwords_account-policy.md)
+ [Kelola kata sandi untuk pengguna IAM](id_credentials_passwords_admin-change-user.md)
+ [Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri](id_credentials_passwords_enable-user-change.md)
+ [Bagaimana pengguna IAM mengubah kata sandi mereka sendiri](id_credentials_passwords_user-change-own.md)

# Menetapkan kebijakan kata sandi akun untuk pengguna IAM
<a name="id_credentials_passwords_account-policy"></a>

Anda dapat menetapkan kebijakan kata sandi khusus Akun AWS untuk menentukan persyaratan kompleksitas dan periode rotasi wajib untuk kata sandi pengguna IAM Anda. Jika Anda tidak menetapkan kebijakan kata sandi khusus, kata sandi pengguna IAM harus memenuhi kebijakan AWS kata sandi default. Untuk informasi selengkapnya, lihat [Opsi kebijakan kata sandi kustom](#password-policy-details).

**Topics**
+ [Aturan untuk menetapkan kebijakan kata sandi](#password-policy-rules)
+ [Izin yang diperlukan untuk menetapkan kebijakan kata sandi](#default-policy-permissions-required)
+ [Kebijakan kata sandi bawaan](#default-policy-details)
+ [Opsi kebijakan kata sandi kustom](#password-policy-details)
+ [Untuk menetapkan kebijakan kata sandi (konsol)](#IAMPasswordPolicy)
+ [Untuk mengubah kebijakan kata sandi (konsol)](#id_credentials_passwords_account-policy-section-1)
+ [Untuk menghapus kebijakan kata sandi khusus (konsol)](#id_credentials_passwords_account-policy-section-2)
+ [Mengatur kebijakan kata sandi (AWS CLI)](#PasswordPolicy_CLI)
+ [Menyetel kebijakan kata sandi (AWS API)](#PasswordPolicy_API)

## Aturan untuk menetapkan kebijakan kata sandi
<a name="password-policy-rules"></a>

Kebijakan kata sandi IAM tidak berlaku untuk Pengguna root akun AWS kata sandi atau kunci akses pengguna IAM. Jika kata sandi kedaluwarsa, pengguna IAM tidak dapat masuk Konsol Manajemen AWS tetapi dapat terus menggunakan kunci aksesnya.

Saat Anda membuat atau mengubah kebijakan kata sandi, sebagian besar pengaturan kebijakan kata sandi diterapkan saat pengguna Anda mengubah kata sandinya. Namun, beberapa pengaturan diterapkan dengan segera. Sebagai contoh: 
+ Saat persyaratan panjang dan jenis karakter minimum berubah, pengaturan ini diterapkan di lain waktu saat pengguna Anda mengubah kata sandinya. Pengguna tidak dipaksa untuk mengubah kata sandi yang sudah ada, sekalipun kata sandi yang sudah ada tidak mematuhi kebijakan kata sandi yang diperbarui.
+ Saat Anda menetapkan periode kedaluwarsa kata sandi, periode kedaluwarsa tersebut akan segera diberlakukan. Misalnya, anggaplah Anda mengatur masa kedaluwarsa kata sandi selama 90 hari. Dalam hal ini, kata sandi kedaluwarsa untuk semua pengguna IAM yang kata sandinya sudah lebih lama dari 90 hari. Pengguna tersebut harus mengubah kata sandi saat masuk lagi.

Anda tidak dapat membuat “kebijakan penguncian” untuk mengunci pengguna keluar dari akun setelah sejumlah percobaan masuk gagal yang ditentukan. Untuk keamanan yang lebih baik, kami sarankan Anda menggabungkan kebijakan kata sandi yang kuat dengan multi-factor authentication (MFA). Untuk informasi lebih lanjut tentang MFA, lihat [AWS Otentikasi multi-faktor di IAM](id_credentials_mfa.md).

## Izin yang diperlukan untuk menetapkan kebijakan kata sandi
<a name="default-policy-permissions-required"></a>

Anda harus mengonfigurasikan izin untuk mengizinkan entitas IAM (pengguna atau peran) untuk melihat atau mengedit kebijakan kata sandi akun mereka. Anda dapat menyertakan tindakan kebijakan kata sandi berikut dalam kebijakan IAM: 
+ `iam:GetAccountPasswordPolicy` – Memungkinkan entitas untuk melihat kebijakan kata sandi untuk akun mereka
+ `iam:DeleteAccountPasswordPolicy` – Memungkinkan entitas untuk menghapus kebijakan kata sandi kustom untuk akun mereka dan kembali ke kebijakan kata sandi default
+ `iam:UpdateAccountPasswordPolicy` – Memungkinkan entitas untuk membuat atau mengubah kebijakan kata sandi untuk akun mereka

Kebijakan berikut memungkinkan akses penuh untuk melihat dan mengedit kebijakan kata sandi akun. Untuk mempelajari cara membuat kebijakan IAM menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccessPasswordPolicy",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:DeleteAccountPasswordPolicy",
                "iam:UpdateAccountPasswordPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Untuk informasi tentang izin yang diperlukan bagi pengguna IAM untuk mengubah kata sandi mereka sendiri, lihat [Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri](id_credentials_passwords_enable-user-change.md).

## Kebijakan kata sandi bawaan
<a name="default-policy-details"></a>

Jika administrator tidak menetapkan kebijakan kata sandi khusus, kata sandi pengguna IAM harus memenuhi kebijakan AWS kata sandi default.

Kebijakan kata sandi default memberlakukan kondisi berikut:
+ Panjang kata sandi minimum adalah 8 karakter dan panjang maksimal 128 karakter
+ Minimal tiga dari campuran tipe karakter berikut: huruf besar, huruf kecil, angka, dan karakter non-alfanumerik () `! @ # $ % ^ & * ( ) _ + - = [ ] { } | '`
+ Tidak identik dengan Akun AWS nama atau alamat email Anda
+ Jangan pernah kedaluwarsa kata sandi

## Opsi kebijakan kata sandi kustom
<a name="password-policy-details"></a>

Saat Anda mengonfigurasi kebijakan kata sandi khusus untuk akun Anda, Anda dapat menentukan kondisi berikut:
+ **Panjang minimum kata sandi** – Anda dapat menentukan minimal 6 karakter dan maksimal 128 karakter.
+ **Kekuatan kata sandi** - Anda dapat memilih salah satu kotak centang berikut untuk menentukan kekuatan kata sandi pengguna IAM Anda:
  + Memerlukan setidaknya satu huruf besar dari alfabet Latin (A—Z)
  + Memerlukan setidaknya satu huruf kecil dari alfabet Latin (a-z)
  + Diperlukan setidaknya satu angka
  + Diperlukan setidaknya satu karakter nonalfanumerik `! @ # $ % ^ & * ( ) _ + - = [ ] { } | '` 
+ **Aktifkan kedaluwarsa kata sandi** — Anda dapat memilih dan menentukan minimal 1 dan maksimum 1.095 hari bahwa kata sandi pengguna IAM valid setelah disetel. Misalnya, jika Anda menentukan kedaluwarsa 90 hari, itu langsung berdampak pada semua pengguna Anda. Untuk pengguna dengan kata sandi yang lebih tua dari 90 hari, ketika mereka masuk ke konsol setelah perubahan, mereka harus menetapkan kata sandi baru. Pengguna dengan kata sandi berusia 75-89 hari menerima Konsol Manajemen AWS peringatan tentang kedaluwarsa kata sandi mereka. Pengguna IAM dapat mengubah kata sandi mereka kapan saja jika mereka memiliki izin. Saat mereka mengatur kata sandi baru, periode kedaluwarsa kata sandi tersebut dimulai ulang. Pengguna IAM hanya dapat memiliki satu kata sandi yang valid dalam satu waktu.
+ **Kedaluwarsa kata sandi memerlukan pengaturan ulang administrator** - Pilih opsi ini untuk mencegah pengguna IAM menggunakan Konsol Manajemen AWS untuk memperbarui kata sandi mereka sendiri setelah kata sandi kedaluwarsa. Sebelum Anda memilih opsi ini, konfirmasikan bahwa Anda Akun AWS memiliki lebih dari satu pengguna dengan izin administratif untuk mengatur ulang kata sandi pengguna IAM. Administrator dengan `iam:UpdateLoginProfile` izin dapat mengatur ulang kata sandi pengguna IAM. Pengguna IAM dengan `iam:ChangePassword` izin dan kunci akses aktif dapat mengatur ulang kata sandi konsol pengguna IAM mereka sendiri secara terprogram. Jika Anda menghapus kotak centang ini, pengguna IAM dengan kata sandi kedaluwarsa masih harus menetapkan kata sandi baru sebelum mereka dapat mengakses. Konsol Manajemen AWS
+ **Izinkan pengguna mengubah kata sandi mereka sendiri** - Anda dapat mengizinkan semua pengguna IAM di akun Anda untuk mengubah kata sandi mereka sendiri. Ini memberi pengguna akses ke `iam:ChangePassword` tindakan hanya untuk pengguna mereka dan `iam:GetAccountPasswordPolicy` tindakan. Opsi ini tidak melampirkan kebijakan izin untuk setiap pengguna. Sebaliknya, IAM menerapkan izin di tingkat akun untuk semua pengguna. Atau, Anda hanya dapat mengizinkan beberapa pengguna untuk mengelola kata sandi mereka sendiri. Untuk melakukannya, Anda menghapus kotak centang ini. Untuk informasi selengkapnya tentang penggunaan kebijakan untuk membatasi siapa yang dapat mengelola kata sandi, lihat [Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri](id_credentials_passwords_enable-user-change.md).
+ **Cegah penggunaan ulang kata sandi** – Anda dapat mencegah pengguna IAM menggunakan kembali jumlah tertentu dari kata sandi sebelumnya. Anda dapat menentukan jumlah minimum 1 dan jumlah maksimum 24 dari kata sandi sebelumnya yang dapat diulang. 

## Untuk menetapkan kebijakan kata sandi (konsol)
<a name="IAMPasswordPolicy"></a>

Anda dapat menggunakan kebijakan Konsol Manajemen AWS untuk membuat, mengubah, atau menghapus kata sandi khusus. Perubahan pada kebijakan kata sandi berlaku untuk pengguna IAM baru yang dibuat setelah perubahan kebijakan ini dan pengguna IAM yang ada saat mereka mengubah kata sandi mereka.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Pengaturan akun**.

1. Di bagian **Kebijakan kata sandi**, pilih **Edit**. 

1. Pilih **Kustom** untuk menggunakan kebijakan kata sandi khusus.

1. Pilih opsi yang ingin Anda terapkan ke kebijakan kata sandi Anda dan pilih **Simpan perubahan**. 

1. Konfirmasikan bahwa Anda ingin menetapkan kebijakan kata sandi khusus dengan memilih **Setel kustom**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa persyaratan kata sandi untuk pengguna IAM telah diperbarui..

------

## Untuk mengubah kebijakan kata sandi (konsol)
<a name="id_credentials_passwords_account-policy-section-1"></a>

Anda dapat menggunakan kebijakan Konsol Manajemen AWS untuk membuat, mengubah, atau menghapus kata sandi khusus. Perubahan pada kebijakan kata sandi berlaku untuk pengguna IAM baru yang dibuat setelah perubahan kebijakan ini dan pengguna IAM yang ada saat mereka mengubah kata sandi mereka.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Pengaturan akun**.

1. Di bagian **Kebijakan kata sandi**, pilih **Edit**. 

1. Pilih opsi yang ingin Anda terapkan ke kebijakan kata sandi Anda dan pilih **Simpan perubahan**. 

1. Konfirmasikan bahwa Anda ingin menetapkan kebijakan kata sandi khusus dengan memilih **Setel kustom**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa persyaratan kata sandi untuk pengguna IAM telah diperbarui.

------

## Untuk menghapus kebijakan kata sandi khusus (konsol)
<a name="id_credentials_passwords_account-policy-section-2"></a>

Anda dapat menggunakan kebijakan Konsol Manajemen AWS untuk membuat, mengubah, atau menghapus kata sandi khusus. Perubahan pada kebijakan kata sandi berlaku untuk pengguna IAM baru yang dibuat setelah perubahan kebijakan ini dan pengguna IAM yang ada saat mereka mengubah kata sandi mereka.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Pengaturan akun**.

1. Di bagian **Kebijakan kata sandi**, pilih **Edit**. 

1. Pilih **IAM default** untuk menghapus kebijakan kata sandi kustom dan pilih **Simpan perubahan**.

1. Konfirmasikan bahwa Anda ingin mengatur kebijakan kata sandi default IAM dengan memilih **Set default**.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa kebijakan kata sandi disetel ke default IAM.

------

## Mengatur kebijakan kata sandi (AWS CLI)
<a name="PasswordPolicy_CLI"></a>

Anda dapat menggunakan AWS Command Line Interface untuk menetapkan kebijakan kata sandi.

**Untuk mengelola kebijakan kata sandi akun kustom dari AWS CLI**  
Jalankan perintah berikut.
+ Untuk membuat atau mengubah kebijakan kata sandi kustom: [https://docs.aws.amazon.com/cli/latest/reference/iam/update-account-password-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-account-password-policy.html)
+ Untuk melihat kebijakan kata sandi: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-account-password-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-account-password-policy.html) 
+ Untuk menghapus kebijakan kata sandi khusus: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-account-password-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-account-password-policy.html) 

## Menyetel kebijakan kata sandi (AWS API)
<a name="PasswordPolicy_API"></a>

Anda dapat menggunakan operasi AWS API untuk menetapkan kebijakan kata sandi.

**Untuk mengelola kebijakan kata sandi akun kustom dari AWS API**  
Hubungi operasi berikut ini:
+ Untuk membuat atau mengubah kebijakan kata sandi kustom: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html)
+ Untuk melihat kebijakan kata sandi: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html) 
+ Untuk menghapus kebijakan kata sandi khusus: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccountPasswordPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccountPasswordPolicy.html) 

# Kelola kata sandi untuk pengguna IAM
<a name="id_credentials_passwords_admin-change-user"></a>

Pengguna IAM yang menggunakan Konsol Manajemen AWS untuk bekerja dengan AWS sumber daya harus memiliki kata sandi untuk masuk. Anda dapat membuat, mengubah, atau menghapus kata sandi untuk pengguna IAM di AWS akun Anda. 

Setelah Anda menetapkan kata sandi untuk pengguna, pengguna dapat masuk ke Konsol Manajemen AWS menggunakan URL masuk untuk akun Anda, yang terlihat seperti ini: 

```
https://12-digit-AWS-account-ID or alias.signin.aws.amazon.com/console
```

Untuk informasi selengkapnya tentang cara pengguna IAM masuk Konsol Manajemen AWS, lihat [Cara masuk AWS di](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) *Panduan AWS Sign-In Pengguna*. 

Sekalipun pengguna Anda memiliki kata sandi, mereka masih memerlukan izin untuk mengakses sumber daya AWS Anda. Secara default, pengguna tidak memiliki izin. Untuk memberi pengguna Anda izin yang mereka butuhkan, Anda menetapkan kebijakan untuk mereka atau ke grup yang mereka miliki. Untuk informasi tentang membuat pengguna dan grup, lihat [Identitas IAM](id.md). Untuk informasi tentang menggunakan kebijakan untuk mengatur izin, lihat [Mengubah izin untuk pengguna IAM](id_users_change-permissions.md). 

Anda dapat memberikan izin kepada pengguna untuk mengubah kata sandi mereka sendiri. Untuk informasi selengkapnya, lihat [Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri](id_credentials_passwords_enable-user-change.md). Untuk informasi tentang cara pengguna mengakses halaman login akun Anda, lihat [Cara masuk AWS di](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) *Panduan AWS Sign-In Pengguna*. 

**Topics**
+ [Membuat, mengubah, atau menghapus kata sandi pengguna IAM (konsol)](#id_credentials_passwords_admin-change-user_console)

## Membuat, mengubah, atau menghapus kata sandi pengguna IAM (konsol)
<a name="id_credentials_passwords_admin-change-user_console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk mengelola kata sandi untuk pengguna IAM Anda.

Kebutuhan akses pengguna Anda dapat berubah seiring waktu. Anda mungkin perlu mengaktifkan pengguna yang dimaksudkan untuk akses CLI agar memiliki akses konsol, mengubah kata sandi pengguna karena mereka menerima email dengan kredensialnya, atau menghapus pengguna saat mereka meninggalkan organisasi Anda atau tidak lagi memerlukan akses. AWS 

### Untuk membuat kata sandi pengguna IAM (konsol)
<a name="id_credentials_passwords_admin-change-user-section-1"></a>

Gunakan prosedur ini untuk memberikan akses konsol pengguna dengan membuat kata sandi yang terkait dengan nama pengguna.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Pengguna**.

1. Pilih nama pengguna yang kata sandinya ingin Anda buat. 

1. Pilih tab **Security credentials**, lalu di bawah **Console sign-in**, pilih **Aktifkan** akses konsol.

1. Di kotak dialog **Aktifkan akses konsol**, pilih **Setel ulang kata sandi**, lalu pilih apakah IAM membuat kata sandi atau membuat kata sandi khusus: 
   + Untuk membuat IAM membuat kata sandi, pilih **Kata sandi yang dibuat otomatis**.
   + Untuk membuat kata sandi kustom, pilih **Kata sandi kustom**, dan ketik kata sandi. 
**catatan**  
Kata sandi yang Anda buat harus memenuhi [kebijakan kata sandi](id_credentials_passwords_account-policy.md) akun.

1. Untuk meminta pengguna membuat kata sandi baru saat masuk, pilih **Memerlukan perubahan kata sandi saat masuk berikutnya**. 

1. Untuk meminta pengguna segera menggunakan kata sandi baru, pilih **Cabut sesi konsol aktif**. Ini melampirkan kebijakan inline ke pengguna IAM yang menolak akses pengguna ke sumber daya jika kredensialnya lebih lama dari waktu yang ditentukan oleh kebijakan.

1. Pilih **Atur Ulang Kata Sandi**

1. Dialog **kata sandi Konsol** memberi tahu Anda bahwa Anda telah mengaktifkan kata sandi baru pengguna. Untuk melihat kata sandi sehingga Anda dapat membagikannya dengan pengguna, pilih **Tampilkan** di kotak dialog **Kata sandi konsol**. Pilih **Unduh file.csv** untuk mengunduh file dengan kredensi pengguna.
**penting**  
Untuk alasan keamanan, Anda tidak dapat mengakses kata sandi setelah menyelesaikan langkah ini, tetapi Anda dapat membuat kata sandi baru kapan saja.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa akses konsol telah diaktifkan.

------

### Untuk mengubah kata sandi bagi pengguna IAM (konsol)
<a name="id_credentials_passwords_admin-change-user-section-2"></a>

Gunakan prosedur ini untuk memperbarui kata sandi yang terkait dengan nama pengguna.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Pengguna**.

1. Pilih nama pengguna yang kata sandinya ingin Anda ubah. 

1. Pilih tab **Security credentials**, lalu di bawah **Console sign-in**, pilih **Kelola** akses konsol.

1. Di kotak dialog **Kelola akses konsol**, pilih **Setel ulang kata sandi**, lalu pilih apakah IAM membuat kata sandi atau membuat kata sandi khusus: 
   + Untuk membuat IAM membuat kata sandi, pilih **Kata sandi yang dibuat otomatis**.
   + Untuk membuat kata sandi kustom, pilih **Kata sandi kustom**, dan ketik kata sandi. 
**catatan**  
Kata sandi yang Anda buat harus memenuhi [kebijakan kata sandi](id_credentials_passwords_account-policy.md) akun.

1. Untuk meminta pengguna membuat kata sandi baru saat masuk, pilih **Memerlukan perubahan kata sandi saat masuk berikutnya**. 

1. Untuk meminta pengguna segera menggunakan kata sandi baru, pilih **Cabut sesi konsol aktif**. Ini melampirkan kebijakan inline ke pengguna IAM yang menolak akses pengguna ke sumber daya jika kredensialnya lebih lama dari waktu yang ditentukan oleh kebijakan.

1. Pilih **Atur Ulang Kata Sandi**

1. Dialog **kata sandi Konsol** memberi tahu Anda bahwa Anda telah mengaktifkan kata sandi baru pengguna. Untuk melihat kata sandi sehingga Anda dapat membagikannya dengan pengguna, pilih **Tampilkan** di kotak dialog **Kata sandi konsol**. Pilih **Unduh file.csv** untuk mengunduh file dengan kredensi pengguna.
**penting**  
Untuk alasan keamanan, Anda tidak dapat mengakses kata sandi setelah menyelesaikan langkah ini, tetapi Anda dapat membuat kata sandi baru kapan saja.

Konsol menampilkan pesan status yang memberi tahu Anda bahwa akses konsol telah diperbarui.

------

### Untuk menghapus (menonaktifkan) kata sandi pengguna IAM (konsol)
<a name="id_credentials_passwords_admin-change-user-section-3"></a>

Gunakan prosedur ini untuk menghapus kata sandi yang terkait dengan nama pengguna, menghapus akses konsol untuk pengguna.

**penting**  
Anda dapat mencegah pengguna IAM mengakses Konsol Manajemen AWS dengan menghapus kata sandi mereka. Ini mencegah mereka masuk ke Konsol Manajemen AWS menggunakan kredensi masuk mereka. Hal ini tidak mengubah izin mereka atau mencegah mereka mengakses konsol menggunakan peran yang diasumsikan. Jika pengguna memiliki kunci akses aktif, mereka terus berfungsi dan mengizinkan akses melalui AWS CLI, Alat untuk Windows, AWS API PowerShell, atau AWS Console Mobile Application.

------
#### [ Console ]

1. Ikuti prosedur masuk yang sesuai dengan jenis pengguna Anda seperti yang dijelaskan dalam topik [Cara](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) masuk AWS di *Panduan Pengguna AWS Masuk*.

1. Pada halaman **Beranda Konsol IAM**, di panel navigasi kiri, masukkan kueri Anda di kotak teks **Search IAM**.

1. Di panel navigasi, pilih **Pengguna**.

1. Pilih nama pengguna yang kata sandinya ingin Anda hapus. 

1. Pilih tab **Security credentials**, lalu di bawah **Console sign-in**, pilih **Kelola** akses konsol.

1. Untuk meminta pengguna berhenti menggunakan konsol segera, pilih **Cabut sesi konsol aktif**. Ini melampirkan kebijakan inline ke pengguna IAM yang menolak akses pengguna ke sumber daya jika kredensialnya lebih lama dari waktu yang ditentukan oleh kebijakan.

1. Pilih **Nonaktifkan akses**

Konsol menampilkan pesan status yang memberi tahu Anda bahwa akses konsol telah dinonaktifkan.

------

### Membuat, mengubah, atau menghapus kata sandi pengguna IAM ()AWS CLI
<a name="Using_ManagingPasswordsCLIAPI"></a>

Anda dapat menggunakan AWS CLI API untuk mengelola kata sandi bagi pengguna IAM Anda.

**Untuk membuat kata sandi (AWS CLI)**

1. (Opsional) Untuk menentukan apakah pengguna memiliki kata sandi, jalankan perintah ini: [aws iam get-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/get-login-profile.html)

1. Untuk membuat kata sandi, jalankan perintah ini: [aws iam create-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-login-profile.html)

**Untuk mengubah kata sandi pengguna (AWS CLI)**

1. (Opsional) Untuk menentukan apakah pengguna memiliki kata sandi, jalankan perintah ini: [aws iam get-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/get-login-profile.html)

1. Untuk mengubah kata sandi, jalankan perintah ini: [aws iam update-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/update-login-profile.html)

**Untuk menghapus (menonaktifkan) kata sandi pengguna (AWS CLI)**

1. (Opsional) Untuk menentukan apakah pengguna memiliki kata sandi, jalankan perintah ini: [aws iam get-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/get-login-profile.html)

1. (Opsional) Untuk menentukan kapan kata sandi terakhir digunakan, jalankan perintah ini: [aws iam get-user](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user.html)

1. Untuk menghapus kata sandi, jalankan perintah ini: [aws iam delete-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-login-profile.html)

**penting**  
Ketika Anda menghapus kata sandi pengguna, pengguna tidak bisa lagi masuk ke Konsol Manajemen AWS. Jika pengguna memiliki kunci akses aktif, mereka terus berfungsi dan mengizinkan akses melalui AWS CLI, Alat untuk Windows PowerShell, atau panggilan fungsi AWS API. Saat Anda menggunakan AWS CLI, Alat untuk Windows PowerShell, atau AWS API untuk menghapus pengguna dari Anda Akun AWS, Anda harus terlebih dahulu menghapus kata sandi menggunakan operasi ini. Untuk informasi selengkapnya, lihat [Menghapus pengguna IAM (AWS CLI)](id_users_remove.md#id_users_deleting_cli). 

**Untuk mencabut sesi konsol aktif pengguna sebelum waktu yang ditentukan ()AWS CLI**

1. [Untuk menyematkan kebijakan sebaris yang mencabut sesi konsol aktif pengguna IAM sebelum waktu yang ditentukan, gunakan kebijakan sebaris berikut dan jalankan perintah ini: aws iam put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)

   Kebijakan inline ini menolak semua izin dan menyertakan kunci kondisi. `aws:TokenIssueTime` Ini mencabut sesi konsol aktif pengguna sebelum waktu yang ditentukan dalam `Condition` elemen kebijakan sebaris. Ganti nilai kunci `aws:TokenIssueTime` kondisi dengan nilai Anda sendiri.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Deny",
       "Action": "*",
       "Resource": "*",
       "Condition": {
         "DateLessThan": {
           "aws:TokenIssueTime": "2014-05-07T23:47:00Z"
         }
       }
     }
   }
   ```

------

1. [(Opsional) Untuk mencantumkan nama kebijakan sebaris yang disematkan pada pengguna IAM, jalankan perintah ini: aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)

1. [(Opsional) Untuk melihat kebijakan inline bernama yang disematkan di pengguna IAM, jalankan perintah ini: aws iam get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)

### Membuat, mengubah, atau menghapus kata sandi pengguna (AWS API) IAM
<a name="Using_ManagingPasswordsAPI"></a>

Anda dapat menggunakan AWS API untuk mengelola kata sandi bagi pengguna IAM Anda.

**Untuk membuat kata sandi (AWS API)**

1. (Opsional) Untuk menentukan apakah pengguna memiliki kata sandi, hubungi operasi ini: [GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html)

1. Untuk membuat kata sandi, hubungi operasi ini: [CreateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateLoginProfile.html)

**Untuk mengubah kata sandi pengguna (AWS API)**

1. (Opsional) Untuk menentukan apakah pengguna memiliki kata sandi, hubungi operasi ini: [GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html)

1. Untuk mengubah kata sandi, hubungi operasi ini: [UpdateLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateLoginProfile.html)

**Untuk menghapus (menonaktifkan) kata sandi pengguna (AWS API)**

1. (Opsional) Untuk menentukan apakah pengguna memiliki kata sandi, jalankan perintah ini: [GetLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetLoginProfile.html)

1. (Opsional) Untuk menentukan kapan kata sandi terakhir digunakan, jalankan perintah ini: [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)

1. Untuk menghapus kata sandi, jalankan perintah ini: [DeleteLoginProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html)

**penting**  
Ketika Anda menghapus kata sandi pengguna, pengguna tidak bisa lagi masuk ke Konsol Manajemen AWS. Jika pengguna memiliki kunci akses aktif, mereka terus berfungsi dan mengizinkan akses melalui AWS CLI, Alat untuk Windows PowerShell, atau panggilan fungsi AWS API. Saat Anda menggunakan AWS CLI, Alat untuk Windows PowerShell, atau AWS API untuk menghapus pengguna dari Anda Akun AWS, Anda harus terlebih dahulu menghapus kata sandi menggunakan operasi ini. Untuk informasi selengkapnya, lihat [Menghapus pengguna IAM (AWS CLI)](id_users_remove.md#id_users_deleting_cli). 

**Untuk mencabut sesi konsol aktif pengguna sebelum waktu tertentu (API)AWS**

1. Untuk menyematkan kebijakan sebaris yang mencabut sesi konsol aktif pengguna IAM sebelum waktu yang ditentukan, gunakan kebijakan sebaris berikut dan jalankan perintah ini: [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)

   Kebijakan inline ini menolak semua izin dan menyertakan kunci kondisi. `aws:TokenIssueTime` Ini mencabut sesi konsol aktif pengguna sebelum waktu yang ditentukan dalam `Condition` elemen kebijakan sebaris. Ganti nilai kunci `aws:TokenIssueTime` kondisi dengan nilai Anda sendiri.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Deny",
       "Action": "*",
       "Resource": "*",
       "Condition": {
         "DateLessThan": {
           "aws:TokenIssueTime": "2014-05-07T23:47:00Z"
         }
       }
     }
   }
   ```

------

1. (Opsional) Untuk mencantumkan nama kebijakan sebaris yang disematkan di pengguna IAM, jalankan perintah ini: [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)

1. (Opsional) Untuk melihat kebijakan inline bernama yang disematkan di pengguna IAM, jalankan perintah ini: [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)

# Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri
<a name="id_credentials_passwords_enable-user-change"></a>

**catatan**  
Pengguna dengan identitas federasi akan menggunakan proses yang ditentukan oleh penyedia identitas mereka untuk mengubah kata sandi mereka. Sebagai [praktik terbaik](best-practices.md), mewajibkan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara.

Anda dapat memberikan izin kepada pengguna IAM untuk mengubah kata sandi mereka sendiri untuk masuk ke. Konsol Manajemen AWS Anda dapat melakukannya dengan salah satu dari dua cara berikut:
+ [Izinkan semua pengguna IAM di akun untuk mengubah kata sandi mereka sendiri](#proc_letalluserschangepassword). 
+ [Izinkan pengguna IAM terpilih untuk mengubah kata sandi mereka sendiri.](#proc_letselectuserschangepassword). Dalam skenario ini, Anda menonaktifkan opsi bagi semua pengguna untuk mengubah kata sandi mereka sendiri menggunakan kebijakan IAM untuk memberikan izin hanya kepada beberapa pengguna. Pendekatan ini memungkinkan pengguna untuk mengubah kartu sandi mereka sendiri dan secara opsional kredensial lainnya seperti kunci akses mereka sendiri. 

**penting**  
Kami sarankan Anda [menetapkan kebijakan kata sandi khusus](id_credentials_passwords_account-policy.md) yang memerlukan pengguna IAM untuk membuat kata sandi yang kuat.

## Untuk mengizinkan pengguna IAM mengubah kata sandi mereka sendiri
<a name="proc_letalluserschangepassword"></a>

------
#### [ Console ]

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, klik **Pengaturan akun**.

1. Di bagian **Kebijakan kata sandi**, pilih **Edit**.

1. Pilih **Kustom** untuk menggunakan kebijakan kata sandi khusus.

1. Pilih **Izinkan pengguna mengubah kata sandi mereka sendiri**, lalu pilih **Simpan perubahan**. Ini memungkinkan semua pengguna di akun mengakses `iam:ChangePassword` tindakan hanya untuk pengguna mereka dan `iam:GetAccountPasswordPolicy` tindakan.

1. Berikan petunjuk berikut kepada pengguna untuk mengubah kata sandi mereka: [Bagaimana pengguna IAM mengubah kata sandi mereka sendiri](id_credentials_passwords_user-change-own.md). 

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ `[aws iam update-account-password-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/update-account-password-policy.html)`

------
#### [ API ]

Untuk membuat alias untuk URL halaman Konsol Manajemen AWS masuk Anda, panggil operasi berikut:
+ `[UpdateAccountPasswordPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html)` 

------

## Untuk mengizinkan pengguna IAM terpilih untuk mengubah kata sandi mereka sendiri
<a name="proc_letselectuserschangepassword"></a>

------
#### [ Console ]

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, klik **Pengaturan akun**. 

1. Di bagian **Kebijakan kata sandi**, pastikan bahwa **Perbolehkan pengguna mengubah kata sandi mereka sendiri** tidak dipilih. Jika kotak centang ini dipilih, semua pengguna dapat mengubah kata sandi mereka sendiri. (Lihat prosedur sebelumnya.) 

1. Buat pengguna yang seharusnya diperbolehkan untuk mengubah kata sandi mereka sendiri, jika mereka belum ada. Lihat perinciannya di [Buat pengguna IAM di Akun AWS](id_users_create.md). 

1. (Opsional) Buat grup IAM untuk pengguna yang diizinkan untuk mengubah kata sandi mereka, lalu tambahkan pengguna dari langkah sebelumnya ke grup. Lihat perinciannya di [Grup pengguna IAM](id_groups.md). 

1. Tetapkan kebijakan berikut kepada grup. Untuk informasi selengkapnya, lihat [Kelola kebijakan IAM](access_policies_manage.md).

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "iam:GetAccountPasswordPolicy",
         "Resource": "*"
       },
       {
         "Effect": "Allow",
         "Action": "iam:ChangePassword",
         "Resource": "arn:aws:iam::*:user/${aws:username}"
       }
     ]
   }
   ```

------

   Kebijakan ini memberikan akses ke [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html)tindakan, yang memungkinkan pengguna hanya mengubah kata sandi mereka sendiri dari konsol AWS CLI, Alat untuk Windows PowerShell, atau API. Juga memberikan akses ke tindakan [GetAccountPasswordPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccountPasswordPolicy.html), yang memungkinkan pengguna melihat kebijakan kata sandi saat ini; izin ini diperlukan agar pengguna dapat melihat kebijakan kata sandi akun di halaman **Ubah kata sandi**. Pengguna harus diizinkan untuk membaca kebijakan kata sandi saat ini untuk memastikan bahwa kata sandi yang diubah memenuhi persyaratan kebijakan.

1. Berikan petunjuk berikut kepada pengguna untuk mengubah kata sandi mereka: [Bagaimana pengguna IAM mengubah kata sandi mereka sendiri](id_credentials_passwords_user-change-own.md). 

------

### Untuk informasi lebih lanjut
<a name="HowToPwdIAMUser-moreinfo"></a>

Untuk informasi selengkapnya tentang mengelola kredensial, lihat topik berikut:
+ [Izinkan pengguna IAM untuk mengubah kata sandi mereka sendiri](#id_credentials_passwords_enable-user-change) 
+ [Kata sandi pengguna di AWS](id_credentials_passwords.md)
+ [Menetapkan kebijakan kata sandi akun untuk pengguna IAM](id_credentials_passwords_account-policy.md)
+ [Kelola kebijakan IAM](access_policies_manage.md)
+ [Bagaimana pengguna IAM mengubah kata sandi mereka sendiri](id_credentials_passwords_user-change-own.md)

# Bagaimana pengguna IAM mengubah kata sandi mereka sendiri
<a name="id_credentials_passwords_user-change-own"></a>

Jika Anda telah diberikan izin untuk mengubah kata sandi pengguna IAM Anda sendiri, Anda dapat menggunakan halaman khusus Konsol Manajemen AWS untuk melakukan ini. Anda juga dapat menggunakan AWS CLI atau AWS API.

**Topics**
+ [Izin diperlukan](#change-own-passwords-permissions-required)
+ [Cara pengguna IAM mengubah kata sandi mereka sendiri (konsol)](#ManagingUserPwdSelf-Console)
+ [Bagaimana pengguna IAM mengubah kata sandi (AWS CLI atau AWS API) mereka sendiri](#ManagingUserPwdSelf-CLIAPI)

## Izin diperlukan
<a name="change-own-passwords-permissions-required"></a>

Untuk mengubah kata sandi untuk pengguna IAM Anda sendiri, Anda harus memiliki izin dari kebijakan berikut: [AWS: Memungkinkan pengguna IAM untuk mengubah kata sandi konsol mereka sendiri di halaman kredensi Keamanan](reference_policies_examples_aws_my-sec-creds-self-manage-password-only.md).

## Cara pengguna IAM mengubah kata sandi mereka sendiri (konsol)
<a name="ManagingUserPwdSelf-Console"></a>

Prosedur berikut menjelaskan bagaimana pengguna IAM dapat menggunakan Konsol Manajemen AWS untuk mengubah kata sandi mereka sendiri.

**Untuk mengubah kata sandi pengguna IAM Anda sendiri (konsol)**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna IAM dan informasi akun Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[AWS Tautan kredensi Keamanan Konsol Manajemen\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **Pada tab **Kredensial AWS IAM, pilih Perbarui** kata sandi.**

1. Untuk **Kata sandi saat ini**, masukkan kata sandi Anda saat ini. Masukkan kata sandi baru untuk **Kata sandi baru** dan **Konfirmasi kata sandi baru**. Kemudian pilih **Perbarui kata sandi**.
**catatan**  
Kata sandi baru harus memenuhi persyaratan kebijakan kata sandi akun. Untuk informasi selengkapnya, lihat [Menetapkan kebijakan kata sandi akun untuk pengguna IAM](id_credentials_passwords_account-policy.md). 

## Bagaimana pengguna IAM mengubah kata sandi (AWS CLI atau AWS API) mereka sendiri
<a name="ManagingUserPwdSelf-CLIAPI"></a>

Prosedur berikut menjelaskan bagaimana pengguna IAM dapat menggunakan AWS CLI atau AWS API untuk mengubah kata sandi mereka sendiri.

**Untuk mengubah kata sandi IAM Anda sendiri, gunakan cara berikut:**
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/change-password.html](https://docs.aws.amazon.com/cli/latest/reference/iam/change-password.html)
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html)

# Kelola access key untuk pengguna IAM
<a name="id_credentials_access-keys"></a>

**penting**  
Sebagai [praktik terbaik](best-practices.md), gunakan kredensi keamanan sementara (seperti peran IAM) alih-alih membuat kredensi jangka panjang seperti kunci akses. Sebelum membuat kunci akses, tinjau [alternatif untuk kunci akses jangka panjang](security-creds-programmatic-access.md#security-creds-alternatives-to-long-term-access-keys).

Kunci akses adalah kredensi jangka panjang untuk pengguna IAM atau. Pengguna root akun AWS Anda dapat menggunakan kunci akses untuk menandatangani permintaan terprogram ke AWS CLI atau AWS API (secara langsung atau menggunakan AWS SDK). Untuk informasi selengkapnya, lihat [Akses terprogram dengan kredensi AWS keamanan](security-creds-programmatic-access.md).

Access key terdiri dari dua bagian: access key ID (misalnya, `AKIAIOSFODNN7EXAMPLE`) dan secret access key (misalnya, `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`). Anda harus menggunakan ID kunci akses dan kunci akses rahasia bersama-sama untuk mengautentikasi permintaan Anda.



Saat Anda membuat pasangan access key, simpan access key ID dan secret access key di lokasi yang aman. Kunci akses rahasia hanya dapat diambil pada saat Anda membuatnya. Jika Anda kehilangan secret access key, Anda harus menghapus access key dan membuat access key baru. Untuk instruksi lebih lanjut, lihat[Perbarui kunci akses](id-credentials-access-keys-update.md).

Anda dapat memiliki maksimal dua kunci akses per pengguna.

**penting**  
Pengguna IAM dengan kunci akses adalah risiko keamanan akun. Kelola kunci akses Anda dengan aman. Jangan berikan kunci akses Anda kepada pihak yang tidak berwenang, bahkan untuk membantu [menemukan pengenal akun Anda](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html). Dengan melakukan tindakan ini, Anda mungkin memberi seseorang akses permanen ke akun Anda.  
Saat bekerja dengan kunci akses, perhatikan hal-hal berikut:  
**JANGAN** gunakan kredensi root akun Anda untuk membuat kunci akses.
**JANGAN** menaruh kunci akses atau informasi kredensi dalam file aplikasi Anda. 
**JANGAN** sertakan file yang berisi kunci akses atau informasi kredensi di area proyek Anda.
Kunci akses atau informasi kredensi yang disimpan dalam file AWS kredensial bersama disimpan dalam teks biasa.

## Rekomendasi pemantauan
<a name="monitor-access-keys"></a>

Setelah membuat kunci akses:
+ Gunakan AWS CloudTrail untuk memantau penggunaan kunci akses dan mendeteksi upaya akses yang tidak sah. Untuk informasi selengkapnya, lihat [Mencatat panggilan IAM dan AWS STS API dengan AWS CloudTrail](cloudtrail-integration.md).
+ Siapkan CloudWatch alarm untuk memberi tahu administrator untuk upaya akses yang ditolak untuk membantu mendeteksi aktivitas berbahaya. Untuk informasi selengkapnya, lihat [Panduan CloudWatch Pengguna Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).
+ Tinjau, perbarui, dan hapus kunci akses secara teratur sesuai kebutuhan.

Topik berikut merinci tugas manajemen yang terkait dengan kunci akses.

**Topics**
+ [Rekomendasi pemantauan](#monitor-access-keys)
+ [Kontrol penggunaan kunci akses dengan melampirkan kebijakan inline ke pengguna IAM](access-keys_inline-policy.md)
+ [Izin diperlukan untuk mengelola kunci akses](access-keys_required-permissions.md)
+ [Bagaimana pengguna IAM dapat mengelola kunci akses mereka sendiri](access-key-self-managed.md)
+ [Bagaimana administrator IAM dapat mengelola kunci akses pengguna IAM](access-keys-admin-managed.md)
+ [Perbarui kunci akses](id-credentials-access-keys-update.md)
+ [Kunci akses aman](securing_access-keys.md)

# Kontrol penggunaan kunci akses dengan melampirkan kebijakan inline ke pengguna IAM
<a name="access-keys_inline-policy"></a>

Sebagai praktik terbaik, kami menyarankan agar [beban kerja menggunakan kredensional sementara dengan peran IAM](best-practices.md#bp-workloads-use-roles) untuk mengakses. AWS Pengguna IAM dengan kunci akses harus diberi akses hak istimewa paling sedikit dan mengaktifkan [otentikasi multi-faktor (MFA](id_credentials_mfa.md)). Untuk informasi selengkapnya tentang mengasumsikan peran IAM, lihat. [Metode untuk mengambil peran](id_roles_manage-assume.md)

Namun, jika Anda membuat uji bukti konsep otomatisasi layanan atau kasus penggunaan jangka pendek lainnya, dan Anda memilih untuk menjalankan beban kerja menggunakan pengguna IAM dengan kunci akses, kami sarankan Anda [menggunakan ketentuan kebijakan untuk lebih membatasi akses](best-practices.md#use-policy-conditions) kredensi pengguna IAM mereka.

Dalam situasi ini, Anda dapat membuat kebijakan terikat waktu yang kedaluwarsa kredensialnya setelah waktu yang ditentukan atau, jika Anda menjalankan beban kerja dari jaringan aman, Anda dapat menggunakan kebijakan pembatasan IP.

Untuk kedua kasus penggunaan ini, Anda dapat menggunakan kebijakan inline yang dilampirkan ke pengguna IAM yang memiliki kunci akses.

**Untuk mengonfigurasi kebijakan terikat waktu bagi pengguna IAM**

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, pilih **Pengguna** dan kemudian pilih pengguna untuk kasus penggunaan jangka pendek. Jika Anda belum membuat pengguna, Anda dapat [membuat pengguna](getting-started-workloads.md) sekarang.

1. Pada halaman **Detail** pengguna, pilih tab **Izin**.

1. Pilih **Tambahkan izin**, lalu pilih **Buat kebijakan sebaris**.

1. Di bagian **Editor kebijakan**, pilih **JSON** untuk menampilkan editor JSON.

1. Di editor JSON, masukkan kebijakan berikut, ganti nilai `aws:CurrentTime` stempel waktu dengan tanggal dan waktu kedaluwarsa yang Anda inginkan:

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

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
         "DateGreaterThan": {
         "aws:CurrentTime": "2025-03-01T00:12:00Z"
           }
         }
       }
     ]
   }
   ```

------

   Kebijakan ini menggunakan `Deny` efek untuk membatasi semua tindakan pada semua sumber daya setelah tanggal yang ditentukan. `DateGreaterThan`Kondisi membandingkan waktu saat ini dengan stempel waktu yang Anda tetapkan.

1. Pilih **Berikutnya** untuk melanjutkan ke halaman **Tinjauan dan buat**. Di Rincian **kebijakan**, di bawah **Nama kebijakan**, masukkan nama untuk kebijakan tersebut, lalu pilih **Buat kebijakan**.

Setelah kebijakan dibuat, kebijakan akan ditampilkan di tab **Izin** untuk pengguna. Ketika waktu saat ini lebih besar dari atau sama dengan waktu yang ditentukan dalam kebijakan, pengguna tidak akan lagi memiliki akses ke AWS sumber daya. Pastikan untuk memberi tahu pengembang beban kerja tentang tanggal kedaluwarsa yang Anda tentukan untuk kunci akses ini. 

**Untuk mengonfigurasi kebijakan pembatasan IP untuk pengguna IAM**

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, pilih **Pengguna** dan kemudian pilih pengguna yang akan menjalankan beban kerja dari jaringan aman. Jika Anda belum membuat pengguna, Anda dapat [membuat pengguna](getting-started-workloads.md) sekarang.

1. Pada halaman **Detail** pengguna, pilih tab **Izin**.

1. Pilih **Tambahkan izin**, lalu pilih **Buat kebijakan sebaris**.

1. Di bagian **Editor kebijakan**, pilih **JSON** untuk menampilkan editor JSON.

1. Salin kebijakan IAM berikut ke editor JSON, dan ubah publik IPv4 atau IPv6 alamat, atau rentang sesuai kebutuhan Anda. Anda dapat menggunakan [https://checkip.amazonaws.com/](https://checkip.amazonaws.com/)untuk menentukan alamat IP publik Anda saat ini. Anda dapat menentukan alamat IP individual, atau rentang alamat IP menggunakan notasi garis miring. Untuk informasi selengkapnya, lihat [aws:SourceIp](reference_policies_condition-keys.md#condition-keys-sourceip). 
**catatan**  
Alamat IP tidak boleh dikaburkan oleh VPN atau server proxy.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid":"IpRestrictionIAMPolicyForIAMUser",
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "NotIpAddress": {
             "aws:SourceIp": [
               "203.0.113.0/24",
               "2001:DB8:1234:5678::/64",
               "203.0.114.1"
             ]
           },
           "BoolIfExists": {
             "aws:ViaAWSService": "false"
           }
         }
       }
     ]
   }
   ```

------

   Contoh kebijakan ini menolak penggunaan kunci akses pengguna IAM dengan kebijakan ini diterapkan, kecuali permintaan tersebut berasal dari jaringan (ditentukan dalam notasi CIDR) “203.0.113.0/24”, “2001:: 1234:5678DB8: :/64”, atau alamat IP spesifik “203.0.114.1” 

1. Pilih **Berikutnya** untuk melanjutkan ke halaman **Tinjauan dan buat**. Di Rincian **kebijakan**, di bawah **Nama kebijakan**, masukkan nama untuk kebijakan tersebut, lalu pilih **Buat kebijakan**.

Setelah kebijakan dibuat, kebijakan akan ditampilkan di tab **Izin** untuk pengguna. 

Anda juga dapat menerapkan kebijakan ini sebagai kebijakan kontrol layanan (SCP) di beberapa AWS akun AWS Organizations, kami sarankan menggunakan kondisi tambahan, `aws:PrincipalArn` untuk membuat pernyataan kebijakan ini hanya berlaku untuk pengguna IAM dalam AWS akun yang tunduk pada SCP ini. Kebijakan berikut mencakup pembaruan itu:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IpRestrictionServiceControlPolicyForIAMUsers",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": [
            "203.0.113.0/24",
            "2001:DB8:1234:5678::/64",
            "203.0.114.1"
          ]
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        },
        "ArnLike": {
          "aws:PrincipalArn": "arn:aws:iam::*:user/*"
        }
      }
    }
  ]
}
```

------

# Izin diperlukan untuk mengelola kunci akses
<a name="access-keys_required-permissions"></a>

**catatan**  
`iam:TagUser`adalah izin opsional untuk menambahkan dan mengedit deskripsi untuk kunci akses. Untuk informasi selengkapnya, lihat [Tag pengguna IAM](id_tags_users.md)

Untuk membuat kunci akses untuk pengguna IAM Anda sendiri, Anda harus memiliki izin dari kebijakan berikut:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:GetUser",
                "iam:ListAccessKeys",
                "iam:TagUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

Untuk memperbarui kunci akses untuk pengguna IAM Anda sendiri, Anda harus memiliki izin dari kebijakan berikut:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:GetAccessKeyLastUsed",
                "iam:GetUser",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:TagUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# Bagaimana pengguna IAM dapat mengelola kunci akses mereka sendiri
<a name="access-key-self-managed"></a>

Administrator IAM dapat memberikan izin kepada pengguna IAM untuk mengelola sendiri kunci akses mereka dengan melampirkan kebijakan yang dijelaskan di dalamnya. [Izin diperlukan untuk mengelola kunci akses](access-keys_required-permissions.md)

Dengan izin ini, pengguna IAM dapat menggunakan prosedur berikut untuk membuat, mengaktifkan, menonaktifkan, dan menghapus kunci akses yang terkait dengan nama pengguna mereka.

**Topics**
+ [Buat kunci akses untuk Anda sendiri (konsol)](#Using_CreateAccessKey)
+ [Nonaktifkan kunci akses Anda (konsol)](#deactivate-access-key-seccreds)
+ [Aktifkan kunci akses Anda (konsol)](#activate-access-key-seccreds)
+ [Hapus kunci akses Anda (konsol)](#delete-access-key-seccreds)

## Buat kunci akses untuk Anda sendiri (konsol)
<a name="Using_CreateAccessKey"></a>

Jika Anda telah diberikan izin yang sesuai, Anda dapat menggunakan tombol Konsol Manajemen AWS untuk membuat kunci akses untuk diri Anda sendiri.

**Untuk membuat kunci akses Anda sendiri (konsol)**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna IAM dan informasi akun Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[AWS Tautan kredensi Keamanan Konsol Manajemen\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. Pada bagian **Access key**, pilih **Buat access key**. Jika Anda sudah memiliki dua kunci akses, tombol ini dinonaktifkan dan Anda harus menghapus kunci akses sebelum Anda dapat membuat yang baru.

1. Pada halaman **praktik terbaik & alternatif kunci Access**, pilih kasus penggunaan Anda untuk mempelajari opsi tambahan yang dapat membantu Anda menghindari pembuatan kunci akses jangka panjang. Jika Anda menentukan bahwa kasus penggunaan Anda masih memerlukan kunci akses, pilih **Lainnya** dan kemudian pilih **Berikutnya**.

1. (Opsional) Tetapkan nilai tag deskripsi untuk kunci akses. Ini menambahkan pasangan nilai kunci tag ke pengguna IAM Anda. Ini dapat membantu Anda mengidentifikasi dan memperbarui kunci akses nanti. Kunci tag diatur ke id kunci akses. Nilai tag diatur ke deskripsi kunci akses yang Anda tentukan. Setelah selesai, pilih **Buat kunci akses**.

1. Pada halaman **Ambil kunci akses**, pilih **Tampilkan** untuk mengungkapkan nilai kunci akses rahasia pengguna Anda, atau **Unduh file.csv.** Ini adalah satu-satunya kesempatan untuk menyimpan secret access key Anda. Setelah menyimpan kunci akses rahasia di lokasi yang aman, pilih **Selesai**.

## Nonaktifkan kunci akses Anda (konsol)
<a name="deactivate-access-key-seccreds"></a>

Jika Anda telah diberikan izin yang sesuai, Anda dapat menggunakan tombol Konsol Manajemen AWS untuk menonaktifkan kunci akses Anda.

**Untuk menonaktifkan kunci akses**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna IAM dan informasi akun Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[AWS Tautan kredensi Keamanan Konsol Manajemen\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. Di bagian **Kunci akses** temukan kunci yang ingin Anda nonaktifkan, lalu pilih **Tindakan**, lalu pilih **Nonaktifkan**. Saat diminta konfirmasi, pilih **Deactivate** (Nonaktifkan). Access key yang dinonaktifkan masih diperhitungkan dalam batas dua access key Anda.

## Aktifkan kunci akses Anda (konsol)
<a name="activate-access-key-seccreds"></a>

Jika Anda telah diberikan izin yang sesuai, Anda dapat menggunakan tombol Konsol Manajemen AWS untuk mengaktifkan kunci akses Anda.

**Untuk mengaktifkan kunci akses**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna IAM dan informasi akun Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[AWS Tautan kredensi Keamanan Konsol Manajemen\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. Di bagian **Kunci akses**, temukan kunci untuk mengaktifkan, lalu pilih **Tindakan**, lalu pilih **Aktifkan**.

## Hapus kunci akses Anda (konsol)
<a name="delete-access-key-seccreds"></a>

Jika Anda telah diberikan izin yang sesuai, Anda dapat menggunakan tombol Konsol Manajemen AWS untuk menghapus kunci akses Anda.

**Untuk menghapus kunci akses saat Anda tidak lagi membutuhkannya**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna IAM dan informasi akun Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[AWS Tautan kredensi Keamanan Konsol Manajemen\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. Di bagian **Kunci akses**, cari kunci yang ingin Anda hapus, lalu pilih **Tindakan**, lalu pilih **Hapus**. Ikuti instruksi dalam dialog untuk pertama **Nonaktifkan** dan kemudian konfirmasikan penghapusan. Sebaiknya verifikasi bahwa access key tidak lagi digunakan sebelum Anda menghapusnya secara permanen.

# Bagaimana administrator IAM dapat mengelola kunci akses pengguna IAM
<a name="access-keys-admin-managed"></a>

Administrator IAM dapat membuat, mengaktifkan, menonaktifkan, dan menghapus kunci akses yang terkait dengan pengguna IAM individu. Mereka juga dapat mencantumkan pengguna IAM di akun yang memiliki kunci akses dan menemukan pengguna IAM mana yang memiliki kunci akses tertentu.

**Topics**
+ [Untuk membuat kunci akses untuk pengguna IAM](#admin-create-access-key)
+ [Untuk menonaktifkan kunci akses untuk pengguna IAM](#admin-deactivate-access-key)
+ [Untuk mengaktifkan kunci akses untuk pengguna IAM](#admin-activate-access-key)
+ [Untuk menghapus kunci akses untuk pengguna IAM](#admin-delete-access-key)
+ [Untuk membuat daftar kunci akses untuk pengguna IAM](#admin-list-access-key)
+ [Untuk membuat daftar kunci akses untuk pengguna IAM](#admin-list-access-key)
+ [Untuk menampilkan semua kunci akses IDs bagi pengguna di akun Anda](#admin-list-all-access-keys)
+ [Untuk menggunakan ID kunci akses untuk menemukan pengguna](#admin-find-user-access-keys)
+ [Untuk menemukan penggunaan terbaru dari ID kunci akses](#admin-find-most-recent-use-access-keys)

## Untuk membuat kunci akses untuk pengguna IAM
<a name="admin-create-access-key"></a>

------
#### [ Console ]

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna untuk membuka halaman detail pengguna.

1. Pada tab **Security credentials**, di bagian **Access keys**, pilih **Create Access** Key.

   Jika tombol dinonaktifkan, maka Anda harus menghapus salah satu kunci yang ada sebelum Anda dapat membuat yang baru.

1. Pada halaman **Praktik & Alternatif Terbaik Kunci Akses**, tinjau praktik dan alternatif terbaik. Pilih kasus penggunaan Anda untuk mempelajari opsi tambahan yang dapat membantu Anda menghindari pembuatan kunci akses jangka panjang.

1. Jika Anda menentukan bahwa kasus penggunaan Anda masih memerlukan kunci akses, pilih **Lainnya** dan kemudian pilih **Berikutnya**.

1. **(Opsional)** Pada halaman **Setel tag deskripsi**, Anda dapat menambahkan tag deskripsi ke kunci akses untuk membantu melacak kunci akses Anda. Pilih **Buat tombol akses**.

1. Pada **halaman Retrieve access key**, pilih **Tampilkan** untuk mengungkapkan nilai kunci akses rahasia pengguna Anda.

1. Untuk menyimpan ID kunci akses dan kunci akses rahasia ke `.csv` file ke lokasi aman di komputer Anda, pilih tombol **Unduh file.csv**.
**penting**  
Ini adalah satu-satunya waktu Anda untuk melihat atau mengunduh kunci akses yang baru dibuat dan Anda tidak dapat memulihkannya. Pastikan Anda menjaga kunci akses Anda dengan aman.

Saat Anda membuat kunci akses untuk pengguna Anda, key pair tersebut aktif secara default, dan pengguna Anda dapat langsung menggunakan pasangan tersebut.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

------
#### [ API ]

Panggil operasi berikut:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) 

------

## Untuk menonaktifkan kunci akses untuk pengguna IAM
<a name="admin-deactivate-access-key"></a>

------
#### [ Console ]

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna untuk membuka halaman detail pengguna.

1. **Pada tab **Security credentials**, di bagian **Access keys**, pilih menu drop-down **Actions**, lalu pilih Nonaktifkan.**

1. **Di kotak dialog **Nonaktifkan**, konfirmasikan bahwa Anda ingin menonaktifkan kunci akses dengan memilih Nonaktifkan**

Setelah kunci akses dinonaktifkan, itu tidak dapat lagi digunakan oleh panggilan API. Anda dapat mengaktifkannya lagi jika diperlukan.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

------
#### [ API ]

Panggil operasi berikut:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 

------

## Untuk mengaktifkan kunci akses untuk pengguna IAM
<a name="admin-activate-access-key"></a>

------
#### [ Console ]

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna untuk membuka halaman detail pengguna.

1. **Pada tab **Security credentials**, di bagian **Access keys**, pilih menu drop-down **Actions**, lalu pilih Activate.**

Setelah kunci akses diaktifkan, itu dapat digunakan oleh panggilan API. Anda dapat menonaktifkannya lagi jika diperlukan.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

------
#### [ API ]

Panggil operasi berikut:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 

------

## Untuk menghapus kunci akses untuk pengguna IAM
<a name="admin-delete-access-key"></a>

Setelah kunci akses dinonaktifkan, jika tidak lagi diperlukan, hapus.

------
#### [ Console ]

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna untuk membuka halaman detail pengguna.

1. **Pada tab **Security credentials**, di bagian **Access keys**, pilih menu drop-down **Actions** untuk tombol akses tidak aktif, lalu pilih Delete.**

1. Di kotak dialog **Hapus**, konfirmasikan bahwa Anda ingin menghapus kunci akses dengan memasukkan ID kunci akses di bidang input teks dan kemudian memilih **Hapus**.

Setelah kunci akses dihapus, itu tidak dapat dipulihkan.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)

------
#### [ API ]

Panggil operasi berikut:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html) 

------

## Untuk membuat daftar kunci akses untuk pengguna IAM
<a name="admin-list-access-key"></a>

Anda dapat melihat daftar kunci akses yang IDs terkait dengan pengguna IAM. 

------
#### [ Console ]

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna untuk membuka halaman detail pengguna.

1. Pada tab **Security credentials**, bagian **Access keys** mencantumkan tombol akses untuk pengguna.

Setiap pengguna IAM dapat memiliki dua kunci akses.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)

------
#### [ API ]

Panggil operasi berikut:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) 

------

## Untuk membuat daftar kunci akses untuk pengguna IAM
<a name="admin-list-access-key"></a>

Anda dapat melihat daftar kunci akses yang IDs terkait dengan pengguna IAM. 

------
#### [ Console ]

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna untuk membuka halaman detail pengguna.

1. Pada tab **Security credentials**, bagian **Access keys** mencantumkan kunci akses IDs untuk pengguna termasuk status setiap tombol yang ditampilkan.
**catatan**  
Hanya access key ID pengguna yang terlihat. Secret access key hanya dapat diambil kembali saat kunci dibuat.

Setiap pengguna IAM dapat memiliki dua kunci akses.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)

------
#### [ API ]

Panggil operasi berikut:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) 

------

## Untuk menampilkan semua kunci akses IDs bagi pengguna di akun Anda
<a name="admin-list-all-access-keys"></a>

Anda dapat melihat daftar kunci akses IDs untuk pengguna di Akun AWS. 

------
#### [ Console ]

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna untuk membuka halaman detail pengguna.

1. Jika perlu, tambahkan kolom **access key ID** pada tabel pengguna dengan menyelesaikan langkah-langkah berikut:

   1. Di atas tabel di paling kanan, pilih ikon **Preferensi** (![\[Preferences icon\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/console-settings-icon.console.png)).

   1. Di kotak dialog **Preferensi**, di bawah **Pilih kolom yang terlihat**, aktifkan **ID kunci akses**.

   1. Pilih **Konfirmasi** untuk kembali ke daftar pengguna. Daftar diperbarui untuk menyertakan ID kunci akses.

1. Kolom **ID kunci Access** menunjukkan status setiap kunci akses, diikuti dengan ID-nya; misalnya, **`Active - AKIAIOSFODNN7EXAMPLE`**atau **`Inactive - AKIAI44QH8DHBEXAMPLE`**. 

   Anda dapat menggunakan informasi ini untuk melihat dan menyalin kunci akses IDs untuk pengguna dengan satu atau dua kunci akses. Kolom ditampilkan **`-`**untuk pengguna tanpa kunci akses.
**catatan**  
Secret access key hanya dapat diambil kembali saat kunci dibuat.

Setiap pengguna IAM dapat memiliki dua kunci akses.

------

## Untuk menggunakan ID kunci akses untuk menemukan pengguna
<a name="admin-find-user-access-keys"></a>

Anda dapat menggunakan ID kunci akses untuk menemukan pengguna di akun Anda Akun AWS. 

------
#### [ Console ]

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, di kotak pencarian, masukkan **ID kunci akses**, misalnyaAKIAI44QH8DHBEXAMPLE. 

1. Pengguna IAM yang dikaitkan dengan ID kunci akses muncul di panel navigasi. Pilih nama pengguna untuk membuka halaman detail pengguna.

------

## Untuk menemukan penggunaan terbaru dari ID kunci akses
<a name="admin-find-most-recent-use-access-keys"></a>

Penggunaan kunci akses terbaru ditampilkan dalam daftar pengguna di halaman pengguna IAM, di halaman detail pengguna, dan merupakan bagian dari laporan kredensi. 

------
#### [ Console ]

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

1. Dalam daftar pengguna, lihat kolom **Access key last used**.

   Jika kolom tidak ditampilkan, pilih ikon **Preferensi** (![\[Preferences icon\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/console-settings-icon.console.png)) dan di bawah **Pilih kolom yang terlihat**, aktifkan **Kunci akses terakhir digunakan** untuk menampilkan kolom.

1. (opsional) Di panel navigasi, di bawah **Laporan akses**, pilih **Laporan kredenal** untuk mengunduh laporan yang menyertakan kunci akses informasi yang terakhir digunakan untuk semua pengguna IAM di akun Anda.

1. (opsional) Pilih pengguna IAM untuk melihat detail pengguna. Bagian **Ringkasan** mencakup kunci akses IDs, statusnya, dan kapan terakhir kali digunakan.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)

------
#### [ API ]

Panggil operasi berikut:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html) 

------

# Perbarui kunci akses
<a name="id-credentials-access-keys-update"></a>

Sebagai [praktik keamanan terbaik](best-practices.md#update-access-keys), kami menyarankan Anda memperbarui kunci akses pengguna IAM saat diperlukan, seperti ketika seorang karyawan meninggalkan perusahaan Anda. Pengguna IAM dapat memperbarui kunci akses mereka sendiri jika mereka telah diberikan izin yang diperlukan.

Untuk detail tentang pemberian izin kepada pengguna IAM untuk memperbarui kunci akses mereka sendiri, lihat. [AWS: Memungkinkan pengguna IAM untuk mengelola kata sandi, kunci akses, dan kunci publik SSH mereka sendiri di halaman kredensi Keamanan](reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh.md) Anda juga dapat menerapkan kebijakan kata sandi ke akun Anda untuk mengharuskan semua pengguna IAM Anda memperbarui kata sandi mereka secara berkala dan seberapa sering mereka harus melakukannya. Untuk informasi selengkapnya, lihat [Menetapkan kebijakan kata sandi akun untuk pengguna IAM](id_credentials_passwords_account-policy.md). 

**catatan**  
Jika Anda kehilangan secret access key, Anda harus menghapus access key dan membuat access key baru. Kunci akses rahasia hanya dapat diambil pada saat Anda membuatnya. Gunakan prosedur ini untuk menonaktifkan dan kemudian mengganti kunci akses yang hilang dengan kredensi baru.

**Topics**
+ [Memperbarui kunci akses pengguna IAM (konsol)](#rotating_access_keys_console)
+ [Memperbarui kunci akses (AWS CLI)](#rotating_access_keys_cli)
+ [Memperbarui kunci akses (AWS API)](#rotating_access_keys_api)

## Memperbarui kunci akses pengguna IAM (konsol)
<a name="rotating_access_keys_console"></a>

Anda dapat memperbarui kunci akses dari file Konsol Manajemen AWS.

**Untuk memperbarui kunci akses untuk pengguna IAM tanpa mengganggu aplikasi Anda (konsol)**

1. Meskipun access key pertama masih aktif, buat access key kedua.

   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, pilih **Pengguna**.

   1. Pilih nama pengguna yang dimaksud, lalu pilih tab **Kredensial keamanan**.

   1. Pada bagian **Access key**, pilih **Buat access key**. Pada halaman **Praktik & alternatif terbaik kunci Akses**, pilih **Lainnya**, lalu pilih **Berikutnya**.

   1. (Opsional) Tetapkan nilai tag deskripsi untuk kunci akses untuk menambahkan pasangan nilai kunci tag ke pengguna IAM ini. Ini dapat membantu Anda mengidentifikasi dan memperbarui kunci akses nanti. Kunci tag diatur ke id kunci akses. Nilai tag diatur ke deskripsi kunci akses yang Anda tentukan. Setelah selesai, pilih **Buat kunci akses**.

   1. Pada halaman **Ambil kunci akses**, pilih **Tampilkan** untuk mengungkapkan nilai kunci akses rahasia pengguna Anda, atau **Unduh file.csv.** Ini adalah satu-satunya kesempatan untuk menyimpan secret access key Anda. Setelah menyimpan kunci akses rahasia di lokasi yang aman, pilih **Selesai**.

      Saat Anda membuat kunci akses untuk pengguna Anda, key pair tersebut aktif secara default, dan pengguna Anda dapat langsung menggunakan pasangan tersebut. Pada titik ini, pengguna memiliki dua access key aktif.

1. Perbarui semua aplikasi dan alat untuk menggunakan access key baru.

1. <a name="id_credentials_access-keys-key-still-in-use"></a>Tentukan apakah kunci akses pertama masih digunakan dengan meninjau informasi yang **terakhir digunakan** untuk kunci akses tertua. Salah satu pendekatannya adalah dengan menunggu beberapa hari kemudian memeriksa access key lama untuk penggunaan apa pun sebelum melanjutkan.

1. Bahkan jika Informasi **terakhir yang digunakan** menunjukkan bahwa kunci lama tidak pernah digunakan, kami sarankan Anda tidak segera menghapus kunci akses pertama. Sebagai gantinya, pilih **Tindakan** dan kemudian pilih **Nonaktifkan** untuk menonaktifkan kunci akses pertama.

1. Gunakan hanya access key baru untuk mengonfirmasi bahwa aplikasi Anda berfungsi. Aplikasi dan alat apa pun yang masih menggunakan kunci akses asli akan berhenti berfungsi pada saat ini karena mereka tidak lagi memiliki akses ke AWS sumber daya. Jika Anda menemukan aplikasi atau alat seperti itu, Anda dapat mengaktifkan kembali kunci akses pertama. Lalu kembali ke [Step 3](#id_credentials_access-keys-key-still-in-use) dan perbarui aplikasi ini untuk menggunakan kunci baru.

1. Setelah Anda menunggu beberapa waktu untuk memastikan bahwa semua aplikasi dan alat telah diperbarui, Anda dapat menghapus access key pertama:

   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, pilih **Pengguna**.

   1. Pilih nama pengguna yang dimaksud, lalu pilih tab **Kredensial keamanan**.

   1. Di bagian **Kunci akses** untuk kunci akses yang ingin Anda hapus, pilih **Tindakan**, lalu pilih **Hapus**. Ikuti instruksi dalam dialog untuk pertama **Nonaktifkan** dan kemudian konfirmasikan penghapusan.

**Untuk menentukan kunci akses mana yang perlu diperbarui atau dihapus (konsol)**

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, pilih **Pengguna**.

1. Jika perlu, tambahkan kolom **Usia access key** pada tabel pengguna dengan menyelesaikan langkah-langkah berikut:

   1. Di atas tabel di ujung kanan, pilih ikon pengaturan (![\[Settings icon\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/console-settings-icon.console.png)).

   1. Di **Kelola kolom**, pilih **Usia access key**.

   1. Pilih **Tutup** untuk kembali ke daftar pengguna.

1. Kolom **Usia access key** menunjukkan jumlah hari sejak access key aktif tertua dibuat. Anda dapat menggunakan informasi ini untuk menemukan pengguna dengan kunci akses yang mungkin perlu diperbarui atau dihapus. Kolom menampilkan **Tidak ada** untuk pengguna yang tidak memiliki access key.

## Memperbarui kunci akses (AWS CLI)
<a name="rotating_access_keys_cli"></a>

Anda dapat memperbarui kunci akses dari file AWS Command Line Interface.

**Untuk memperbarui kunci akses tanpa mengganggu aplikasi Anda ()AWS CLI**

1. Meskipun access key pertama masih aktif, buat access key kedua, yang secara default aktif. Jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

     Pada titik ini, pengguna memiliki dua access key aktif.

1. <a name="step-update-apps"></a>Perbarui semua aplikasi dan alat untuk menggunakan access key baru.

1. <a name="step-determine-use"></a>Tentukan apakah access key pertama masih digunakan dengan perintah ini:
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)

   Salah satu pendekatannya adalah dengan menunggu beberapa hari kemudian memeriksa access key lama untuk penggunaan apa pun sebelum melanjutkan.

1. Bahkan jika langkah [Step 3](#step-determine-use) tidak menunjukkan penggunaan kunci lama, kami sarankan agar Anda tidak segera menghapus access key pertama. Alih-alih, ubah status access key pertama ke `Inactive` menggunakan perintah ini:
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

1. Gunakan hanya access key baru untuk mengonfirmasi bahwa aplikasi Anda berfungsi. Aplikasi dan alat apa pun yang masih menggunakan kunci akses asli akan berhenti berfungsi pada saat ini karena mereka tidak lagi memiliki akses ke AWS sumber daya. Jika Anda menemukan aplikasi atau alat seperti itu, Anda dapat mengubah statusnya kembali `Active` untuk mengaktifkan kembali kunci akses pertama. Lalu kembali ke langkah [Step 2](#step-update-apps) dan perbarui aplikasi ini untuk menggunakan kunci baru.

1. Setelah Anda menunggu beberapa waktu untuk memastikan bahwa semua aplikasi dan alat telah diperbarui, Anda dapat menghapus access key pertama dengan perintah ini:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)

## Memperbarui kunci akses (AWS API)
<a name="rotating_access_keys_api"></a>

Anda dapat memperbarui kunci akses menggunakan AWS API.

**Untuk memperbarui kunci akses tanpa mengganggu aplikasi Anda (API)AWS**

1. Meskipun access key pertama masih aktif, buat access key kedua, yang secara default aktif. Hubungi operasi berikut ini:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html)

     Pada titik ini, pengguna memiliki dua access key aktif.

1. <a name="step-update-apps-2"></a>Perbarui semua aplikasi dan alat untuk menggunakan access key baru.

1. <a name="step-determine-use-2"></a>Tentukan apakah access key pertama masih digunakan dengan menghubungi operasi ini:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)

   Salah satu pendekatannya adalah dengan menunggu beberapa hari kemudian memeriksa access key lama untuk penggunaan apa pun sebelum melanjutkan.

1. Bahkan jika langkah [Step 3](#step-determine-use-2) tidak menunjukkan penggunaan kunci lama, kami sarankan agar Anda tidak segera menghapus access key pertama. Alih-alih, ubah status access key pertama ke `Inactive` dengan operasi ini:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html)

1. Gunakan hanya access key baru untuk mengonfirmasi bahwa aplikasi Anda berfungsi. Aplikasi dan alat apa pun yang masih menggunakan kunci akses asli akan berhenti berfungsi pada saat ini karena mereka tidak lagi memiliki akses ke AWS sumber daya. Jika Anda menemukan aplikasi atau alat seperti itu, Anda dapat mengubah statusnya kembali `Active` untuk mengaktifkan kembali kunci akses pertama. Lalu kembali ke langkah [Step 2](#step-update-apps-2) dan perbarui aplikasi ini untuk menggunakan kunci baru.

1. Setelah Anda menunggu beberapa waktu untuk memastikan bahwa semua aplikasi dan alat telah diperbarui, Anda dapat menghapus access key pertama dengan memanggil operasi ini:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)

# Kunci akses aman
<a name="securing_access-keys"></a>

Siapa pun yang memiliki kunci akses Anda memiliki tingkat akses yang sama ke AWS sumber daya Anda seperti yang Anda lakukan. Akibatnya, AWS berupaya keras untuk melindungi kunci akses Anda, dan, sesuai dengan [model tanggung jawab bersama kami,](https://aws.amazon.com/compliance/shared-responsibility-model/) Anda juga harus melakukannya. 

Perluas bagian berikut untuk panduan untuk membantu Anda melindungi kunci akses Anda. 

**catatan**  
Organisasi Anda mungkin memiliki persyaratan dan kebijakan keamanan yang berbeda dari yang dijelaskan dalam topik ini. Saran yang diberikan di sini dimaksudkan sebagai pedoman umum. 

## Hapus (atau jangan buat) kunci Pengguna root akun AWS akses
<a name="root-password"></a>

**Salah satu cara terbaik untuk melindungi akun Anda adalah dengan tidak memiliki kunci akses untuk Anda Pengguna root akun AWS.** Kecuali Anda harus memiliki kunci akses pengguna root (yang jarang terjadi), yang terbaik adalah tidak membuatnya. Sebagai gantinya, buat pengguna administratif AWS IAM Identity Center untuk tugas administratif harian.Untuk informasi tentang cara membuat pengguna administratif di Pusat Identitas IAM, lihat [Memulai](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) di Panduan Pengguna Pusat Identitas *IAM*.

Jika Anda sudah memiliki kunci akses pengguna root untuk akun Anda, kami sarankan yang berikut: Temukan tempat di aplikasi Anda di mana Anda saat ini menggunakan kunci akses (jika ada), dan ganti kunci akses pengguna root dengan kunci akses pengguna IAM. Kemudian nonaktifkan dan hapus kunci akses pengguna root. Untuk informasi selengkapnya tentang cara memperbarui kunci akses, lihat [Perbarui kunci akses](id-credentials-access-keys-update.md)



## Gunakan kredensil keamanan sementara (peran IAM) alih-alih kunci akses jangka panjang
<a name="use-roles"></a>

Dalam banyak skenario, Anda tidak memerlukan access key jangka panjang yang tidak pernah kedaluwarsa (seperti yang Anda lakukan dengan pengguna IAM). Sebagai gantinya, Anda dapat membuat IAM role dan membuat kredensial keamanan sementara. Kredensial keamanan sementara terdiri dari access key ID dan secret access key, tetapi mereka juga menyertakan token keamanan yang menunjukkan kapan kredensial kedaluwarsa. 

Kunci akses jangka panjang, seperti yang terkait dengan pengguna IAM dan pengguna root, tetap valid sampai Anda mencabutnya secara manual. Namun, kredensi keamanan sementara yang diperoleh melalui peran IAM dan fitur lain dari AWS Security Token Service kedaluwarsa setelah periode waktu yang singkat. Gunakan kredensial keamanan sementara untuk membantu mengurangi risiko Anda jika kredensial terekspos secara tidak sengaja.

Gunakan IAM role dan kredensial keamanan sementara dalam skenario berikut:
+ **Anda memiliki aplikasi atau AWS CLI skrip yang berjalan pada instans Amazon EC2.** Jangan gunakan kunci akses langsung di aplikasi Anda. Jangan memberikan access key ke aplikasi, menyematkannya di aplikasi, atau membiarkan aplikasi membaca access key dari sumber mana pun. [Sebagai gantinya, tentukan peran IAM yang memiliki izin yang sesuai untuk aplikasi Anda dan luncurkan instans Amazon Elastic Compute Cloud (Amazon EC2) dengan peran untuk EC2.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) Melakukan hal ini akan mengaitkan IAM role dengan instans Amazon EC2. Praktik ini juga memungkinkan aplikasi untuk mendapatkan kredensi keamanan sementara yang pada gilirannya dapat digunakan untuk melakukan panggilan terprogram. AWS The AWS SDKs and the AWS Command Line Interface (AWS CLI) bisa mendapatkan kredensi sementara dari peran secara otomatis. 
+ **Anda perlu memberikan akses lintas akun.** Gunakan IAM role untuk membangun kepercayaan antar akun, lalu berikan izin terbatas kepada pengguna dalam satu akun untuk mengakses akun tepercaya. Untuk informasi selengkapnya, lihat [Tutorial IAM: Delegasikan akses di seluruh AWS akun menggunakan peran IAM](tutorial_cross-account-with-roles.md).
+ **Anda memiliki aplikasi seluler.** Jangan menyematkan kunci akses dengan aplikasi, bahkan di penyimpanan terenkripsi. Sebagai gantinya, gunakan [Amazon Cognito](https://aws.amazon.com/cognito/) untuk mengelola identitas pengguna di aplikasi Anda. Layanan ini memungkinkan Anda mengautentikasi pengguna menggunakan Login with Amazon, Facebook, Google, atau penyedia identitas yang kompatibel dengan OpenID Connect (OIDC). Anda kemudian dapat menggunakan penyedia kredensial Amazon Cognito untuk mengelola kredensial yang digunakan aplikasi Anda untuk membuat permintaan ke AWS.
+ **Anda ingin bergabung AWS dan organisasi Anda mendukung SAFL 2.0.** Jika Anda bekerja untuk organisasi yang memiliki penyedia identitas yang mendukung SAML 2.0, konfigurasi penyedia untuk menggunakan SAML. Anda dapat menggunakan SALL untuk bertukar informasi otentikasi dengan AWS dan mendapatkan kembali satu set kredensi keamanan sementara. Untuk informasi selengkapnya, lihat [Federasi SAMP 2.0](id_roles_providers_saml.md).
+ **Anda ingin bergabung ke dalam AWS dan organisasi Anda memiliki toko identitas lokal.** Jika pengguna dapat mengautentikasi di dalam organisasi Anda, Anda dapat menulis aplikasi yang dapat mengeluarkan kredensi keamanan sementara untuk akses ke sumber daya. AWS Untuk informasi selengkapnya, lihat [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md).
+ **Gunakan kondisi dalam kebijakan IAM untuk hanya mengizinkan akses dari jaringan yang diharapkan.** Anda dapat membatasi di mana dan bagaimana kunci akses Anda digunakan dengan menerapkan [kebijakan IAM dengan kondisi](reference_policies_elements_condition_operators.md) yang menentukan dan hanya mengizinkan jaringan yang diharapkan, seperti alamat IP publik atau Virtual Private Clouds (VPCs). Dengan cara ini Anda tahu kunci akses hanya dapat digunakan dari jaringan yang diharapkan dan dapat diterima. 

**catatan**  
Apakah Anda menggunakan instans Amazon EC2 dengan aplikasi yang memerlukan akses terprogram ke sumber daya? AWS Jika demikian, gunakan [peran IAM untuk EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html).

## Kelola kunci akses pengguna IAM dengan benar
<a name="iam-user-access-keys"></a>

Jika Anda harus membuat kunci akses untuk akses terprogram AWS, buat mereka untuk pengguna IAM, memberikan pengguna hanya izin yang mereka butuhkan.

Perhatikan tindakan pencegahan ini untuk membantu melindungi kunci akses pengguna IAM:
+ **Jangan menanamkan kunci akses langsung ke kode.** [Alat [AWS SDKs](https://aws.amazon.com/tools/#sdk)dan Baris AWS Perintah](https://aws.amazon.com/tools/#cli) memungkinkan Anda untuk menempatkan kunci akses di lokasi yang diketahui sehingga Anda tidak perlu menyimpannya dalam kode. 

  Letakkan access key di salah satu lokasi berikut:
  + **File AWS kredensialnya.** Itu AWS SDKs dan secara AWS CLI otomatis menggunakan kredensil yang Anda simpan di file AWS kredensial. 

    Untuk informasi tentang menggunakan file AWS kredensial, lihat dokumentasi untuk SDK Anda. *Contohnya termasuk [Set AWS Credentials dan Region](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-credentials.html) dalam *Panduan AWS SDK untuk Java Pengembang* dan [Konfigurasi dan file kredensi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) di Panduan Pengguna.AWS Command Line Interface *

    Untuk menyimpan kredensil untuk AWS SDK untuk .NET dan AWS Tools for Windows PowerShell, kami sarankan Anda menggunakan SDK Store. Untuk informasi selengkapnya, lihat [Menggunakan Penyimpanan SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sdk-store.html) di *Panduan Developer AWS SDK untuk .NET *.
  + **Variabel lingkungan.** Pada sistem multi-tenant, pilih variabel lingkungan pengguna, bukan variabel lingkungan sistem. 

    Untuk informasi selengkapnya tentang menggunakan variabel lingkungan untuk menyimpan kredensial, lihat [Variabel Lingkungan](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) di *Panduan Pengguna AWS Command Line Interface *. 
+ **Gunakan tombol akses yang berbeda untuk aplikasi yang berbeda.** Lakukan ini sehingga Anda dapat mengisolasi izin dan mencabut kunci akses untuk aplikasi individual jika diekspos. Memiliki kunci akses terpisah untuk aplikasi yang berbeda juga menghasilkan entri yang berbeda dalam file [AWS CloudTrail](https://aws.amazon.com/cloudtrail/)log. Konfigurasi ini memudahkan Anda untuk menentukan aplikasi mana yang melakukan tindakan tertentu. 
+ **Perbarui tombol akses bila diperlukan.** Jika ada risiko bahwa kunci akses dapat dikompromikan, perbarui kunci akses dan hapus kunci akses sebelumnya. Untuk detailnya, lihat [Perbarui kunci akses](id-credentials-access-keys-update.md) 
+ **Hapus kunci akses yang tidak digunakan.** Jika pengguna keluar dari organisasi Anda, hapus pengguna IAM yang sesuai sehingga pengguna tidak dapat lagi mengakses sumber daya Anda. Untuk mengetahui kapan kunci akses terakhir digunakan, gunakan [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)API (AWS CLI command: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)).
+ **Gunakan kredensi sementara dan konfigurasikan autentikasi multi-faktor untuk operasi API Anda yang paling sensitif.** Dengan kebijakan IAM, Anda dapat menentukan operasi API mana yang diizinkan untuk dipanggil oleh pengguna. Dalam beberapa kasus, Anda mungkin menginginkan keamanan tambahan yang mengharuskan pengguna diautentikasi dengan AWS MFA sebelum Anda mengizinkan mereka melakukan tindakan yang sangat sensitif. Misalnya, Anda mungkin memiliki kebijakan yang memungkinkan pengguna untuk melakukan Amazon EC2 `RunInstances`, `DescribeInstances`, dan `StopInstances`. Tetapi Anda mungkin ingin membatasi tindakan destruktif seperti `TerminateInstances` dan memastikan bahwa pengguna dapat melakukan tindakan itu hanya jika mereka mengautentikasi dengan perangkat AWS MFA. Untuk informasi selengkapnya, lihat [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md).

## Akses aplikasi seluler menggunakan tombol AWS akses
<a name="access-keys-mobile-app"></a>

Anda dapat mengakses serangkaian AWS layanan dan fitur terbatas menggunakan aplikasi AWS seluler. Aplikasi seluler membantu Anda mendukung respons insiden saat bepergian. Untuk informasi selengkapnya dan untuk mengunduh aplikasi, lihat [AWS Console Mobile Application](https://aws.amazon.com/console/mobile/).

Anda dapat masuk ke aplikasi seluler menggunakan kata sandi konsol atau access key Anda. Sebagai praktik terbaik, jangan gunakan access key pengguna root. Sebagai gantinya, kami sangat menyarankan bahwa selain menggunakan kata sandi atau kunci biometrik pada perangkat seluler Anda, Anda membuat pengguna IAM khusus untuk mengelola AWS sumber daya menggunakan aplikasi seluler. Jika perangkat seluler hilang, Anda dapat menghapus akses pengguna IAM.

**Untuk masuk menggunakan access key (aplikasi seluler)**

1. Buka aplikasi di perangkat seluler Anda.

1. Jika ini pertama kalinya Anda menambahkan identitas ke perangkat, pilih **Add an identity** (Tambahkan identitas), lalu pilih **Access key**.

   Jika Anda telah masuk menggunakan identitas lain, pilih ikon menu dan pilih **Switch identity** (Ganti identitas). Kemudian pilih **Sign in as a different identity** (Masuk sebagai identitas yang berbeda), lalu **Access key**.

1. Di halaman **Access key**, masukkan informasi Anda:
   + **Access key ID** – Masukkan access key ID Anda.
   + **Secret access key** – Masukkan secret access key Anda.
   + **Nama identitas** – Masukkan nama identitas yang akan muncul di aplikasi seluler. Ini tidak harus cocok dengan nama pengguna IAM Anda.
   + **PIN Identitas** – Buat nomor identifikasi pribadi (PIN) yang akan Anda gunakan untuk masuk di masa mendatang.
**catatan**  
Jika Anda mengaktifkan biometrik untuk aplikasi AWS seluler, Anda akan diminta untuk menggunakan sidik jari atau pengenalan wajah untuk verifikasi, bukan PIN. Jika biometrik gagal, Anda mungkin diminta memasukkan PIN.

1. Pilih **Verify and add keys** (Verifikasi dan tambahkan kunci).

   Sekarang Anda dapat mengakses set sumber daya tertentu menggunakan aplikasi seluler.

## Informasi Terkait
<a name="more-resources"></a>

Topik berikut memberikan panduan untuk menyiapkan AWS SDKs dan AWS CLI menggunakan kunci akses:
+ [Menetapkan AWS kredensi dan Wilayah](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-credentials.html) *dalam Panduan Pengembang AWS SDK untuk Java *
+ [Menggunakan SDK Store](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sdk-store.html) di Panduan *AWS SDK untuk .NET Pengembang*
+ [https://docs.aws.amazon.com/aws-sdk-php/v2/guide/credentials.html](https://docs.aws.amazon.com/aws-sdk-php/v2/guide/credentials.html)
+ [Konfigurasi](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration) dalam dokumentasi Boto 3 (AWS SDK untuk Python)
+ [Menggunakan AWS Kredensial](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html) *di Panduan Pengguna AWS Tools for Windows PowerShell * 
+ [File konfigurasi dan kredensi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) di *AWS Command Line Interface Panduan Pengguna* 
+ [Memberikan akses menggunakan peran IAM dalam Panduan](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html) *Pengembang AWS SDK untuk .NET *
+ [Konfigurasikan peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html) di *AWS SDK for Java 2.x*

## Menggunakan kunci akses dan kredensil kunci rahasia untuk akses konsol
<a name="console-access-security-keys"></a>

Dimungkinkan untuk menggunakan kunci akses dan kredenal kunci rahasia untuk Konsol Manajemen AWS akses langsung, bukan hanya. AWS CLI Ini dapat dicapai dengan menggunakan panggilan AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)API. Dengan membuat URL konsol menggunakan kredensi sementara dan token yang disediakan oleh`GetFederationToken`, prinsipal IAM dapat mengakses konsol. Untuk informasi selengkapnya, lihat [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md).

Perlu diklarifikasi bahwa ketika masuk ke konsol secara langsung menggunakan IAM atau kredenal pengguna root dengan MFA diaktifkan, MFA akan diperlukan. Namun, jika metode yang dijelaskan di atas (menggunakan kredensil sementara dengan`GetFederationToken`) digunakan, MFA TIDAK akan diperlukan.



## Mengaudit access key
<a name="Using_access-keys-audit"></a>

Anda dapat meninjau kunci AWS akses dalam kode Anda untuk menentukan apakah kunci tersebut berasal dari akun yang Anda miliki. Anda dapat meneruskan ID kunci akses menggunakan [https://docs.aws.amazon.com/cli/latest/reference/sts/get-access-key-info.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-access-key-info.html) AWS CLI perintah atau operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.html) AWS API.

Operasi AWS CLI dan AWS API mengembalikan ID dari Akun AWS kunci akses milik. Kunci akses yang IDs dimulai dengan `AKIA` adalah kredensil jangka panjang untuk pengguna IAM atau. Pengguna root akun AWS Kunci akses yang IDs dimulai dengan `ASIA` adalah kredensil sementara yang dibuat menggunakan AWS STS operasi. Jika akun dalam tanggapan ini adalah milik Anda, Anda dapat masuk sebagai pengguna utama dan meninjau kunci akses pengguna utama Anda. Lalu, Anda dapat menarik [laporan kredensial](id_credentials_getting-report.md) untuk mempelajari pengguna IAM mana yang memilikinya. Untuk mengetahui siapa yang meminta kredensi sementara untuk kunci `ASIA` akses, lihat AWS STS peristiwa di log Anda CloudTrail .

Untuk tujuan keamanan, Anda dapat [meninjau AWS CloudTrail log](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) untuk mengetahui siapa yang melakukan tindakan AWS. Anda dapat menggunakan kunci syarat `sts:SourceIdentity` dalam peran kebijakan kepercayaan untuk mengharuskan pengguna menentukan identias saat mereka mengasumsikan sebuah peran. Misalnya, Anda dapat meminta agar pengguna IAM menentukan nama pengguna mereka sendiri sebagai identitas sumber mereka. Ini dapat membantu Anda menentukan pengguna mana yang melakukan tindakan tertentu di AWS. Untuk informasi selengkapnya, lihat [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity).

Operasi ini tidak menunjukkan status access key. Kuncinya mungkin aktif, tidak aktif, atau dihapus. Kunci aktif mungkin tidak memiliki izin untuk melakukan operasi. Memberikan access key yang dihapus mungkin akan kembali sebagai kesalahan bahwa kunci tidak ada.

# AWS Otentikasi multi-faktor di IAM
<a name="id_credentials_mfa"></a>

Untuk meningkatkan keamanan, kami menyarankan Anda mengonfigurasi otentikasi multi-faktor (MFA) untuk membantu melindungi sumber daya Anda. AWS Anda dapat mengaktifkan MFA untuk semua Akun AWS, termasuk akun mandiri, akun manajemen, dan akun anggota, serta untuk pengguna IAM Anda. Pengguna root akun AWS Kami menyarankan Anda menggunakan MFA tahan phishing seperti kunci sandi dan kunci keamanan bila memungkinkan. Autentikator berbasis FIDO ini menggunakan kriptografi kunci publik dan tahan terhadap serangan phishing, dan memutar ulang man-in-the-middle, memberikan tingkat keamanan yang lebih kuat daripada opsi berbasis TOTP.

MFA diberlakukan untuk semua jenis akun untuk pengguna root mereka. Untuk informasi selengkapnya, lihat [Amankan kredensi pengguna root AWS Organizations akun Anda](root-user-best-practices.md#ru-bp-organizations). 

Saat Anda mengaktifkan MFA untuk pengguna akar, itu hanya memengaruhi kredensial pengguna akar. Pengguna IAM di akun memiliki identitas berbeda dengan kredensial mereka sendiri, dan setiap identitas memiliki konfigurasi MFA-nya sendiri. Untuk informasi selengkapnya tentang penggunaan MFA untuk melindungi pengguna root, lihat. [Otentikasi multi-faktor untuk Pengguna root akun AWS](enable-mfa-for-root.md)

Pengguna Anda Pengguna root akun AWS dan IAM dapat mendaftarkan hingga delapan perangkat MFA jenis apa pun. Mendaftarkan beberapa perangkat MFA dapat memberikan fleksibilitas dan membantu Anda mengurangi risiko gangguan akses jika perangkat hilang atau rusak. Anda hanya perlu satu perangkat MFA untuk masuk ke Konsol Manajemen AWS atau membuat sesi melalui. AWS CLI

**catatan**  
Kami menyarankan Anda meminta pengguna manusia Anda untuk menggunakan kredensil sementara saat mengakses. AWS Sudahkah Anda mempertimbangkan untuk menggunakan AWS IAM Identity Center? Anda dapat menggunakan Pusat Identitas IAM untuk mengelola akses ke beberapa secara terpusat Akun AWS dan memberi pengguna akses masuk tunggal yang dilindungi MFA ke semua akun yang ditetapkan dari satu tempat. Dengan IAM Identity Center, Anda dapat membuat dan mengelola identitas pengguna di IAM Identity Center atau dengan mudah terhubung ke penyedia identitas kompatibel SAMP 2.0 yang ada. Untuk informasi selengkapnya, lihat [Apa itu Pusat Identitas IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) dalam *Panduan Pengguna AWS IAM Identity Center *.

MFA menambahkan keamanan ekstra yang mengharuskan pengguna untuk memberikan otentikasi unik dari mekanisme AWS MFA yang didukung selain kredensi masuk mereka ketika mereka mengakses situs web atau layanan. AWS 

## Jenis MFA
<a name="id_credentials_mfa-types"></a>

AWS mendukung jenis MFA berikut:

**Contents**
+ [Kunci sandi dan kunci keamanan](#passkeys-security-keys-for-iam-users)
+ [Aplikasi otentikator virtual](#virtual-auth-apps-for-iam-users)
+ [Token TOTP perangkat keras](#hardware-totp-token-for-iam-users)

### Kunci sandi dan kunci keamanan
<a name="passkeys-security-keys-for-iam-users"></a>

AWS Identity and Access Management mendukung kunci sandi dan kunci keamanan untuk MFA. Berdasarkan standar FIDO, kunci sandi menggunakan kriptografi kunci publik untuk memberikan otentikasi yang kuat dan tahan phishing yang lebih aman daripada kata sandi. AWS mendukung dua jenis kunci sandi: kunci sandi terikat perangkat (kunci keamanan) dan kunci sandi yang disinkronkan.
+ **Kunci keamanan**: Ini adalah perangkat fisik, seperti YubiKey, digunakan sebagai faktor kedua untuk otentikasi. Satu kunci keamanan dapat mendukung beberapa akun pengguna root dan pengguna IAM.
+ **Kunci sandi yang disinkronkan**: Ini menggunakan pengelola kredensi dari penyedia seperti Google, Apple, akun Microsoft, dan layanan pihak ketiga seperti 1Password, Dashlane, dan Bitwarden sebagai faktor kedua.

Anda dapat menggunakan autentikator biometrik bawaan, seperti Touch ID di Apple MacBooks, untuk membuka kunci pengelola kredensi dan masuk. AWS Kunci sandi dibuat dengan penyedia pilihan Anda menggunakan sidik jari, wajah, atau PIN perangkat Anda. Anda juga dapat menggunakan kunci sandi otentikasi lintas perangkat (CDA) dari satu perangkat, seperti perangkat seluler atau kunci keamanan perangkat keras, untuk masuk di perangkat lain seperti laptop. Untuk informasi selengkapnya, lihat [otentikasi lintas perangkat](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda) (CDA).

Anda dapat menyinkronkan kunci sandi di seluruh perangkat Anda untuk memfasilitasi masuk dengan AWS, meningkatkan kegunaan dan pemulihan. Untuk informasi selengkapnya tentang mengaktifkan kunci sandi dan kunci keamanan, lihat. [Aktifkan kunci sandi atau kunci keamanan untuk pengguna root (konsol)](enable-fido-mfa-for-root.md)

Aliansi FIDO menyimpan daftar semua [produk Bersertifikat FIDO](https://fidoalliance.org/certification/fido-certified-products/) yang kompatibel dengan spesifikasi FIDO.

### Aplikasi otentikator virtual
<a name="virtual-auth-apps-for-iam-users"></a>

Aplikasi otentikator virtual berjalan di telepon atau perangkat lain dan mengemulasi perangkat fisik. Aplikasi otentikator virtual mengimplementasikan [algoritma kata sandi satu kali berbasis waktu (TOTP)](https://datatracker.ietf.org/doc/html/rfc6238) dan mendukung beberapa token pada satu perangkat. Pengguna harus mengetikkan kode yang valid dari perangkat saat diminta saat masuk. Setiap token yang ditetapkan untuk pengguna harus unik. Pengguna tidak dapat mengetik kode dari token pengguna lain untuk mengautentikasi.

Kami menyarankan Anda menggunakan MFA tahan phishing [seperti kunci sandi atau kunci](#passkeys-security-keys-for-iam-users) keamanan untuk perlindungan terkuat. Jika Anda belum dapat menggunakan kunci sandi atau kunci keamanan, kami sarankan Anda menggunakan perangkat MFA virtual sebagai tindakan sementara sambil menunggu persetujuan pembelian perangkat keras atau saat Anda menunggu perangkat keras Anda tiba. Untuk daftar beberapa aplikasi yang didukung yang dapat Anda gunakan sebagai perangkat MFA virtual, lihat [Multi-Factor Authentication (MFA](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)).

Untuk petunjuk tentang pengaturan perangkat MFA virtual untuk pengguna IAM, lihat. [Tetapkan perangkat MFA virtual di Konsol Manajemen AWS](id_credentials_mfa_enable_virtual.md)

**catatan**  
Perangkat MFA virtual yang tidak ditetapkan di Akun AWS Anda akan dihapus saat Anda menambahkan perangkat MFA virtual baru baik melalui atau selama Konsol Manajemen AWS proses masuk. Perangkat MFA virtual yang tidak ditetapkan adalah perangkat di akun Anda tetapi tidak digunakan oleh pengguna root akun atau pengguna IAM untuk proses masuk. Mereka dihapus sehingga perangkat MFA virtual baru dapat ditambahkan ke akun Anda. Ini juga memungkinkan Anda untuk menggunakan kembali nama perangkat.  
Untuk melihat perangkat MFA virtual yang tidak ditetapkan di akun Anda, Anda dapat menggunakan perintah [atau [list-virtual-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-virtual-mfa-devices.html)AWS CLI](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html)panggilan API.
Untuk menonaktifkan perangkat MFA virtual, Anda dapat menggunakan perintah [atau [deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html)AWS CLI](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)panggilan API. Perangkat akan menjadi tidak ditugaskan.
[Untuk melampirkan perangkat MFA virtual yang tidak ditetapkan ke Akun AWS pengguna root atau pengguna IAM, Anda memerlukan kode otentikasi yang dihasilkan oleh perangkat bersama dengan perintah atau panggilan API [enable-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-mfa-device.html)AWS CLI .](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html)

### Token TOTP perangkat keras
<a name="hardware-totp-token-for-iam-users"></a>

Perangkat keras menghasilkan kode numerik enam digit berdasarkan algoritma [kata sandi satu kali berbasis waktu](https://datatracker.ietf.org/doc/html/rfc6238) (TOTP). Pengguna harus mengetik kode yang valid dari perangkat di halaman web kedua saat masuk.

Token ini digunakan secara eksklusif dengan Akun AWS. Anda hanya dapat menggunakan token yang memiliki benih token unik mereka dibagikan dengan AWS aman. Benih token adalah kunci rahasia yang dihasilkan pada saat produksi token. Token yang dibeli dari sumber lain tidak akan berfungsi dengan IAM. Untuk memastikan kompatibilitas, Anda harus membeli perangkat MFA perangkat keras Anda dari salah satu tautan berikut: [Token OTP atau kartu tampilan [OTP](https://www.amazon.com/SafeNet-IDProve-Card-Amazon-Services/dp/B00J4NGUO4)](https://www.amazon.com/SafeNet-IDProve-Time-based-6-Digit-Services/dp/B002CRN5X8).
+ Setiap perangkat MFA yang ditetapkan ke pengguna harus unik. Pengguna tidak dapat mengetik kode dari perangkat pengguna lain untuk diautentikasi. Untuk informasi tentang perangkat MFA perangkat keras yang didukung, lihat [Multi-Factor Authentication (MFA](https://aws.amazon.com/iam/features/mfa/?audit=2019q1)).
+ Jika Anda ingin menggunakan perangkat MFA fisik, kami sarankan Anda menggunakan kunci keamanan sebagai alternatif perangkat TOTP perangkat keras. Kunci keamanan tidak memiliki persyaratan baterai, tahan phishing, dan mendukung banyak pengguna pada satu perangkat.

Anda dapat mengaktifkan kunci sandi atau kunci keamanan dari Konsol Manajemen AWS satu-satunya, bukan dari AWS CLI atau AWS API. Sebelum Anda dapat mengaktifkan kunci keamanan, Anda harus memiliki akses fisik ke perangkat.

Untuk petunjuk tentang menyiapkan token TOTP perangkat keras untuk pengguna IAM, lihat. [Tetapkan token TOTP perangkat keras di Konsol Manajemen AWS](id_credentials_mfa_enable_physical.md)

**catatan**  
**MFA berbasis pesan teks SMS** - AWS mengakhiri dukungan untuk mengaktifkan otentikasi multi-faktor SMS (MFA). [Kami menyarankan agar pelanggan yang memiliki pengguna IAM yang menggunakan MFA berbasis pesan teks SMS beralih ke salah satu metode alternatif berikut[: Kunci sandi atau kunci keamanan, perangkat MFA virtual (berbasis perangkat lunak), atau](id_credentials_mfa_enable_fido.md)[perangkat MFA](id_credentials_mfa_enable_virtual.md) perangkat keras.](id_credentials_mfa_enable_physical.md) Anda dapat mengidentifikasi pengguna di akun Anda dengan perangkat MFA SMS yang ditetapkan. Di konsol IAM, pilih **Pengguna** dari panel navigasi, dan cari pengguna dengan **SMS** dalam kolom tabel **MFA**.

## Rekomendasi MFA
<a name="id_credentials_mfa-recommendations"></a>

Untuk membantu mengamankan AWS identitas Anda, ikuti rekomendasi ini untuk otentikasi MFA. 
+ Kami menyarankan Anda menggunakan MFA yang tahan phishing, seperti [kunci sandi dan kunci keamanan, sebagai perangkat](#passkeys-security-keys-for-iam-users) MFA Anda. Autentikator berbasis FIDO ini memberikan perlindungan terkuat terhadap serangan seperti phishing.
+ Kami menyarankan Anda mengaktifkan beberapa perangkat MFA untuk Pengguna root akun AWS dan pengguna IAM di Anda. Akun AWS Ini memungkinkan Anda untuk meningkatkan bilah keamanan di Anda Akun AWS dan menyederhanakan pengelolaan akses ke pengguna yang sangat istimewa, seperti. Pengguna root akun AWS
+ Anda dapat mendaftarkan hingga **delapan** perangkat MFA dari kombinasi [jenis MFA yang saat ini didukung dengan pengguna Anda Pengguna root akun AWS dan IAM](https://aws.amazon.com/iam/features/mfa/). Dengan beberapa perangkat MFA, Anda hanya perlu satu perangkat MFA untuk masuk ke Konsol Manajemen AWS atau membuat sesi melalui sebagai pengguna tersebut AWS CLI . Pengguna IAM harus mengautentikasi dengan perangkat MFA yang ada untuk mengaktifkan atau menonaktifkan perangkat MFA tambahan.
+ Jika perangkat MFA hilang, dicuri, atau tidak dapat diakses, Anda dapat menggunakan salah satu perangkat MFA yang tersisa untuk mengakses tanpa melakukan prosedur Akun AWS pemulihan. Akun AWS Jika perangkat MFA hilang atau dicuri, perangkat tersebut harus dipisahkan dari kepala IAM yang terkait dengannya.
+ Penggunaan beberapa MFAs memungkinkan karyawan Anda di lokasi yang tersebar secara geografis atau bekerja dari jarak jauh untuk menggunakan MFA berbasis perangkat keras untuk mengakses AWS tanpa harus mengoordinasikan pertukaran fisik perangkat keras tunggal antara karyawan.
+ Penggunaan perangkat MFA tambahan untuk prinsipal IAM memungkinkan Anda untuk menggunakan satu atau lebih MFAs untuk penggunaan sehari-hari, sementara juga menjaga perangkat MFA fisik di lokasi fisik yang aman seperti lemari besi atau brankas untuk cadangan dan redundansi.

**Catatan**  
Anda tidak dapat meneruskan informasi MFA untuk kunci keamanan atau kunci sandi ke operasi AWS STS API untuk meminta kredensi sementara. Anda dapat memperoleh kredensil untuk digunakan dengan AWS CLI dan AWS SDKs saat menggunakan kunci keamanan atau kunci sandi dengan menjalankan perintah. `aws login`
Anda tidak dapat menggunakan AWS CLI perintah atau operasi AWS API untuk mengaktifkan [kunci keamanan FIDO](id_credentials_mfa_enable_fido.md).
Anda tidak dapat menggunakan nama yang sama untuk lebih dari satu pengguna root atau perangkat IAM MFA.

## Sumber daya tambahan
<a name="id_credentials_mfa-resources"></a>

Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang MFA.
+ Untuk informasi selengkapnya tentang menggunakan MFA untuk mengakses AWS, lihat. [MFA mengaktifkan login](console_sign-in-mfa.md)
+  Anda dapat memanfaatkan Pusat Identitas IAM untuk mengaktifkan akses MFA yang aman ke portal akses AWS Anda, aplikasi terintegrasi IAM Identity Center, dan aplikasi. AWS CLI Untuk informasi selengkapnya, lihat [Mengaktifkan MFA di Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/mfa-getting-started.html).

# Tetapkan kunci sandi atau kunci keamanan di Konsol Manajemen AWS
<a name="id_credentials_mfa_enable_fido"></a>

Kunci sandi adalah jenis [perangkat otentikasi multi-faktor (MFA)](id_credentials_mfa.md) yang dapat Anda gunakan untuk melindungi sumber daya Anda. AWS AWS mendukung kunci sandi yang disinkronkan dan kunci sandi terikat perangkat yang juga dikenal sebagai kunci keamanan. 

Kunci sandi yang disinkronkan memungkinkan pengguna IAM untuk mengakses kredensi masuk FIDO mereka di banyak perangkat mereka, bahkan yang baru, tanpa harus mendaftarkan ulang setiap perangkat di setiap akun. Kunci sandi yang disinkronkan mencakup manajer kredensi pihak pertama seperti Google, Apple, dan Microsoft dan manajer kredensi pihak ketiga seperti 1Password, Dashlane, dan Bitwarden sebagai faktor kedua. Anda juga dapat menggunakan biometrik pada perangkat (misalnya, TouchID, FaceID) untuk membuka kunci pengelola kredensi pilihan Anda untuk menggunakan kunci sandi. 

Atau, kunci sandi yang terikat perangkat terikat ke kunci keamanan FIDO yang Anda colokkan ke port USB di komputer Anda, lalu ketuk saat diminta untuk menyelesaikan proses masuk dengan aman. Jika Anda sudah menggunakan kunci keamanan FIDO dengan layanan lain, dan memiliki [konfigurasi yang AWS didukung](id_credentials_mfa_fido_supported_configurations.md) (misalnya, Seri YubiKey 5 dari Yubico), Anda juga dapat menggunakannya dengan. AWS Jika tidak, Anda perlu membeli kunci keamanan FIDO jika Anda ingin menggunakan WebAuthn untuk AWS MFA di. Selain itu, kunci keamanan FIDO dapat mendukung beberapa pengguna IAM atau root pada perangkat yang sama, meningkatkan utilitas mereka untuk keamanan akun. Untuk spesifikasi dan informasi pembelian untuk kedua jenis perangkat, lihat [Autentikasi Multi-Faktor](https://aws.amazon.com/iam/details/mfa/).

Anda dapat mendaftarkan hingga **delapan** perangkat MFA dari kombinasi [jenis MFA yang saat ini didukung dengan pengguna Anda Pengguna root akun AWS dan IAM](https://aws.amazon.com/iam/features/mfa/). Dengan beberapa perangkat MFA, Anda hanya perlu satu perangkat MFA untuk masuk ke Konsol Manajemen AWS atau membuat sesi melalui sebagai pengguna tersebut AWS CLI . Kami menyarankan Anda mendaftarkan beberapa perangkat MFA. Misalnya, Anda dapat mendaftarkan autentikator bawaan dan juga mendaftarkan kunci keamanan yang Anda simpan di lokasi yang aman secara fisik. Jika Anda tidak dapat menggunakan autentikator bawaan Anda, maka Anda dapat menggunakan kunci keamanan terdaftar Anda. Untuk aplikasi autentikator, kami juga menyarankan untuk mengaktifkan fitur pencadangan atau sinkronisasi cloud di aplikasi tersebut untuk membantu Anda menghindari kehilangan akses ke akun jika Anda kehilangan atau merusak perangkat Anda dengan aplikasi autentikator.

**catatan**  
Kami menyarankan Anda meminta pengguna manusia Anda untuk menggunakan kredensi sementara saat mengakses. AWS Pengguna Anda dapat bergabung AWS dengan penyedia identitas tempat mereka mengautentikasi dengan kredensi perusahaan dan konfigurasi MFA mereka. Untuk mengelola akses ke AWS dan aplikasi bisnis, kami sarankan Anda menggunakan IAM Identity Center. Untuk informasi selengkapnya, lihat [Panduan Pengguna Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html). 

**Topics**
+ [Izin diperlukan](#enable-fido-mfa-for-iam-user-permissions-required)
+ [Aktifkan kunci sandi atau kunci keamanan untuk pengguna IAM Anda sendiri (konsol)](#enable-fido-mfa-for-own-iam-user)
+ [Aktifkan kunci sandi atau kunci keamanan untuk pengguna IAM lain (konsol)](#enable-fido-mfa-for-iam-user)
+ [Ganti kunci sandi atau kunci keamanan](#replace-fido-mfa)
+ [Konfigurasi yang didukung untuk menggunakan kunci sandi dan kunci keamanan](id_credentials_mfa_fido_supported_configurations.md)

## Izin diperlukan
<a name="enable-fido-mfa-for-iam-user-permissions-required"></a>

Untuk mengelola kunci sandi FIDO untuk pengguna IAM Anda sendiri sambil melindungi tindakan sensitif terkait MFA, Anda harus memiliki izin dari kebijakan berikut:

**catatan**  
Nilai ARN adalah nilai statis dan bukan merupakan indikator protokol apa yang digunakan untuk mendaftarkan autentikator. Kami telah menghentikan U2F, jadi semua implementasi baru digunakan. WebAuthn

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## Aktifkan kunci sandi atau kunci keamanan untuk pengguna IAM Anda sendiri (konsol)
<a name="enable-fido-mfa-for-own-iam-user"></a>

Anda dapat mengaktifkan kunci sandi atau kunci keamanan untuk pengguna IAM Anda sendiri dari Konsol Manajemen AWS satu-satunya, bukan dari AWS CLI atau AWS API. Sebelum Anda dapat mengaktifkan kunci keamanan, Anda harus memiliki akses fisik ke perangkat.

**Untuk mengaktifkan kunci sandi atau kunci keamanan untuk pengguna IAM Anda sendiri (konsol)**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna dan informasi akun IAM Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[Konsol Manajemen AWS Tautan kredensi keamanan\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. Pada halaman pengguna IAM yang dipilih, pilih tab **Security credentials**.

1. **Di bawah **Autentikasi multi-faktor (MFA)**, pilih Tetapkan perangkat MFA.**

1. **Pada halaman **nama perangkat MFA, masukkan nama** **Perangkat**, pilih **Kunci Sandi atau Kunci Keamanan**, lalu pilih Berikutnya.**

1. Pada **Siapkan perangkat**, atur kunci sandi Anda. Buat passkey dengan data biometrik seperti wajah atau sidik jari Anda, dengan pin perangkat, atau dengan memasukkan kunci keamanan FIDO ke port USB komputer Anda dan mengetuknya.

1. Ikuti petunjuk di browser Anda dan kemudian pilih **Lanjutkan**.

Anda sekarang telah mendaftarkan kunci sandi atau kunci keamanan Anda untuk digunakan. AWS Untuk informasi tentang menggunakan MFA dengan Konsol Manajemen AWS, lihat. [MFA mengaktifkan login](console_sign-in-mfa.md) 

## Aktifkan kunci sandi atau kunci keamanan untuk pengguna IAM lain (konsol)
<a name="enable-fido-mfa-for-iam-user"></a>

Anda dapat mengaktifkan kunci sandi atau keamanan untuk pengguna IAM lain dari Konsol Manajemen AWS satu-satunya, bukan dari AWS CLI atau AWS API.

**Untuk mengaktifkan kunci sandi atau keamanan untuk pengguna IAM lain (konsol)**

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, pilih **Users** (Pengguna).

1. Di bawah **Pengguna**, pilih nama pengguna yang ingin Anda aktifkan MFA.

1. Pada halaman pengguna IAM yang dipilih, pilih tab **Security Credentials**. 

1. **Di bawah **Autentikasi multi-faktor (MFA)**, pilih Tetapkan perangkat MFA.**

1. **Pada halaman **nama perangkat MFA, masukkan nama** **Perangkat**, pilih **Kunci Sandi atau Kunci Keamanan**, lalu pilih Berikutnya.**

1. Pada **Siapkan perangkat**, atur kunci sandi Anda. Buat passkey dengan data biometrik seperti wajah atau sidik jari Anda, dengan pin perangkat, atau dengan memasukkan kunci keamanan FIDO ke port USB komputer Anda dan mengetuknya.

1. Ikuti petunjuk di browser Anda dan kemudian pilih **Lanjutkan**.

Anda sekarang telah mendaftarkan kunci sandi atau kunci keamanan untuk digunakan oleh pengguna IAM lain. AWS Untuk informasi tentang menggunakan MFA dengan Konsol Manajemen AWS, lihat. [MFA mengaktifkan login](console_sign-in-mfa.md)

## Ganti kunci sandi atau kunci keamanan
<a name="replace-fido-mfa"></a>

Anda dapat memiliki hingga delapan perangkat MFA dari kombinasi [jenis MFA yang saat ini didukung](https://aws.amazon.com/iam/features/mfa/) yang ditetapkan untuk pengguna pada satu waktu dengan pengguna Anda Pengguna root akun AWS dan IAM. Jika pengguna kehilangan autentikator FIDO atau perlu menggantinya karena alasan apa pun, Anda harus terlebih dahulu menonaktifkan autentikator FIDO lama. Kemudian Anda dapat menambahkan perangkat MFA baru untuk pengguna.
+ Untuk menonaktifkan perangkat yang saat ini dikaitkan dengan pengguna IAM, lihat. [Nonaktifkan perangkat MFA](id_credentials_mfa_disable.md)
+ Untuk menambahkan kunci keamanan FIDO baru untuk pengguna IAM, lihat. [Aktifkan kunci sandi atau kunci keamanan untuk pengguna IAM Anda sendiri (konsol)](#enable-fido-mfa-for-own-iam-user)

Jika Anda tidak memiliki akses ke kunci sandi atau kunci keamanan baru, Anda dapat mengaktifkan perangkat MFA virtual baru atau token TOTP perangkat keras. Lihat salah satu dari yang berikut untuk petunjuk:
+ [Tetapkan perangkat MFA virtual di Konsol Manajemen AWS](id_credentials_mfa_enable_virtual.md) 
+ [Tetapkan token TOTP perangkat keras di Konsol Manajemen AWS](id_credentials_mfa_enable_physical.md) 

# Konfigurasi yang didukung untuk menggunakan kunci sandi dan kunci keamanan
<a name="id_credentials_mfa_fido_supported_configurations"></a>

Anda dapat menggunakan kunci sandi FIDO2 terikat perangkat, juga dikenal sebagai kunci keamanan, sebagai metode otentikasi multi-faktor (MFA) dengan IAM menggunakan konfigurasi yang didukung saat ini. Ini termasuk FIDO2 perangkat yang didukung oleh IAM dan browser yang mendukung FIDO2. Sebelum mendaftarkan FIDO2 perangkat, periksa apakah Anda menggunakan versi browser dan sistem operasi (OS) terbaru. Fitur dapat berperilaku berbeda di berbagai browser, autentikator, dan klien OS. Jika pendaftaran perangkat Anda gagal pada satu browser, Anda dapat mencoba mendaftar dengan browser lain. 

FIDO2 adalah standar otentikasi terbuka dan perpanjangan dari FIDO U2F, menawarkan tingkat keamanan yang sama tinggi berdasarkan kriptografi kunci publik. FIDO2 terdiri dari spesifikasi W3C Web Authentication (WebAuthn API) dan FIDO Alliance Client-to-Authenticator Protocol (CTAP), sebuah protokol lapisan aplikasi. CTAP memungkinkan komunikasi antara klien atau platform, seperti browser atau sistem operasi, dengan autentikator eksternal. Saat Anda mengaktifkan autentikator Bersertifikat FIDO AWS, kunci keamanan akan membuat key pair baru untuk digunakan dengan saja. AWS Pertama, Anda memasukkan kredensial Anda. Saat diminta, Anda mengetuk kunci keamanan, yang merespons tantangan otentikasi yang dikeluarkan oleh. AWS Untuk mempelajari lebih lanjut tentang FIDO2 standar, lihat [FIDO2Proyek](https://en.wikipedia.org/wiki/FIDO2_Project).

## FIDO2 perangkat yang didukung oleh AWS
<a name="id_credentials_mfa_fido_supported_devices"></a>

IAM mendukung perangkat FIDO2 keamanan yang terhubung ke perangkat Anda melalui USB,Bluetooth, atau NFC. IAM juga mendukung otentikator platform seperti TouchID atau FaceID. IAM tidak mendukung pendaftaran passkey lokal untuk Windows Hello. Untuk membuat dan menggunakan kunci sandi, pengguna Windows harus menggunakan [otentikasi lintas perangkat](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda) di mana Anda menggunakan kunci sandi dari satu perangkat seperti perangkat seluler atau kunci keamanan perangkat keras untuk masuk di perangkat lain seperti laptop.

**catatan**  
AWS memerlukan akses ke port USB fisik di komputer Anda untuk memverifikasi FIDO2 perangkat Anda. Kunci keamanan tidak akan berfungsi dengan mesin virtual, koneksi jarak jauh, atau mode penyamaran browser.

Aliansi FIDO menyimpan daftar semua [FIDO2produk](https://fidoalliance.org/certification/fido-certified-products/) yang kompatibel dengan spesifikasi FIDO.

## Browser yang mendukung FIDO2
<a name="id_credentials_mfa_fido_browsers"></a>

Ketersediaan perangkat FIDO2 keamanan yang berjalan di browser web tergantung pada kombinasi browser dan sistem operasi. Browser berikut saat ini mendukung penggunaan kunci keamanan:


****  

| Browser web | macOS 10.15\$1 | Windows 10 | Linux | iOS 14.5\$1 | Android 7\$1 | 
| --- | --- | --- | --- | --- | --- | 
| Chrome | Ya | Ya | Ya | Ya | Tidak | 
| Safari | Ya | Tidak | Tidak | Ya | Tidak | 
| Edge | Ya | Ya | Tidak | Ya | Tidak | 
| Firefox | Ya | Ya | Tidak | Ya | Tidak | 

**catatan**  
Sebagian besar versi Firefox yang saat ini mendukung FIDO2 tidak mengaktifkan dukungan secara default. Untuk petunjuk tentang mengaktifkan FIDO2 dukungan di Firefox, lihat[Memecahkan Masalah Kunci Sandi dan Kunci Keamanan FIDO](troubleshoot_mfa-fido.md).  
Firefox di macOS mungkin tidak sepenuhnya mendukung alur kerja otentikasi lintas perangkat untuk kunci sandi. Anda mungkin mendapatkan prompt untuk menyentuh kunci keamanan alih-alih melanjutkan dengan otentikasi lintas perangkat. Sebaiknya gunakan browser lain, seperti Chrome atau Safari, untuk masuk dengan kunci sandi di macOS.

Untuk informasi selengkapnya tentang dukungan browser untuk perangkat FIDO2 -Certified seperti YubiKey, lihat [Sistem operasi dan dukungan browser web untuk FIDO2 dan U2F](https://support.yubico.com/hc/en-us/articles/360016615020-Operating-system-and-web-browser-support-for-FIDO2-and-U2F).

### Plugin peramban
<a name="id_credentials_mfa_fido_plugins"></a>

AWS hanya mendukung browser yang mendukung FIDO2 secara native. AWS tidak mendukung penggunaan plugin untuk menambahkan dukungan FIDO2 browser. Beberapa plugin browser tidak kompatibel dengan FIDO2 standar dan dapat menyebabkan hasil yang tidak terduga dengan kunci FIDO2 keamanan. 

Untuk informasi tentang menonaktifkan plugin peramban dan tips pemecahan masalah lainnya, lihat [Saya tidak dapat mengaktifkan kunci keamanan FIDO saya](troubleshoot_mfa-fido.md#troubleshoot_mfa-fido-cant-enable). 

## Sertifikasi perangkat
<a name="id_credentials_mfa_fido_certifications"></a>

Kami menangkap dan menetapkan sertifikasi terkait perangkat, seperti validasi FIPS dan tingkat sertifikasi FIDO, hanya selama pendaftaran kunci keamanan. Sertifikasi perangkat Anda diambil dari [Layanan Metadata Aliansi FIDO](https://fidoalliance.org/metadata/) (MDS). Jika status sertifikasi atau tingkat kunci keamanan Anda berubah, itu tidak akan tercermin dalam tag perangkat secara otomatis. Untuk memperbarui informasi sertifikasi perangkat, daftarkan perangkat lagi untuk mengambil informasi sertifikasi yang diperbarui. 

AWS menyediakan jenis sertifikasi berikut sebagai kunci kondisi selama pendaftaran perangkat, diperoleh dari FIDO MDS: FIPS-140-2, FIPS-140-3, dan tingkat sertifikasi FIDO. Anda memiliki kemampuan untuk menentukan pendaftaran autentikator tertentu dalam kebijakan IAM mereka, berdasarkan jenis dan tingkat sertifikasi pilihan Anda. Untuk informasi selengkapnya, lihat kebijakan di bawah ini.

### Contoh kebijakan untuk sertifikasi perangkat
<a name="id_credentials_mfa_fido_certifications_policies"></a>

Kasus penggunaan berikut menunjukkan contoh kebijakan yang memungkinkan Anda mendaftarkan perangkat MFA dengan sertifikasi FIPS.

**Topics**
+ [Kasus penggunaan 1: Izinkan mendaftarkan hanya perangkat yang memiliki sertifikasi FIPS-140-2 L2](#id_credentials_mfa_fido_certifications_policies_use_case_1)
+ [Kasus penggunaan 2: Izinkan mendaftarkan perangkat yang memiliki sertifikasi FIPS-140-2 L2 dan FIDO L1](#id_credentials_mfa_fido_certifications_policies_use_case_2)
+ [Kasus penggunaan 3: Izinkan mendaftarkan perangkat yang memiliki sertifikasi FIPS-140-2 L2 atau FIPS-140-3 L2](#id_credentials_mfa_fido_certifications_policies_use_case_3)
+ [Kasus penggunaan 4: Izinkan mendaftarkan perangkat yang memiliki sertifikasi FIPS-140-2 L2 dan mendukung jenis MFA lainnya seperti otentikator virtual dan TOTP perangkat keras](#id_credentials_mfa_fido_certifications_policies_use_case_4)

#### Kasus penggunaan 1: Izinkan mendaftarkan hanya perangkat yang memiliki sertifikasi FIPS-140-2 L2
<a name="id_credentials_mfa_fido_certifications_policies_use_case_1"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        }
    ]
}
```

------

#### Kasus penggunaan 2: Izinkan mendaftarkan perangkat yang memiliki sertifikasi FIPS-140-2 L2 dan FIDO L1
<a name="id_credentials_mfa_fido_certifications_policies_use_case_2"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2",
                    "iam:FIDO-certification": "L1"
                }
            }
        }
    ]
}
```

------

#### Kasus penggunaan 3: Izinkan mendaftarkan perangkat yang memiliki sertifikasi FIPS-140-2 L2 atau FIPS-140-3 L2
<a name="id_credentials_mfa_fido_certifications_policies_use_case_3"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Create"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-2-certification": "L2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:EnableMFADevice",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:RegisterSecurityKey" : "Activate",
                    "iam:FIDO-FIPS-140-3-certification": "L2"
                }
            }
        }
    ]
}
```

------

#### Kasus penggunaan 4: Izinkan mendaftarkan perangkat yang memiliki sertifikasi FIPS-140-2 L2 dan mendukung jenis MFA lainnya seperti otentikator virtual dan TOTP perangkat keras
<a name="id_credentials_mfa_fido_certifications_policies_use_case_4"></a>

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:RegisterSecurityKey": "Create"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:RegisterSecurityKey": "Activate",
          "iam:FIDO-FIPS-140-2-certification": "L2"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "iam:EnableMFADevice",
      "Resource": "*",
      "Condition": {
        "Null": {
          "iam:RegisterSecurityKey": "true"
        }
      }
    }
  ]
}
```

------

## AWS CLI dan AWS API
<a name="id_credentials_mfa_fido_cliapi"></a>

AWS mendukung penggunaan kunci sandi dan kunci keamanan hanya di. Konsol Manajemen AWS Menggunakan kunci sandi dan kunci keamanan untuk MFA tidak didukung di [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/)API [AWS dan](https://aws.amazon.com/tools/), atau untuk akses [ke operasi API yang dilindungi MFA](id_credentials_mfa_configure-api-require.md).

## Sumber daya tambahan
<a name="id_credentials_mfa_fido_additional_resources"></a>
+ Untuk informasi selengkapnya tentang penggunaan kunci sandi dan kunci keamanan AWS, lihat[Tetapkan kunci sandi atau kunci keamanan di Konsol Manajemen AWS](id_credentials_mfa_enable_fido.md).
+ Untuk bantuan dalam memecahkan masalah kunci sandi dan kunci keamanan, lihat. AWS[Memecahkan Masalah Kunci Sandi dan Kunci Keamanan FIDO](troubleshoot_mfa-fido.md)
+ Untuk informasi industri umum tentang FIDO2 dukungan, lihat [FIDO2 Proyek](https://en.wikipedia.org/wiki/FIDO2_Project). 

# Tetapkan perangkat MFA virtual di Konsol Manajemen AWS
<a name="id_credentials_mfa_enable_virtual"></a>

**penting**  
AWS merekomendasikan agar Anda menggunakan kunci sandi atau kunci keamanan untuk MFA, AWS sedapat mungkin. Untuk informasi selengkapnya, lihat [Tetapkan kunci sandi atau kunci keamanan di Konsol Manajemen AWS](id_credentials_mfa_enable_fido.md).

Anda dapat menggunakan ponsel atau perangkat lain sebagai perangkat Autentikasi Multi-Faktor (MFA). Untuk melakukannya, pasang aplikasi seluler yang sesuai dengan [RFC 6238, algoritma TOTP berbasis-standar (kata sandi satu kali berbasis waktu)](https://datatracker.ietf.org/doc/html/rfc6238). Aplikasi ini menghasilkan kode otentikasi enam digit. Karena autentikator dapat berjalan di perangkat seluler yang tidak aman, dan kode tersebut berpotensi dibagikan dengan pihak yang tidak berwenang, MFA berbasis TOTP tidak memberikan tingkat keamanan yang sama dengan opsi tahan phishing seperti kunci keamanan dan kunci sandi. [FIDO2](https://en.wikipedia.org/wiki/FIDO_Alliance#FIDO2) Kami menyarankan Anda menggunakan kunci sandi atau kunci keamanan untuk MFA untuk perlindungan terkuat terhadap serangan seperti phishing.

Jika Anda belum dapat menggunakan kunci sandi atau kunci keamanan, kami sarankan Anda menggunakan perangkat MFA virtual sebagai tindakan sementara saat Anda menunggu persetujuan pembelian perangkat keras atau perangkat keras Anda tiba.

Sebagian besar aplikasi MFA virtual mendukung pembuatan beberapa perangkat virtual, memungkinkan Anda menggunakan aplikasi yang sama untuk beberapa Akun AWS atau pengguna. Anda dapat mendaftarkan hingga **delapan** perangkat MFA dari kombinasi [jenis MFA apa pun dengan pengguna Anda Pengguna root akun AWS dan IAM](https://aws.amazon.com/iam/features/mfa/). Anda hanya perlu satu perangkat MFA untuk masuk ke Konsol Manajemen AWS atau membuat sesi melalui. AWS CLI Kami menyarankan Anda mendaftarkan beberapa perangkat MFA. Untuk aplikasi autentikator, kami juga menyarankan untuk mengaktifkan fitur pencadangan atau sinkronisasi cloud untuk membantu Anda menghindari kehilangan akses ke akun jika perangkat Anda hilang atau rusak.

AWS membutuhkan aplikasi MFA virtual yang menghasilkan OTP enam digit. Untuk daftar aplikasi-aplikasi MFA virtual yang dapat Anda gunakan, lihat [Autentikasi Multi-Faktor](https://aws.amazon.com/iam/features/mfa/?audit=2019q1). 

**Topics**
+ [Izin diperlukan](#mfa_enable_virtual_permissions-required)
+ [Aktifkan perangkat MFA virtual untuk pengguna IAM (konsol)](#enable-virt-mfa-for-iam-user)
+ [Ganti perangkat MFA virtual](#replace-virt-mfa)

## Izin diperlukan
<a name="mfa_enable_virtual_permissions-required"></a>

Untuk mengelola perangkat MFA virtual untuk pengguna IAM Anda, Anda harus memiliki izin dari kebijakan berikut: [AWS: Memungkinkan pengguna IAM yang diautentikasi MFA untuk mengelola perangkat MFA mereka sendiri di halaman kredensi Keamanan](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md).

## Aktifkan perangkat MFA virtual untuk pengguna IAM (konsol)
<a name="enable-virt-mfa-for-iam-user"></a>

Anda dapat menggunakan IAM di Konsol Manajemen AWS untuk mengaktifkan dan mengelola perangkat MFA virtual untuk pengguna IAM di akun Anda. Anda dapat melampirkan tanda ke sumber daya IAM, termasuk perangkat MFA virtual, untuk mengidentifikasi, mengatur, dan mengontrol akses ke perangkat tersebut. Anda dapat menandai perangkat MFA virtual hanya ketika Anda menggunakan AWS CLI atau AWS API. Untuk mengaktifkan dan mengelola perangkat MFA menggunakan AWS API AWS CLI atau, lihat. [Tetapkan perangkat MFA di AWS CLI atau API AWS](id_credentials_mfa_enable_cliapi.md) Untuk informasi selengkapnya tentang menandai sumber daya IAM, lihat. [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md) 

**catatan**  
Anda harus memiliki akses fisik ke perangkat keras yang akan menjadi host perangkat MFA virtual pengguna untuk mengonfigurasi MFA. Misalnya, Anda dapat mengonfigurasi MFA untuk pengguna yang akan menggunakan perangkat MFA virtual yang berjalan di smartphone. Dalam hal ini, Anda harus memiliki smartphone yang tersedia untuk menyelesaikan wizard. Oleh karena itu, Anda mungkin ingin membiarkan pengguna mengonfigurasi dan mengelola perangkat MFA virtual mereka sendiri. Dalam kasus tersebut, Anda harus memberikan izin kepada pengguna untuk melakukan tindakan IAM yang diperlukan. Untuk informasi selengkapnya dan contoh kebijakan IAM yang memberikan izin ini, lihat kebijakan [Tutorial IAM: Izinkan pengguna untuk mengelola kredensi dan pengaturan MFA mereka](tutorial_users-self-manage-mfa-and-creds.md) dan contoh. [AWS: Memungkinkan pengguna IAM yang diautentikasi MFA untuk mengelola perangkat MFA mereka sendiri di halaman kredensi Keamanan](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md) 

**Untuk mengaktifkan perangkat MFA virtual untuk pengguna IAM (konsol)**

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, pilih **Users** (Pengguna).

1. Dalam daftar **Pengguna**, pilih nama pengguna IAM.

1. Pilih tab **Kredensial Keamanan**. **Di bawah **Autentikasi multi-faktor (MFA)**, pilih Tetapkan perangkat MFA.**

1. Di wizard, ketikkan **nama Perangkat**, pilih **Aplikasi Authenticator**, lalu pilih **Berikutnya**.

   IAM menghasilkan dan menampilkan informasi konfigurasi untuk perangkat MFA virtual, termasuk grafik kode QR. Grafik adalah representasi “kunci konfigurasi rahasia” yang tersedia untuk entri manual pada perangkat yang tidak mendukung kode QR.

1. Buka aplikasi MFA virtual Anda. Untuk daftar aplikasi-aplikasi MFA virtual yang dapat Anda gunakan untuk hosting perangkat MFA virtual, lihat [Autentikasi Multi-Faktor](https://aws.amazon.com/iam/details/mfa/). 

   Jika aplikasi MFA virtual mendukung beberapa perangkat atau akun MFA virtual, pilih opsi untuk membuat perangkat atau akun MFA virtual baru.

1. Tentukan apakah aplikasi MFA mendukung kode QR, kemudian lakukan salah satu hal berikut:
   + Dari wizard, pilih **Tampilkan kode QR**, lalu gunakan aplikasi untuk memindai kode QR. Ini mungkin ikon kamera atau opsi **Pindai kode** yang menggunakan kamera perangkat untuk memindai kode.
   + Dari wizard, pilih **Tampilkan kunci rahasia**, lalu ketik kunci rahasia ke dalam aplikasi MFA Anda.

   Saat Anda selesai, perangkat MFA virtual mulai membuat kata sandi sekali pakai. 

1. Pada halaman **Siapkan perangkat**, di kotak **kode MFA 1**, ketik kata sandi satu kali yang saat ini muncul di perangkat MFA virtual. Tunggu hingga 30 detik untuk membuat kata sandi sekali pakai yang baru. Lalu ketikkan kata sandi satu kali kedua ke kotak **Kode MFA 2**. Pilih **Tambahkan MFA**. 
**penting**  
Kirimkan permintaan Anda segera setelah membuat kode. Jika Anda membuat kode dan kemudian menunggu terlalu lama untuk mengirim permintaan, perangkat MFA berhasil menghubungkan pengguna namun perangkat MFA tidak sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu. Jika ini terjadi, Anda dapat [menyinkronisasi ulang perangkat](id_credentials_mfa_sync.md).

Perangkat MFA virtual sekarang siap digunakan. AWS Untuk informasi tentang menggunakan MFA dengan Konsol Manajemen AWS, lihat. [MFA mengaktifkan login](console_sign-in-mfa.md)

**catatan**  
Perangkat MFA virtual yang tidak ditetapkan di Akun AWS Anda akan dihapus saat Anda menambahkan perangkat MFA virtual baru baik melalui atau selama Konsol Manajemen AWS proses masuk. Perangkat MFA virtual yang tidak ditetapkan adalah perangkat di akun Anda tetapi tidak digunakan oleh pengguna root akun atau pengguna IAM untuk proses masuk. Mereka dihapus sehingga perangkat MFA virtual baru dapat ditambahkan ke akun Anda. Ini juga memungkinkan Anda untuk menggunakan kembali nama perangkat.  
Untuk melihat perangkat MFA virtual yang tidak ditetapkan di akun Anda, Anda dapat menggunakan perintah [atau [list-virtual-mfa-devices](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-virtual-mfa-devices.html)AWS CLI](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html)panggilan API.
Untuk menonaktifkan perangkat MFA virtual, Anda dapat menggunakan perintah [atau [deactivate-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/deactivate-mfa-device.html)AWS CLI](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)panggilan API. Perangkat akan menjadi tidak ditugaskan.
[Untuk melampirkan perangkat MFA virtual yang tidak ditetapkan ke Akun AWS pengguna root atau pengguna IAM, Anda memerlukan kode otentikasi yang dihasilkan oleh perangkat bersama dengan perintah atau panggilan API [enable-mfa-device](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/enable-mfa-device.html)AWS CLI .](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html)

## Ganti perangkat MFA virtual
<a name="replace-virt-mfa"></a>

Pengguna Anda Pengguna root akun AWS dan IAM dapat mendaftarkan hingga **delapan** perangkat MFA dari kombinasi jenis MFA apa pun. Jika pengguna kehilangan perangkat atau perlu menggantinya karena alasan apa pun, nonaktifkan perangkat lama. Kemudian Anda dapat menambahkan perangkat baru untuk pengguna.
+ Untuk menonaktifkan perangkat yang saat ini terkait dengan pengguna IAM lain, lihat [Nonaktifkan perangkat MFA](id_credentials_mfa_disable.md).
+ Untuk menambahkan perangkat MFA virtual pengganti bagi pengguna IAM lain, ikuti langkah-langkah dalam prosedur [Aktifkan perangkat MFA virtual untuk pengguna IAM (konsol)](#enable-virt-mfa-for-iam-user) di atas.
+ Untuk menambahkan perangkat MFA virtual pengganti untuk Pengguna root akun AWS, ikuti langkah-langkah dalam prosedur. [Aktifkan perangkat MFA virtual untuk pengguna root (konsol)](enable-virt-mfa-for-root.md)

# Tetapkan token TOTP perangkat keras di Konsol Manajemen AWS
<a name="id_credentials_mfa_enable_physical"></a>

**penting**  
AWS merekomendasikan agar Anda menggunakan kunci sandi atau kunci keamanan untuk MFA, AWS sedapat mungkin. Untuk informasi selengkapnya, lihat [Tetapkan kunci sandi atau kunci keamanan di Konsol Manajemen AWS](id_credentials_mfa_enable_fido.md).

Token TOTP perangkat keras menghasilkan kode numerik enam digit berdasarkan algoritma kata sandi satu kali berbasis waktu (TOTP). Pengguna harus memasukkan kode yang valid dari perangkat saat diminta selama proses masuk. Setiap perangkat MFA yang ditetapkan ke pengguna harus unik; pengguna tidak dapat mengetikkan kode dari perangkat pengguna lain untuk diautentikasi. Perangkat MFA tidak dapat dibagikan di seluruh akun atau pengguna.

Token TOTP perangkat keras dan [kunci keamanan FIDO](id_credentials_mfa_enable_fido.md) adalah perangkat fisik yang Anda beli. Perangkat MFA perangkat keras menghasilkan kode TOTP untuk otentikasi saat Anda masuk. AWS Mereka mengandalkan baterai, yang mungkin perlu penggantian dan sinkronisasi ulang AWS seiring waktu. Kunci keamanan FIDO, yang menggunakan kriptografi kunci publik, tidak memerlukan baterai dan menawarkan proses otentikasi yang mulus. Kami merekomendasikan penggunaan kunci keamanan FIDO untuk ketahanan phishing mereka, yang memberikan alternatif yang lebih aman untuk perangkat TOTP. Selain itu, kunci keamanan FIDO dapat mendukung beberapa pengguna IAM atau root pada perangkat yang sama, meningkatkan utilitas mereka untuk keamanan akun. Untuk spesifikasi dan informasi pembelian untuk kedua jenis perangkat, lihat [Autentikasi Multi-Faktor](https://aws.amazon.com/iam/details/mfa/).



Anda dapat mengaktifkan token TOTP perangkat keras untuk pengguna IAM dari, baris perintah Konsol Manajemen AWS, atau API IAM. Untuk mengaktifkan perangkat MFA untuk Anda Pengguna root akun AWS, lihat. [Aktifkan token TOTP perangkat keras untuk pengguna root (konsol)](enable-hw-mfa-for-root.md)

Anda dapat mendaftarkan hingga **delapan** perangkat MFA dari kombinasi [jenis MFA yang saat ini didukung dengan pengguna Anda Pengguna root akun AWS dan IAM](https://aws.amazon.com/iam/features/mfa/). Dengan beberapa perangkat MFA, Anda hanya perlu satu perangkat MFA untuk masuk ke Konsol Manajemen AWS atau membuat sesi melalui sebagai pengguna tersebut AWS CLI .

**penting**  
Kami menyarankan Anda mengaktifkan beberapa perangkat MFA untuk pengguna Anda untuk melanjutkan akses ke akun Anda jika perangkat MFA hilang atau tidak dapat diakses.

**catatan**  
Jika Anda ingin mengaktifkan perangkat MFA dari baris perintah, gunakan. [https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html) Untuk mengaktifkan perangkat MFA dengan API IAM, gunakan operasi. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) 

**Topics**
+ [Izin diperlukan](#enable-hw-mfa-for-iam-user-permissions-required)
+ [Aktifkan token TOTP perangkat keras untuk pengguna IAM Anda sendiri (konsol)](#enable-hw-mfa-for-own-iam-user)
+ [Aktifkan token TOTP perangkat keras untuk pengguna IAM lain (konsol)](#enable-hw-mfa-for-iam-user)
+ [Ganti perangkat MFA fisik](#replace-phys-mfa)

## Izin diperlukan
<a name="enable-hw-mfa-for-iam-user-permissions-required"></a>

Untuk mengelola token TOTP perangkat keras untuk pengguna IAM Anda sendiri sambil melindungi tindakan sensitif terkait MFA, Anda harus memiliki izin dari kebijakan berikut:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## Aktifkan token TOTP perangkat keras untuk pengguna IAM Anda sendiri (konsol)
<a name="enable-hw-mfa-for-own-iam-user"></a>

 Anda dapat mengaktifkan token TOTP perangkat keras Anda sendiri dari. Konsol Manajemen AWS

**catatan**  
Sebelum Anda dapat mengaktifkan token TOTP perangkat keras, Anda harus memiliki akses fisik ke perangkat.

**Untuk mengaktifkan token TOTP perangkat keras untuk pengguna IAM Anda sendiri (konsol)**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna dan informasi akun IAM Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[Konsol Manajemen AWS Tautan kredensi keamanan\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **Pada tab **Kredensial AWS IAM**, di **bagian Otentikasi Multi-faktor (MFA), pilih Tetapkan perangkat MFA**.**

1. **Di wizard, ketikkan **nama Perangkat**, pilih **token TOTP Perangkat Keras**, lalu pilih Berikutnya.**

1. Ketik nomor seri perangkat. Nomor seri biasanya ada di bagian belakang perangkat.

1. Di kotak **Kode MFA 1**, ketik angka enam-digit yang ditampilkan oleh perangkat MFA. Anda mungkin perlu menekan tombol di bagian depan perangkat untuk menampilkan nomor.  
![\[Dasbor IAM, Perangkat MFA\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/MFADevice.png)

1. Tunggu 30 detik saat perangkat menyegarkan kode, lalu ketik angka enam digit berikutnya ke kotak **Kode MFA 2**. Anda mungkin perlu menekan tombol di bagian depan perangkat untuk menampilkan nomor kedua.

1. Pilih **Tambahkan MFA**.
**penting**  
Segera kirim permintaan Anda setelah membuat kode autentikasi. Jika Anda membuat kode dan kemudian menunggu terlalu lama untuk mengirim permintaan, perangkat MFA berhasil menghubungkan pengguna namun perangkat MFA tidak akan sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu. Jika ini terjadi, Anda dapat [menyinkronisasi ulang perangkat](id_credentials_mfa_sync.md).

Perangkat siap digunakan dengan AWS. Untuk informasi lebih lanjut tentang penggunaan MFA dengan Konsol Manajemen AWS, lihat [MFA mengaktifkan login](console_sign-in-mfa.md).

## Aktifkan token TOTP perangkat keras untuk pengguna IAM lain (konsol)
<a name="enable-hw-mfa-for-iam-user"></a>

 Anda dapat mengaktifkan token TOTP perangkat keras untuk pengguna IAM lain dari. Konsol Manajemen AWS

**Untuk mengaktifkan token TOTP perangkat keras untuk pengguna IAM lain (konsol)**

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, pilih **Users** (Pengguna).

1. Pilih nama pengguna yang ingin Anda aktifkan MFA.

1. Pilih tab **Kredensial Keamanan**. **Di bawah **Autentikasi multi-faktor (MFA)**, pilih Tetapkan perangkat MFA.**

1. **Di wizard, ketikkan **nama Perangkat**, pilih **token TOTP Perangkat Keras**, lalu pilih Berikutnya.**

1. Ketik nomor seri perangkat. Nomor seri biasanya ada di bagian belakang perangkat.

1. Di kotak **Kode MFA 1**, ketik angka enam-digit yang ditampilkan oleh perangkat MFA. Anda mungkin perlu menekan tombol di bagian depan perangkat untuk menampilkan nomor.  
![\[Dasbor IAM, Perangkat MFA\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/MFADevice.png)

1. Tunggu 30 detik saat perangkat menyegarkan kode, lalu ketik angka enam digit berikutnya ke kotak **Kode MFA 2**. Anda mungkin perlu menekan tombol di bagian depan perangkat untuk menampilkan nomor kedua.

1. Pilih **Tambahkan MFA**.
**penting**  
Segera kirim permintaan Anda setelah membuat kode autentikasi. Jika Anda membuat kode dan kemudian menunggu terlalu lama untuk mengirim permintaan, perangkat MFA berhasil menghubungkan pengguna namun perangkat MFA tidak akan sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu. Jika ini terjadi, Anda dapat [menyinkronisasi ulang perangkat](id_credentials_mfa_sync.md).

Perangkat siap digunakan dengan AWS. Untuk informasi lebih lanjut tentang penggunaan MFA dengan Konsol Manajemen AWS, lihat [MFA mengaktifkan login](console_sign-in-mfa.md).

## Ganti perangkat MFA fisik
<a name="replace-phys-mfa"></a>

Anda dapat memiliki hingga delapan perangkat MFA dari kombinasi [jenis MFA yang saat ini didukung](https://aws.amazon.com/iam/features/mfa/) yang ditetapkan untuk pengguna pada satu waktu dengan pengguna Anda Pengguna root akun AWS dan IAM. Jika pengguna kehilangan perangkat atau perlu mengganti karena alasan apa pun, Anda harus menonaktifkan perangkat lama terlebih dahulu. Kemudian Anda dapat menambahkan perangkat baru untuk pengguna.
+ Untuk menonaktifkan perangkat yang saat ini terkait dengan pengguna, lihat [Nonaktifkan perangkat MFA](id_credentials_mfa_disable.md).
+ Untuk menambahkan token TOTP perangkat keras pengganti untuk pengguna IAM, ikuti langkah-langkah dalam prosedur [Aktifkan token TOTP perangkat keras untuk pengguna IAM lain (konsol)](#enable-hw-mfa-for-iam-user) sebelumnya dalam topik ini.
+ Untuk menambahkan token TOTP perangkat keras pengganti untuk Pengguna root akun AWS, ikuti langkah-langkah dalam prosedur [Aktifkan token TOTP perangkat keras untuk pengguna root (konsol)](enable-hw-mfa-for-root.md) sebelumnya dalam topik ini.

# Tetapkan perangkat MFA di AWS CLI atau API AWS
<a name="id_credentials_mfa_enable_cliapi"></a>

Anda dapat menggunakan AWS CLI perintah atau operasi AWS API untuk mengaktifkan perangkat MFA virtual untuk pengguna IAM. Anda tidak dapat mengaktifkan perangkat MFA untuk Pengguna root akun AWS dengan AWS CLI, AWS API, Alat untuk Windows PowerShell, atau alat baris perintah lainnya. Namun, Anda dapat menggunakan Konsol Manajemen AWS untuk mengaktifkan perangkat MFA untuk pengguna root. 

Saat Anda mengaktifkan perangkat MFA dari Konsol Manajemen AWS, konsol melakukan beberapa langkah untuk Anda. Jika Anda malah membuat perangkat virtual menggunakan AWS CLI, Alat untuk Windows PowerShell, atau AWS API, maka Anda harus melakukan langkah-langkah secara manual dan dalam urutan yang benar. Misalnya, untuk membuat perangkat MFA virtual, Anda harus membuat objek IAM dan mengekstrak kode sebagai sebuah string atau grafik kode QR. Kemudian Anda harus menyinkronkan perangkat dan mengaitkannya dengan pengguna IAM. Lihat bagian **Contoh** [Baru- IAMVirtual MFADevice](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=New-IAMVirtualMFADevice.html&tocid=New-IAMVirtualMFADevice) untuk lebih jelasnya. Untuk perangkat fisik, Anda melompati langkah pembuatan dan langsung menuju sinkronisasi perangkat dan mengaitkannya dengan pengguna. 

Anda dapat melampirkan tanda ke sumber daya IAM, termasuk perangkat MFA virtual, untuk mengidentifikasi, mengatur, dan mengontrol akses ke perangkat tersebut. Anda dapat menandai perangkat MFA virtual hanya ketika Anda menggunakan AWS CLI atau AWS API.

Pengguna IAM yang menggunakan SDK atau CLI dapat mengaktifkan perangkat MFA tambahan dengan memanggil atau [https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html)menonaktifkan perangkat MFA yang ada dengan menelepon. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html) Untuk melakukan ini dengan sukses, mereka harus terlebih dahulu memanggil [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html)dan mengirimkan kode MFA dengan perangkat MFA yang ada. Panggilan ini mengembalikan kredensi keamanan sementara yang kemudian dapat digunakan untuk menandatangani operasi API yang memerlukan otentikasi MFA. Untuk contoh permintaan dan respons, lihat [`GetSessionToken`—kredensial sementara untuk pengguna di](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) lingkungan yang tidak tepercaya. 

**Untuk membuat entitas perangkat virtual di IAM untuk mewakili perangkat MFA virtual**  
Perintah ini memberikan ARN untuk perangkat yang digunakan untuk menggantikan nomor seri dalam banyak perintah berikut.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/create-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-virtual-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateVirtualMFADevice.html) 

**Untuk mengaktifkan perangkat MFA untuk digunakan AWS**  
Perintah ini menyinkronkan perangkat dengan AWS dan mengaitkannya dengan pengguna. Jika perangkat ini virtual, gunakan ARN perangkat virtual sebagai nomor seri.

**penting**  
Segera kirim permintaan Anda setelah membuat kode autentikasi. Jika Anda membuat kode dan kemudian menunggu terlalu lama untuk mengirim permintaan, perangkat MFA berhasil menghubungkan pengguna namun perangkat MFA tidak akan sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu. Jika ini terjadi, Anda dapat mensinkronisasi ulang perangkat menggunakan perintah yang dijelaskan di bawah ini.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html) 

**Untuk menonaktifkan perangkat**  
Gunakan perintah ini untuk memisahkan perangkat dari pengguna dan menonaktifkannya. Jika perangkat ini virtual, gunakan ARN perangkat virtual sebagai nomor seri. Anda juga harus menghapus perangkat virtual secara terpisah. 
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)

**Untuk mencantumkan entitas perangkat MFA virtual**  
Gunakan perintah ini untuk mencantumkan entitas perangkat MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html) 

**Untuk menandai perangkat MFA virtual**  
Gunakan perintah ini untuk menandai perangkat MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/tag-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagMFADevice.html) 

**Untuk mencantumkan tanda perangkat MFA virtual**  
Gunakan perintah ini untuk mencantumkan tanda yang terpasang ke perangkat MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-device-tags.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-device-tags.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html) 

**Untuk menghapus tanda perangkat MFA virtual**  
Gunakan perintah ini untuk menghapus tanda yang terpasang ke perangkat MFA virtual.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/untag-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagMFADevice.html) 

**Untuk mensinkronkan ulang perangkat MFA**  
Gunakan perintah ini jika perangkat menghasilkan kode yang tidak diterima oleh AWS. Jika perangkat ini virtual, gunakan ARN perangkat virtual sebagai nomor seri.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html) 

**Untuk menghapus entitas perangkat MFA virtual di IAM**  
Setelah perangkat diputus kaitannya dari pengguna, Anda dapat menghapus entitas perangkat.
+ AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html) 
+ AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html) 

**Untuk memulihkan perangkat MFA virtual yang hilang atau tidak berfungsi**  
Terkadang, perangkat pengguna yang meng-host aplikasi MFA virtual hilang, diganti, atau tidak berfungsi. Jika ini terjadi, pengguna tidak dapat memulihkannya sendiri. Pengguna harus menghubungi administrator untuk menonaktifkan perangkat. Lihat informasi yang lebih lengkap di [Pulihkan identitas yang dilindungi MFA di IAM](id_credentials_mfa_lost-or-broken.md).

# Periksa status MFA
<a name="id_credentials_mfa_checking-status"></a>

Gunakan konsol IAM untuk memeriksa apakah pengguna IAM Pengguna root akun AWS atau IAM mengaktifkan perangkat MFA yang valid.

**Untuk memeriksa status MFA dari pengguna akar**

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

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.

1. Periksa di bawah **Autentikasi Multi-Faktor (MFA)** untuk melihat apakah MFA diaktifkan atau dinonaktifkan. Jika MFA belum diaktifkan, simbol peringatan (![\[Alert icon\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/console-alert-icon.console.png)) akann ditampilkan 

Jika Anda ingin mengaktifkan MFA untuk akun, lihat salah satu hal berikut:
+ [Aktifkan perangkat MFA virtual untuk pengguna root (konsol)](enable-virt-mfa-for-root.md)
+ [Aktifkan kunci sandi atau kunci keamanan untuk pengguna root (konsol)](enable-fido-mfa-for-root.md)
+ [Aktifkan token TOTP perangkat keras untuk pengguna root (konsol)](enable-hw-mfa-for-root.md)

**Untuk memeriksa status MFA pengguna IAM**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. Di panel navigasi, pilih **Pengguna**.

1. Jika perlu, tambahkan kolom **MFA** pada tabel pengguna dengan menyelesaikan langkah-langkah berikut:

   1. Di atas tabel di ujung kanan, pilih ikon pengaturan (![\[Settings icon\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/console-settings-icon.console.png)).

   1. Di **Kelola Kolom**, pilih **MFA**.

   1. (Opsional) Kosongkan kotak centang untuk judul kolom apa pun yang tidak ingin Anda tampilkan di tabel pengguna.

   1. Pilih **Tutup** untuk kembali ke daftar pengguna.

1. Kolom **MFA** kmemberi tahu Anda tentang perangkat MFA yang diaktifkan. **Jika tidak ada perangkat MFA yang aktif untuk pengguna, konsol akan menampilkan None.** **Jika pengguna mengaktifkan perangkat MFA, kolom **MFA** menunjukkan jenis perangkat yang diaktifkan dengan nilai **Virtual**, **Kunci Keamanan**, Perangkat **Keras**, atau SMS.**
**catatan**  
AWS mengakhiri dukungan untuk mengaktifkan otentikasi multi-faktor SMS (MFA). [[Kami menyarankan agar pelanggan yang memiliki pengguna IAM yang menggunakan MFA berbasis pesan teks SMS beralih ke salah satu metode alternatif berikut[: perangkat MFA virtual (berbasis perangkat lunak), kunci keamanan FIDO, atau perangkat MFA perangkat keras](id_credentials_mfa_enable_virtual.md).](id_credentials_mfa_enable_physical.md)](id_credentials_mfa_enable_fido.md) Anda dapat mengidentifikasi pengguna di akun Anda dengan perangkat MFA SMS yang ditetapkan. Untuk melakukannya, kunjungi konsol IAM, pilih **Pengguna** dari panel navigasi, dan cari pengguna dengan **SMS** di kolom **MFA** di tabel.

1. Untuk melihat informasi tambahan tentang perangkat MFA untuk pengguna, pilih nama pengguna yang status MFA ingin Anda periksa. Kemudian pilih tab **Kredensial keamanan**. 

1. Jika tidak ada perangkat MFA yang aktif untuk pengguna, konsol menampilkan Tidak ada perangkat **MFA. Tetapkan perangkat MFA untuk meningkatkan keamanan lingkungan AWS Anda di bagian** **Autentikasi Multi-faktor (**MFA). Jika pengguna mengaktifkan perangkat MFA, bagian **Autentikasi Multi-faktor (MFA**) menunjukkan detail tentang perangkat:
   + Nama perangkat
   + Jenis perangkat
   + Pengenal untuk perangkat, seperti nomor seri untuk perangkat fisik atau ARN AWS untuk perangkat virtual
   + Saat perangkat dibuat

Untuk menghapus atau menyinkronkan ulang perangkat, pilih tombol radio di sebelah perangkat dan pilih **Hapus** atau **Sinkronkan Ulang**.

Untuk informasi lebih lanjut dalam mengaktifkan MFA, lihat hal berikut: 
+ [Tetapkan perangkat MFA virtual di Konsol Manajemen AWS](id_credentials_mfa_enable_virtual.md)
+ [Tetapkan kunci sandi atau kunci keamanan di Konsol Manajemen AWS](id_credentials_mfa_enable_fido.md)
+ [Tetapkan token TOTP perangkat keras di Konsol Manajemen AWS](id_credentials_mfa_enable_physical.md)

# Sinkronisasi ulang perangkat MFA virtual dan perangkat keras
<a name="id_credentials_mfa_sync"></a>

Anda dapat menggunakan AWS untuk menyinkronkan ulang perangkat otentikasi multi-faktor virtual dan perangkat keras (MFA) Anda. Jika perangkat Anda tidak disinkronkan saat Anda mencoba menggunakannya, upaya masuk gagal dan IAM meminta Anda untuk mensinkronkan ulang perangkat tersebut.

**catatan**  
Kunci keamanan FIDO tidak keluar dari sinkron. Jika kunci keamanan FIDO hilang atau rusak, Anda dapat menonaktifkannya. Untuk petunjuk cara menonaktifkan jenis perangkat MFA, lihat [Untuk menonaktifkan perangkat MFA untuk pengguna IAM lainnya (konsol)](id_credentials_mfa_disable.md#deactivate-mfa-for-user).

Sebagai AWS administrator, Anda dapat menyinkronkan ulang perangkat MFA virtual dan perangkat keras pengguna IAM Anda jika mereka keluar dari sinkronisasi.

Jika perangkat Pengguna root akun AWS MFA tidak berfungsi, Anda dapat menyinkronkan ulang perangkat menggunakan konsol IAM dengan atau tanpa menyelesaikan proses masuk. Jika Anda tidak berhasil menyinkronkan ulang perangkat Anda, Anda mungkin perlu menghapus kaitannya dan mengaitkannya kembali. Untuk informasi lebih lanjut tentang cara melakukan ini, lihat [Nonaktifkan perangkat MFA](id_credentials_mfa_disable.md) dan[AWS Otentikasi multi-faktor di IAM](id_credentials_mfa.md).

**Topics**
+ [Izin diperlukan](#id_credentials_mfa_sync_console-permissions-required)
+ [Mensinkronisasi ulang perangkat MFA virtual dan perangkat keras (konsol IAM)](#id_credentials_mfa_sync_console)
+ [Menyinkronkan ulang perangkat MFA virtual dan perangkat keras (AWS CLI)](#id_credentials_mfa_sync_cli)
+ [Menyinkronkan ulang perangkat MFA virtual dan perangkat keras (API)AWS](#id_credentials_mfa_sync_api)

## Izin diperlukan
<a name="id_credentials_mfa_sync_console-permissions-required"></a>

Untuk menyinkronkan ulang perangkat MFA virtual atau perangkat keras untuk pengguna IAM Anda sendiri, Anda harus memiliki izin dari kebijakan berikut. Kebijakan ini tidak mengizinkan Anda untuk membuat atau menonaktifkan perangkat.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToViewAndManageTheirOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "BlockAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

## Mensinkronisasi ulang perangkat MFA virtual dan perangkat keras (konsol IAM)
<a name="id_credentials_mfa_sync_console"></a>

Anda dapat menggunakan konsol IAM untuk mengsinkronisasi ulang perangkat MFA virtual dan perangkat keras.

**Untuk mensinkronkan perangkat keras atau MFA virtual untuk pengguna IAM Anda sendiri (konsol)**

1. Gunakan ID AWS akun atau alias akun, nama pengguna IAM, dan kata sandi Anda untuk masuk ke konsol [IAM](https://console.aws.amazon.com/iam).
**catatan**  
Untuk kenyamanan Anda, halaman AWS masuk menggunakan cookie browser untuk mengingat nama pengguna IAM dan informasi akun Anda. Jika Anda sebelumnya masuk sebagai pengguna yang berbeda, pilih **Masuk ke akun lain** dekat bagian bawah halaman untuk kembali ke halaman masuk utama. Dari sana, Anda dapat mengetikkan ID AWS akun atau alias akun Anda untuk diarahkan ke halaman login pengguna IAM untuk akun Anda.

   Untuk mendapatkan Akun AWS ID Anda, hubungi administrator Anda.

1. Di bilah navigasi di kanan atas, pilih nama pengguna Anda, lalu pilih **Kredensi keamanan**.   
![\[AWS Tautan kredensi Keamanan Konsol Manajemen\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **Pada tab **kredensi AWS IAM**, di bagian **Otentikasi Multi-faktor (MFA), pilih tombol radio di sebelah perangkat MFA** dan pilih Resinkronisasi.**

1. Ketik dua kode berikutnya yang dibuat secara berurutan dari perangkat ke dalam **Kode MFA 1** dan **Kode MFA 2**. Kemudian pilih **Resinkronisasi**.
**penting**  
Kirimkan permintaan Anda segera setelah membuat kode. Jika Anda membuat kode lalu menunggunya terlalu lama untuk mengirimkan permintaan, permintaan tersebut muncul untuk bekerja tetapi perangkat tetap tidak sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu.

**Untuk mensinkronisasi ulang perangkat MFA virtual atau perangkat keras untuk pengguna IAM lainnya (konsol)**

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, pilih **Pengguna**, lalu pilih nama pengguna yang perangkat MFA perlu disinkronisasi ulang.

1. Pilih tab **Kredensial keamanan**. **Di bagian **Otentikasi Multi-faktor (MFA)**, pilih tombol radio di sebelah perangkat MFA dan pilih Resinkronisasi.**

1. Ketik dua kode berikutnya yang dibuat secara berurutan dari perangkat ke dalam **Kode MFA 1** dan **Kode MFA 2**. Kemudian pilih **Resinkronisasi**.
**penting**  
Kirimkan permintaan Anda segera setelah membuat kode. Jika Anda membuat kode lalu menunggunya terlalu lama untuk mengirimkan permintaan, permintaan tersebut muncul untuk bekerja tetapi perangkat tetap tidak sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu.

**Untuk mensinkronkan ulang MFA pengguna akar Anda sebelum masuk (konsol)**

1. Di halaman **Masuk Amazon Web Services Dengan Perangkat Autentikasi**, pilih **Ada masalah dengan perangkat autentikasi Anda? Klik di sini**.
**catatan**  
Anda mungkin melihat teks yang berbeda, seperti **Masuk menggunakan MFA** dan **Atasi masalah perangkat autentikasi Anda**. Namun, fitur yang sama disediakan.

1. Di bagian **Sinkronkan ulang Dengan Server Kami**, ketikkan dua kode berikutnya yang dibuat secara berurutan dari perangkat ke dalam **Kode MFA 1** dan **Kode MFA 2**. Lalu, pilih **Sinkronkan ulang perangkat autentikasi**.

1. Jika perlu, ketikkan kata sandi Anda kembali dan pilih **Masuk**. Lalu selesaikan proses masuk menggunakan perangkat MFA Anda.

**Untuk mensinkronkan ulang MFA pengguna akar Anda setelah masuk (konsol)**

1. Masuk ke [konsol IAM](https://console.aws.amazon.com/iam/) sebagai pemilik akun dengan memilih **pengguna Root** dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.
**catatan**  
Sebagai pengguna root, Anda tidak dapat masuk ke halaman **pengguna Masuk sebagai IAM**. Jika Anda melihat halaman **Masuk sebagai pengguna IAM**, pilih **Masuk menggunakan email pengguna root** di dekat bagian bawah halaman. Untuk bantuan masuk sebagai pengguna root, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-          root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sisi kanan bilah navigasi, pilih nama akun Anda, lalu pilih **Kredensi keamanan**. Jika perlu, pilih **Continue to Security credentials**.  
![\[Kredensi keamanan di menu navigasi\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. Perluas bagian **Multi-Factor Authentication (MFA)** di halaman.

1. Pilih tombol radio di sebelah perangkat dan pilih **Resinkronisasi**.

1. **Di kotak dialog perangkat **MFA Resinkronisasi**, ketik dua kode berikutnya yang dihasilkan secara berurutan dari perangkat ke dalam kode MFA 1 dan **kode MFA** 2.** Kemudian pilih **Resinkronisasi**.
**penting**  
Kirimkan permintaan Anda segera setelah membuat kode. Jika Anda membuat kode lalu menunggunya terlalu lama untuk membuat mengirimkan permintaan, perangkat MFA berhasil dikaitkan dengan pengguna, tetapi perangkat MFA tidak sinkron. Hal ini terjadi karena kata sandi sekali pakai berbasis-waktu kedaluwarsa setelah beberapa waktu.

## Menyinkronkan ulang perangkat MFA virtual dan perangkat keras (AWS CLI)
<a name="id_credentials_mfa_sync_cli"></a>

Anda dapat menyinkronkan ulang perangkat MFA virtual dan perangkat keras dari AWS CLI.

**Untuk menyinkronkan ulang perangkat MFA virtual atau perangkat keras untuk pengguna IAM ()AWS CLI**  
Pada prompt perintah, keluarkan perintah [aws iam: resync-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/resync-mfa-device.html)
+ Perangkat MFA virtual: Menentukan Amazon Resource Name (ARN) dari perangkat sebagai nomor seri.

  ```
  aws iam resync-mfa-device --user-name Richard --serial-number arn:aws:iam::123456789012:mfa/RichardsMFA --authentication-code1 123456 --authentication-code2 987654
  ```
+ Perangkat MFA perangkat keras: Menentukan nomor seri perangkat keras sebagai nomor seri. Formatnya khusus vendor. Misalnya, Anda dapat membeli token gemalto dari Amazon. Nomor serinya biasa terdiri atas empat huruf, diikuti empat angka.

  ```
  aws iam resync-mfa-device --user-name Richard --serial-number ABCD12345678 --authentication-code1 123456 --authentication-code2 987654
  ```

**penting**  
Kirimkan permintaan Anda segera setelah membuat kode. Jika Anda membuat kode lalu menunggunya terlalu lama untuk mengirimkan permintaan, permintaan gagal karena kode kedaluwarsa setelah beberapa saat.

## Menyinkronkan ulang perangkat MFA virtual dan perangkat keras (API)AWS
<a name="id_credentials_mfa_sync_api"></a>

IAM memiliki panggilan API yang melakukan sinkronisasi. Dalam hal ini, kami menyarankan agar Anda memberikan izin pengguna perangkat MFA virtual dan perangkat keras untuk mengakses panggilan API ini. Kemudian buat alat berdasarkan panggilan API sehingga pengguna Anda dapat mensinkronisasi ulang perangkat mereka kapan pun diperlukan.

**Untuk menyinkronkan ulang perangkat MFA virtual atau perangkat keras untuk pengguna IAM (API)AWS**
+ Kirim MFADevice permintaan [Resinkronisasi](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResyncMFADevice.html).

# Nonaktifkan perangkat MFA
<a name="id_credentials_mfa_disable"></a>

Jika Anda mengalami masalah saat masuk dengan perangkat otentikasi multi-faktor (MFA) sebagai pengguna IAM, hubungi administrator Anda untuk mendapatkan bantuan.

Sebagai administrator, Anda dapat menonaktifkan perangkat untuk pengguna IAM lainnya. Ini memungkinkan pengguna masuk tanpa menggunakan MFA. Anda dapat melakukannya sebagai solusi sementara saat perangkat MFA diganti, atau jika perangkat tidak tersedia untuk sementara. Namun, kami menyarankan Anda untuk mengaktifkan perangkat baru untuk pengguna sesegera mungkin. Untuk mempelajari cara mengaktifkan perangkat MFA baru, lihat [AWS Otentikasi multi-faktor di IAM](id_credentials_mfa.md).

**catatan**  
Jika Anda menggunakan API atau AWS CLI menghapus pengguna dari Anda Akun AWS, Anda harus menonaktifkan atau menghapus perangkat MFA pengguna. Anda membuat perubahan ini sebagai bagian dari proses penghapusan pengguna. Untuk informasi selengkapnya tentang menghapus pengguna, lihat[Menghapus atau menonaktifkan pengguna IAM](id_users_remove.md).

**Topics**
+ [Menonaktifkan perangkat MFA (konsol)](#deactive-mfa-console)
+ [Menonaktifkan perangkat MFA (AWS CLI)](#deactivate-mfa-cli)
+ [Menonaktifkan perangkat MFA (API)AWS](#deactivate-mfa-api)

## Menonaktifkan perangkat MFA (konsol)
<a name="deactive-mfa-console"></a><a name="deactivate-mfa-for-user"></a>

**Untuk menonaktifkan perangkat MFA untuk pengguna IAM lainnya (konsol)**

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, pilih **Pengguna**.

1. Untuk menonaktifkan perangkat MFA bagi pengguna, pilih nama pengguna yang MFAnya ingin Anda hapus.

1. Pilih tab **Kredensial keamanan**.

1. **Di bawah **Autentikasi multi-faktor (MFA)**, pilih tombol radio di sebelah perangkat MFA, pilih Hapus, lalu pilih **Hapus**.**

   Perangkat dihapus dari AWS. Ini tidak dapat digunakan untuk masuk atau mengotentikasi permintaan sampai diaktifkan kembali dan dikaitkan dengan AWS pengguna atau. Pengguna root akun AWS<a name="deactivate-mfa-for-root"></a>

**Untuk menonaktifkan perangkat MFA untuk Pengguna root akun AWS (konsol)**

1. Masuk ke [konsol IAM](https://console.aws.amazon.com/iam/) sebagai pemilik akun dengan memilih **pengguna Root** dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.
**catatan**  
Sebagai pengguna root, Anda tidak dapat masuk ke halaman **pengguna Masuk sebagai IAM**. Jika Anda melihat halaman **Masuk sebagai pengguna IAM**, pilih **Masuk menggunakan email pengguna root** di dekat bagian bawah halaman. Untuk bantuan masuk sebagai pengguna root, lihat [Masuk ke Konsol Manajemen AWS sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-          root-user-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

1. Di sisi kanan bilah navigasi, pilih nama akun Anda, lalu pilih **Kredensi keamanan**. Jika perlu, pilih **Continue to Security credentials**.  
![\[Kredensi keamanan di menu navigasi\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/security-credentials-root.shared.console.png)

1. **Di bagian **Otentikasi multi-faktor (MFA)**, pilih tombol radio di sebelah perangkat MFA yang ingin Anda nonaktifkan dan pilih Hapus.**

1. Pilih **Hapus**.

   Perangkat MFA dinonaktifkan untuk file. Akun AWS Periksa email yang terkait dengan Anda Akun AWS untuk pesan konfirmasi dari Amazon Web Services. Email tersebut memberi tahu Anda bahwa Autentikasi Multi-Faktor (MFA) Amazon Web Services Anda telah dinonaktifkan. Pesan akan datang dari `@amazon.com` atau`@aws.amazon.com`.

**catatan**  
Perangkat MFA virtual yang tidak ditetapkan di Akun AWS Anda akan dihapus saat Anda menambahkan perangkat MFA virtual baru baik melalui atau selama Konsol Manajemen AWS proses masuk. Perangkat MFA virtual yang tidak ditetapkan adalah perangkat di akun Anda tetapi tidak digunakan oleh pengguna root akun atau pengguna IAM untuk proses masuk. Mereka dihapus sehingga perangkat MFA virtual baru dapat ditambahkan ke akun Anda. Ini juga memungkinkan Anda untuk menggunakan kembali nama perangkat.

## Menonaktifkan perangkat MFA (AWS CLI)
<a name="deactivate-mfa-cli"></a>

**Untuk menonaktifkan perangkat MFA untuk pengguna IAM ()AWS CLI**
+ Jalankan perintah ini: [https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/deactivate-mfa-device.html)

## Menonaktifkan perangkat MFA (API)AWS
<a name="deactivate-mfa-api"></a>

**Untuk menonaktifkan perangkat MFA untuk pengguna IAM (API)AWS**
+ Hubungi operasi ini: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeactivateMFADevice.html)

# Pulihkan identitas yang dilindungi MFA di IAM
<a name="id_credentials_mfa_lost-or-broken"></a>

Jika perangkat [MFA virtual atau token TOTP perangkat](id_credentials_mfa_enable_virtual.md) [keras](id_credentials_mfa_enable_physical.md) Anda tampaknya berfungsi dengan baik, tetapi Anda tidak dapat menggunakannya untuk mengakses AWS sumber daya Anda, itu mungkin tidak sinkronisasi dengan. AWS Untuk informasi tentang sinkronisasi perangkat MFA virtual atau MFA perangkat keras, lihat [Sinkronisasi ulang perangkat MFA virtual dan perangkat keras](id_credentials_mfa_sync.md). [Kunci keamanan FIDO](id_credentials_mfa_enable_fido.md) tidak keluar dari sinkron.

Jika [perangkat MFA](id_credentials_mfa.md) untuk a Pengguna root akun AWS hilang, rusak, atau tidak berfungsi, Anda dapat memulihkan akses ke akun Anda. Pengguna IAM harus menghubungi administrator untuk menonaktifkan perangkat.

**penting**  
Kami menyarankan Anda mengaktifkan beberapa perangkat MFA. Mendaftarkan beberapa perangkat MFA membantu memastikan akses berkelanjutan jika perangkat hilang atau rusak. Pengguna Anda Pengguna root akun AWS dan IAM dapat mendaftarkan hingga delapan perangkat MFA jenis apa pun.

## Prasyarat - Gunakan perangkat MFA lain
<a name="mfa-lost-or-broken-prerequisites"></a>

Jika [perangkat otentikasi multi-faktor (MFA)](id_credentials_mfa.md) Anda hilang, rusak, atau tidak berfungsi, Anda dapat masuk menggunakan perangkat MFA lain yang terdaftar ke pengguna root atau pengguna IAM yang sama.

**Untuk masuk menggunakan perangkat MFA lain**

1. Masuk ke [Konsol Manajemen AWS](url-comsole-domain;iam)dengan Akun AWS ID atau alias akun dan kata sandi Anda.

1. Pada halaman **verifikasi tambahan yang diperlukan** atau halaman **otentikasi multi-faktor**, pilih **Coba metode MFA** lain.

1. Otentikasi dengan jenis perangkat MFA yang Anda pilih.

1. Langkah selanjutnya bervariasi berdasarkan apakah Anda berhasil masuk dengan perangkat MFA alternatif.
   + Jika Anda telah berhasil masuk, Anda bisa[Sinkronisasi ulang perangkat MFA virtual dan perangkat keras](id_credentials_mfa_sync.md), yang dapat menyelesaikan masalah. Jika perangkat MFA Anda hilang atau rusak, Anda dapat menonaktifkannya. Untuk petunjuk cara menonaktifkan jenis perangkat MFA, lihat [Nonaktifkan perangkat MFA](id_credentials_mfa_disable.md).
   + Jika Anda tidak dapat masuk dengan MFA, gunakan langkah-langkah [Pemulihan perangkat MFA pengguna akar](#root-mfa-lost-or-broken) atau [Pemulihan perangkat MFA pengguna IAM](#iam-user-mfa-lost-or-broken) untuk memulihkan identitas yang dilindungi MFA Anda.



## Pemulihan perangkat MFA pengguna akar
<a name="root-mfa-lost-or-broken"></a>

Jika Anda tidak dapat masuk dengan MFA, Anda dapat menggunakan metode otentikasi alternatif untuk masuk dengan memverifikasi identitas Anda menggunakan email dan nomor telepon kontak utama yang terdaftar di akun Anda.

Konfirmasikan bahwa Anda dapat mengakses email dan nomor telepon kontak utama yang terkait dengan akun Anda sebelum Anda menggunakan faktor otentikasi alternatif untuk masuk sebagai pengguna root. Jika Anda perlu memperbarui nomor telepon kontak utama, masuk sebagai pengguna IAM dengan akses *Administrator*, bukan pengguna root. Untuk petunjuk tambahan tentang memperbarui informasi kontak akun, lihat [Mengedit informasi kontak](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html) di *Panduan AWS Billing Pengguna*. Jika Anda tidak memiliki akses ke email dan nomor telepon kontak utama, Anda harus menghubungi [AWS Dukungan](https://support.aws.amazon.com/#/contacts/aws-mfa-support).

**penting**  
Kami menyarankan agar Anda tetap memperbarui alamat email dan nomor telepon kontak ke pengguna root Anda agar pemulihan akun berhasil. Untuk informasi selengkapnya, lihat [Memperbarui kontak utama untuk Anda Akun AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html) di *Panduan AWS Account Management Referensi*.

**Untuk masuk menggunakan faktor alternatif otentikasi sebagai Pengguna root akun AWS**

1.  Masuk ke [Konsol Manajemen AWS](https://console.aws.amazon.com/)sebagai pemilik akun dengan memilih **pengguna Root** dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

1. **Pada halaman **Verifikasi tambahan yang diperlukan**, pilih metode MFA untuk mengautentikasi dan pilih Berikutnya.** 
**catatan**  
Anda mungkin melihat teks alternatif, seperti **Masuk menggunakan MFA**, **Memecahkan masalah perangkat otentikasi Anda,** atau Memecahkan Masalah **MFA**, tetapi fungsinya sama. Jika Anda tidak dapat menggunakan faktor otentikasi alternatif untuk memverifikasi alamat email akun dan nomor telepon kontak utama, hubungi [AWS Dukungan](https://support.aws.amazon.com/#/contacts/aws-mfa-support)untuk menonaktifkan perangkat MFA Anda.

1. Bergantung pada jenis MFA yang Anda gunakan, Anda akan melihat halaman yang berbeda, tetapi opsi **Pemecahan Masalah MFA berfungsi** sama. Pada halaman **verifikasi tambahan yang diperlukan** atau halaman **otentikasi multi-faktor**, pilih **Troubleshoot** MFA.

1. Jika perlu, ketikkan kata sandi Anda kembali dan pilih **Masuk**.

1. Pada halaman **Memecahkan masalah perangkat autentikasi Anda**, di bagian **Masuk menggunakan faktor alternatif autentikasi**, pilih **Masuk** menggunakan faktor alternatif.

1. Pada halaman **Masuk menggunakan faktor alternatif otentikasi**, autentikasi akun Anda dengan memverifikasi alamat email, pilih **Kirim email verifikasi**. 

1. Periksa email yang terkait dengan Anda Akun AWS untuk pesan dari Amazon Web Services (recover-mfa-no-reply@verify .signin.aws). Ikuti petunjuk di dalam email.

   Jika Anda tidak melihat email di akun Anda, periksa folder spam, atau kembali ke peramban Anda dan pilih **Kirim ulang email**.

1. Setelah Anda memverifikasi alamat email, Anda dapat melanjutkan mengautentikasi akun Anda. Untuk memverifikasi nomor telepon kontak utama Anda, pilih **Hubungi saya sekarang**.

1. Jawab panggilan dari AWS dan, ketika diminta, masukkan nomor 6 digit dari AWS situs web di keypad ponsel Anda. 

   Jika Anda tidak menerima panggilan dari AWS, pilih **Masuk** untuk masuk ke konsol lagi dan mulai dari awal. Atau lihat Perangkat [Multi-Factor Authentication (MFA) yang hilang atau tidak dapat digunakan untuk menghubungi dukungan untuk mendapatkan bantuan](https://support.aws.amazon.com/#/contacts/aws-mfa-support).

1. Setelah memverifikasi nomor telepon, Anda dapat masuk ke akun dengan memilih **Masuk ke konsol**.

1. Langkah berikutnya bervariasi tergantung pada jenis MFA yang Anda gunakan:
   + Untuk perangkat MFA virtual, hapus akun dari perangkat Anda. Lalu, kunjungi [Kredensial Keamanan AWS](https://console.aws.amazon.com/iam/home?#security_credential) dan hapus perangkat virtual MFA lama sebelum Anda membuat perangkat baru.
   + Untuk kunci keamanan FIDO, buka halaman [AWS Security Credentials](https://console.aws.amazon.com/iam/home?#security_credential) dan nonaktifkan kunci keamanan FIDO lama sebelum mengaktifkan yang baru.
   + Untuk token TOTP perangkat keras, hubungi penyedia pihak ketiga untuk bantuan memperbaiki atau mengganti perangkat. Anda dapat terus masuk menggunakan faktor alternatif autentikasi hingga Anda menerima perangkat baru. Setelah Anda memiliki perangkat MFA perangkat keras baru, buka halaman [Kredensial AWS Keamanan](https://console.aws.amazon.com/iam/home?#security_credential) dan hapus perangkat MFA lama.
**catatan**  
Anda tidak perlu mengganti perangkat MFA yang hilang atau dicuri dengan jenis perangkat yang sama. Misalnya, jika Anda memecahkan kunci keamanan FIDO dan memesan yang baru, Anda dapat menggunakan MFA virtual atau token TOTP perangkat keras hingga kunci FIDO baru tiba.

**penting**  
Jika perangkat MFA Anda hilang atau dicuri, ubah kata sandi pengguna root Anda setelah masuk dan membuat perangkat MFA pengganti Anda. Penyerang mungkin telah mencuri perangkat otentikasi dan mungkin juga memiliki kata sandi Anda saat ini. Untuk informasi selengkapnya, lihat [Ubah kata sandi untuk Pengguna root akun AWS](root-user-password.md).

## Pemulihan perangkat MFA pengguna IAM
<a name="iam-user-mfa-lost-or-broken"></a>

Jika Anda adalah pengguna IAM yang tidak dapat masuk dengan MFA, Anda tidak dapat memulihkan perangkat MFA sendiri. Anda harus menghubungi administrator untuk menonaktifkan perangkat. Kemudian Anda dapat mengaktifkan perangkat baru.

**Untuk mendapatkan bantuan bagi perangkat MFA sebagai pengguna IAM**

1. Hubungi AWS administrator atau orang lain yang memberi Anda nama pengguna dan kata sandi untuk pengguna IAM. Administrator harus menonaktifkan perangkat MFA seperti yang dijelaskan dalam [Nonaktifkan perangkat MFA](id_credentials_mfa_disable.md) sehingga Anda dapat masuk.

1. Langkah berikutnya bervariasi tergantung pada jenis MFA yang Anda gunakan:
   + Untuk perangkat MFA virtual, hapus akun dari perangkat Anda. Kemudian aktifkan perangkat virtual seperti yang dijelaskan di [Tetapkan perangkat MFA virtual di Konsol Manajemen AWS](id_credentials_mfa_enable_virtual.md).
   + Untuk kunci keamanan FIDO, hubungi penyedia pihak ketiga untuk bantuan mengganti perangkat. Saat Anda menerima kunci keamanan FIDO baru, aktifkan seperti yang dijelaskan di[Tetapkan kunci sandi atau kunci keamanan di Konsol Manajemen AWS](id_credentials_mfa_enable_fido.md).
   + Untuk token TOTP perangkat keras, hubungi penyedia pihak ketiga untuk bantuan memperbaiki atau mengganti perangkat. Setelah Anda memiliki perangkat MFA fisik baru, aktifkan perangkat seperti yang dijelaskan di [Tetapkan token TOTP perangkat keras di Konsol Manajemen AWS](id_credentials_mfa_enable_physical.md).
**catatan**  
Anda tidak perlu mengganti perangkat MFA yang hilang atau dicuri dengan jenis perangkat yang sama. Anda dapat memiliki hingga delapan perangkat MFA dari kombinasi apa pun. Misalnya, jika Anda memecahkan kunci keamanan FIDO dan memesan yang baru, Anda dapat menggunakan MFA virtual atau token TOTP perangkat keras hingga kunci FIDO baru tiba.

1. Jika perangkat MFA Anda hilang atau dicuri, juga ubah kata sandi Anda apabila penyerang telah mencuri perangkat autentikasi dan mungkin juga memiliki kata sandi Anda saat ini. Untuk informasi selengkapnya, lihat [Kelola kata sandi untuk pengguna IAM](id_credentials_passwords_admin-change-user.md)

# Akses API aman dengan MFA
<a name="id_credentials_mfa_configure-api-require"></a>

Dengan kebijakan IAM, Anda dapat menentukan operasi API mana yang diizinkan untuk dipanggil oleh pengguna. Anda dapat menerapkan keamanan tambahan dengan mengharuskan pengguna untuk mengautentikasi dengan otentikasi multi-faktor (MFA) sebelum Anda mengizinkan mereka melakukan tindakan yang sangat sensitif.

Misalnya, Anda mungkin memiliki kebijakan yang memungkinkan pengguna untuk melakukan Amazon EC2 `RunInstances`, `DescribeInstances`, dan `StopInstances`. Tetapi Anda mungkin ingin membatasi tindakan destruktif seperti `TerminateInstances` dan memastikan bahwa pengguna dapat melakukan tindakan itu hanya jika mereka mengautentikasi dengan perangkat AWS MFA.

**Topics**
+ [Ikhtisar](#MFAProtectedAPI-overview)
+ [Skenario: Perlindungan MFA untuk pendelegasian lintas-akun](#MFAProtectedAPI-cross-account-delegation)
+ [Skenario: Perlindungan MFA untuk akses ke operasi API di akun saat ini](#MFAProtectedAPI-user-mfa)
+ [Skenario: Perlindungan MFA untuk sumber daya yang memiliki kebijakan berbasis sumber daya](#MFAProtectedAPI-resource-policies)

## Ikhtisar
<a name="MFAProtectedAPI-overview"></a>

Menambahkan perlindungan MFA ke operasi API melibatkan tugas-tugas ini:

1. Administrator mengonfigurasi perangkat AWS MFA untuk setiap pengguna yang harus membuat permintaan API yang memerlukan otentikasi MFA. Untuk informasi selengkapnya, lihat [AWS Otentikasi multi-faktor di IAM](id_credentials_mfa.md). 

1. Administrator membuat kebijakan untuk pengguna yang menyertakan `Condition` elemen yang memeriksa apakah pengguna diautentikasi dengan perangkat AWS MFA.

1. Pengguna memanggil salah satu operasi AWS STS API yang mendukung parameter MFA: [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)atau. [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) Sebagai bagian dari panggilan, pengguna mencakup pengidentifikasi perangkat untuk perangkat yang terhubung dengan pengguna. Pengguna juga menyertakan kata sandi satu kali berbasis waktu (TOTP) yang dihasilkan perangkat. Dalam kasus lain, pengguna mendapatkan kembali kredensial keamanan sementara yang dapat digunakan pengguna untuk membuat permintaan tambahan ke AWS.
**catatan**  
Perlindungan MFA untuk operasi API layanan hanya tersedia jika layanan mendukung kredensial keamanan sementara. Untuk daftar layanan ini, lihat [ Menggunakan Kredensial IT Sementara untuk Mengakses AWS](https://docs.aws.amazon.com/STS/latest/UsingSTS/UsingTokens.html).

Jika otorisasi gagal, AWS mengembalikan pesan kesalahan akses ditolak (seperti halnya untuk akses yang tidak sah). Dengan adanya kebijakan API yang dilindungi MFA, AWS menolak akses ke operasi API yang ditentukan dalam kebijakan jika pengguna mencoba memanggil operasi API tanpa autentikasi MFA yang valid. Operasi juga ditolak jika stempel waktu permintaan untuk operasi API berada di luar rentang yang diizinkan yang ditentukan dalam kebijakan. Pengguna harus diautentikasi ulang menggunakan MFA dengan meminta kredensial keamanan sementara yang baru, dengan kode MFA dan nomor seri perangkat.

### Kebijakan IAM dengan ketentuan MFA
<a name="MFAProtectedAPI-policies"></a>

Kebijakan dengan ketentuan MFA dapat dilampirkan ke hal berikut:
+ Pengguna atau grup IAM
+ Sumber daya seperti bucket Amazon S3, antrean Amazon Amazon SQS, atau topik Amazon SNS
+ Kebijakan kepercayaan dari peran IAM yang dapat diasumsikan oleh pengguna

Anda dapat menggunakan ketentuan MFA dalam kebijakan untuk memeriksa properti berikut:
+ Ekstensi—Untuk memudahkan verifikasi bahwa pengguna melakukan verifikasi dengan MFA, periksa apakah kunci `aws:MultiFactorAuthPresent` adalah `True` dalam ketentuan `Bool`. Kunci tersebut hanya muncul ketika pengguna mengautentikasi dengan kredensial jangka pendek. Kredensial jangka panjang, seperti access key, tidak mencakup kunci ini.
+ Durasi—Jika Anda ingin memberikan akses hanya untuk waktu yang ditentukan setelah otentikasi MFA, gunakan jenis numerik untuk membandingkan usia kunci `aws:MultiFactorAuthAge` i ke nilai (seperti 3600 detik). Perhatikan bahwa kunci `aws:MultiFactorAuthAge` tidak ada jika MFA tidak digunakan.

Contoh berikut menunjukkan kebijakan kepercayaan peran IAM yang menyertakan ketentuan MFA untuk menguji keberadaan autentikasi MFA. Dengan kebijakan ini, pengguna dari `Principal` elemen yang Akun AWS ditentukan (ganti `ACCOUNT-B-ID` dengan Akun AWS ID yang valid) dapat mengambil peran yang dilampirkan kebijakan ini. Namun, pengguna tersebut hanya dapat mengasumsikan peran jika pengguna diautentikasi menggunakan MFA.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Principal": {"AWS": "ACCOUNT-B-ID"},
    "Action": "sts:AssumeRole",
    "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
  }
}
```

------

Untuk informasi lebih lanjut tentang jenis ketentuan untuk MFA, lihat [AWS kunci konteks kondisi global](reference_policies_condition-keys.md), [Operator ketentuan numerik](reference_policies_elements_condition_operators.md#Conditions_Numeric), dan [Operator ketentuan memeriksa keberadaan kunci kondisi](reference_policies_elements_condition_operators.md#Conditions_Null). 

### Memilih antara GetSessionToken dan AssumeRole
<a name="scenarios"></a>

AWS STS menyediakan dua operasi API yang memungkinkan pengguna melewati informasi MFA: `GetSessionToken` dan. `AssumeRole` Operasi API yang dipanggil pengguna untuk mendapatkan kredensial keamanan sementara bergantung pada skenario mana yang berlaku. 

**Gunakan `GetSessionToken` untuk skenario berikut:**
+ Panggil operasi API yang mengakses sumber daya Akun AWS sama dengan pengguna IAM yang membuat permintaan. Perhatikan bahwa kredensial sementara dari `GetSessionToken` permintaan dapat mengakses operasi IAM dan AWS STS API *hanya* jika Anda menyertakan informasi MFA dalam permintaan kredensional. Karena kredensial sementara dikembalikan oleh `GetSessionToken` meliputi informasi MFA, Anda dapat memeriksa MFA dalam operasi API individu yang dilakukan oleh kredensial. 
+ Akses ke sumber daya yang dilindungi dengan kebijakan berbasis sumber daya yang mencakup ketentuan MFA.

Tujuan dari operasi `GetSessionToken` adalah mengautentikasi pengguna menggunakan MFA. Anda tidak dapat menggunakan kebijakan untuk mengontrol operasi autentikasi.

**Gunakan `AssumeRole` untuk skenario berikut:**
+ Panggil operasi API yang mengakses sumber daya dalam hal yang sama atau berbeda Akun AWS. Panggilan API dapat menyertakan IAM atau AWS STS API apa pun. Perhatikan bahwa untuk melindungi akses Anda, Anda memberlakukan MFA pada saat pengguna menjalankan peran tersebut. Kredensial sementara dikembalikan oleh `AssumeRole` tidak menyertakan informasi MFA dalam konteks, jadi Anda tidak dapat memeriksa operasi API individu untuk MFA. Inilah mengapa Anda harus menggunakan `GetSessionToken` untuk membatasi akses ke sumber daya yang dilindungi oleh kebijakan berbasis sumber daya.

**catatan**  
AWS CloudTrail log akan berisi informasi MFA ketika pengguna IAM masuk dengan MFA. Jika pengguna IAM mengasumsikan peran IAM, juga CloudTrail akan `mfaAuthenticated: true` masuk `sessionContext` atribut untuk tindakan yang dilakukan menggunakan peran yang diasumsikan. Namun, CloudTrail logging terpisah dari yang dibutuhkan IAM saat panggilan API dilakukan dengan kredenal peran yang diasumsikan. Untuk informasi selengkapnya, lihat Elemen [CloudTrailUserIdentity](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

Perincian tentang cara menerapkan skenario ini akan dijelaskan nanti dalam dokumen ini.

### Poin penting tentang akses API yang dilindungi MFA
<a name="MFAProtectedAPI-important-points"></a>

Penting untuk memahami aspek perlindungan MFA berikut untuk operasi API:
+ Perlindungan MFA hanya tersedia dalam bentuk kredensial keamanan sementara, yang harus diperoleh dengan `AssumeRole` atau `GetSessionToken`. 
+ Anda tidak dapat menggunakan akses API yang dilindungi MFA dengan kredensional. Pengguna root akun AWS 
+ Anda tidak dapat menggunakan akses API yang dilindungi MFA dengan kunci keamanan U2F.
+ Pengguna federasi tidak dapat diberikan perangkat MFA untuk digunakan AWS dengan layanan, sehingga mereka tidak dapat AWS mengakses sumber daya yang dikendalikan oleh MFA. (Lihat poin berikutnya.) 
+ Operasi AWS STS API lain yang mengembalikan kredensi sementara tidak mendukung MFA. Untuk `AssumeRoleWithWebIdentity` dan`AssumeRoleWithSAML`, pengguna diautentikasi oleh penyedia eksternal dan AWS tidak dapat menentukan apakah penyedia tersebut memerlukan MFA. Untuk `GetFederationToken`, MFA tidak selalu berkaitan dengan pengguna tertentu. 
+ Demikian pula, kredensial jangka panjang (kunci akses pengguna IAM dan kunci akses pengguna akar) tidak dapat digunakan dengan akses API yang dilindungi MFA karena tidak kedaluwarsa.
+ `AssumeRole` dan `GetSessionToken` juga dapat dipanggil tanpa informasi MFA. Dalam hal ini, penelepon mendapatkan kembali kredensial keamanan sementara, tetapi informasi sesi untuk kredensial sementara tersebut tidak menunjukkan bahwa pengguna mengautentikasi dengan MFA.
+ Untuk menetapkan perlindungan MFA untuk operasi API, Anda menambahkan ketentuan MFA ke kebijakan. Kebijakan harus mencantumkan kunci keamanan `aws:MultiFactorAuthPresent` untuk menerapkan penggunaan MFA. Untuk pendelegasian lintas akun, kebijakan kepercayaan peran tersebut harus mencakup kunci ketentuan.
+ Ketika Anda Akun AWS mengizinkan orang lain mengakses sumber daya di akun Anda, keamanan sumber daya Anda tergantung pada konfigurasi akun tepercaya (akun lain, bukan milik Anda). Hal ini tetap berlaku meskipun Anda memerlukan autentikasi multi-faktor. Setiap identitas dalam akun tepercaya yang memiliki izin untuk membuat perangkat MFA virtual dapat membuat klaim MFA untuk memenuhi bagian dari kebijakan kepercayaan peran Anda. Sebelum Anda mengizinkan anggota akun lain mengakses AWS sumber daya Anda yang memerlukan otentikasi multi-faktor, Anda harus memastikan bahwa pemilik akun tepercaya mengikuti praktik terbaik keamanan. Misalnya, akun tepercaya harus membatasi akses ke operasi API sensitif, seperti operasi API manajemen perangkat MFA, secara spesifik, identitas terpercaya.
+ Jika kebijakan mencakup ketentuan MFA, permintaan ditolak jika pengguna belum menjadi MFA yang diautentikasi, atau jika mereka memberikan pengidentifikasi perangkat MFA yang tidak valid atau TOTP yang tidak valid.

## Skenario: Perlindungan MFA untuk pendelegasian lintas-akun
<a name="MFAProtectedAPI-cross-account-delegation"></a>

Dalam skenario ini, Anda ingin mendelegasikan akses ke pengguna IAM di akun lain, tetapi hanya jika pengguna diautentikasi dengan perangkat AWS MFA. Untuk informasi selengkapnya tentang delegasi lintas akun, lihat. [Istilah dan konsep peran](id_roles.md#id_roles_terms-and-concepts) 

Bayangkan Anda memiliki akun A (akun kepercayaan yang memiliki sumber daya yang akan diakses), dengan pengguna IAM Anaya, yang memiliki izin administrator. Dia ingin memberikan akses ke pengguna Richard di akun B (akun tepercaya), tetapi ingin memastikan bahwa Richard terotentikasi dengan MFA sebelum dia mengambil peran tersebut. 

1. Di akun kepercayaan A, Anaya membuat peran IAM bernama `CrossAccountRole` dan menetapkan prinsipal dalam kebijakan kepercayaan peran ke ID akun B. Kebijakan kepercayaan memberikan izin untuk tindakan tersebut. AWS STS `AssumeRole` Anaya juga menambahkan ketentuan MFA ke kebijakan kepercayaan, seperti dalam contoh berikut. 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {"AWS": "ACCOUNT-B-ID"},
       "Action": "sts:AssumeRole",
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }
   }
   ```

------

1. Anaya menambahkan kebijakan izin untuk peran yang menentukan apa yang dapat dilakukan peran tersebut. Kebijakan izin untuk peran dengan perlindungan MFA tidak berbeda dengan kebijakan izin peran lainnya. Contoh berikut menunjukkan kebijakan yang ditambahkan Anaya ke peran; ini memungkinkan pengguna yang berasumsi untuk melakukan tindakan Amazon DynamoDB apa pun pada `Books` tabel di akun A. Kebijakan ini juga mengizinkan `dynamodb:ListTables` tindakan, yang diperlukan untuk melakukan tindakan di konsol. 
**catatan**  
Kebijakan izin tidak mencakup ketentuan MFA. Penting untuk memahami bahwa autentikasi MFA hanya digunakan untuk menentukan apakah pengguna dapat menjalankan peran tersebut. Setelah pengguna mengambil peran tersebut, tidak ada lagi pemeriksaan MFA yang dilakukan. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "TableActions",
               "Effect": "Allow",
               "Action": "dynamodb:*",
               "Resource": "arn:aws:dynamodb:*:111122223333:table/Books"
           },
           {
               "Sid": "ListTables",
               "Effect": "Allow",
               "Action": "dynamodb:ListTables",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Di akun B tepercaya, administrator memastikan bahwa pengguna IAM Richard dikonfigurasi dengan perangkat AWS MFA dan bahwa ia mengetahui ID perangkat. ID perangkat adalah nomor seri jika MFA perangkat keras, atau ARN perangkat jika itu adalah perangkat MFA virtual.

1. Di akun B, administrator melampirkan kebijakan berikut kepada pengguna Richard (atau grup yang ia anggota) yang memungkinkannya untuk menghubungi tindakan `AssumeRole`. Sumber daya diatur ke ARN dari peran yang dibuat Anaya pada langkah 1. Perhatikan bahwa kebijakan ini tidak mengandung ketentuan MFA.

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

****  

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

------

1. Di akun B, Richard (atau aplikasi yang dijalankan Richard) akan memanggil `AssumeRole`. Panggilan API mencakup ARN peran yang akan diasumsikan (`arn:aws:iam::ACCOUNT-A-ID:role/CrossAccountRole`), ID perangkat MFA, dan TOTP saat ini yang Richard dapatkan dari perangkatnya. 

   Ketika Richard menelepon`AssumeRole`, AWS menentukan apakah ia memiliki kredensi yang valid, termasuk persyaratan untuk MFA. Jika demikian, Richard berhasil mengasumsikan peran tersebut dan dapat melakukan tindakan DynamoDB apa pun pada tabel yang `Books` disebutkan di akun A saat menggunakan kredenal sementara peran tersebut. 

   Sebagai contoh program yang memanggil `AssumeRole`, lihat [Memanggil AssumeRole dengan otentikasi MFA](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-assumerole).

## Skenario: Perlindungan MFA untuk akses ke operasi API di akun saat ini
<a name="MFAProtectedAPI-user-mfa"></a>

Dalam skenario ini, Anda harus memastikan bahwa pengguna di Anda Akun AWS dapat mengakses operasi API sensitif hanya ketika pengguna diautentikasi menggunakan perangkat AWS MFA.

Bayangkan bahwa Anda memiliki akun A yang berisi sekelompok developer yang perlu bekerja dengan kasus EC2. Pengembang biasa dapat bekerja dengan instans, tetapi mereka tidak diberikan izin tindakan `ec2:StopInstances` atau `ec2:TerminateInstances`. Anda ingin membatasi tindakan istimewa yang “menghancurkan” tersebut ke hanya beberapa pengguna tepercaya, sehingga Anda menambahkan perlindungan MFA ke kebijakan yang memungkinkan tindakan Amazon EC2 yang sensitif ini. 

Dalam skenario ini, salah satu pengguna tepercaya tersebut adalah pengguna Sofía. Pengguna Anaya adalah administrator di akun A. 

1. Anaya memastikan bahwa Sofía dikonfigurasi dengan perangkat AWS MFA dan Sofía mengetahui ID perangkat tersebut. ID perangkat adalah nomor seri jika MFA perangkat keras, atau ARN perangkat jika itu adalah perangkat MFA virtual. 

1. Anaya membuat kelompok bernama `EC2-Admins` dan menambahkan Sofía ke grup.

1. Anaya melampirkan kebijakan berikut ke kelompok `EC2-Admins`. Kebijakan ini memberikan izin kepada pengguna untuk menghubungi tindakan Amazon EC2 `StopInstances` dan `TerminateInstances` hanya jika pengguna telah mengautentikasi menggunakan MFA. 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [{
       "Effect": "Allow",
       "Action": [
         "ec2:StopInstances",
         "ec2:TerminateInstances"
       ],
       "Resource": ["*"],
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }]
   }
   ```

------

1. 
**catatan**  
Agar kebijakan ini berlaku, pengguna harus keluar terlebih dahulu dan masuk kembali.

   Jika pengguna Sofía perlu menghentikan atau menghentikan instans Amazon EC2, dia (atau aplikasi yang sedang dia jalankan) memanggil. `GetSessionToken` Operasi API ini meneruskan ID perangkat MFA dan TOTP saat ini yang diperoleh Sofía dari perangkatnya.

1. Pengguna Sofía (atau aplikasi yang digunakan Sofía) menggunakan kredensial sementara yang diberikan oleh `GetSessionToken` untuk menghubungi tindakan Amazon EC2 `StopInstances` atau `TerminateInstances`. 

   Sebagai contoh program yang memanggil `GetSessionToken`, lihat [Memanggil GetSessionToken dengan otentikasi MFA](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-getsessiontoken) nanti di dokumen ini.

## Skenario: Perlindungan MFA untuk sumber daya yang memiliki kebijakan berbasis sumber daya
<a name="MFAProtectedAPI-resource-policies"></a>

Dalam skenario ini, Anda adalah pemilik bucket S3, antrean SQS, atau topik SNS. Anda ingin memastikan bahwa setiap pengguna dari Akun AWS siapa pun yang mengakses sumber daya diautentikasi oleh perangkat MFA AWS . 

Skenario ini mengilustrasikan cara untuk menyediakan jangkauan perlindungan MFA lintas akun yang mengharuskan pengguna untuk menjalankan peran terlebih dahulu. Dalam hal ini, pengguna dapat mengakses sumber daya jika tiga kondisi terpenuhi: Pengguna harus diautentikasi oleh MFA, dapat memperoleh kredensial keamanan sementara dari `GetSessionToken`, dan berada di akun yang dipercaya oleh kebijakan sumber daya. 

Bayangkan Anda berada di akun A dan Anda membuat bucket S3. Anda ingin memberikan akses ke bucket ini kepada pengguna yang berbeda Akun AWS, tetapi hanya jika pengguna tersebut diautentikasi dengan MFA.

Dalam skenario ini, pengguna Anaya adalah administrator di akun A. Pengguna Nikhil adalah pengguna IAM di akun C.

1. Pada akun A, Anaya membuat bucket dengan nama `Account-A-bucket`.

1. Anaya menambahkan kebijakan bucket ke bucket. Kebijakan ini memungkinkan pengguna di akun A, akun B, atau akun C untuk melakukan tindakan Amazon S3 `PutObject` dan `DeleteObject` di dalam bucket. Kebijakan ini mencakup ketentuan MFA. 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [{
       "Effect": "Allow",
       "Principal": {"AWS": [
         "ACCOUNT-A-ID",
         "ACCOUNT-B-ID",
         "ACCOUNT-C-ID"
       ]},
       "Action": [
         "s3:PutObject",
         "s3:DeleteObject"
       ],
       "Resource": ["arn:aws:s3:::ACCOUNT-A-BUCKET-NAME/*"],
       "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
     }]
   }
   ```

------
**catatan**  
Amazon S3 menawarkan fitur Hapus MFA untuk (hanya) akses akun *akar*. Anda dapat mengaktifkan Hapus MFA Amazon S3 saat Anda mengatur status versi bucket. Hapus MFA Amazon S3 tidak dapat diterapkan ke pengguna IAM, dan dikelola secara terpisah dari akses API yang dilindungi MFA. Seorang pengguna IAM dengan izin untuk menghapus bucket tidak dapat menghapus bucket dengan Hapus MFA Amazon S3 yang diaktifkan. Untuk informasi selengkapnya tentang Amazon S3 MFA Delete, lihat [MFA Hapus](https://docs.aws.amazon.com/AmazonS3/latest/dev/MultiFactorAuthenticationDelete.html).

1. Di akun C, administrator memastikan bahwa pengguna Nikhil dikonfigurasi dengan perangkat MFA AWS dan bahwa dia mengetahui ID perangkat. ID perangkat adalah nomor seri jika MFA perangkat keras, atau ARN perangkat jika itu adalah perangkat MFA virtual. 

1. Dalam akun C, Nikhil (atau aplikasi yang dia jalankan) akan memanggil `GetSessionToken`. Panggilan mencakup ID atau ARN perangkat MFA dan TOTP saat ini yang diperoleh Nikhil dari perangkatnya. 

1. Nikhil (atau aplikasi yang dia gunakan) menggunakan kredensial sementara yang dikembalikan oleh `GetSessionToken` untuk menghubungi tindakan Amazon S3 `PutObject` untuk mengunggah file ke `Account-A-bucket`. 

   Sebagai contoh program yang memanggil `GetSessionToken`, lihat [Memanggil GetSessionToken dengan otentikasi MFA](id_credentials_mfa_sample-code.md#MFAProtectedAPI-example-getsessiontoken) nanti di dokumen ini.
**catatan**  
Kredensial sementara yang dikembalikan `AssumeRole` tidak akan bekerja dalam kasus ini. Meskipun pengguna dapat memberikan informasi MFA untuk mengambil peran, kredensial sementara dikembalikan oleh `AssumeRole` tidak menyertakan informasi MFA. Informasi tersebut diperlukan untuk memenuhi ketentuan MFA dalam kebijakan. 

# Kode sampel: Meminta kredensial dengan autentikasi multi-faktor
<a name="id_credentials_mfa_sample-code"></a>

Contoh berikut menunjukkan cara melakukan panggilan `GetSessionToken` dan operasi `AssumeRole` dan lolos parameter autentikasi MFA. Tidak ada izin yang diperlukan untuk memanggil `GetSessionToken`, tetapi Anda harus memiliki kebijakan yang mengijinkan Anda untuk memanggil `AssumeRole`. Kredensial yang dihasilkan kemudian digunakan untuk mencantumkan semua bucket S3 di akun.

## Memanggil GetSessionToken dengan otentikasi MFA
<a name="MFAProtectedAPI-example-getsessiontoken"></a>

Contoh berikut menunjukkan cara memanggil `GetSessionToken` dan meneruskan informasi otentikasi MFA. Kredensial keamanan sementara yang dihasilkan oleh operasi `GetSessionToken` kemudian digunakan untuk mencantumkan semua bucket S3 di akun.

Kebijakan yang terlampir pada pengguna yang menjalankan kode ini (atau ke grup yang ada di pengguna) memberikan izin untuk kredensial sementara yang dikembalikan. Untuk contoh kode ini, kebijakan harus memberikan izin kepada pengguna untuk meminta operasi Amazon S3 `ListBuckets`. 

Contoh kode berikut menunjukkan cara menggunakan`GetSessionToken`.

------
#### [ CLI ]

**AWS CLI**  
**Untuk mendapatkan satu set kredensi jangka pendek untuk identitas IAM**  
`get-session-token`Perintah berikut mengambil satu set kredensi jangka pendek untuk identitas IAM yang membuat panggilan. Kredensi yang dihasilkan dapat digunakan untuk permintaan di mana otentikasi multi-faktor (MFA) diperlukan oleh kebijakan. Kredensialnya kedaluwarsa 15 menit setelah dibuat.  

```
aws sts get-session-token \
    --duration-seconds 900 \
    --serial-number "YourMFADeviceSerialNumber" \
    --token-code 123456
```
Output:  

```
{
    "Credentials": {
        "AccessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
        "SessionToken": "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE",
        "Expiration": "2020-05-19T18:06:10+00:00"
    }
}
```
Untuk informasi lebih lanjut, lihat [Meminta Kredensial Keamanan Sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) dalam *AWS Panduan Pengguna IAM*.  
+  Untuk detail API, lihat [GetSessionToken](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-session-token.html)di *Referensi AWS CLI Perintah*. 

------
#### [ PowerShell ]

**Alat untuk PowerShell V4**  
**Contoh 1: Mengembalikan sebuah `Amazon.RuntimeAWSCredentials` instance yang berisi kredensial sementara yang valid untuk jangka waktu tertentu. Kredensial yang digunakan untuk meminta kredensil sementara disimpulkan dari default shell saat ini. Untuk menentukan kredensil lainnya, gunakan parameter - ProfileName atau - AccessKey SecretKey /-.**  

```
Get-STSSessionToken
```
**Output:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Contoh 2: Mengembalikan sebuah `Amazon.RuntimeAWSCredentials` instance yang berisi kredensial sementara yang valid selama satu jam. Kredensi yang digunakan untuk membuat permintaan diperoleh dari profil yang ditentukan.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile
```
**Output:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Contoh 3: Mengembalikan `Amazon.RuntimeAWSCredentials` instance yang berisi kredensi sementara yang valid selama satu jam menggunakan nomor identifikasi perangkat MFA yang terkait dengan akun yang kredensialnya ditentukan dalam profil 'myprofilename' dan nilai yang diberikan oleh perangkat.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456
```
**Output:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
+  Untuk detail API, lihat [GetSessionToken](https://docs.aws.amazon.com/powershell/v4/reference)di *Referensi Alat AWS untuk PowerShell Cmdlet (V4)*. 

**Alat untuk PowerShell V5**  
**Contoh 1: Mengembalikan sebuah `Amazon.RuntimeAWSCredentials` instance yang berisi kredensial sementara yang valid untuk jangka waktu tertentu. Kredensial yang digunakan untuk meminta kredensil sementara disimpulkan dari default shell saat ini. Untuk menentukan kredensil lainnya, gunakan parameter - ProfileName atau - AccessKey SecretKey /-.**  

```
Get-STSSessionToken
```
**Output:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Contoh 2: Mengembalikan sebuah `Amazon.RuntimeAWSCredentials` instance yang berisi kredensial sementara yang valid selama satu jam. Kredensi yang digunakan untuk membuat permintaan diperoleh dari profil yang ditentukan.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile
```
**Output:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
**Contoh 3: Mengembalikan `Amazon.RuntimeAWSCredentials` instance yang berisi kredensi sementara yang valid selama satu jam menggunakan nomor identifikasi perangkat MFA yang terkait dengan akun yang kredensialnya ditentukan dalam profil 'myprofilename' dan nilai yang diberikan oleh perangkat.**  

```
Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456
```
**Output:**  

```
AccessKeyId                             Expiration                              SecretAccessKey                        SessionToken
-----------                             ----------                              ---------------                        ------------
EXAMPLEACCESSKEYID                      2/16/2015 9:12:28 PM                    examplesecretaccesskey...              SamPleTokeN.....
```
+  Untuk detail API, lihat [GetSessionToken](https://docs.aws.amazon.com/powershell/v5/reference)di *Referensi Alat AWS untuk PowerShell Cmdlet (V5)*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sts#code-examples). 
Dapatkan token sesi dengan meneruskan token MFA dan gunakan untuk mencantumkan bucket Amazon S3 untuk akun tersebut.  

```
def list_buckets_with_session_token_with_mfa(mfa_serial_number, mfa_totp, sts_client):
    """
    Gets a session token with MFA credentials and uses the temporary session
    credentials to list Amazon S3 buckets.

    Requires an MFA device serial number and token.

    :param mfa_serial_number: The serial number of the MFA device. For a virtual MFA
                              device, this is an Amazon Resource Name (ARN).
    :param mfa_totp: A time-based, one-time password issued by the MFA device.
    :param sts_client: A Boto3 STS instance that has permission to assume the role.
    """
    if mfa_serial_number is not None:
        response = sts_client.get_session_token(
            SerialNumber=mfa_serial_number, TokenCode=mfa_totp
        )
    else:
        response = sts_client.get_session_token()
    temp_credentials = response["Credentials"]

    s3_resource = boto3.resource(
        "s3",
        aws_access_key_id=temp_credentials["AccessKeyId"],
        aws_secret_access_key=temp_credentials["SecretAccessKey"],
        aws_session_token=temp_credentials["SessionToken"],
    )

    print(f"Buckets for the account:")
    for bucket in s3_resource.buckets.all():
        print(bucket.name)
```
+  Untuk detail API, lihat [GetSessionToken](https://docs.aws.amazon.com/goto/boto3/sts-2011-06-15/GetSessionToken)di *AWS SDK for Python (Boto3) Referensi* API. 

------

## Memanggil AssumeRole dengan otentikasi MFA
<a name="MFAProtectedAPI-example-assumerole"></a>

Contoh berikut menunjukkan cara memanggil `AssumeRole` dan meneruskan informasi otentikasi MFA. Kredensial keamanan sementara yang dikembalikan oleh `AssumeRole` kemudian digunakan untuk mencantumkan semua bucket Amazon S3 di akun.

Untuk informasi selengkapnya tentang skenario ini, lihat [Skenario: Perlindungan MFA untuk pendelegasian lintas-akun](id_credentials_mfa_configure-api-require.md#MFAProtectedAPI-cross-account-delegation). 

Contoh kode berikut menunjukkan cara menggunakan`AssumeRole`.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/STS#code-examples). 

```
using System;
using System.Threading.Tasks;
using Amazon;
using Amazon.SecurityToken;
using Amazon.SecurityToken.Model;

namespace AssumeRoleExample
{
    class AssumeRole
    {
        /// <summary>
        /// This example shows how to use the AWS Security Token
        /// Service (AWS STS) to assume an IAM role.
        ///
        /// NOTE: It is important that the role that will be assumed has a
        /// trust relationship with the account that will assume the role.
        ///
        /// Before you run the example, you need to create the role you want to
        /// assume and have it trust the IAM account that will assume that role.
        ///
        /// See https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html
        /// for help in working with roles.
        /// </summary>

        // A region property may be used if the profile or credentials loaded do not specify a region,
        // or to use a specific region.
        private static readonly RegionEndpoint REGION = RegionEndpoint.USWest2;

        static async Task Main()
        {
            // Create the SecurityToken client and then display the identity of the
            // default user.
            var roleArnToAssume = "arn:aws:iam::123456789012:role/testAssumeRole";

            var client = new Amazon.SecurityToken.AmazonSecurityTokenServiceClient(REGION);

            // Get and display the information about the identity of the default user.
            var callerIdRequest = new GetCallerIdentityRequest();
            var caller = await client.GetCallerIdentityAsync(callerIdRequest);
            Console.WriteLine($"Original Caller: {caller.Arn}");

            // Create the request to use with the AssumeRoleAsync call.
            var assumeRoleReq = new AssumeRoleRequest()
            {
                DurationSeconds = 1600,
                RoleSessionName = "Session1",
                RoleArn = roleArnToAssume
            };

            var assumeRoleRes = await client.AssumeRoleAsync(assumeRoleReq);

            // Now create a new client based on the credentials of the caller assuming the role.
            var client2 = new AmazonSecurityTokenServiceClient(credentials: assumeRoleRes.Credentials, REGION);

            // Get and display information about the caller that has assumed the defined role.
            var caller2 = await client2.GetCallerIdentityAsync(callerIdRequest);
            Console.WriteLine($"AssumedRole Caller: {caller2.Arn}");
        }
    }
}
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/goto/DotNetSDKV3/sts-2011-06-15/AssumeRole)di *Referensi AWS SDK untuk .NET API*. 

------
#### [ Bash ]

**AWS CLI dengan skrip Bash**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/iam#code-examples). 

```
###############################################################################
# function iecho
#
# This function enables the script to display the specified text only if
# the global variable $VERBOSE is set to true.
###############################################################################
function iecho() {
  if [[ $VERBOSE == true ]]; then
    echo "$@"
  fi
}

###############################################################################
# function errecho
#
# This function outputs everything sent to it to STDERR (standard error output).
###############################################################################
function errecho() {
  printf "%s\n" "$*" 1>&2
}

###############################################################################
# function sts_assume_role
#
# This function assumes a role in the AWS account and returns the temporary
#  credentials.
#
# Parameters:
#       -n role_session_name -- The name of the session.
#       -r role_arn -- The ARN of the role to assume.
#
# Returns:
#       [access_key_id, secret_access_key, session_token]
#     And:
#       0 - If successful.
#       1 - If an error occurred.
###############################################################################
function sts_assume_role() {
  local role_session_name role_arn response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function sts_assume_role"
    echo "Assumes a role in the AWS account and returns the temporary credentials:"
    echo "  -n role_session_name -- The name of the session."
    echo "  -r role_arn -- The ARN of the role to assume."
    echo ""
  }

  while getopts n:r:h option; do
    case "${option}" in
      n) role_session_name=${OPTARG} ;;
      r) role_arn=${OPTARG} ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done

  response=$(aws sts assume-role \
    --role-session-name "$role_session_name" \
    --role-arn "$role_arn" \
    --output text \
    --query "Credentials.[AccessKeyId, SecretAccessKey, SessionToken]")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-role operation failed.\n$response"
    return 1
  fi

  echo "$response"

  return 0
}
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/goto/aws-cli/sts-2011-06-15/AssumeRole)di *Referensi AWS CLI Perintah*. 

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sts#code-examples). 

```
bool AwsDoc::STS::assumeRole(const Aws::String &roleArn,
                             const Aws::String &roleSessionName,
                             const Aws::String &externalId,
                             Aws::Auth::AWSCredentials &credentials,
                             const Aws::Client::ClientConfiguration &clientConfig) {
    Aws::STS::STSClient sts(clientConfig);
    Aws::STS::Model::AssumeRoleRequest sts_req;

    sts_req.SetRoleArn(roleArn);
    sts_req.SetRoleSessionName(roleSessionName);
    sts_req.SetExternalId(externalId);

    const Aws::STS::Model::AssumeRoleOutcome outcome = sts.AssumeRole(sts_req);

    if (!outcome.IsSuccess()) {
        std::cerr << "Error assuming IAM role. " <<
                  outcome.GetError().GetMessage() << std::endl;
    }
    else {
        std::cout << "Credentials successfully retrieved." << std::endl;
        const Aws::STS::Model::AssumeRoleResult result = outcome.GetResult();
        const Aws::STS::Model::Credentials &temp_credentials = result.GetCredentials();

        // Store temporary credentials in return argument.
        // Note: The credentials object returned by assumeRole differs
        // from the AWSCredentials object used in most situations.
        credentials.SetAWSAccessKeyId(temp_credentials.GetAccessKeyId());
        credentials.SetAWSSecretKey(temp_credentials.GetSecretAccessKey());
        credentials.SetSessionToken(temp_credentials.GetSessionToken());
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/goto/SdkForCpp/sts-2011-06-15/AssumeRole)di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ CLI ]

**AWS CLI**  
**Untuk mengambil peran**  
`assume-role`Perintah berikut mengambil satu set kredensi jangka pendek untuk peran IAM. `s3-access-example`  

```
aws sts assume-role \
    --role-arn arn:aws:iam::123456789012:role/xaccounts3access \
    --role-session-name s3-access-example
```
Output:  

```
{
    "AssumedRoleUser": {
        "AssumedRoleId": "AROA3XFRBF535PLBIFPI4:s3-access-example",
        "Arn": "arn:aws:sts::123456789012:assumed-role/xaccounts3access/s3-access-example"
    },
    "Credentials": {
        "SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
        "SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
        "Expiration": "2016-03-15T00:05:07Z",
        "AccessKeyId": "ASIAJEXAMPLEXEG2JICEA"
    }
}
```
Output dari perintah berisi kunci akses, kunci rahasia, dan token sesi yang dapat Anda gunakan untuk AWS mengautentikasi.  
Untuk penggunaan AWS CLI, Anda dapat mengatur profil bernama yang terkait dengan peran. Saat Anda menggunakan profil, AWS CLI akan memanggil peran assume-dan mengelola kredensil untuk Anda. Untuk informasi selengkapnya, lihat [Menggunakan peran IAM di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html) di Panduan Pengguna *AWS CLI*.  
+  Untuk detail API, lihat [AssumeRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html)di *Referensi AWS CLI Perintah*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sts#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sts.StsClient;
import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;
import software.amazon.awssdk.services.sts.model.StsException;
import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
import software.amazon.awssdk.services.sts.model.Credentials;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;

/**
 * To make this code example work, create a Role that you want to assume.
 * Then define a Trust Relationship in the AWS Console. You can use this as an
 * example:
 *
 * {
 * "Version":"2012-10-17",		 	 	 
 * "Statement": [
 * {
 * "Effect": "Allow",
 * "Principal": {
 * "AWS": "<Specify the ARN of your IAM user you are using in this code example>"
 * },
 * "Action": "sts:AssumeRole"
 * }
 * ]
 * }
 *
 * For more information, see "Editing the Trust Relationship for an Existing
 * Role" in the AWS Directory Service guide.
 *
 * Also, set up your development environment, including your credentials.
 *
 * For information, see this documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class AssumeRole {
    public static void main(String[] args) {
        final String usage = """

                Usage:
                    <roleArn> <roleSessionName>\s

                Where:
                    roleArn - The Amazon Resource Name (ARN) of the role to assume (for example, arn:aws:iam::000008047983:role/s3role).\s
                    roleSessionName - An identifier for the assumed role session (for example, mysession).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String roleArn = args[0];
        String roleSessionName = args[1];
        Region region = Region.US_EAST_1;
        StsClient stsClient = StsClient.builder()
                .region(region)
                .build();

        assumeGivenRole(stsClient, roleArn, roleSessionName);
        stsClient.close();
    }

    public static void assumeGivenRole(StsClient stsClient, String roleArn, String roleSessionName) {
        try {
            AssumeRoleRequest roleRequest = AssumeRoleRequest.builder()
                    .roleArn(roleArn)
                    .roleSessionName(roleSessionName)
                    .build();

            AssumeRoleResponse roleResponse = stsClient.assumeRole(roleRequest);
            Credentials myCreds = roleResponse.credentials();

            // Display the time when the temp creds expire.
            Instant exTime = myCreds.expiration();
            String tokenInfo = myCreds.sessionToken();

            // Convert the Instant to readable date.
            DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)
                    .withLocale(Locale.US)
                    .withZone(ZoneId.systemDefault());

            formatter.format(exTime);
            System.out.println("The token " + tokenInfo + "  expires on " + exTime);

        } catch (StsException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/goto/SdkForJavaV2/sts-2011-06-15/AssumeRole)di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sts#code-examples). 
Buat klien.  

```
import { STSClient } from "@aws-sdk/client-sts";
// Set the AWS Region.
const REGION = "us-east-1";
// Create an AWS STS service client object.
export const client = new STSClient({ region: REGION });
```
Asumsikan peran IAM.  

```
import { AssumeRoleCommand } from "@aws-sdk/client-sts";

import { client } from "../libs/client.js";

export const main = async () => {
  try {
    // Returns a set of temporary security credentials that you can use to
    // access Amazon Web Services resources that you might not normally
    // have access to.
    const command = new AssumeRoleCommand({
      // The Amazon Resource Name (ARN) of the role to assume.
      RoleArn: "ROLE_ARN",
      // An identifier for the assumed role session.
      RoleSessionName: "session1",
      // The duration, in seconds, of the role session. The value specified
      // can range from 900 seconds (15 minutes) up to the maximum session
      // duration set for the role.
      DurationSeconds: 900,
    });
    const response = await client.send(command);
    console.log(response);
  } catch (err) {
    console.error(err);
  }
};
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sts/command/AssumeRoleCommand)di *Referensi AWS SDK untuk JavaScript API*. 

**SDK untuk JavaScript (v2)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascript/example_code/sts#code-examples). 

```
// Load the AWS SDK for Node.js
const AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

var roleToAssume = {
  RoleArn: "arn:aws:iam::123456789012:role/RoleName",
  RoleSessionName: "session1",
  DurationSeconds: 900,
};
var roleCreds;

// Create the STS service object
var sts = new AWS.STS({ apiVersion: "2011-06-15" });

//Assume Role
sts.assumeRole(roleToAssume, function (err, data) {
  if (err) console.log(err, err.stack);
  else {
    roleCreds = {
      accessKeyId: data.Credentials.AccessKeyId,
      secretAccessKey: data.Credentials.SecretAccessKey,
      sessionToken: data.Credentials.SessionToken,
    };
    stsGetCallerIdentity(roleCreds);
  }
});

//Get Arn of current identity
function stsGetCallerIdentity(creds) {
  var stsParams = { credentials: creds };
  // Create STS service object
  var sts = new AWS.STS(stsParams);

  sts.getCallerIdentity({}, function (err, data) {
    if (err) {
      console.log(err, err.stack);
    } else {
      console.log(data.Arn);
    }
  });
}
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/goto/AWSJavaScriptSDK/sts-2011-06-15/AssumeRole)di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ PowerShell ]

**Alat untuk PowerShell V4**  
**Contoh 1: Mengembalikan satu set kredensi sementara (kunci akses, kunci rahasia, dan token sesi) yang dapat digunakan selama satu jam untuk mengakses AWS sumber daya yang biasanya tidak dapat diakses oleh pengguna yang meminta. Kredensi yang dikembalikan memiliki izin yang diizinkan oleh kebijakan akses dari peran yang diasumsikan dan kebijakan yang diberikan (Anda tidak dapat menggunakan kebijakan yang disediakan untuk memberikan izin melebihi yang ditentukan oleh kebijakan akses peran yang diasumsikan).**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -Policy "...JSON policy..." -DurationInSeconds 3600
```
**Contoh 2: Mengembalikan satu set kredensi sementara, berlaku selama satu jam, yang memiliki izin yang sama yang ditentukan dalam kebijakan akses peran yang diasumsikan.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600
```
**Contoh 3: Mengembalikan satu set kredensi sementara yang memasok nomor seri dan token yang dihasilkan dari MFA yang terkait dengan kredensi pengguna yang digunakan untuk mengeksekusi cmdlet.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -SerialNumber "GAHT12345678" -TokenCode "123456"
```
**Contoh 4: Mengembalikan satu set kredensi sementara yang telah mengambil peran yang ditentukan dalam akun pelanggan. Untuk setiap peran yang dapat diasumsikan oleh pihak ketiga, akun pelanggan harus membuat peran menggunakan pengidentifikasi yang harus diteruskan dalam ExternalId parameter - setiap kali peran diasumsikan.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -ExternalId "ABC123"
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/powershell/v4/reference)di *Referensi Alat AWS untuk PowerShell Cmdlet (V4)*. 

**Alat untuk PowerShell V5**  
**Contoh 1: Mengembalikan satu set kredensi sementara (kunci akses, kunci rahasia, dan token sesi) yang dapat digunakan selama satu jam untuk mengakses AWS sumber daya yang biasanya tidak dapat diakses oleh pengguna yang meminta. Kredensi yang dikembalikan memiliki izin yang diizinkan oleh kebijakan akses dari peran yang diasumsikan dan kebijakan yang diberikan (Anda tidak dapat menggunakan kebijakan yang disediakan untuk memberikan izin melebihi yang ditentukan oleh kebijakan akses peran yang diasumsikan).**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -Policy "...JSON policy..." -DurationInSeconds 3600
```
**Contoh 2: Mengembalikan satu set kredensi sementara, berlaku selama satu jam, yang memiliki izin yang sama yang ditentukan dalam kebijakan akses peran yang diasumsikan.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600
```
**Contoh 3: Mengembalikan satu set kredensi sementara yang memasok nomor seri dan token yang dihasilkan dari MFA yang terkait dengan kredensi pengguna yang digunakan untuk mengeksekusi cmdlet.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -SerialNumber "GAHT12345678" -TokenCode "123456"
```
**Contoh 4: Mengembalikan satu set kredensi sementara yang telah mengambil peran yang ditentukan dalam akun pelanggan. Untuk setiap peran yang dapat diasumsikan oleh pihak ketiga, akun pelanggan harus membuat peran menggunakan pengidentifikasi yang harus diteruskan dalam ExternalId parameter - setiap kali peran diasumsikan.**  

```
Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -ExternalId "ABC123"
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/powershell/v5/reference)di *Referensi Alat AWS untuk PowerShell Cmdlet (V5)*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sts#code-examples). 
Asumsikan peran IAM yang memerlukan token MFA dan gunakan kredensil sementara untuk mencantumkan bucket Amazon S3 untuk akun tersebut.  

```
def list_buckets_from_assumed_role_with_mfa(
    assume_role_arn, session_name, mfa_serial_number, mfa_totp, sts_client
):
    """
    Assumes a role from another account and uses the temporary credentials from
    that role to list the Amazon S3 buckets that are owned by the other account.
    Requires an MFA device serial number and token.

    The assumed role must grant permission to list the buckets in the other account.

    :param assume_role_arn: The Amazon Resource Name (ARN) of the role that
                            grants access to list the other account's buckets.
    :param session_name: The name of the STS session.
    :param mfa_serial_number: The serial number of the MFA device. For a virtual MFA
                              device, this is an ARN.
    :param mfa_totp: A time-based, one-time password issued by the MFA device.
    :param sts_client: A Boto3 STS instance that has permission to assume the role.
    """
    response = sts_client.assume_role(
        RoleArn=assume_role_arn,
        RoleSessionName=session_name,
        SerialNumber=mfa_serial_number,
        TokenCode=mfa_totp,
    )
    temp_credentials = response["Credentials"]
    print(f"Assumed role {assume_role_arn} and got temporary credentials.")

    s3_resource = boto3.resource(
        "s3",
        aws_access_key_id=temp_credentials["AccessKeyId"],
        aws_secret_access_key=temp_credentials["SecretAccessKey"],
        aws_session_token=temp_credentials["SessionToken"],
    )

    print(f"Listing buckets for the assumed role's account:")
    for bucket in s3_resource.buckets.all():
        print(bucket.name)
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/goto/boto3/sts-2011-06-15/AssumeRole)di *AWS SDK for Python (Boto3) Referensi* API. 

------
#### [ Ruby ]

**SDK untuk Ruby**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/iam#code-examples). 

```
  # Creates an AWS Security Token Service (AWS STS) client with specified credentials.
  # This is separated into a factory function so that it can be mocked for unit testing.
  #
  # @param key_id [String] The ID of the access key used by the STS client.
  # @param key_secret [String] The secret part of the access key used by the STS client.
  def create_sts_client(key_id, key_secret)
    Aws::STS::Client.new(access_key_id: key_id, secret_access_key: key_secret)
  end

  # Gets temporary credentials that can be used to assume a role.
  #
  # @param role_arn [String] The ARN of the role that is assumed when these credentials
  #                          are used.
  # @param sts_client [AWS::STS::Client] An AWS STS client.
  # @return [Aws::AssumeRoleCredentials] The credentials that can be used to assume the role.
  def assume_role(role_arn, sts_client)
    credentials = Aws::AssumeRoleCredentials.new(
      client: sts_client,
      role_arn: role_arn,
      role_session_name: 'create-use-assume-role-scenario'
    )
    @logger.info("Assumed role '#{role_arn}', got temporary credentials.")
    credentials
  end
```
+  Untuk detail API, lihat [AssumeRole](https://docs.aws.amazon.com/goto/SdkForRubyV3/sts-2011-06-15/AssumeRole)di *Referensi AWS SDK untuk Ruby API*. 

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/sts/#code-examples). 

```
async fn assume_role(config: &SdkConfig, role_name: String, session_name: Option<String>) {
    let provider = aws_config::sts::AssumeRoleProvider::builder(role_name)
        .session_name(session_name.unwrap_or("rust_sdk_example_session".into()))
        .configure(config)
        .build()
        .await;

    let local_config = aws_config::from_env()
        .credentials_provider(provider)
        .load()
        .await;
    let client = Client::new(&local_config);
    let req = client.get_caller_identity();
    let resp = req.send().await;
    match resp {
        Ok(e) => {
            println!("UserID :               {}", e.user_id().unwrap_or_default());
            println!("Account:               {}", e.account().unwrap_or_default());
            println!("Arn    :               {}", e.arn().unwrap_or_default());
        }
        Err(e) => println!("{:?}", e),
    }
}
```
+  Untuk detail API, lihat [AssumeRole](https://docs.rs/aws-sdk-sts/latest/aws_sdk_sts/client/struct.Client.html#method.assume_role)*referensi AWS SDK for Rust API*. 

------
#### [ Swift ]

**SDK para Swift**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/iam#code-examples). 

```
import AWSSTS

    public func assumeRole(role: IAMClientTypes.Role, sessionName: String)
        async throws -> STSClientTypes.Credentials
    {
        let input = AssumeRoleInput(
            roleArn: role.arn,
            roleSessionName: sessionName
        )
        do {
            let output = try await stsClient.assumeRole(input: input)

            guard let credentials = output.credentials else {
                throw ServiceHandlerError.authError
            }

            return credentials
        } catch {
            print("Error assuming role: ", dump(error))
            throw error
        }
    }
```
+  Untuk detail API, lihat referensi [AssumeRole AWS](https://sdk.amazonaws.com/swift/api/awssts/latest/documentation/awssts/stsclient/assumerole(input:))*SDK untuk Swift API*. 

------

# Kredensi khusus layanan untuk pengguna IAM
<a name="id_credentials_service-specific-creds"></a>

Kredensi khusus layanan adalah mekanisme otentikasi khusus yang dirancang untuk layanan tertentu. AWS Kredensi ini menyediakan otentikasi yang disederhanakan dibandingkan dengan AWS kredensil standar, dan disesuaikan dengan persyaratan otentikasi layanan individual. AWS Tidak seperti kunci akses, yang dapat digunakan di beberapa AWS layanan, kredensil khusus layanan dirancang untuk digunakan hanya dengan layanan yang dibuatnya. Pendekatan yang ditargetkan ini meningkatkan keamanan dengan membatasi ruang lingkup kredensialnya.

Kredensi khusus layanan biasanya terdiri dari pasangan nama pengguna dan kata sandi atau kunci API khusus yang diformat sesuai dengan persyaratan layanan tertentu. Saat Anda membuat kredensil khusus layanan, kredensialnya aktif secara default dan dapat segera digunakan. Anda dapat memiliki maksimal dua set kredensi khusus layanan untuk setiap layanan yang didukung per pengguna IAM. Batas ini memungkinkan Anda mempertahankan satu set aktif sambil memutar ke set baru bila diperlukan. AWS saat ini mendukung kredensil khusus layanan untuk layanan berikut:

## Kapan menggunakan kredensil khusus layanan
<a name="id_credentials_service-specific-creds-usecase"></a>

Kredensil khusus layanan dimaksudkan untuk kompatibilitas dengan pustaka pihak ketiga,, alat SDKs, atau aplikasi yang tidak kompatibel secara asli dengan kredensil,, atau. AWS AWS SDKs AWS APIs Kasus penggunaan tersebut termasuk migrasi ke AWS layanan dari infrastruktur yang dihosting sendiri atau dari layanan yang dihosting oleh penyedia lain.

Saat memulai dari awal, dan sedapat mungkin, sebaiknya Anda menggunakan kredensil AWS sementara, seperti yang disediakan oleh peran IAM, untuk mengautentikasi dengan AWS layanan menggunakan AWS SDK atau pustaka yang mendukung kredensi sementara. AWS 

## Memutar kredensil khusus layanan
<a name="id_credentials_service-specific-creds-rotation"></a>

Sebagai praktik terbaik keamanan, putar kredensil khusus layanan secara teratur. Untuk memutar kredensil tanpa mengganggu aplikasi Anda:

1. Buat set kedua kredensi khusus layanan untuk layanan dan pengguna IAM yang sama

1. Perbarui semua aplikasi untuk menggunakan kredensil baru dan verifikasi bahwa mereka berfungsi dengan benar

1. Ubah status kredensil asli menjadi “Tidak Aktif”

1. Pastikan semua aplikasi masih berfungsi dengan baik

1. Hapus kredensil khusus layanan yang tidak aktif saat Anda yakin kredensil tersebut tidak lagi diperlukan

## Memantau kredensil khusus layanan
<a name="id_credentials_service-specific-creds-monitoring"></a>

Anda dapat menggunakan AWS CloudTrail untuk memantau penggunaan kredensi khusus layanan di akun Anda. AWS Untuk melihat CloudTrail peristiwa yang terkait dengan penggunaan kredensi khusus layanan, tinjau CloudTrail log untuk peristiwa dari layanan tempat kredensialnya digunakan. Untuk informasi selengkapnya, lihat [Mencatat panggilan IAM dan AWS STS API dengan AWS CloudTrail](cloudtrail-integration.md).

Untuk keamanan tambahan, pertimbangkan untuk menyiapkan CloudWatch alarm untuk memberi tahu Anda tentang pola penggunaan kredenal tertentu yang mungkin menunjukkan akses tidak sah atau masalah keamanan lainnya. Untuk informasi selengkapnya, lihat [Memantau File CloudTrail Log dengan CloudWatch Log Amazon](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html) di *Panduan AWS CloudTrail Pengguna*.

Topik berikut memberikan informasi tentang kredensil khusus layanan.

**Topics**
+ [Kapan menggunakan kredensil khusus layanan](#id_credentials_service-specific-creds-usecase)
+ [Memutar kredensil khusus layanan](#id_credentials_service-specific-creds-rotation)
+ [Memantau kredensil khusus layanan](#id_credentials_service-specific-creds-monitoring)
+ [Kunci API untuk Amazon Bedrock dan Amazon Logs CloudWatch](id_credentials_bedrock_cloudwatchlogs.md)
+ [Gunakan IAM dengan Amazon Keyspaces (untuk Apache Cassandra)](id_credentials_keyspaces.md)

# Kunci API untuk Amazon Bedrock dan Amazon Logs CloudWatch
<a name="id_credentials_bedrock_cloudwatchlogs"></a>

**catatan**  
Kunci API Amazon CloudWatch Logs saat ini tersedia di Pratinjau dan akan tersedia secara umum dalam beberapa minggu mendatang. Kunci API Amazon CloudWatch Logs sangat mirip dengan kunci API jangka panjang Amazon Bedrock yang dijelaskan di halaman ini. Untuk mempelajari selengkapnya tentang kunci API jangka panjang Amazon CloudWatch Logs, lihat [Mengirim log ke CloudWatch Log Amazon menggunakan titik akhir HLC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_HLC_Endpoint.html).

Amazon Bedrock adalah layanan yang dikelola sepenuhnya yang menawarkan model dasar dari perusahaan AI terkemuka dan Amazon. Anda dapat mengakses Amazon Bedrock melalui Konsol Manajemen AWS dan secara terprogram menggunakan AWS CLI, atau API. AWS Saat membuat permintaan terprogram ke Amazon Bedrock, Anda dapat mengautentikasi menggunakan [kredensi keamanan sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) atau kunci Amazon Bedrock API. Amazon Bedrock mendukung dua jenis kunci API:
+ **Kunci API jangka pendek — Kunci** API jangka pendek adalah URL yang telah ditandatangani sebelumnya yang menggunakan AWS Signature Version 4. Kunci API jangka pendek memiliki izin dan kedaluwarsa yang sama dengan kredenal identitas yang menghasilkan kunci API dan berlaku hingga 12 jam atau sisa waktu sesi konsol Anda, mana yang lebih pendek. Anda dapat menggunakan konsol Amazon Bedrock, paket Python, dan `aws-bedrock-token-generator` paket untuk bahasa pemrograman lain untuk menghasilkan kunci API jangka pendek. Untuk informasi selengkapnya, lihat [Menghasilkan kunci API Amazon Bedrock untuk akses mudah ke Amazon Bedrock API](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys.html) di Panduan Pengguna *Amazon Bedrock*.
+ **Kunci API jangka panjang — Kunci** API jangka panjang dikaitkan dengan pengguna IAM dan dihasilkan menggunakan kredenal khusus [layanan](id_credentials_service-specific-creds.md) IAM. Kredensi ini dirancang untuk digunakan hanya dengan Amazon Bedrock, meningkatkan keamanan dengan membatasi cakupan kredensi. Anda dapat menetapkan waktu kedaluwarsa saat kunci API jangka panjang kedaluwarsa. Anda dapat menggunakan konsol IAM atau Amazon Bedrock, AWS CLI, atau AWS API untuk menghasilkan kunci API jangka panjang.

Pengguna IAM dapat memiliki hingga dua kunci API jangka panjang untuk Amazon Bedrock, yang membantu Anda menerapkan praktik rotasi kunci yang aman. 

Saat Anda membuat kunci API jangka panjang, kebijakan AWS terkelola secara otomatis [AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/bedrock/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonBedrockLimitedAccess)dilampirkan ke pengguna IAM. Kebijakan ini memberikan akses ke operasi inti Amazon Bedrock API. Jika Anda memerlukan akses Amazon Bedrock tambahan, Anda dapat mengubah izin untuk pengguna IAM. Untuk informasi tentang mengubah izin, lihat. [Menambahkan dan menghapus izin identitas IAM](access_policies_manage-attach-detach.md) Untuk informasi selengkapnya tentang cara menggunakan kunci Amazon Bedrock, lihat [Menggunakan kunci Amazon Bedrock API di Panduan](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-use.html) Pengguna *Amazon Bedrock*.

**catatan**  
Kunci API jangka panjang memiliki risiko keamanan yang lebih tinggi dibandingkan dengan kunci API jangka pendek. Sebaiknya gunakan kunci API jangka pendek atau kredensi keamanan sementara jika memungkinkan. Jika Anda menggunakan kunci API jangka panjang, sebaiknya terapkan praktik rotasi kunci reguler.

## Prasyarat
<a name="id_credentials_bedrock_prerequisites"></a>

Sebelum Anda dapat membuat kunci API jangka panjang Amazon Bedrock dari konsol IAM, Anda harus memenuhi prasyarat ini:
+ Pengguna IAM untuk mengasosiasikan dengan kunci API jangka panjang. Untuk petunjuk cara membuat pengguna IAM, lihat[Buat pengguna IAM di Akun AWS](id_users_create.md).
+ Pastikan Anda memiliki izin kebijakan IAM berikut untuk mengelola kredenal khusus layanan bagi pengguna IAM. Kebijakan contoh memberikan izin untuk membuat, mencantumkan, memperbarui, menghapus, dan mengatur ulang kredenal khusus layanan. Ganti `username` nilai dalam elemen Resource dengan nama pengguna IAM Anda akan menghasilkan kunci Amazon Bedrock API untuk:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "ManageBedrockServiceSpecificCredentials",
              "Effect": "Allow",
              "Action": [
                  "iam:CreateServiceSpecificCredential",
                  "iam:ListServiceSpecificCredentials",
                  "iam:UpdateServiceSpecificCredential",
                  "iam:DeleteServiceSpecificCredential",
                  "iam:ResetServiceSpecificCredential"
              ],
              "Resource": "arn:aws:iam::*:user/username"
          }
      ]
  }
  ```

------

## Membuat Kunci API jangka panjang untuk Amazon Bedrock (konsol)
<a name="id_credentials_bedrock_console_create"></a>

**Untuk menghasilkan kunci API jangka panjang Amazon Bedrock (konsol)**

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.**

1. Pilih pengguna IAM yang ingin Anda hasilkan kunci API jangka panjang Amazon Bedrock.

1. Pilih tab **Kredensi keamanan**.

1. Di bagian **Kunci API untuk Amazon Bedrock**, pilih **Buat Kunci API**.

1. Untuk **kedaluwarsa kunci API**, lakukan salah satu hal berikut:
   + Pilih durasi kedaluwarsa kunci API **1**, **5**, **30**, **90**, atau **365 hari**.
   + Pilih **Durasi kustom** untuk menentukan tanggal kedaluwarsa kunci API kustom.
   + Pilih **Jangan pernah kedaluwarsa** (tidak disarankan)

1. Pilih **Hasilkan kunci API**.

1. Salin atau unduh kunci API Anda. Ini adalah satu-satunya saat Anda dapat melihat nilai kunci API.
**penting**  
Simpan kunci API Anda dengan aman. Setelah Anda menutup kotak dialog, Anda tidak dapat mengambil kunci API lagi. Jika Anda kehilangan atau lupa kunci akses rahasia Anda, Anda tidak dapat mengambilnya. Sebagai gantinya, buat kunci akses baru dan buat kunci lama tidak aktif.

## Membuat Kunci API jangka panjang untuk Amazon Bedrock ()AWS CLI
<a name="id_credentials_bedrock_cli_create"></a>

Untuk membuat kunci API jangka panjang Amazon Bedrock menggunakan AWS CLI, gunakan langkah-langkah berikut:

1. Buat pengguna IAM yang akan digunakan dengan Amazon Bedrock menggunakan perintah [create-user](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-user.html):

   ```
   aws iam create-user \
       --user-name BedrockAPIKey_1
   ```

1. Lampirkan kebijakan AWS terkelola `AmazonBedrockLimitedAccess` ke pengguna Amazon Bedrock IAM menggunakan perintah: [ attach-user-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-user-policy.html)

   ```
   aws iam attach-user-policy --user-name BedrockAPIKey_1 \
       --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
   ```

1. Buat kunci API jangka panjang Amazon Bedrock menggunakan [ create-service-specific-credential](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-service-specific-credential.html)perintah. Untuk usia kredensi, Anda dapat menentukan nilai antara 1-36600 hari. Jika Anda tidak menentukan usia kredensi, kunci API tidak akan kedaluwarsa.

   Untuk menghasilkan kunci API jangka panjang dengan masa kedaluwarsa 30 hari:

   ```
   aws iam create-service-specific-credential \
       --user-name BedrockAPIKey_1 \
       --service-name bedrock.amazonaws.com \
       --credential-age-days 30
   ```

Yang dikembalikan `ServiceApiKeyValue` dalam respons adalah kunci API Amazon Bedrock jangka panjang Anda. Simpan `ServiceApiKeyValue` nilai dengan aman, karena Anda tidak dapat mengambilnya nanti.

### Daftar kunci API jangka panjang (AWS CLI)
<a name="id_credentials_bedrock_cli_list"></a>

Untuk mencantumkan metadata kunci API jangka panjang Amazon Bedrock untuk pengguna tertentu, gunakan [ list-service-specific-credentials](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-service-specific-credentials.html)perintah dengan parameter: `--user-name`

```
aws iam list-service-specific-credentials \
    --service-name bedrock.amazonaws.com \
    --user-name BedrockAPIKey_1
```

Untuk mencantumkan semua metadata kunci API jangka panjang Amazon Bedrock di akun, gunakan [ list-service-specific-credentials](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-service-specific-credentials.html)perintah dengan parameter: `--all-users`

```
aws iam list-service-specific-credentials \
    --service-name bedrock.amazonaws.com \
    --all-users
```

### Perbarui status kunci API jangka panjang (AWS CLI)
<a name="id_credentials_bedrock_cli_update"></a>

Untuk memperbarui status kunci API jangka panjang untuk Amazon Bedrock, gunakan [ update-service-specific-credential](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-service-specific-credential.html)perintah:

```
aws iam update-service-specific-credential \
    --user-name "BedrockAPIKey_1" \
    --service-specific-credential-id "ACCA1234EXAMPLE1234" \
    --status Inactive|Active
```

## Membuat Kunci API jangka panjang untuk Amazon Bedrock (AWS API)
<a name="id_credentials_bedrock_api"></a>

Anda dapat menggunakan operasi API berikut untuk membuat dan mengelola kunci API jangka panjang untuk Amazon Bedrock:
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html) 
+  [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html) 

# Gunakan IAM dengan Amazon Keyspaces (untuk Apache Cassandra)
<a name="id_credentials_keyspaces"></a>

Amazon Keyspaces (untuk Apache Cassandra) adalah layanan basis data yang kompatibel dengan Apache Cassandra yang dapat diskalakan, selalu tersedia, dan terkelola. Anda dapat mengakses Amazon Keyspaces melalui Konsol Manajemen AWS, atau secara terprogram. Untuk mengakses Amazon Keyspaces secara terprogram dengan kredenal khusus layanan, Anda dapat menggunakan atau driver Cassandra sumber terbuka. `cqlsh` *Kredensi khusus layanan* mencakup nama pengguna dan kata sandi seperti yang digunakan Cassandra untuk otentikasi dan manajemen akses. Anda dapat memiliki maksimal dua set kredensi khusus layanan untuk setiap layanan yang didukung per pengguna.

Untuk mengakses Amazon Keyspaces secara terprogram dengan kunci AWS akses, Anda dapat menggunakan AWS SDK, AWS Command Line Interface (AWS CLI) atau driver Cassandra open-source dengan plugin SiGv4. Untuk mempelajari selengkapnya, lihat [Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces di Panduan Pengembang Amazon Keyspaces](https://docs.aws.amazon.com//keyspaces/latest/devguide/access.credentials.html) *(untuk* Apache Cassandra).

**catatan**  
Jika Anda berencana untuk berinteraksi dengan Amazon Keyspaces hanya melalui konsol, Anda tidak perlu membuat kredensial khusus layanan. Untuk informasi selengkapnya, lihat [Mengakses Amazon Keyspaces menggunakan konsol di](https://docs.aws.amazon.com/keyspaces/latest/devguide/console_keyspaces.html) *Amazon Keyspaces (untuk Apache* Cassandra) Panduan Pengembang.

Untuk informasi lebih lanjut tentang izin yang diperlukan untuk mengakses Amazon Keyspaces, lihat [Contoh Kebijakan Berbasis Identitas Amazon Keyspaces (untuk Apache Cassandra)](https://docs.aws.amazon.com/keyspaces/latest/devguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console) dalam *Panduan Pengembang Amazon Keyspaces (untuk Apache Cassandra)*.

## Membuat kredensial Amazon Keyspaces (konsol)
<a name="keyspaces_credentials_console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk menghasilkan kredensi Amazon Keyspaces (untuk Apache Cassandra) untuk pengguna IAM Anda.

**Untuk menghasilkan kredensial khusus layanan Amazon Keyspaces (konsol)**

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, pilih **Pengguna** lalu pilih nama pengguna yang memerlukan kredensial.

1. Di tab **Kredensial Keamanan** di bawah **Kredensial untuk Amazon Keyspaces (untuk Apache Cassandra)**, pilih **Buat kredensial**.

1. Kredensial layanan khusus Anda sekarang tersedia. Ini adalah satu-satunya waktu untuk melihat atau mengunduh kata sandi. Anda tidak dapat memulihkannya nanti. Namun, Anda dapat mengatur ulang kata sandi Anda kapan saja. Simpan pengguna dan kata sandi di lokasi aman, karena Anda akan membutuhkannya nanti.

## Menghasilkan kredensi Amazon Keyspaces ()AWS CLI
<a name="keyspaces_credentials_cli"></a>

Anda dapat menggunakan AWS CLI untuk menghasilkan kredensi Amazon Keyspaces (untuk Apache Cassandra) untuk pengguna IAM Anda.

**Untuk menghasilkan kredensi khusus layanan Amazon Keyspaces ()AWS CLI**
+ Gunakan perintah berikut ini.
  + [aws iam create-service-specific-credential](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-specific-credential.html)

## Menghasilkan kredensi Amazon Keyspaces (API)AWS
<a name="keyspaces_credentials_api"></a>

Anda dapat menggunakan AWS API untuk menghasilkan kredensi Amazon Keyspaces (untuk Apache Cassandra) untuk pengguna IAM Anda.

**Untuk menghasilkan kredensi khusus layanan (API) Amazon Keyspaces AWS**
+ Selesaikan operasi berikut:
  + [CreateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html) 

# Temukan kredensi yang tidak digunakan AWS
<a name="id_credentials_finding-unused"></a>

Untuk meningkatkan keamanan Anda Akun AWS, hapus kredensi pengguna IAM (yaitu, kata sandi dan kunci akses) yang tidak diperlukan. Misalnya, ketika pengguna meninggalkan organisasi Anda atau tidak lagi memerlukan AWS akses, temukan kredensi yang mereka gunakan dan pastikan bahwa mereka tidak lagi beroperasi. Idealnya, Anda menghapus kredensial jika tidak lagi diperlukan. Anda dapat selalu membuat ulang catatan di kemudian hari jika perlu. Sekurang-kurangnya, Anda harus mengubah kata sandi atau menonaktifkan access key sehingga pengguna sebelumnya tidak lagi memiliki akses.

Tentu saja, definisi dari *tidak digunakan* dapat bervariasi dan biasanya berarti kredensial yang belum digunakan dalam jangka waktu tertentu.

## Menemukan kata sandi yang tidak digunakan
<a name="finding-unused-passwords"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk melihat informasi penggunaan kata sandi untuk pengguna Anda. Jika Anda memiliki sejumlah besar pengguna, Anda dapat menggunakan konsol untuk mengunduh laporan kredensial dengan informasi tentang kapan terakhir pengguna menggunakan kata sandi konsol mereka. Anda juga dapat mengakses informasi dari AWS CLI atau API IAM.

**Untuk menemukan yang tidak digunakan (konsol)**

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, pilih **Pengguna**.

1. Jika perlu, tambahkan **Masuk terakhir konsol** pada tabel pengguna:

   1. Di atas tabel di ujung kanan, pilih ikon pengaturan (![\[Settings icon\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/console-settings-icon.console.png)).

   1. Di **Pilih kolom yang terlihat**, pilih **Konsol masuk terakhir**.

   1. Pilih **Konfirmasi** untuk kembali ke daftar pengguna.

1. Kolom **login terakhir Konsol** menunjukkan tanggal saat pengguna terakhir kali masuk AWS melalui konsol. Anda dapat menggunakan informasi ini untuk menemukan kata sandi pengguna yang tidak masuk lebih dari periode waktu tertentu. Kolom menampilkan **Tidak pernah** bagi pengguna dengan kata sandi yang belum pernah masuk. **Tidak ada** menunjukkan pengguna tanpa kata sandi. Kata sandi yang belum digunakan baru-baru ini mungkin merupakan calon yang baik untuk ditiadakan.
**penting**  
Karena masalah layanan, data penggunaan terakhir kata sandi tidak mencakup penggunaan kata sandi dari tanggal 3 Mei 2018 22.50 PDT hingga 23 Mei 2018 14.08 PDT. Hal ini memengaruhi tanggal [masuk terakhir](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html) yang ditampilkan di konsol IAM dan tanggal penggunaan terakhir kata sandi di [Laporan kredensial IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/SupportedTypes.xmlid_credentials_getting-report.html), dan dikembalikan oleh [GetUser Operasi API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html). Jika pengguna masuk selama waktu yang terpengaruh, tanggal terakhir kali menggunakan kata sandi yang dikembalikan adalah tanggal pengguna terakhir masuk sebelum 3 Mei 2018. Untuk pengguna yang masuk setelah 23 Mei 2018 14.08 PDT, tanggal penggunaan terakhir kata sandi yang dikembalikan adalah akurat.  
Jika Anda menggunakan kata sandi informasi yang terakhir digunakan untuk mengidentifikasi kredensi yang tidak digunakan untuk penghapusan, seperti menghapus pengguna yang tidak masuk dalam 90 hari terakhir, kami sarankan Anda menyesuaikan jendela evaluasi Anda untuk menyertakan tanggal setelah 23 Mei 2018. AWS Atau, jika pengguna Anda menggunakan kunci akses untuk mengakses AWS secara terprogram, Anda dapat merujuk ke kunci akses informasi yang terakhir digunakan karena akurat untuk semua tanggal. 

**Untuk menemukan kata sandi yang tidak digunakan dengan mengunduh laporan kredensial (konsol)**

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, pilih **Laporan kredensial**.

1. Pilih **Unduh Laporan** untuk mengunduh file CSV (nilai yang dipisahkan koma) bernama `status_reports_<date>T<time>.csv`. Kolom kelima berisi `password_last_used` kolom dengan tanggal atau salah satu dari berikut:
   + **N/A** – Pengguna yang tidak memiliki kata sandi yang ditetapkan sama sekali.
   + **no\$1information** – Pengguna yang belum menggunakan kata sandi mereka sejak IAM mulai melacak umur kata sandi pada 20 Oktober 2014.

**Untuk menemukan kata sandi yang tidak digunakan (AWS CLI)**  
Jalankan perintah berikut untuk menemukan kata sandi yang tidak digunakan:
+ `[aws iam list-users](https://docs.aws.amazon.com/cli/latest/reference/iam/list-users.html)` mengembalikan daftar pengguna, masing-masing dengan nilai `PasswordLastUsed`. Jika nilai hilang, maka pengguna tidak memiliki kata sandi atau kata sandi belum digunakan karena IAM mulai melacak usia kata sandi pada 20 Oktober 2014.

**Untuk menemukan kata sandi yang tidak digunakan (AWS API)**  
Hubungi operasi berikut untuk menemukan kata sandi yang tidak digunakan:
+  ` [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)` mengembalikan koleksi pengguna, masing-masing memiliki nilai `<PasswordLastUsed>`. Jika nilai hilang, maka pengguna tidak memiliki kata sandi atau kata sandi belum digunakan karena IAM mulai melacak usia kata sandi pada 20 Oktober 2014.

Untuk informasi tentang perintah untuk mengunduh laporan kredensial, lihat [Mendapatkan laporan kredensial (AWS CLI)](id_credentials_getting-report.md#getting-credential-reports-cliapi).

## Menemukan access key yang tidak digunakan
<a name="finding-unused-access-keys"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk melihat informasi penggunaan kunci akses bagi pengguna Anda. Jika Anda memiliki sejumlah besar pengguna, Anda dapat menggunakan konsol untuk mengunduh laporan kredensial tentang kapan terakhir pengguna menggunakan access key mereka. Anda juga dapat mengakses informasi dari AWS CLI atau API IAM.

**Untuk menemukan access key yang tidak digunakan (konsol)**

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, pilih **Pengguna**.

1. Jika perlu, tambahkan kolom **Access key terakhir digunakan** pada tabel pengguna:

   1. Di atas tabel di ujung kanan, pilih ikon pengaturan (![\[Settings icon\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/console-settings-icon.console.png)).

   1. Di **Pilih kolom yang terlihat**, pilih **Kunci akses terakhir digunakan**.

   1. Pilih **Konfirmasi** untuk kembali ke daftar pengguna.

1. Kolom **kunci Access terakhir digunakan** menunjukkan jumlah hari sejak pengguna terakhir diakses secara AWS terprogram. Anda dapat menggunakan informasi ini untuk menemukan kata sandi pengguna yang tidak digunakan lebih dari periode waktu tertentu. Kolom menampilkan **-** untuk pengguna tanpa kunci akses. Access key yang belum digunakan baru-baru ini mungkin merupakan calon yang baik untuk ditiadakan.

**Untuk menemukan access key yang tidak digunakan dengan mengunduh laporan kredensial (konsol)**

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, pilih **Laporan Kredensial**.

1. Pilih **Unduh Laporan** untuk mengunduh file CSV (nilai yang dipisahkan koma) bernama `status_reports_<date>T<time>.csv`. Kolom 11 sampai 13 berisi tanggal terakhir digunakan, Wilayah, dan layanan informasi untuk access key 1. Kolom 16 sampai 18 berisi informasi yang sama untuk access key 2. Nilainya adalah **N/A** jika pengguna tidak memiliki kunci akses atau pengguna belum menggunakan kunci akses sejak IAM mulai melacak usia kunci akses pada 22 April 2015.

**Untuk menemukan access key yang tidak digunakan (AWS CLI)**  
Jalankan perintah berikut untuk menemukan access key yang tidak digunakan:
+ `[aws iam list-access-keys](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)` mengembalikan informasi tentang access key untuk pengguna, termasuk `AccessKeyID`.
+ `[aws iam get-access-key-last-used](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)` mengambil access key ID dan hasil pengembalian yang mencakup `LastUsedDate`, `Region` yang access key-nya terakhir digunakan, dan `ServiceName` dari layanan terakhir yang diminta. Jika `LastUsedDate` hilang, maka kunci akses belum digunakan sejak IAM mulai melacak usia kunci akses pada 22 April 2015.

**Untuk menemukan kunci akses yang tidak digunakan (AWS API)**  
Hubungi operasi berikut untuk menemukan access key yang tidak digunakan:
+ `[ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html)` mengembalikan daftar dari nilai `AccessKeyID` untuk access key yang terkait dengan pengguna yang ditentukan. 
+ `[GetAccessKeyLastUsed](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)` mengambil access key ID dan mengembalikan kumpulan nilai. Yang disertakan adalah `LastUsedDate`, `Region` di mana access key terakhir digunakan, dan `ServiceName` dari layanan terakhir yang diminta. Jika nilai hilang, maka pengguna tidak memiliki kunci akses atau kunci akses tidak digunakan sejak IAM mulai melacak usia kunci akses pada 22 April 2015.

Untuk informasi tentang perintah untuk mengunduh laporan kredensial, lihat [Mendapatkan laporan kredensial (AWS CLI)](id_credentials_getting-report.md#getting-credential-reports-cliapi).

# Hasilkan laporan kredensi untuk Anda Akun AWS
<a name="id_credentials_getting-report"></a>

Anda dapat membuat dan mengunduh *laporan kredensial*y ang mencantumkan semua pengguna di akun Anda dan status berbagai kredensial mereka, termasuk kata sandi, access key, dan perangkat MFA. Anda bisa mendapatkan laporan kredensi dari Konsol Manajemen AWS, [Alat Baris Perintah [AWS SDKs](https://aws.amazon.com/tools)](https://aws.amazon.com/tools/#Command_Line_Tools)dan, atau API IAM. 

**catatan**  
Laporan kredensi IAM hanya mencakup kredenal yang dikelola oleh IAM berikut: kata sandi, dua kunci akses pertama per pengguna, perangkat MFA, dan sertifikat penandatanganan X.509. Laporan tersebut tidak menyertakan kredensi khusus layanan (seperti kata sandi CodeCommit , kunci API jangka panjang Amazon Bedrock, atau kunci API jangka panjang Amazon CloudWatch Logs) atau kunci akses pengguna lain di luar dua yang pertama. Untuk visibilitas kredenal lengkap, gunakan dan. [ListServiceSpecificCredentials[ListAccessKeys](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html)](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServiceSpecificCredentials.html) APIs

Anda dapat menggunakan laporan kredensial untuk membantu upaya audit dan kepatuhan Anda. Anda dapat menggunakan laporan untuk mengaudit efek persyaratan siklus hidup kredenal, seperti kata sandi dan pembaruan kunci akses. Anda dapat memberikan laporan ke audit eksternal, atau memberikan izin kepada auditor sehingga dia dapat mengunduh laporan secara langsung.

Anda dapat membuat laporan kredensial sesering sekali setiap empat jam. Saat Anda meminta laporan, IAM terlebih dahulu memeriksa apakah laporan untuk laporan Akun AWS telah dibuat dalam empat jam terakhir. Jika demikian, laporan terbaru diunduh. Jika laporan terbaru untuk akun tersebut lebih lama dari empat jam, atau jika tidak ada laporan sebelumnya untuk akun tersebut, IAM akan membuat dan mengunduh laporan baru. 

**Topics**
+ [Izin yang diperlukan](#id_credentials_required_permissions)
+ [Memahami format laporan](#id_credentials_understanding_the_report_format)
+ [Mendapatkan laporan kredensial (konsol)](#getting-credential-reports-console)
+ [Mendapatkan laporan kredensial (AWS CLI)](#getting-credential-reports-cliapi)
+ [Mendapatkan laporan kredensi (AWS API)](#getting-credential-reports-api)

## Izin yang diperlukan
<a name="id_credentials_required_permissions"></a>

Izin berikut diperlukan untuk membuat dan mengunduh laporan:
+ Untuk membuat laporan kredensial: `iam:GenerateCredentialReport` 
+ Untuk mengunduh laporan: `iam:GetCredentialReport`

## Memahami format laporan
<a name="id_credentials_understanding_the_report_format"></a>

Laporan kredensial diformat sebagai file nilai yang dipisahkan oleh koma (CSV). Anda dapat membuka file CSV dengan perangkat lunak spreadsheet biasa untuk melakukan analisis, atau Anda dapat membuat aplikasi yang menggunakan file CSV secara terprogram dan melakukan analisis kustom. 

File CSV berisi kolom berikut:

**pengguna**  
Nama pengguna yang ramah. 

**arn**  
Amazon Resource Name (ARN) dari pengguna. Untuk informasi lebih lanjut tentang ARNs, lihat[IAM ARNs](reference_identifiers.md#identifiers-arns). 

**user\$1creation\$1time**  
Tanggal dan waktu saat pengguna dibuat, dalam [Format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).

**password\$1enabled**  
Ketika pengguna memiliki kata sandi, nilai ini adalah `TRUE`. Jika tidak, nilainya `FALSE`. Nilai ini `FALSE` untuk akun anggota baru yang dibuat sebagai bagian dari organisasi Anda karena mereka tidak memiliki kredensi pengguna root secara default.

**password\$1last\$1used**  
Tanggal dan waktu ketika kata sandi Pengguna root akun AWS atau pengguna terakhir digunakan untuk masuk ke AWS situs web, dalam format [tanggal-waktu ISO 8601](http://www.iso.org/iso/iso8601). AWS situs web yang menangkap waktu masuk terakhir pengguna adalah Konsol Manajemen AWS, Forum AWS Diskusi, dan AWS Marketplace. Ketika kata sandi digunakan lebih dari sekali dalam rentang 5 menit, hanya penggunaan pertama yang dicatat dalam bidang ini.   
+ Nilai dalam kolom ini adalah `no_information` dalam kasus ini:
  + Kata sandi pengguna belum pernah digunakan.
  + Tidak ada data masuk yang terkait dengan kata sandi, seperti saat kata sandi pengguna belum digunakan setelah IAM mulai melacak informasi ini pada tanggal 20 Oktober 2014.
+ Nilai dalam kolom ini adalah `N/A` (tidak berlaku) jika pengguna tidak memiliki kata sandi.

**penting**  
Karena masalah layanan, data penggunaan terakhir kata sandi tidak mencakup penggunaan kata sandi dari tanggal 3 Mei 2018 22.50 PDT hingga 23 Mei 2018 14.08 PDT. Hal ini memengaruhi tanggal [masuk terakhir](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html) yang ditampilkan di konsol IAM dan tanggal penggunaan terakhir kata sandi di [Laporan kredensial IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/SupportedTypes.xmlid_credentials_getting-report.html), dan dikembalikan oleh [GetUser Operasi API](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html). Jika pengguna masuk selama waktu yang terpengaruh, tanggal terakhir kali menggunakan kata sandi yang dikembalikan adalah tanggal pengguna terakhir masuk sebelum 3 Mei 2018. Untuk pengguna yang masuk setelah 23 Mei 2018 14.08 PDT, tanggal penggunaan terakhir kata sandi yang dikembalikan adalah akurat.  
Jika Anda menggunakan kata sandi informasi yang terakhir digunakan untuk mengidentifikasi kredensi yang tidak digunakan untuk penghapusan, seperti menghapus pengguna yang tidak masuk dalam 90 hari terakhir, kami sarankan Anda menyesuaikan jendela evaluasi Anda untuk menyertakan tanggal setelah 23 Mei 2018. AWS Atau, jika pengguna Anda menggunakan kunci akses untuk mengakses AWS secara terprogram, Anda dapat merujuk ke kunci akses informasi yang terakhir digunakan karena akurat untuk semua tanggal. 

**password\$1last\$1changed**  
Tanggal dan waktu saat kata sandi pengguna terakhir diatur, di [Format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). Jika pengguna tidak memiliki kata sandi, nilai dalam kolom ini adalah `N/A` (tidak berlaku).

**password\$1next\$1rotation**  
Saat akun memiliki [kebijakan kata sandi](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html) yang memerlukan rotasi kata sandi, kolom ini berisi tanggal dan waktu, dalam [Format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), saat pengguna diminta untuk mengatur kata sandi baru. Nilai untuk Akun AWS (root) selalu`not_supported`.

**mfa\$1active**  
Saat perangkat [autentikasi multi-factor](id_credentials_mfa.md) (MFA) telah diaktifkan untuk pengguna, nilai ini adalah `TRUE`. Jika tidak, nilainya `FALSE`.

**access\$1key\$11\$1active**  
Saat pengguna memiliki access key dan status access key `Active`, nilainya `TRUE` Jika tidak, nilainya `FALSE`. Berlaku untuk pengguna root akun dan pengguna IAM.

**access\$1key\$11\$1last\$1rotated**  
Tanggal dan waktu, dalam [Format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), saat access key pengguna dibuat atau diubah terakhir. Jika pengguna tidak memiliki access key aktif, nilai dalam kolom ini adalah `N/A` (tidak berlaku). Berlaku untuk pengguna root akun dan pengguna IAM.

**akses\$1key\$11\$1last\$1used\$1date**  
Tanggal dan waktu, dalam [Format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), saat access key pengguna terakhir kali digunakan untuk menandatangani permintaan API AWS . Ketika access key digunakan lebih dari satu kali dalam rentang 15 menit, hanya penggunaan pertama yang dicatat dalam kolom ini. Berlaku untuk pengguna root akun dan pengguna IAM.  
Nilai dalam kolom ini adalah `N/A` (tidak berlaku) dalam kasus ini:  
+ Pengguna tidak memiliki access key.
+ Kunci akses belum pernah digunakan.
+ Kunci akses ini belum digunakan setelah IAM mulai melacak informasi ini pada 22 April 2015.

**akses\$1key\$11\$1last\$1used\$1region**  
[Wilayah AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html) yang access key-nya baru-baru ini digunakan. Ketika access key digunakan lebih dari satu kali dalam rentang 15 menit, hanya penggunaan pertama yang dicatat dalam kolom ini. Berlaku untuk pengguna root akun dan pengguna IAM.  
Nilai dalam kolom ini adalah `N/A` (tidak berlaku) dalam kasus ini:  
+ Pengguna tidak memiliki access key.
+ Kunci akses belum pernah digunakan.
+ Kunci akses terakhir digunakan sebelum IAM mulai melacak informasi ini pada 22 April 2015.
+ Layanan yang terakhir digunakan tidak spesifik Wilayah, seperti Amazon S3

**akses\$1key\$11\$1last\$1used\$1service**  
 AWS Layanan yang paling baru diakses dengan kunci akses. Nilai dalam bidang ini menggunakan ruangnama layanan—misalnya, `s3` untuk Amazon S3 dan `ec2` untuk Amazon EC2. Ketika access key digunakan lebih dari satu kali dalam rentang 15 menit, hanya penggunaan pertama yang dicatat dalam kolom ini. Berlaku untuk pengguna root akun dan pengguna IAM.  
Nilai dalam kolom ini adalah `N/A` (tidak berlaku) dalam kasus ini:  
+ Pengguna tidak memiliki access key.
+ Kunci akses belum pernah digunakan.
+ Kunci akses terakhir digunakan sebelum IAM mulai melacak informasi ini pada 22 April 2015.

**access\$1key\$12\$1active**  
Saat pengguna memiliki access key kedua dan status access key kedua adalah `Active`, nilainya `TRUE`. Jika tidak, nilainya `FALSE`. Berlaku untuk pengguna root akun dan pengguna IAM.  
Pengguna dapat memiliki hingga dua tombol akses, untuk mempermudah rotasi dengan memperbarui kunci terlebih dahulu dan kemudian menghapus kunci sebelumnya. Untuk informasi selengkapnya tentang memperbarui kunci akses, lihat[Perbarui kunci akses](id-credentials-access-keys-update.md).

**access\$1key\$12\$1last\$1rotated**  
Tanggal dan waktu, dalam [format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), ketika kunci akses kedua pengguna dibuat atau terakhir diperbarui. Jika pengguna tidak memiliki access key aktif kedua, nilai dalam bidang ini adalah `N/A` (tidak berlaku). Berlaku untuk pengguna root akun dan pengguna IAM.

**akses\$1key\$12\$1last\$1used\$1date**  
Tanggal dan waktu, dalam [format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), ketika kunci akses kedua pengguna paling baru digunakan untuk menandatangani permintaan API. AWS Ketika access key digunakan lebih dari satu kali dalam rentang 15 menit, hanya penggunaan pertama yang dicatat dalam kolom ini. Berlaku untuk pengguna root akun dan pengguna IAM.  
Nilai dalam kolom ini adalah `N/A` (tidak berlaku) dalam kasus ini:  
+ Pengguna tidak memiliki access key kedua.
+ Kunci akses kedua pengguna belum pernah digunakan.
+ Kunci akses kedua pengguna terakhir digunakan sebelum IAM mulai melacak informasi ini pada 22 April 2015.

**akses\$1key\$12\$1last\$1used\$1region**  
[Wilayah AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html) yang access key keduanya baru-baru ini digunakan. Ketika access key digunakan lebih dari satu kali dalam rentang 15 menit, hanya penggunaan pertama yang dicatat dalam kolom ini. Berlaku untuk pengguna root akun dan pengguna IAM. Nilai dalam kolom ini adalah `N/A` (tidak berlaku) dalam kasus ini:  
+ Pengguna tidak memiliki access key kedua.
+ Kunci akses kedua pengguna belum pernah digunakan.
+ Kunci akses kedua pengguna terakhir digunakan sebelum IAM mulai melacak informasi ini pada 22 April 2015.
+ Layanan yang terakhir digunakan tidak spesifik Wilayah, seperti Amazon S3

**access\$1key\$12\$1last\$1used\$1service**  
 AWS Layanan yang paling baru diakses dengan kunci akses kedua pengguna. Nilai dalam bidang ini menggunakan ruangnama layanan—misalnya, `s3` untuk Amazon S3 dan `ec2` untuk Amazon EC2. Ketika access key digunakan lebih dari satu kali dalam rentang 15 menit, hanya penggunaan pertama yang dicatat dalam kolom ini. Berlaku untuk pengguna root akun dan pengguna IAM. Nilai dalam kolom ini adalah `N/A` (tidak berlaku) dalam kasus ini:  
+ Pengguna tidak memiliki access key kedua.
+ Kunci akses kedua pengguna belum pernah digunakan.
+ Kunci akses kedua pengguna terakhir digunakan sebelum IAM mulai melacak informasi ini pada 22 April 2015.

**cert\$11\$1active**  
Saat pengguna memiliki sertifikat tanda tangan X.509 dan status sertifikat tersebut adalah `Active`, nilainya adalah `TRUE`. Jika tidak, nilainya `FALSE`.

**cert\$11\$1last\$1rotated**  
Tanggal dan waktu, dalam [Format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), saat sertifikat penandaan pengguna dibuat atau terakhir diubah. Apabila pengguna tidak memiliki sertifikat penandatanganan aktif, nilai dalam kolom ini adalah `N/A` (tidak berlaku).

**cert\$12\$1active**  
Saat pengguna memiliki sertifikat tanda tangan X.509 kedua dan status sertifikat tersebut adalah `Active`, nilainya adalah `TRUE`. Jika tidak, nilainya `FALSE`.  
Pengguna dapat memiliki hingga dua sertifikat tanda tangan X.509, untuk membuat rotasi sertifikat lebih mudah.

**cert\$12\$1last\$1rotated**  
Tanggal dan waktu, dalam [Format tanggal-waktu ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), saat sertifikat tanda tangan kedua pengguna dibuat atau terakhir diubah. Apabila pengguna tidak memiliki sertifikat tanda tangan aktif kedua, nilai dalam bidang ini adalah `N/A` (tidak berlaku).

**additional\$1credentials\$1info**  
Ketika pengguna memiliki lebih dari dua kunci akses atau sertifikat, nilai ini adalah jumlah kunci akses atau sertifikat tambahan dan tindakan yang dapat Anda gunakan untuk membuat daftar kunci akses atau sertifikat yang terkait dengan pengguna.

## Mendapatkan laporan kredensial (konsol)
<a name="getting-credential-reports-console"></a>

Anda dapat menggunakan file Konsol Manajemen AWS untuk mengunduh laporan kredensi sebagai file nilai yang dipisahkan koma (CSV).

**Untuk mengunduh laporan kredensial (konsol)**

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, pilih **Laporan kredensial**.

1. Pilih **Unduh Laporan**.

## Mendapatkan laporan kredensial (AWS CLI)
<a name="getting-credential-reports-cliapi"></a>

**Untuk mengunduh laporan kredensial (AWS CLI)**

1. Menghasilkan laporan kredensional. AWS menyimpan satu laporan. Jika ada laporan, membuat laporan kredensial akan menimpa laporan sebelumnya. [https://docs.aws.amazon.com/cli/latest/reference/iam/generate-credential-report.html](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-credential-report.html)

1. Melihat laporan terakhir yang dihasilkan: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-credential-report.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-credential-report.html)

## Mendapatkan laporan kredensi (AWS API)
<a name="getting-credential-reports-api"></a>

**Untuk mengunduh laporan kredensial (API)AWS**

1. Menghasilkan laporan kredensional. AWS menyimpan satu laporan. Jika ada laporan, membuat laporan kredensial akan menimpa laporan sebelumnya. [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html)

1. Melihat laporan terakhir yang dihasilkan: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html)

# Kredensi IAM untuk: Kredensi CodeCommit Git, kunci SSH, dan kunci akses AWS
<a name="id_credentials_ssh-keys"></a>

CodeCommit adalah layanan kontrol versi terkelola yang menampung repositori Git pribadi di cloud. AWS Untuk menggunakan CodeCommit, Anda mengkonfigurasi klien Git Anda untuk berkomunikasi dengan CodeCommit repositori. Sebagai bagian dari konfigurasi ini, Anda memberikan kredensi IAM yang CodeCommit dapat digunakan untuk mengautentikasi Anda. IAM mendukung CodeCommit dengan tiga jenis kredensil:
+ Kredensi Git, nama pengguna dan pasangan kata sandi yang dihasilkan oleh IAM yang dapat Anda gunakan untuk berkomunikasi dengan CodeCommit repositori melalui HTTPS.
+ Kunci SSH, sebuah key pair public-private yang dihasilkan secara lokal yang dapat Anda kaitkan dengan pengguna IAM Anda untuk berkomunikasi CodeCommit dengan repositori melalui SSH.
+  [AWS kunci akses](id_credentials_access-keys.md), yang dapat Anda gunakan dengan pembantu kredenal yang disertakan dengan AWS CLI untuk berkomunikasi dengan CodeCommit repositori melalui HTTPS.

**catatan**  
Anda tidak dapat menggunakan kunci SSH atau kredensial Git untuk mengakses repositori di lain akun AWS . *Untuk mempelajari cara mengonfigurasi akses ke CodeCommit repositori untuk pengguna dan grup IAM di grup lain Akun AWS, lihat [Mengonfigurasi akses lintas akun ke AWS CodeCommit repositori menggunakan peran](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) di Panduan Pengguna.AWS CodeCommit *

Lihat bagian berikut untuk informasi selengkapnya tentang setiap opsi. 

## Gunakan kredensi Git dan HTTPS dengan CodeCommit (disarankan)
<a name="git-credentials-code-commit"></a>

Dengan kredensial Git, Anda membuat nama pengguna statis dan pasangan kata sandi untuk pengguna IAM Anda, kemudian menggunakan kredensial tersebut untuk koneksi HTTPS. Anda juga dapat menggunakan kredensial ini dengan alat pihak ketiga atau lingkungan pengembangan terpadu (IDE) yang mendukung kredensial Git statis.

Karena kredensial ini bersifat universal untuk semua sistem operasi yang didukung dan sistem manajemen kredensial yang paling kompatibel, lingkungan pengembangan, dan alat pengembangan perangkat lunak lainnya, ini adalah metode yang direkomendasikan. Anda dapat mengatur ulang kata sandi untuk kredensial Git kapan saja. Anda juga dapat membuat kredensial tidak aktif atau menghapusnya jika Anda tidak lagi membutuhkannya.

**catatan**  
Anda tidak dapat memilih nama pengguna atau kata sandi Anda sendiri untuk kredensial Git. IAM menghasilkan kredensi ini bagi Anda untuk membantu memastikan mereka memenuhi standar keamanan AWS dan mengamankan repositori di. CodeCommit Anda dapat mengunduh kredensialnya hanya sekali, pada saat mereka dihasilkan. Pastikan Anda menyimpan kredensial di lokasi yang aman. Jika perlu, Anda dapat mengatur ulang kata sandi kapan saja, tetapi melakukan hal tersebut dapat membatalkan koneksi yang dikonfigurasi dengan kata sandi lama. Anda harus mengonfigurasi ulang koneksi agar dapat menggunakan kata sandi baru sebelum terhubung.

Lihat topik berikut untuk informasi selengkapnya: 
+ Untuk membuat pengguna IAM, lihat [Buat pengguna IAM di Akun AWS](id_users_create.md). 
+ *Untuk membuat dan menggunakan kredensil Git CodeCommit, lihat [Untuk Pengguna HTTPS yang Menggunakan Kredensial Git](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) di Panduan Pengguna.AWS CodeCommit * 

**catatan**  
Mengubah nama pengguna IAM setelah membuat kredensial Git tidak mengubah nama pengguna kredensial Git. Nama pengguna dan kata sandi tetap sama dan masih valid. 

**Untuk memperbarui kredensi khusus layanan**

1. Buat kredensial spesifik layanan kedua yang diatur sebagai tambahan yang saat ini digunakan.

1. Perbarui semua aplikasi Anda untuk menggunakan set kredensial baru dan validasi bahwa aplikasi berfungsi dengan baik.

1. Ubah status kredensial asli menjadi “Inactive”.

1. Pastikan semua aplikasi Anda masih bekerja.

1. Hapus kredensial khusus layanan tidak aktif.

## Gunakan tombol SSH dan SSH dengan CodeCommit
<a name="ssh-keys-code-commit"></a>

Dengan koneksi SSH, Anda membuat file kunci publik dan pribadi di mesin lokal Anda yang Git dan CodeCommit gunakan untuk otentikasi SSH. Anda mengaitkan kunci publik dengan pengguna IAM Anda dan menyimpan kunci pribadi di mesin lokal Anda. Lihat topik berikut untuk informasi selengkapnya: 
+ Untuk membuat pengguna IAM, lihat [Buat pengguna IAM di Akun AWS](id_users_create.md). 
+ *Untuk membuat kunci publik SSH dan mengaitkannya dengan pengguna IAM, lihat [Untuk Koneksi SSH di Linux, macOS, atau Unix atau](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html) lihat [Untuk Koneksi SSH](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-windows.html) di Windows di Panduan Pengguna.AWS CodeCommit * 

**catatan**  
Kunci publik harus dikodekan dalam format ssh-rsa atau PEM. Panjang-bit minimum kunci publik adalah 2048 bit, dan panjang maksimum adalah 16384 bit. Ini terpisah dari ukuran file yang Anda unggah. Misalnya, Anda dapat membuat kunci 2048-bit, dan file PEM yang dihasilkan panjangnya 1679 byte. Jika Anda memberikan kunci publik Anda dalam format atau ukuran lain, Anda akan melihat pesan kesalahan yang menyatakan bahwa format kunci tidak valid.

## Gunakan HTTPS dengan pembantu AWS CLI kredenal dan CodeCommit
<a name="access-keys-code-commit"></a>

Sebagai alternatif untuk koneksi HTTPS dengan kredensi Git, Anda dapat mengizinkan Git untuk menggunakan versi kredensi pengguna IAM Anda yang ditandatangani secara kriptografis atau peran instans Amazon EC2 kapan pun Git perlu mengautentikasi untuk berinteraksi dengan repositori. AWS CodeCommit Ini adalah satu-satunya metode koneksi untuk CodeCommit repositori yang tidak memerlukan pengguna IAM. Ini juga merupakan satu-satunya metode yang bekerja dengan akses federasi dan kredensial sementara. Lihat topik berikut untuk informasi selengkapnya:
+ Untuk mempelajari lebih banyak membahas akses federasi, lihat [Penyedia identitas dan federasi ke AWS](id_roles_providers.md) dan [Akses ke pengguna yang diautentikasi secara eksternal (federasi identitas)](id_roles_common-scenarios_federated-users.md). 
+ Untuk mempelajari lebih banyak tentang kredensial sementara, lihat [Kredensial keamanan sementara di IAM](id_credentials_temp.md) dan [Akses Sementara ke CodeCommit Repositori](https://docs.aws.amazon.com/codecommit/latest/userguide/temporary-access.html). 

Pembantu AWS CLI kredenal tidak kompatibel dengan sistem pembantu kredenal lainnya, seperti Akses Rantai Kunci atau Manajemen Kredenal Windows. Ada pertimbangan konfigurasi tambahan ketika Anda mengonfigurasi koneksi HTTPS dengan pembantu kredensial. *Untuk informasi selengkapnya, lihat [Untuk Koneksi HTTPS di Linux, macOS, atau Unix dengan AWS CLI Credential Helper](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html) atau [Koneksi HTTPS di Windows dengan AWS CLI Credential Helper di Panduan](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-windows.html) Pengguna.AWS CodeCommit *

# Kelola sertifikat server di IAM
<a name="id_credentials_server-certs"></a>

*Untuk mengaktifkan koneksi HTTPS ke situs web atau aplikasi Anda AWS, Anda memerlukan sertifikat server SSL/TLS.* Untuk sertifikat di Wilayah yang didukung oleh AWS Certificate Manager (ACM), kami menyarankan Anda menggunakan ACM untuk menyediakan, mengelola, dan menyebarkan sertifikat server Anda. Di Wilayah yang tidak didukung, Anda harus menggunakan IAM sebagai manajer sertifikat. Untuk mempelajari Wilayah mana yang didukung ACM, lihat [AWS Certificate Manager titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/acm.html) di. *Referensi Umum AWS*

**penting**  
ACM adalah alat pilihan untuk menyediakan, mengelola, dan menerapkan sertifikat server Anda. Dengan ACM Anda dapat meminta sertifikat atau menyebarkan ACM atau sertifikat eksternal yang ada ke sumber daya. AWS Sertifikat yang disediakan oleh ACM gratis dan diperbarui secara otomatis. Di [Wilayah yang Didukung](https://docs.aws.amazon.com/general/latest/gr/acm.html), Anda dapat menggunakan ACM untuk mengelola sertifikat server dari konsol atau terprogram. Untuk informasi selengkapnya tentang penggunaan ACM, lihat [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html). Untuk informasi selengkapnya tentang meminta sertifikat ACM, lihat [Meminta Sertifikat Publik](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) atau [Meminta Sertifikat Pribadi](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html) di *AWS Certificate Manager Panduan Pengguna*. Untuk informasi tentang mengimpor sertifikat pihak ke tiga ke ACM, lihat [Mengimpor Sertifikat](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) di *Panduan Pengguna AWS Certificate Manager *.

Gunakan IAM sebagai manajer sertifikat hanya ketika Anda harus mendukung koneksi HTTPS di Wilayah yang tidak [didukung oleh ACM](https://docs.aws.amazon.com/general/latest/gr/acm.html). IAM mengenkripsi kunci pribadi Anda dengan aman dan menyimpan versi terenkripsinya dalam penyimpanan sertifikat IAM SSL. IAM mendukung penerapan sertifikat server di semua Wilayah, tetapi Anda harus mendapatkan sertifikat dari penyedia eksternal untuk digunakan. AWS Anda tidak dapat mengunggah sertifikat ACM ke IAM. Sebagai tambahan, Anda tidak dapat mengelola sertifikat Anda dari Konsol IAM.

Untuk informasi selengkapnya tentang mengunggah sertifikat pihak ketiga ke IAM, lihat topik berikut.

**Topics**
+ [Unggah sertifikat server (AWS API)](#upload-server-certificate)
+ [AWS Operasi API untuk sertifikat server](#id_credentials_server-certs-api)
+ [Memecahkan masalah sertifikat server](#server-certificate-troubleshooting)

## Unggah sertifikat server (AWS API)
<a name="upload-server-certificate"></a>

Untuk mengunggah sertifikat server ke IAM, Anda harus memberikan sertifikat yang sesuai dengan kunci pribadi. Jika sertifikat tidak ditandatangani sendiri, Anda juga harus memberikan rantai sertifikat. (Anda tidak memerlukan rantai sertifikat saat mengunggah sertifikat yang ditandatangani sendiri.) Sebelum Anda mengunggah sertifikat, pastikan bahwa Anda memiliki semua item ini dan bahwa mereka memenuhi kriteria berikut:
+ Sertifikat harus valid pada saat diunggah. Anda tidak dapat mengunggah sertifikat sebelum periode validitas dimulai (tanggal `NotBefore` sertifikat) atau setelah kedaluwarsa (tanggal `NotAfter` sertifikat).
+ Kunci pribadi harus tidak dienkripsi. Anda tidak dapat mengunggah kunci pribadi yang dilindungi oleh kata sandi atau frasa sandi. Untuk membantu mendekripsi kunci pribadi terenkripsi, lihat [Memecahkan masalah sertifikat server](#server-certificate-troubleshooting).
+ Sertifikat, kunci pribadi, dan rantai sertifikat harus semuanya dikode PEM. Untuk membantu mengonversi item ini ke format PEM, lihat [Memecahkan masalah sertifikat server](#server-certificate-troubleshooting).

Untuk menggunakan [API IAM](https://docs.aws.amazon.com/IAM/latest/APIReference/) untuk mengunggah sertifikat, kirim permintaan [UploadServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UploadServerCertificate.html). Contoh berikut ini menunjukkan cara melakukan dengan [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/). Contoh tersebut mengasumsikan sebagai berikut:
+ Sertifikat yang dienkode PEM disimpan dalam file dengan nama `Certificate.pem`.
+ Rantai sertifikat yang dienkode PEM disimpan dalam file dengan nama `CertificateChain.pem`.
+ Sertifikat yang dienkode PEM, kunci pribadi tidak dienkripsi, disimpan dalam file dengan nama `PrivateKey.pem`.
+ (Opsional) Anda ingin menandai sertifikat server dengan pasangan kunci-nilai. Misalnya, Anda dapat menambahkan tombol tanda `Department` dan nilai tanda`Engineering` untuk membantu Anda mengidentifikasi dan mengatur sertifikat Anda.

Untuk menggunakan perintah contoh berikut, ganti nama file berikut dengan nama Anda sendiri. Ganti *ExampleCertificate* dengan nama untuk sertifikat yang Anda unggah. Jika Anda ingin menandai sertifikat, ganti pasangan nilai kunci *ExampleKey* dan *ExampleValue* tag dengan nilai Anda sendiri. Ketik perintah pada satu garis kontinu. Contoh berikut mencakup jeda baris dan ruang tambahan untuk memudahkan Anda membaca.

```
aws iam upload-server-certificate --server-certificate-name ExampleCertificate
                                    --certificate-body file://Certificate.pem
                                    --certificate-chain file://CertificateChain.pem
                                    --private-key file://PrivateKey.pem
                                    --tags '{"Key": "ExampleKey", "Value": "ExampleValue"}'
```

Ketika perintah sebelumnya berhasil, perintah mengembalikan metadata tentang sertifikat yang diunggah, termasuk [Amazon Resource Name (ARN)](reference_identifiers.md#identifiers-arns), nama ramah, pengenalnya (ID), tanggal kedaluwarsanya, tanda, dan banyak lagi.

**catatan**  
Jika Anda mengunggah sertifikat server untuk digunakan dengan Amazon CloudFront, Anda harus menentukan jalur menggunakan `--path` opsi. Jalur harus dimulai dengan `/cloudfront` dan harus menyertakan garis miring yang menelusur (misalnya, `/cloudfront/test/`).

Untuk menggunakan untuk AWS Tools for Windows PowerShell mengunggah sertifikat, gunakan [Publish- IAMServer Certificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Publish-IAMServerCertificate.html&tocid=Publish-IAMServerCertificate).

## AWS Operasi API untuk sertifikat server
<a name="id_credentials_server-certs-api"></a>

Gunakan perintah berikut untuk melihat, menandai, mengganti nama, dan menghapus sertifikat server.
+ Gunakan [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html)untuk mengambil sertifikat. Permintaan ini mengembalikan sertifikat, rantai sertifikat (jika ada yang diunggah), dan metadata tentang sertifikat.
**catatan**  
Anda tidak dapat mengunduh atau mengambil kunci pribadi dari IAM setelah Anda mengunggahnya.
+ Gunakan [Get- IAMServer Certificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Get-IAMServerCertificate.html&tocid=Get-IAMServerCertificate) untuk mengambil sertifikat.
+ Gunakan [ListServerCertificates](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificates.html)untuk mencantumkan sertifikat server yang diunggah. Permintaan mengembalikan daftar yang berisi metadata tentang setiap sertifikat.
+ Gunakan [Get- IAMServer Certificates](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Get-IAMServerCertificates.html&tocid=Get-IAMServerCertificates) untuk mencantumkan sertifikat server yang Anda unggah.
+ Gunakan [TagServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagServerCertificate.html)untuk menandai sertifikat server yang ada. 
+ Gunakan [UntagServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagServerCertificate.html)untuk menghapus tag sertifikat server.
+ Gunakan [UpdateServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServerCertificate.html)untuk mengganti nama sertifikat server atau memperbarui jalurnya.

   Contoh berikut ini menunjukkan cara melakukan ini dengan AWS CLI.

  Untuk menggunakan perintah contoh berikut, ganti nama sertifikat lama dan baru serta jalur sertifikat, lalu ketik perintah pada satu baris berkelanjutan. Contoh berikut mencakup jeda baris dan ruang tambahan untuk memudahkan Anda membaca.

  ```
  aws iam update-server-certificate --server-certificate-name ExampleCertificate
                                      --new-server-certificate-name CloudFrontCertificate
                                      --new-path /cloudfront/
  ```

  Untuk menggunakan AWS Tools for Windows PowerShell untuk mengganti nama sertifikat server atau memperbarui jalurnya, gunakan [Update- IAMServer Certificate](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Update-IAMServerCertificate.html&tocid=Update-IAMServerCertificate).
+ Gunakan [DeleteServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServerCertificate.html)untuk menghapus sertifikat server. 

  Untuk menggunakan AWS Tools for Windows PowerShell untuk menghapus sertifikat server, gunakan [Hapus- IAMServer Sertifikat](https://docs.aws.amazon.com/powershell/latest/reference/Index.html?page=Remove-IAMServerCertificate.html&tocid=Remove-IAMServerCertificate).

## Memecahkan masalah sertifikat server
<a name="server-certificate-troubleshooting"></a>

Sebelum Anda dapat mengunggah sertifikat ke IAM, Anda harus memastikan bahwa sertifikat, kunci pribadi, dan rantai sertifikat semuanya dikode PEM. Anda juga harus memastikan bahwa kunci pribadi tidak terenkripsi. Lihat contoh-contoh berikut.

**Example Contoh sertifikat yang dienkode PEM**  

```
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
```

**Example Contoh kunci pribadi yang dienkode PEM, tidak terenkripsi**  

```
-----BEGIN RSA PRIVATE KEY-----
Base64-encoded private key
-----END RSA PRIVATE KEY-----
```

**Example Contoh rantai sertifikat yang dienkode PEM**  
Rantai sertifikat berisi satu atau beberapa sertifikat. Anda dapat menggunakan editor teks, perintah penyalinan di Windows, atau perintah cat Linux untuk menggabungkan file sertifikat Anda ke dalam rantai. Jika Anda menyertakan beberapa sertifikat, setiap sertifikat harus mensertifikasi sertifikat sebelumnya. Anda mencapai ini dengan menggabungkan sertifikat, termasuk sertifikat CA akar terakhir.  
Contoh berikut berisi tiga sertifikat, tetapi rantai sertifikat Anda mungkin memuat lebih banyak atau lebih sedikit sertifikat.  

```
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64-encoded certificate
-----END CERTIFICATE-----
```

Jika item ini tidak dalam format yang tepat untuk diunggah ke IAM, Anda dapat menggunakan [OpenSSL](https://openssl.org/) untuk mengonversinya ke format yang tepat.

**Untuk mengonversikan sertifikat atau rantai sertifikat dari DER ke PEM**  
Gunakan [perintah OpenSSL **x509**](https://openssl.org/docs/manmaster/man1/x509.html), seperti pada contoh berikut. Di perintah contoh berikut, ganti `Certificate.der` dengan nama file yang berisi sertifikat yang dienkode DER Anda. Ganti `Certificate.pem` dengan nama pilihan file output untuk memuat sertifikat yang dienkode PEM.  

```
openssl x509 -inform DER -in Certificate.der -outform PEM -out Certificate.pem
```
 

**Untuk mengonversi kunci pribadi dari DER ke PEM**  
Gunakan [perintah OpenSSL **rsa**](https://openssl.org/docs/manmaster/man1/rsa.html), seperti pada contoh berikut. Di perintah contoh berikut, ganti `PrivateKey.der` dengan nama file yang berisi kunci pribadi yang dienkode DER Anda. Ganti `PrivateKey.pem` dengan nama pilihan file output untuk memuat kunci pribadi yang dienkode PEM.  

```
openssl rsa -inform DER -in PrivateKey.der -outform PEM -out PrivateKey.pem
```
 

**Untuk mendekripsi kunci pribadi terenkripsi (hapus kata sandi atau frasa sandi)**  
Gunakan [perintah OpenSSL **rsa**](https://openssl.org/docs/manmaster/man1/rsa.html), seperti pada contoh berikut. Untuk menggunakan perintah contoh berikut, ganti `EncryptedPrivateKey.pem` dengan nama file yang berisi kunci pribadi Anda yang dienkripsi. Ganti `PrivateKey.pem` dengan nama pilihan file output untuk memuat kunci pribadi tidak terenkripsi yang dienkode PEM.  

```
openssl rsa -in EncryptedPrivateKey.pem -out PrivateKey.pem
```
 

**Untuk mengonversi bundel sertifikat dari PKCS\$112 (PFX) ke PEM**  
Gunakan [perintah OpenSSL **pkcs12**](https://openssl.org/docs/manmaster/man1/pkcs12.html), seperti pada contoh berikut. Di perintah contoh berikut, ganti `CertificateBundle.p12` dengan nama file yang berisi bundel sertifikat yang dienkode PKCS\$112 Anda. Ganti `CertificateBundle.pem` dengan nama pilihan file output untuk memuat bundel sertifikat yang dienkode PEM.  

```
openssl pkcs12 -in CertificateBundle.p12 -out CertificateBundle.pem -nodes
```
 

**Untuk mengonversi bundel sertifikat dari PKCS\$17 ke PEM**  
Gunakan [perintah OpenSSL **pkcs7**](https://openssl.org/docs/manmaster/man1/pkcs7.html), seperti pada contoh berikut. Di perintah contoh berikut, ganti `CertificateBundle.p7b` dengan nama file yang berisi bundel sertifikat yang dienkode PKCS\$17 Anda. Ganti `CertificateBundle.pem` dengan nama pilihan file output untuk memuat bundel sertifikat yang dienkode PEM.  

```
openssl pkcs7 -in CertificateBundle.p7b -print_certs -out CertificateBundle.pem
```

# Grup pengguna IAM
<a name="id_groups"></a>

[*Grup pengguna IAM adalah kumpulan pengguna*](#id_groups) IAM. Grup pengguna memungkinkan Anda menentukan izin untuk beberapa pengguna, yang dapat memudahkan pengelolaan izin bagi pengguna tersebut. Misalnya, Anda dapat memiliki grup pengguna bernama *Admin* dan memberikan izin administrator khas grup pengguna tersebut. Setiap pengguna dalam grup pengguna tersebut secara otomatis memiliki *izin grup Admin*. *Jika pengguna baru bergabung dengan organisasi Anda dan memerlukan hak administrator, Anda dapat menetapkan izin yang sesuai dengan menambahkan pengguna ke grup pengguna Admin.* Jika seseorang mengubah pekerjaan di organisasi Anda, alih-alih mengedit izin pengguna tersebut, Anda dapat menghapusnya dari grup IAM lama dan menambahkannya ke grup IAM baru yang sesuai. 

Anda dapat melampirkan kebijakan berbasis identitas ke grup pengguna sehingga semua pengguna dalam grup pengguna menerima izin kebijakan tersebut. Anda tidak dapat mengidentifikasi grup pengguna sebagai `Principal` dalam kebijakan (seperti kebijakan berbasis sumber daya) karena grup terkait dengan izin, bukan autentikasi, dan prinsipal adalah entitas IAM yang diautentikasi. Untuk informasi lebih lanjut tentang jenis kebijakan, lihat [Kebijakan berbasis identitas dan kebijakan berbasis sumber daya](access_policies_identity-vs-resource.md).

Berikut adalah beberapa karakteristik penting dari kelompok IAM:
+ Sebuah grup pengguna dapat berisi banyak pengguna, dan pengguna dapat menjadi bagian dari beberapa grup pengguna.
+ Grup pengguna tidak dapat disarangkan; mereka hanya dapat berisi pengguna, bukan grup IAM lainnya.
+ Tidak ada grup pengguna default yang secara otomatis menyertakan semua pengguna di Akun AWS. Jika Anda ingin memiliki grup pengguna seperti itu, Anda harus membuatnya dan menetapkan setiap pengguna baru ke grup tersebut.
+ Jumlah dan ukuran sumber daya IAM dalam Akun AWS, seperti jumlah grup, dan jumlah grup yang pengguna dapat menjadi anggota, terbatas. Untuk informasi selengkapnya, lihat [IAM dan AWS STS kuota](reference_iam-quotas.md).

Diagram berikut menunjukkan contoh sederhana dari perusahaan kecil. Pemilik perusahaan membuat grup penggna `Admins` bagi pengguna untuk membuat dan mengelola pengguna lain seiring pertumbuhan perusahaan. Parametergrup pengguna `Admins` membuat grup pengguna `Developers` dan grup pengguna `Test`. Masing-masing grup IAM ini terdiri dari pengguna (manusia dan aplikasi) yang berinteraksi dengan AWS (Jim, Brad, DevApp 1, dan sebagainya). Setiap pengguna memiliki satu set kredensial keamanan. Dalam contoh ini, setiap pengguna termasuk dalam satu grup pengguna. Namun, pengguna dapat menjadi bagian dari beberapa grup IAM.

![\[Contoh hubungan antara Akun AWS, pengguna, dan grup IAM\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/Relationship_Between_Entities_Example.diagram.png)


# Buat grup IAM
<a name="id_groups_create"></a>

**catatan**  
Sebagai [praktik terbaik](best-practices.md), kami menyarankan Anda meminta pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensi sementara. Jika Anda mengikuti praktik terbaik, Anda tidak mengelola pengguna dan grup IAM. Sebaliknya, pengguna dan grup Anda dikelola di luar AWS dan dapat mengakses AWS sumber daya sebagai *identitas federasi*. Identitas federasi adalah pengguna dari direktori pengguna perusahaan Anda, penyedia identitas web, AWS Directory Service, direktori Pusat Identitas, atau pengguna mana pun yang mengakses AWS layanan dengan menggunakan kredensi yang disediakan melalui sumber identitas. Identitas federasi menggunakan grup yang ditentukan oleh penyedia identitas mereka. Jika Anda menggunakan AWS IAM Identity Center, lihat [Mengelola identitas di Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-sso.html) di *Panduan AWS IAM Identity Center Pengguna* untuk informasi tentang membuat pengguna dan grup di Pusat Identitas IAM.

Anda membuat grup IAM untuk mengelola izin akses bagi beberapa pengguna dengan peran atau tanggung jawab serupa. Dengan melampirkan kebijakan ke grup ini, Anda dapat memberikan atau mencabut izin untuk seluruh kumpulan pengguna. Ini menyederhanakan pemeliharaan kebijakan keamanan Anda, karena perubahan yang Anda buat pada izin grup diterapkan secara otomatis ke semua anggota grup tersebut, memastikan kontrol akses yang konsisten. Setelah Anda membuat grup, berikan izin grup berdasarkan jenis pekerjaan yang Anda harapkan dilakukan oleh pengguna IAM dalam grup, lalu tambahkan pengguna IAM ke grup.

Untuk informasi tentang izin yang diperlukan untuk membuat grup IAM, lihat. [Izin diperlukan untuk mengakses sumber daya IAM](access_permissions-required.md) 

## Untuk membuat grup IAM dan melampirkan kebijakan
<a name="id_groups_create-section-1"></a>

------
#### [ Console ]

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

1. Dalam panel navigasi, pilih **User groups** (Grup pengguna) lalu pilih **Create New Group** (Buat Grup Baru).

1. Untuk **User grup name** (Nama grup), ketik nama grup.
**catatan**  
Jumlah dan ukuran sumber daya IAM dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat [IAM dan AWS STS kuota](reference_iam-quotas.md). Nama grup dapat berupa kombinasi hingga 128 huruf, digit, dan karakter ini: plus (\$1), sama (=), koma (,), titik (.), pada tanda (@), garis bawah (\$1), dan tanda hubung (-). Nama harus unik dalam akun. Mereka tidak dibedakan berdasarkan kasus. Misalnya, Anda tidak dapat membuat grup dengan nama keduanya **ADMINS** dan **admins**.

1. Dalam daftar pengguna, pilih kotak centang untuk setiap pengguna yang ingin Anda tambahkan ke grup.

1. Dalam daftar kebijakan, centang kotak untuk setiap kebijakan yang ingin Anda terapkan pada semua anggota grup.

1. Pilih **Buat grup**.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [aws iam membuat grup](https://docs.aws.amazon.com/cli/latest/reference/iam/create-group.html)

------
#### [ API ]

Panggil operasi berikut:
+ [CreateGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateGroup.html)

------

# Lihat grup IAM
<a name="id_groups_manage_list"></a>

Anda dapat membuat daftar semua grup IAM di akun Anda, daftar pengguna dalam grup pengguna, dan daftar grup IAM milik pengguna. Jika Anda menggunakan CLI atau API, Anda dapat mencantumkan semua grup IAM dengan awalan jalur tertentu.

------
#### [ Console ]

Untuk mencantumkan semua grup IAM di akun Anda:
+ Di panel navigasi, pilih **Grup pengguna**.

Untuk mencantumkan pengguna IAM dalam grup IAM tertentu:
+ Pada panel navigasi, pilih **User groups** (Grup pengguna). Kemudian pilih nama grup untuk membuka halaman detail grup. Tinjau tab **Pengguna** untuk melihat keanggotaan grup.

Untuk mencantumkan semua grup IAM tempat pengguna berada:
+ Di panel navigasi, pilih **Users** (Pengguna). Kemudian pilih nama pengguna untuk membuka halaman detail pengguna. Pilih tab **Grup** untuk melihat daftar grup tempat pengguna berada.

------
#### [ AWS CLI ]

Untuk mencantumkan semua grup IAM di akun Anda:
+ [grup daftar aws iam](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups.html)

Untuk membuat daftar pengguna dalam grup IAM tertentu:
+ [aws iam get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html)

Untuk mencantumkan semua grup IAM tempat pengguna berada:
+ [aws iam list-groups-for-user](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups-for-user.html)

------
#### [ API ]

Untuk mencantumkan semua grup IAM di akun Anda:
+ [ListGroups](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroups.html)

Untuk membuat daftar pengguna dalam grup IAM tertentu:
+ [GetGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html)

Untuk mencantumkan semua grup IAM tempat pengguna berada:
+ [ListGroupsForUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html)

------

# Mengedit pengguna dalam grup IAM
<a name="id_groups_manage_add-remove-users"></a>

Gunakan grup IAM untuk menerapkan kebijakan izin yang sama di beberapa pengguna sekaligus. Anda kemudian dapat menambahkan pengguna ke atau menghapus pengguna dari grup IAM. Hal ini berguna saat orang-orang memasuki dan meninggalkan organisasi Anda.

## Meninjau akses kebijakan
<a name="groups-remove_prerequisites"></a>

**Sebelum Anda menghapus grup, gunakan halaman detail grup untuk meninjau anggota (pengguna IAM) grup, kebijakan yang dilampirkan ke grup pada tab **Izin** dan tinjau aktivitas tingkat layanan terbaru menggunakan tab Terakhir Diakses.** Ini membantu mencegah penghapusan akses secara tidak sengaja dari kepala sekolah (orang atau aplikasi) yang menggunakannya. Untuk informasi selengkapnya perihal melihat informasi yang terakhir diakses, lihat [Memperbaiki izin dalam AWS menggunakan informasi yang terakhir diakses](access_policies_last-accessed.md).

## Menambahkan pengguna IAM ke grup IAM
<a name="groups-add-remove-console"></a>

------
#### [ Console ]

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, pilih **Grup pengguna** lalu pilih nama grup.

1. Pilih tab **Pengguna** dan kemudian pilih **Tambahkan pengguna**. Pilih kotak centang di samping pengguna yang ingin Anda tambahkan.

1. Pilih **Tambahkan pengguna**.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ `[aws iam add-user-to-group](https://docs.aws.amazon.com/cli/latest/reference/iam/add-user-to-group.html)`

------
#### [ API ]

Panggil operasi berikut:
+ `[AddUserToGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddUserToGroup.html)`

------

## Menghapus pengguna IAM dari grup IAM
<a name="id_groups_manage_add-remove-users-section-1"></a>

------
#### [ Console ]

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, pilih **Grup pengguna** lalu pilih nama grup.

1. Pilih tab **Pengguna**. Pilih kotak centang di samping pengguna yang ingin Anda hapus, lalu pilih **Hapus pengguna**.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ `[aws iam remove-user-from-group](https://docs.aws.amazon.com/cli/latest/reference/iam/remove-user-from-group.html)`

------
#### [ API ]

Panggil operasi berikut:
+ `[RemoveUserFromGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html)`

------

# Melampirkan kebijakan ke grup pengguna IAM
<a name="id_groups_manage_attach-policy"></a>

Anda dapat melampirkan [kebijakan AWS terkelola](access_policies_managed-vs-inline.md#aws-managed-policies) —yaitu kebijakan pratulis yang disediakan oleh AWS—ke grup pengguna, seperti yang dijelaskan dalam langkah-langkah berikut. Untuk melampirkan kebijakan yang dikelola pelanggan—yaitu, izin khusus dengan kebijakan yang Anda buat—Anda harus membuat kebijakan terlebih dahulu. Untuk informasi tentang membuat kebijakan yang dikelola pelanggan, lihat [Tentukan izin IAM khusus dengan kebijakan terkelola pelanggan](access_policies_create.md). 

Untuk informasi lebih lanjut tentang izin dan kebijakan, lihat [Manajemen akses untuk AWS sumber daya](access.md). 

## Untuk melampirkan kebijakan ke grup IAM
<a name="id_groups_manage_attach-policy-section-1"></a>

------
#### [ Console ]

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, pilih **Grup pengguna** lalu pilih nama grup.

1. Pilih tab **Izin**.

1. Pilih **Tambahkan izin**, lalu pilih **Lampirkan kebijakan**.

1. Kebijakan yang saat ini terlampir ke grup pengguna ditampilkan dalam daftar **Kebijakan izin saat ini**. Dalam daftar **Kebijakan izin lainnya**, pilih kotak centang di samping nama kebijakan yang akan dilampirkan. Anda dapat menggunakan kotak pencarian untuk memfilter daftar kebijakan menurut jenis dan nama kebijakan.

1. Pilih kebijakan yang ingin dilampirkan ke grup IAM Anda dan pilih **Lampirkan kebijakan**.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ `[aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)`

------
#### [ API ]

Panggil operasi berikut:
+ `[AttachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html)`

------

# Ganti nama grup pengguna IAM
<a name="id_groups_manage_rename"></a>

Saat Anda mengubah nama atau alur grup pengguna, hal berikut terjadi: 
+ Kebijakan apa pun yang terlampir pada grup pengguna akan tetap melekat ke grup dengan nama baru.
+ Grup pengguna mempertahankan semua penggunanya di bawah nama baru.
+ ID unik untuk grup pengguna tetap sama. Untuk informasi lebih lanjut tentang IDs yang unik, lihat [Pengidentifikasi unik](reference_identifiers.md#identifiers-unique-ids). 

IAM tidak secara otomatis memperbarui kebijakan yang merujuk ke grup pengguna sebagai sumber daya untuk menggunakan nama baru. Oleh karena itu, Anda harus berhati-hati ketika mengubah nama grup pengguna. Sebelum mengubah nama grup pengguna, Anda harus memeriksa semua kebijakan secara manual untuk menemukan kebijakan yang menyebutkan nama grup pengguna tersebut. Misalnya, katakanlah Bob adalah manajer bagian pengujian dari organisasi. Bob memiliki kebijakan yang melekat pada pengguna IAM-nya yang memungkinkannya menambahkan dan menghapus pengguna dari grup pengguna Test. Jika administrator mengubah nama grup pengguna (atau mengubah jalur grup), administrator juga harus memperbarui kebijakan yang dilampirkan ke Bob untuk menggunakan nama atau jalur baru. Jika tidak, Bob tidak akan dapat menambahkan dan menghapus pengguna dari grup pengguna. 

**Untuk menemukan kebijakan yang merujuk ke grup IAM sebagai sumber daya:**

1. Dari panel navigasi konsol IAM, pilih **Kebijakan**.

1. Urutkan menurut kolom **Jenis** untuk kebijakan kustom yang **Dikelola pelanggan**.

1. Pilih nama kebijakan yang ingin diedit.

1. Pilih tab **Izin**, lalu pilih **Ringkasan**.

1. Pilih **IAM** dari daftar layanan, jika ada.

1. Cari nama grup pengguna Anda di kolom **Sumber Daya**.

1. Pilih **Edit** untuk mengubah nama grup pengguna Anda dalam kebijakan.

## Untuk mengubah nama grup pengguna IAM
<a name="id_groups_manage_rename-section-1"></a>

------
#### [ Console ]

1. Di panel navigasi, pilih **Grup pengguna** lalu pilih nama grup.

1. Pilih **Edit**. Ketik nama grup pengguna baru lalu pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

Jalankan perintah berikut:
+ [grup pembaruan aws iam](https://docs.aws.amazon.com/cli/latest/reference/iam/update-group.html)

------
#### [ API ]

Panggil operasi berikut:
+ [UpdateGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateGroup.html)

------

# Menghapus grup IAM
<a name="id_groups_manage_delete"></a>

Saat Anda menghapus grup IAM di konsol, konsol secara otomatis menghapus semua anggota grup, melepaskan semua kebijakan terkelola yang dilampirkan, dan menghapus semua kebijakan sebaris. Namun, karena IAM tidak secara otomatis menghapus kebijakan yang merujuk ke grup IAM sebagai sumber daya, Anda harus berhati-hati saat menghapus grup IAM. Sebelum menghapus grup IAM, tinjau kebijakan Anda secara manual untuk menemukan kebijakan yang menyebutkan grup berdasarkan nama. Misalnya, John, manajer Tim Uji, memiliki kebijakan yang dilampirkan ke entitas pengguna IAM-nya yang memungkinkan dia menambah dan menghapus pengguna dari grup pengguna Uji. Jika administrator menghapus grup tersebut, administrator juga harus menghapus kebijakan yang terlampir pada John. Jika tidak, jika administrator membuat ulang grup yang dihapus dan memberinya nama yang sama, izin John tetap ada, bahkan jika dia meninggalkan Tim Uji.

Sebaliknya, saat Anda menggunakan CLI, SDK, atau API untuk menghapus grup pengguna, Anda menghapus pengguna di grup terlebih dahulu. Kemudian Anda menghapus kebijakan sebaris yang disematkan dalam grup IAM. Selanjutnya, Anda melepaskan kebijakan terkelola yang dilampirkan ke grup. Kemudian Anda menghapus grup IAM itu sendiri.

------
#### [ Console ]

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

1. Pada panel navigasi, pilih **User groups** (Grup pengguna).

1. Dalam daftar grup IAM, pilih kotak centang di sebelah nama grup IAM yang akan dihapus. Anda dapat menggunakan kotak pencarian untuk memfilter daftar grup IAM berdasarkan jenis, izin, dan nama grup.

1. Pilih **Hapus**.

1. Di kotak konfirmasi, jika Anda ingin menghapus satu grup, ketikkan nama grup dan pilih **Hapus**. Jika Anda ingin menghapus beberapa grup, ketikkan jumlah grup IAM yang akan dihapus diikuti **user groups** dan pilih **Hapus**. Misalnya, jika Anda ingin menghapus tiga grup, ketik**3 **user groups****.

------
#### [ AWS CLI ]

1. Hapus semua pengguna dari grup IAM.
   + [aws iam get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html) (untuk mendapatkan daftar pengguna di grup IAM), dan [aws iam remove-user-from-group](https://docs.aws.amazon.com/cli/latest/reference/iam/remove-user-from-group.html) (untuk menghapus pengguna dari grup IAM)

1. Hapus semua kebijakan sebaris yang disematkan dalam grup IAM.
   + [aws iam list-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-group-policies.html) (untuk mendapatkan daftar kebijakan sebaris grup IAM), dan [aws iam delete-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-group-policy.html) (untuk menghapus kebijakan sebaris grup IAM)

1. Lepaskan semua kebijakan terkelola yang dilampirkan pada grup IAM.
   + [aws iam list-attached-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-group-policies.html) (untuk mendapatkan daftar kebijakan terkelola yang dilampirkan ke grup IAM), dan [aws iam detach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-group-policy.html) (untuk melepaskan kebijakan terkelola dari grup IAM)

1. Hapus grup IAM.
   + [aws iam hapus-grup](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-group.html)

------
#### [ API ]

1. Hapus semua pengguna dari grup IAM.
   + [GetGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html)(untuk mendapatkan daftar pengguna di grup IAM) dan [RemoveUserFromGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html)(untuk menghapus pengguna dari grup IAM)

1. Hapus semua kebijakan sebaris yang disematkan dalam grup IAM.
   + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html)(untuk mendapatkan daftar kebijakan sebaris grup IAM) dan [DeleteGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html)(untuk menghapus kebijakan sebaris grup IAM)

1. Lepaskan semua kebijakan terkelola yang dilampirkan pada grup IAM.
   + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html)(untuk mendapatkan daftar kebijakan terkelola yang dilampirkan ke grup IAM) dan [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html)(untuk melepaskan kebijakan terkelola dari grup IAM)

1. Hapus grup IAM.
   + [DeleteGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html)

------

# Peran IAM
<a name="id_roles"></a>

Sebuah *peran IAM* adalah identitas IAM yang dapat Anda buat di akun yang memiliki izin tertentu. Peran IAM mirip dengan pengguna IAM, karena itu adalah AWS identitas dengan kebijakan izin yang menentukan apa yang dapat dan tidak dapat dilakukan identitas. AWS Namun, alih-alih secara unik terkait dengan satu orang, peran dimaksudkan untuk menjadi dapat diambil oleh siapa pun yang membutuhkannya. Selain itu, peran tidak memiliki kredensial jangka panjang standar seperti kata sandi atau kunci akses yang terkait dengannya. Sebagai gantinya, saat Anda mengambil peran, peran tersebut akan memberikan kredensial keamanan sementara untuk sesi peran.

Anda dapat menggunakan peran untuk mendelegasikan akses ke pengguna, aplikasi, atau layanan yang biasanya tidak memiliki akses ke AWS sumber daya Anda. Misalnya, Anda mungkin ingin memberi pengguna di AWS akun Anda akses ke sumber daya yang biasanya tidak mereka miliki, atau memberikan pengguna dalam satu Akun AWS akses ke sumber daya di akun lain. Atau Anda mungkin ingin mengizinkan aplikasi seluler menggunakan AWS sumber daya, tetapi tidak ingin menyematkan AWS kunci di dalam aplikasi (di mana kunci tersebut sulit diperbarui dan di mana pengguna berpotensi mengekstraknya). Terkadang Anda ingin memberikan AWS akses ke pengguna yang sudah memiliki identitas yang ditentukan di luar AWS, seperti di direktori perusahaan Anda. Atau, Anda mungkin ingin memberikan akses ke akun Anda kepada pihak ketiga sehingga mereka dapat melakukan audit pada sumber daya Anda.

Untuk skenario ini, Anda dapat mendelegasikan akses ke AWS sumber daya menggunakan peran *IAM*. Bagian ini memperkenalkan peran dan berbagai cara yang dapat Anda gunakan, kapan dan bagaimana memilih di antara pendekatan, dan bagaimana membuat, mengelola, beralih ke (atau mengasumsikan), dan menghapus peran.

**catatan**  
Saat pertama kali membuat Akun AWS, tidak ada peran yang dibuat secara default. Saat Anda menambahkan layanan ke akun Anda, mereka dapat menambahkan peran terkait layanan untuk mendukung kasus penggunaannya.  
 Peran terkait layanan adalah jenis peran layanan yang ditautkan ke. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan.   
Sebelum Anda dapat menghapus peran terkait layanan, Anda harus terlebih dahulu menghapus sumber daya terkait mereka. Ini melindungi sumber daya Anda karena Anda tidak dapat secara tidak sengaja menghapus izin untuk mengakses sumber daya.  
Untuk informasi tentang layanan mana yang mendukung peran yang terkait dengan layanan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **di kolom **Peran Terkait-Layanan** Pilih **Ya** dengan tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.

**Topics**
+ [Kapan harus membuat pengguna IAM (alih-alih peran)](#id_which-to-choose)
+ [Istilah dan konsep peran](#id_roles_terms-and-concepts)
+ [Sumber daya tambahan](#id_roles_additional-resources)
+ [Masalah confused deputy](confused-deputy.md)
+ [Skenario umum untuk peran IAM](id_roles_common-scenarios.md)
+ [Pembuatan peran IAM](id_roles_create.md)
+ [Manajemen peran IAM](id_roles_manage.md)
+ [Metode untuk mengambil peran](id_roles_manage-assume.md)

## Kapan harus membuat pengguna IAM (alih-alih peran)
<a name="id_which-to-choose"></a>

Kami menyarankan Anda hanya menggunakan pengguna IAM untuk kasus penggunaan yang tidak didukung oleh federasi identitas. Beberapa kasus penggunaan meliputi:
+ **Beban kerja yang tidak dapat menggunakan peran IAM** — Anda dapat menjalankan beban kerja dari lokasi yang perlu diakses. AWS Dalam beberapa situasi, Anda tidak dapat menggunakan peran IAM untuk memberikan kredensi sementara, seperti untuk plugin. WordPress Dalam situasi ini, gunakan kunci akses jangka panjang pengguna IAM agar beban kerja tersebut dapat diautentikasi. AWS
+ ** AWS Klien pihak ketiga** — Jika Anda menggunakan alat yang tidak mendukung akses dengan IAM Identity Center, seperti AWS klien pihak ketiga atau vendor yang tidak di-host AWS, gunakan kunci akses jangka panjang pengguna IAM.
+ **AWS CodeCommit akses** - Jika Anda menggunakan CodeCommit untuk menyimpan kode Anda, Anda dapat menggunakan pengguna IAM dengan kunci SSH atau kredensi khusus layanan untuk CodeCommit mengautentikasi ke repositori Anda. Kami menyarankan Anda melakukan ini selain menggunakan pengguna di IAM Identity Center untuk otentikasi normal. Pengguna di IAM Identity Center adalah orang-orang di tenaga kerja Anda yang membutuhkan akses ke aplikasi cloud Anda Akun AWS atau ke aplikasi cloud Anda. Untuk memberi pengguna akses ke CodeCommit repositori Anda tanpa mengonfigurasi pengguna IAM, Anda dapat mengonfigurasi utilitas. **git-remote-codecommit** Untuk informasi lebih lanjut tentang IAM dan CodeCommit, lihat[Kredensi IAM untuk: Kredensi CodeCommit Git, kunci SSH, dan kunci akses AWS](id_credentials_ssh-keys.md). *Untuk informasi selengkapnya tentang mengonfigurasi **git-remote-codecommit** utilitas, lihat [Menghubungkan ke AWS CodeCommit repositori dengan kredensi berputar](https://docs.aws.amazon.com/codecommit/latest/userguide/temporary-access.html#temporary-access-configure-credentials) di Panduan Pengguna.AWS CodeCommit *
+ **Akses Amazon Keyspaces (untuk Apache Cassandra)** — Dalam situasi di mana Anda tidak dapat menggunakan pengguna di Pusat Identitas IAM, seperti untuk tujuan pengujian kompatibilitas Cassandra, Anda dapat menggunakan pengguna IAM dengan kredensi khusus layanan untuk mengautentikasi dengan Amazon Keyspaces. Pengguna di IAM Identity Center adalah orang-orang di tenaga kerja Anda yang membutuhkan akses ke aplikasi cloud Anda Akun AWS atau ke aplikasi cloud Anda. Anda juga dapat terhubung ke Amazon Keyspaces menggunakan kredensil sementara. Untuk informasi selengkapnya, lihat [Menggunakan kredensil sementara untuk menyambung ke Amazon Keyspaces menggunakan peran IAM dan plugin SigV4 di Panduan Pengembang](https://docs.aws.amazon.com/keyspaces/latest/devguide/access.credentials.html#temporary.credentials.IAM) *Amazon Keyspaces* (untuk Apache Cassandra).
+ **Akses darurat** — Dalam situasi di mana Anda tidak dapat mengakses penyedia identitas Anda dan Anda harus mengambil tindakan di dalamnya Akun AWS. Menetapkan akses darurat pengguna IAM dapat menjadi bagian dari rencana ketahanan Anda. Kami menyarankan agar kredensil pengguna darurat dikontrol dan diamankan dengan ketat menggunakan otentikasi multi-faktor (MFA).

## Istilah dan konsep peran
<a name="id_roles_terms-and-concepts"></a>

Berikut ini beberapa istilah dasar untuk membantu Anda memulai dengan peran.

****Peran****  
Sebuah identitas IAM adalah yang dapat Anda buat di akun Anda yang memiliki izin spesifik. Peran IAM memiliki beberapa kesamaan dengan pengguna IAM. Peran dan pengguna adalah identitas AWS dengan kebijakan izin yang menentukan apa yang dapat dan tidak dapat dilakukan oleh identitas tersebut di AWS. Namun, alih-alih secara unik terkait dengan satu orang, peran dimaksudkan untuk menjadi dapat diambil oleh siapa pun yang membutuhkannya. Selain itu, peran tidak memiliki kredensial jangka panjang standar seperti kata sandi atau kunci akses yang terkait dengannya. Sebagai gantinya, saat Anda mengambil peran, peran tersebut akan memberikan kredensial keamanan sementara untuk sesi peran.  
Peran dapat diasumsikan sebagai berikut:  
+ Pengguna IAM dalam hal yang sama Akun AWS atau lainnya Akun AWS
+ Peran IAM di akun yang sama
+ Prinsipal layanan, untuk digunakan dengan AWS layanan dan fitur seperti:
  + Layanan yang memungkinkan Anda menjalankan kode pada layanan komputasi, seperti Amazon EC2 atau AWS Lambda
  + Fitur yang melakukan tindakan ke sumber daya Anda atas nama Anda, seperti replikasi objek Amazon S3
  + Layanan yang memberikan kredensil keamanan sementara ke aplikasi Anda yang berjalan di luar AWS, seperti IAM Roles Anywhere atau Amazon ECS Anywhere
+ Pengguna eksternal yang diautentikasi oleh layanan penyedia identitas eksternal (IDP) yang kompatibel dengan SAMP 2.0 atau OpenID Connect

****AWS peran layanan****  
 Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 

****AWS peran terkait layanan****  
 Peran terkait layanan adalah jenis peran layanan yang ditautkan ke. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan.   
Jika Anda sudah menggunakan layanan ketika mulai mendukung peran yang terkait dengan layanan, Anda mungkin menerima email yang mengumumkan peran baru di akun Anda. Dalam hal ini, layanan secara otomatis membuat peran terkait layanan di akun Anda. Anda tidak perlu melakukan tindakan apa pun untuk mendukung peran ini, dan Anda tidak harus menghapusnya secara manual. Untuk informasi selengkapnya, lihat [Peran baru muncul di AWS akun saya](troubleshoot_roles.md#troubleshoot_roles_new-role-appeared).
Untuk informasi tentang layanan mana yang mendukung peran yang terkait dengan layanan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **di kolom **Peran Terkait-Layanan** Pilih **Ya** dengan tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut. Untuk informasi selengkapnya, lihat [Buat peran tertaut layanan](id_roles_create-service-linked-role.md).

****Rantai peran****  
Role chaining adalah ketika Anda menggunakan peran untuk mengambil peran kedua. Anda dapat melakukan role chaining melalui Konsol Manajemen AWS dengan mengganti role, the AWS CLI, atau API. Misalnya, `RoleA` memiliki izin untuk berasumsi`RoleB`. Anda dapat mengaktifkan User1 untuk berasumsi `RoleA` dengan menggunakan kredensi pengguna jangka panjang mereka dalam operasi API. AssumeRole Ini mengembalikan kredensi `RoleA` jangka pendek. Dengan rantai peran, Anda dapat menggunakan `RoleA` kredensi jangka pendek untuk mengaktifkan User1 berasumsi. `RoleB`  
Saat Anda mengambil peran, Anda dapat melewatkan tag sesi dan mengatur tag sebagai transitif. Tag sesi transitif diteruskan ke semua sesi berikutnya dalam rantai peran. Untuk mempelajari lebih lanjut tentang tag sesi, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).  
Rantai peran membatasi sesi peran Anda Konsol Manajemen AWS, AWS CLI atau AWS API hingga maksimal satu jam. Ini berlaku terlepas dari durasi sesi maksimum yang dikonfigurasi untuk peran individu. Saat Anda menggunakan operasi API [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) untuk mengambil peran, Anda dapat menentukan durasi sesi peran Anda dengan parameter `DurationSeconds`. Anda dapat menentukan nilai parameter hingga 43200 detik (12 jam), tergantung pada [pengaturan durasi sesi maksimum](id_roles_update-role-settings.md#id_roles_update-session-duration) untuk peran Anda. Akan tetapi, jika Anda berperan menggunakan rantai peran dan memberikan nilai parameter `DurationSeconds` lebih dari satu jam, operasi gagal.  
Untuk informasi tentang beralih ke peran di Konsol Manajemen AWS, lihat[Beralih dari pengguna ke peran IAM (konsol)](id_roles_use_switch-role-console.md).

****Delegasi****  
Pemberian izin kepada seseorang untuk memungkinkan akses ke sumber daya yang Anda kontrol. Delegasi melibatkan terbentuknya kepercayaan antara dua akun. Yang pertama adalah akun yang memiliki sumber daya (akun terpercaya). Kedua adalah akun yang berisi pengguna yang perlu mengakses sumber daya (akun tepercaya). Akun tepercaya dan dipercaya dapat merupakan salah satu dari berikut ini:  
+ Akun yang sama.
+ Pisahkan akun yang berada di bawah kendali organisasi Anda.
+ Dua akun yang dimiliki oleh organisasi yang berbeda.
Untuk mendelegasikan izin untuk mengakses sumber daya, Anda [membuat peran IAM](id_roles_create_for-user.md) di akun terpercaya yang memiliki dua kebijakan terlampir. *Kebijakan izin* memberikan izin yang diperlukan pengguna untuk melaksanakan tugas yang diinginkan pada sumber daya. *Kebijakan kepercayaan* menentukan anggota akun tepercaya mana yang diizinkan untuk menjalankan peran tersebut.  
Saat membuat kebijakan kepercayaan, Anda tidak dapat menentukan wildcard (\$1) sebagai bagian dari dan ARN di elemen utama. Kebijakan terpercaya ini dilampirkan pada peran dalam akun kepercayaan, dan merupakan setengah dari izin. Setengah lainnya adalah kebijakan izin yang melekat pada pengguna dalam akun tepercaya yang [memungkinkan pengguna untuk beralih, atau mengambil peran](id_roles_use_permissions-to-switch.md). Seorang pengguna yang mengambil peran secara sementara memberikan izinnya sendiri dan sebaliknya mengambil izin peran tersebut. Saat pengguna keluar, atau berhenti menggunakan peran tersebut, izin pengguna yang asli akan dipulihkan. Parameter tambahan yang disebut [ID eksternal](id_roles_common-scenarios_third-party.md#id_roles_third-party_external-id) membantu memastikan penggunaan peran aman antar akun yang tidak dikontrol oleh organisasi yang sama.

****Kebijakan kepercayaan****  
[Dokumen kebijakan JSON](reference_policies_grammar.md) yang Anda definisikan menjadi prinsip yang Anda *percaya* untuk mengambil peran tersebut. Kebijakan kepercayaan adalah [kebijakan berbasis sumber daya](access_policies.md#policies_resource-based) yang diperlukan yang melekat pada peran dalam IAM. [Prinsipal](reference_policies_elements_principal.md) yang dapat Anda sebutkan dalam kebijakan kepercayaan termasuk pengguna, peran, akun, dan layanan. Untuk informasi selengkapnya, lihat [Cara menggunakan kebijakan kepercayaan dalam peran IAM](https://aws.amazon.com/blogs//security/how-to-use-trust-policies-with-iam-roles/) di *Blog AWS Keamanan*.

****Peran untuk akses lintas akun****  
Peran yang memberikan akses ke sumber daya dalam satu akun ke prinsipal tepercaya dalam akun yang berbeda. Peran adalah cara utama untuk memberikan akses akun silang. Namun, beberapa AWS layanan memungkinkan Anda untuk melampirkan kebijakan secara langsung ke sumber daya (alih-alih menggunakan peran sebagai proxy). Ini disebut kebijakan berbasis sumber daya, dan Anda dapat menggunakannya untuk memberikan prinsipal di akses lain ke sumber daya. Akun AWS Beberapa sumber daya ini termasuk bucket Amazon Simple Storage Service (S3), Amazon Glacier vaults, Amazon Simple Notification Service (SNS) topik, dan Amazon Simple Queue Service (SQS) antrian. Untuk mempelajari layanan yang mendukung kebijakan berbasis sumber daya, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md). Untuk informasi selengkapnya tentang kebijakan berbasis sumber daya, lihat [Akses sumber daya lintas akun di IAM](access_policies-cross-account-resource-access.md).

## Sumber daya tambahan
<a name="id_roles_additional-resources"></a>

Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang terminologi IAM yang terkait dengan peran IAM.
+ **Prinsipal** adalah entitas AWS yang dapat melakukan tindakan dan mengakses sumber daya. Prinsipal dapat berupa Pengguna root akun AWS, pengguna IAM, atau peran. Prinsipal yang mewakili identitas suatu AWS layanan adalah [prinsipal layanan](reference_policies_elements_principal.md#principal-services). Gunakan elemen Utama dalam kebijakan kepercayaan peran untuk menentukan prinsip yang Anda percayai untuk mengambil peran tersebut.

   Untuk informasi lebih lanjut dan contoh prinsip yang dapat Anda izinkan untuk mengambil peran, lihat. [AWS Elemen kebijakan JSON: Principal](reference_policies_elements_principal.md) 
+ **Federasi identitas** menciptakan hubungan kepercayaan antara penyedia identitas eksternal dan AWS. Anda dapat menggunakan penyedia OpenID Connect (OIDC) atau Security Assertion Markup Language (SAM) 2.0 untuk mengelola siapa saja yang dapat mengakses sumber daya. AWS Saat Anda menggunakan OIDC dan SAFL 2.0 untuk mengonfigurasi hubungan kepercayaan antara penyedia identitas eksternal ini dan AWS , pengguna ditetapkan ke peran IAM. Pengguna juga menerima kredensial sementara yang mengizinkan pengguna mengakses sumber daya AWS Anda.

  Untuk informasi lebih lanjut tentang kepala sekolah federasi, lihat. [Penyedia identitas dan federasi ke AWS](id_roles_providers.md)
+ **Prinsipal federasi adalah identitas yang ada dari Directory Service, direktori pengguna perusahaan Anda, atau penyedia OIDC**. AWS memberikan peran kepada kepala sekolah federasi ketika akses diminta melalui penyedia [identitas](id_roles_providers.md).

  Untuk informasi lebih lanjut tentang kepala sekolah federasi SAMP dan OIDC, lihat. [Sesi dan peran pengguna gabungan](introduction_access-management.md#intro-access-roles)
+ **Kebijakan izin adalah kebijakan** berbasis identitas yang menentukan tindakan dan sumber daya apa yang dapat digunakan peran tersebut. Dokumen ini ditulis sesuai dengan aturan Bahasa kebijakan IAM. 

  Untuk informasi selengkapnya, lihat [Referensi kebijakan IAM JSON](reference_policies.md).
+ **Batas izin** adalah fitur lanjutan di mana Anda menggunakan kebijakan untuk membatasi izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas untuk peran. Anda tidak dapat menerapkan batas izin untuk peran yang terkait layanan.

  Lihat informasi yang lebih lengkap di [Batas izin untuk entitas IAM](access_policies_boundaries.md).

# Masalah confused deputy
<a name="confused-deputy"></a>

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Untuk mencegah hal ini, AWS sediakan alat yang membantu Anda melindungi akun Anda jika Anda memberi pihak ketiga (dikenal sebagai *lintas akun*) atau AWS layanan lain (dikenal sebagai *lintas layanan*) akses ke sumber daya di akun Anda.

Terkadang, Anda mungkin perlu memberi pihak ketiga akses ke AWS sumber daya Anda (akses delegasi). Misalnya, Anda memutuskan untuk menyewa perusahaan pihak ketiga bernama Example Corp untuk memantau Akun AWS dan membantu mengoptimalkan biaya. Untuk melacak pengeluaran harian Anda, Example Corp perlu mengakses AWS sumber daya Anda. Contoh Corp juga memantau banyak lainnya Akun AWS untuk pelanggan lain. Anda dapat menggunakan peran IAM untuk membangun hubungan tepercaya antara akun Anda Akun AWS dan akun Example Corp. Salah satu aspek penting dari skenario ini adalah *ID eksternal*, pengidentifikasi opsional yang dapat Anda gunakan dalam kebijakan kepercayaan peran IAM untuk menentukan siapa yang dapat mengambil peran tersebut. Fungsi utama dari ID eksternal adalah mengatasi dan mencegah masalah deputi yang membingungkan.

Beberapa AWS layanan (layanan panggilan) menggunakan prinsip AWS layanan mereka untuk mengakses AWS sumber daya dari AWS layanan lain (disebut layanan). Dalam beberapa interaksi layanan ini, Anda dapat mengonfigurasi layanan panggilan untuk berkomunikasi dengan sumber daya dari layanan yang disebut secara berbeda Akun AWS. Contohnya adalah mengonfigurasi AWS CloudTrail untuk menulis ke bucket Amazon S3 pusat yang terletak di bucket berbeda. Akun AWS Layanan panggilan, CloudTrail diberikan akses ke bucket S3 Anda menggunakan kebijakan bucket S3 dengan menambahkan pernyataan allow untuk. `cloudtrail.amazonaws.com`

Ketika kepala AWS layanan dari layanan panggilan mengakses sumber daya dari layanan yang disebut, kebijakan sumber daya dari layanan yang disebut hanya mengotorisasi kepala AWS layanan, dan bukan aktor yang mengkonfigurasi layanan panggilan. Misalnya, bucket S3 yang mempercayai prinsip CloudTrail layanan tanpa kondisi dapat menerima CloudTrail log dari Akun AWS yang dikonfigurasi oleh admin tepercaya, tetapi juga CloudTrail log dari aktor yang tidak sah di dalamnya Akun AWS, jika mereka mengetahui nama bucket S3.

Masalah wakil yang membingungkan muncul ketika seorang aktor menggunakan kepercayaan dari kepala layanan untuk mendapatkan akses ke sumber daya yang tidak dimaksudkan untuk mereka akses. AWS 

## Pencegahan wakil kebingungan lintas akun
<a name="mitigate-confused-deputy"></a>

Diagram berikut menggambarkan masalah wakil kebingungan lintas akun.

![\[Deskripsi masalah confused deputy.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/confuseddeputyproblem2.png)


Skenario ini mengasumsikan hal berikut:
+ **AWS 1** adalah Anda Akun AWS.
+ **AWS 1: ExampleRole** adalah peran dalam akun Anda. Kebijakan kepercayaan peran ini mempercayai Example Corp dengan menentukan akun AWS Example Corp sebagai akun yang dapat mengambil peran tersebut.

Inilah yang terjadi:

1. Saat Anda mulai menggunakan layanan Example Corp, Anda memberikan ARN **1ExampleRole: ke AWS Example** Corp.

1. Contoh Corp menggunakan peran ARN itu untuk mendapatkan kredensyal keamanan sementara untuk mengakses sumber daya di Anda. Akun AWS Dengan cara ini, Anda mempercayai Example Corp sebagai “deputi” yang dapat bertindak atas nama Anda.

1.  AWS Pelanggan lain juga mulai menggunakan layanan Example Corp, dan pelanggan ini juga menyediakan ARN **1ExampleRole: untuk AWS Example** Corp untuk digunakan. Agaknya pelanggan lain belajar atau menebak **AWS 1: ExampleRole**, yang bukan rahasia.

1. Ketika pelanggan lain meminta Example Corp untuk mengakses AWS sumber daya di (apa yang diklaimnya) akunnya, Example Corp menggunakan **AWS 1: ExampleRole** untuk mengakses sumber daya di akun Anda.

Inilah cara pelanggan lain bisa mendapatkan akses tanpa izin ke sumber daya Anda. Karena pelanggan lain mampu mengelabui Example Corp untuk melakukan tindakan di luar kesadaran pada sumber daya Anda, Example Corp kini adalah “confused deputy.”

Contoh Corp dapat mengatasi masalah wakil yang membingungkan dengan mengharuskan Anda memasukkan pemeriksaan `ExternalId` kondisi dalam kebijakan kepercayaan peran. Contoh Corp menghasilkan `ExternalId` nilai unik untuk setiap pelanggan dan menggunakan nilai itu dalam permintaannya untuk mengambil peran. `ExternalId`Nilai harus unik di antara pelanggan Example Corp dan dikendalikan oleh Example Corp, bukan pelanggannya. Inilah mengapa Anda mendapatkannya dari Example Corp dan Anda tidak membuatnya sendiri. Ini mencegah Example Corp menjadi wakil yang bingung dan memberikan akses ke sumber daya akun lain. AWS 

Dalam skenario kami, bayangkan pengenal unik Example Corp untuk Anda adalah 12345, dan pengenalnya untuk pelanggan lain adalah 67890. Pengidentifikasi ini disederhanakan untuk skenario ini. Umumnya, pengidentifikasi ini adalah GUIDs. Dengan asumsi pengidentifikasi ini bersifat unik di antara pelanggan Example Corp, mereka adalah nilai yang masuk akal untuk digunakan bagi ID eksternal. 

Contoh Corp memberikan nilai ID eksternal 12345 kepada Anda. Anda kemudian harus menambahkan elemen `Condition` ke kebijakan kepercayaan peran yang memerlukan nilai [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#condition-keys-sts](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#condition-keys-sts) 12345, seperti ini:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "AWS": "Example Corp's AWS Account ID"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringEquals": {
        "sts:ExternalId": "12345"
      }
    }
  }
}
```

------

Elemen Kondisi dalam kebijakan ini memungkinkan Example Corp untuk mengambil peran hanya jika panggilan AssumeRole API menyertakan nilai ID eksternal 12345. Contoh Corp memastikan bahwa setiap kali mengambil peran atas nama pelanggan, selalu menyertakan nilai ID eksternal pelanggan dalam panggilan. AssumeRole Bahkan jika pelanggan lain memasok Example Corp dengan ARN Anda, ia tidak dapat mengontrol ID eksternal yang disertakan Example Corp dalam permintaannya. AWS Hal ini membantu mencegah pelanggan yang tidak berwenang untuk mendapatkan akses ke sumber daya Anda.

Diagram berikut menggambarkannya.

![\[Cara memitigasi masalah confused deputy.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/confuseddeputymitigation2.png)


1. Seperti sebelumnya, ketika Anda mulai menggunakan layanan Example Corp, Anda memberikan ARN **1ExampleRole: ke AWS Example** Corp.

1.  Saat Example Corp menggunakan ARN peran itu untuk mengambil **AWS peran 1 ExampleRole**:, Example Corp menyertakan ID eksternal Anda (12345) dalam panggilan API. AssumeRole ID eksternal cocok dengan kebijakan kepercayaan peran, sehingga panggilan AssumeRole API berhasil dan Example Corp memperoleh kredensyal keamanan sementara untuk mengakses sumber daya di file Anda. Akun AWS

1.  AWS Pelanggan lain juga mulai menggunakan layanan Example Corp, dan seperti sebelumnya, pelanggan ini juga menyediakan ARN **1ExampleRole: untuk AWS Example** Corp untuk digunakan. 

1. Tapi kali ini, ketika Example Corp mencoba untuk mengambil peran **AWS 1: ExampleRole**, ia memberikan ID eksternal yang terkait dengan pelanggan lain (67890). Pelanggan lain tidak bisa mengubah ini. Contoh Corp melakukan ini karena permintaan untuk menggunakan peran berasal dari pelanggan lain, jadi 67890 menunjukkan keadaan di mana Example Corp bertindak. Karena Anda menambahkan kondisi dengan ID eksternal Anda sendiri (12345) ke kebijakan kepercayaan **AWS 1: ExampleRole**, panggilan AssumeRole API gagal. Pelanggan lain tidak bisa mendapatkan akses tanpa izin ke sumber daya dalam akun Anda (ditunjukkan oleh “X” merah di diagram).

ID eksternal membantu mencegah pelanggan lain menipu Example Corp agar tanpa disadari mengakses sumber daya Anda.

## Pencegahan "confused deputy" lintas layanan
<a name="cross-service-confused-deputy-prevention"></a>

Diagram berikut menunjukkan masalah wakil kebingungan lintas layanan menggunakan contoh interaksi Amazon S3 CloudTrail dan Amazon, di mana aktor yang tidak sah CloudTrail menulis log ke ember Amazon S3 yang tidak diizinkan untuk mereka akses.

![\[Aktor yang tidak sah diberikan akses ke bucket Amazon S3 di akun lain menggunakan prinsip layanan CloudTrail .\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/cross-service-confused-deputy1.png)


Untuk membantu melindungi dari aktor yang tidak berwenang dari menggunakan kepercayaan AWS kepala sekolah untuk mendapatkan akses ke sumber daya Anda, kepala AWS layanan menyertakan informasi tentang AWS sumber daya Akun AWS, dan AWS organisasi tempat mereka bertindak atas nama.

Informasi ini tersedia dalam nilai kunci kondisi global yang dapat digunakan dalam kebijakan sumber daya, atau kebijakan kontrol sumber daya untuk permintaan yang dibuat oleh prinsipal AWS layanan. Sebaiknya gunakan[aws:SourceArn](reference_policies_condition-keys.md#condition-keys-sourcearn), [aws:SourceAccount](reference_policies_condition-keys.md#condition-keys-sourceaccount)[aws:SourceOrgID](reference_policies_condition-keys.md#condition-keys-sourceorgid), atau [aws:SourceOrgPaths](reference_policies_condition-keys.md#condition-keys-sourceorgpaths) dalam kebijakan sumber daya Anda di mana pun kepala AWS layanan diberikan izin untuk mengakses salah satu sumber daya Anda. Kunci kondisi ini memungkinkan Anda untuk menguji kebijakan sumber daya Anda, atau kebijakan kontrol sumber daya yang dilakukan oleh prinsipal AWS layanan yang mengakses sumber daya Anda atas nama sumber AWS daya Akun AWS, atau yang Anda harapkan. AWS Organizations 
+ Gunakan `aws:SourceArn` untuk memungkinkan kepala AWS layanan mengakses sumber daya Anda atas nama sumber daya tertentu, seperti AWS CloudTrail jalur atau AppStream armada tertentu.
+ Gunakan `aws:SourceAccount` untuk memungkinkan kepala AWS layanan mengakses sumber daya Anda atas nama tertentu Akun AWS.
+ Gunakan `aws:SourceOrgID` untuk memungkinkan kepala AWS layanan mengakses sumber daya Anda atas nama tertentu AWS Organizations.
+ Gunakan `aws:SourceOrgPaths` untuk memungkinkan kepala AWS layanan mengakses sumber daya Anda atas nama AWS Organizations jalur tertentu.

Diagram berikut menunjukkan skenario wakil kebingungan lintas layanan ketika sumber daya dikonfigurasi dengan kunci konteks kondisi `aws:SourceAccount` global, dan aktor yang tidak sah dari akun lain mencoba mengakses AWS sumber daya yang tidak dimaksudkan untuk mereka akses.

![\[Aktor yang tidak sah ditolak akses ke bucket Amazon S3 di akun lain menggunakan prinsip layanan CloudTrail .\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/cross-service-confused-deputy2.png)


Menggunakan`aws:SourceArn`, `aws:SourceAccount``aws:SourceOrgID`, dan kunci kondisi `aws:SourceOrgPaths` global dalam kebijakan membantu Anda memastikan prinsip layanan mengakses sumber daya Anda atas nama Anda. Sebaiknya gunakan kunci kondisi ini setiap kali akses ke salah satu sumber daya Anda diberikan kepada prinsipal AWS layanan. 

**catatan**  
Beberapa Layanan AWS interaksi memiliki kontrol tambahan untuk membantu melindungi dari masalah wakil lintas layanan yang membingungkan yang menguji akses pengguna ke sumber daya. Misalnya, ketika hibah kunci KMS dikeluarkan untuk Layanan AWS, AWS KMS menggunakan konteks enkripsi yang terkait dengan sumber daya, dan hibah kunci untuk membantu melindungi dari masalah wakil lintas layanan yang membingungkan.  
Silakan lihat dokumentasi layanan yang Anda gunakan untuk informasi lebih lanjut tentang mekanisme khusus layanan yang dapat membantu menghindari risiko wakil lintas layanan yang membingungkan, dan apakah,`aws:SourceArn`, `aws:SourceAccount``aws:SourceOrgID`, dan `aws:SourceOrgPaths` didukung.

## Perlindungan wakil lintas layanan membingungkan dengan kebijakan berbasis sumber daya
<a name="cross-service-confused-deputy-prevention-resource"></a>

Contoh kebijakan berikut memberikan `cloudtrail.amazonaws.com` akses utama layanan ke bucket Amazon S3, arn:aws:s3: ::amzn-s3-demo-bucket1, hanya jika kepala layanan bertindak atas nama 111122223333. Akun AWS 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CloudTrailAclCheck",
            "Effect": "Allow",
            "Principal": {"Service": "cloudtrail.amazonaws.com"},
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        },
        {
            "Sid": "AWSCloudTrailWrite",
            "Effect": "Allow",
            "Principal": {"Service": "cloudtrail.amazonaws.com"},
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/[optionalPrefix]/Logs/myAccountID/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

Contoh kebijakan bucket ini memberikan `appstream.amazonaws.com` akses utama layanan ke skrip PowerShell examplefile.psh dalam s3://amzn-s3-demo-bucket2 hanya jika bertindak atas nama AppStream armada Amazon yang ditentukan, dengan menentukan armada arn dengan. `aws:SourceArn`

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket2/examplefile.psh",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:fleet/ExampleFleetName"
                } 
            }
        }
    ]
}
```

------

## Perlindungan wakil lintas layanan membingungkan dengan kebijakan kontrol sumber daya
<a name="cross-service-confused-deputy-prevention-resource-control"></a>

Anda dapat menggunakan kebijakan kontrol sumber daya (RCP) untuk menerapkan kontrol deputi lintas layanan yang membingungkan ke sumber daya yang didukung. Layanan AWS RCPs memungkinkan Anda untuk secara terpusat menerapkan kontrol wakil bingung lintas layanan pada sumber daya Anda. Anda dapat menggunakan kunci kondisi seperti `aws:SourceOrgId` dan `aws:SourceOrgPaths` dengan RCPs dilampirkan ke AWS Organizations, unit organisasi (OU) atau Akun AWS di organisasi Anda tanpa menambahkan pernyataan ke kebijakan berbasis sumber daya tertentu. Untuk informasi selengkapnya tentang RCPs dan layanan yang didukung, lihat [Kebijakan kontrol sumber daya (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) di *Panduan AWS Organizations Pengguna*.

Contoh berikut RCP menolak akses prinsipal AWS layanan ke bucket Amazon S3 di akun anggota Anda saat tidak sama dengan o-. `aws:SourceOrgID` ExampleOrg Izin yang sesuai harus ada dalam kebijakan berbasis sumber daya dari bucket S3 untuk mengizinkan Layanan AWS prinsipal yang sama dengan o-. `SourceOrgID` ExampleOrg

Kebijakan ini menerapkan kontrol hanya pada permintaan oleh service principals (`"Bool": {"aws:PrincipalIsAWSService": "true"}`) yang memiliki `aws:SourceAccount` key present (`"Null": {"aws:SourceAccount": "false"}`), sehingga integrasi layanan yang tidak memerlukan penggunaan kunci kondisi dan panggilan oleh prinsipal Anda tidak terpengaruh. Jika kunci `aws:SourceAccount` kondisi hadir dalam konteks permintaan, kondisi Null akan mengevaluasi ke true, `aws:SourceOrgID` menyebabkan diberlakukan. Kami menggunakan `aws:SourceAccount` bukan `aws:SourceOrgID` di operator kondisi Null sehingga kontrol masih berlaku jika permintaan berasal dari akun yang bukan milik organisasi.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RCPEnforceConfusedDeputyProtectionForS3",
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:SourceOrgID": "o-ExampleOrg"
        },
        "Null": {
          "aws:SourceAccount": "false"
        },
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    }
  ]
}
```

------

# Skenario umum untuk peran IAM
<a name="id_roles_common-scenarios"></a>

Seperti kebanyakan AWS fitur, Anda biasanya memiliki dua cara untuk menggunakan peran: interaktif di konsol IAM, atau secara terprogram dengan, Alat untuk Windows AWS CLI PowerShell, atau API.
+ Pengguna IAM di akun Anda dengan menggunakan konsol IAM dapat *beralih dari* peran ke sementara menggunakan izin peran di konsol. Pengguna menyerahkan izin mereka dan mengambil izin yang ditetapkan untuk peran tersebut. Saat pengguna keluar dari peran, izin asli mereka dipulihkan.
+ Aplikasi atau layanan yang ditawarkan oleh AWS (seperti Amazon EC2) dapat *mengambil* peran dengan meminta kredensil keamanan sementara untuk peran yang dapat digunakan untuk membuat permintaan terprogram. AWS Anda menggunakan peran dengan cara ini sehingga Anda tidak perlu berbagi atau mempertahankan kredensial keamanan jangka panjang (misalnya, dengan membuat pengguna IAM) untuk setiap entitas yang memerlukan akses ke sumber daya.

**catatan**  
Panduan ini menggunakan frasa *beralih ke peran* dan *memegang peran* secara bergantian.

Cara termudah untuk menggunakan peran adalah dengan memberikan izin kepada pengguna IAM Anda untuk beralih ke peran yang Anda buat dalam peran Anda sendiri atau yang lain. Akun AWS Mereka dapat dengan mudah beralih peran menggunakan konsol IAM untuk menggunakan izin yang biasanya tidak Anda inginkan, dan kemudian keluar dari peran tersebut untuk menyerahkan izin tersebut. Ini dapat membantu mencegah akses *yang tidak disengaja* atau modifikasi sumber daya sensitif.

Untuk penggunaan peran yang lebih kompleks, seperti memberikan akses ke aplikasi dan layanan, atau pengguna eksternal gabungan, Anda dapat menghubungi API `AssumeRole`. Panggilan API ini mengembalikan satu set kredensial sementara yang dapat digunakan aplikasi dalam panggilan API selanjutnya. Tindakan yang dicoba dengan kredensial sementara hanya memiliki izin yang diberikan oleh peran terkait. Sebuah aplikasi tidak harus "keluar" dari peran sebagaimana pengguna di konsol; melainkan aplikasi hanya berhenti menggunakan kredensial sementara dan melanjutkan melakukan panggilan dengan kredensial yang asli.

Pengguna gabungan masuk dengan menggunakan kredensil dari penyedia identitas (iDP). AWS kemudian memberikan kredensi sementara ke iDP tepercaya untuk diteruskan ke pengguna untuk disertakan dalam permintaan sumber daya berikutnya. AWS Kredensial tersebut memberikan izin yang diberikan kepada peran yang ditetapkan.

Bagian ini memberikan gambaran tentang skenario berikut:
+ [Menyediakan akses untuk pengguna IAM di salah satu Akun AWS yang Anda miliki untuk mengakses sumber daya di akun lain yang Anda miliki](id_roles_common-scenarios_aws-accounts.md)
+ [Menyediakan akses ke non beban AWS kerja](id_roles_common-scenarios_non-aws.md)
+ [Menyediakan akses ke pengguna IAM yang Akun AWS dimiliki oleh pihak ketiga](id_roles_common-scenarios_third-party.md)
+ [Menyediakan akses untuk layanan yang ditawarkan oleh AWS ke AWS sumber daya](id_roles_common-scenarios_services.md)
+ [Menyediakan akses untuk pengguna yang diautentikasi secara eksternal (federasi identitas)](id_roles_common-scenarios_federated-users.md)

# Akses untuk pengguna IAM di pengguna lain Akun AWS yang Anda miliki
<a name="id_roles_common-scenarios_aws-accounts"></a>

Anda dapat memberikan izin kepada pengguna IAM untuk beralih ke peran dalam peran Anda Akun AWS atau ke peran yang ditentukan di peran lain Akun AWS yang Anda miliki. 

**catatan**  
Jika Anda ingin memberikan akses ke akun yang tidak Anda miliki atau kontrol, lihat [Akses ke Akun AWS yang dimiliki oleh pihak ketiga](id_roles_common-scenarios_third-party.md) nanti dalam topik ini. 

Bayangkan Anda memiliki instans Amazon EC2 yang sangat penting terhadap organisasi Anda. Alih-alih secara langsung memberikan izin kepada pengguna Anda untuk menghentikan instans, Anda dapat membuat peran atas hak istimewa tersebut. Kemudian, izinkan administrator untuk beralih ke peran saat mereka perlu menghentikan suatu instans. Melakukan hal ini akan menambah lapisan perlindungan berikut ke kejadian:
+ Anda harus secara tegas memberikan izin kepada pengguna Anda untuk mengambil peran tersebut.
+ Pengguna Anda harus secara aktif beralih ke peran menggunakan Konsol Manajemen AWS atau mengambil peran menggunakan AWS API AWS CLI atau.
+ Anda dapat menambahkan perlindungan Multi-Factor Authentication (MFA) ke peran sehingga hanya pengguna yang masuk dengan perangkat MFA yang dapat memegang peran tersebut. Untuk mempelajari cara mengonfigurasi peran sehingga pengguna yang mengasumsikan peran tersebut harus diautentikasi terlebih dahulu menggunakan autentikasi Multi-Factor Authentication (MFA), lihat [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md).

Kami menyarankan menggunakan pendekatan ini untuk menegakkan *prinsip hak istimewa paling rendah*. Ini berarti membatasi penggunaan izin yang ditingkatkan hanya pada saat diperlukan untuk tugas tertentu. Dengan peran Anda dapat membantu mencegah perubahan yang tidak disengaja terhadap lingkungan yang sensitif, terutama jika Anda menggabungkannya dengan [audit](cloudtrail-integration.md) untuk membantu memastikan bahwa peran tersebut hanya digunakan saat diperlukan.

Saat Anda membuat peran untuk tujuan ini, Anda menetapkan akun berdasarkan ID yang penggunanya memerlukan akses dalam elemen `Principal` kebijakan kepercayaan peran. Kemudian, Anda dapat memberikan izin kepada pengguna tertentu dalam akun lain untuk beralih ke peran tersebut. Untuk mempelajari apakah prinsipal dalam akun di luar zona kepercayaan (organisasi atau akun terpercaya) memiliki akses untuk mengasumsikan peran Anda, lihat [Apa yang dimaksud dengan Penganalisis Akses IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

Pengguna dalam satu akun dapat beralih ke peran dalam akun yang sama atau berbeda. Saat menggunakan peran tersebut, pengguna hanya dapat melakukan tindakan dan mengakses sumber daya yang diizinkan dengan peran tersebut; izin pengguna yang asli ditangguhkan. Saat pengguna keluar dari peran, izin pengguna asli mereka dipulihkan.

## Contoh skenario menggunakan akun pengembangan dan produksi terpisah
<a name="id_roles_common-scenarios_aws-accounts-example"></a>

Bayangkan bahwa organisasi Anda memiliki banyak Akun AWS untuk mengisolasi lingkungan pengembangan dari lingkungan produksi. Pengguna di akun pengembangan mungkin kadang kala perlu mengakses sumber daya di akun produksi. Misalnya, Anda mungkin memerlukan akses akun silang saat mempromosikan pembaruan dari lingkungan pengembangan ke lingkungan produksi. Meskipun Anda dapat membuat identitas terpisah (dan kata sandi) untuk pengguna yang bekerja di kedua akun, mengelola kredensial untuk beberapa akun membuat manajemen identitas menjadi sulit. Dalam gambar berikut, semua pengguna dikelola dalam akun pengembangan, tetapi beberapa pengembang memerlukan akses terbatas ke akun produksi. Akun pengembangan memiliki dua grup: Penguji dan Developer, lalu setiap grup memiliki kebijakannya sendiri.

![\[Gunakan peran untuk izin delegasi kepada pengguna di akun yang berbeda\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/roles-usingroletodelegate.png)


1. Di akun produksi, administrator menggunakan IAM untuk membuat peran `UpdateApp` dalam akun tersebut. Dalam peran tersebut, administrator mendefinisikan kebijakan kepercayaan yang menentukan akun pengembangan sebagai `Principal`, yang berarti bahwa pengguna sah dari akun pengembangan dapat menggunakan peran `UpdateApp`. Administrator juga menetapkan kebijakan izin untuk peran yang menentukan izin baca dan tulis ke bucket Amazon S3 yang diberi nama. `productionapp`

   Kemudian, administrator membagikan informasi yang sesuai dengan siapa pun yang perlu menjalankan peran tersebut. Informasi tersebut adalah nomor akun dan nama peran (untuk pengguna AWS konsol) atau Nama Sumber Daya Amazon (ARN) (untuk AWS CLI atau akses AWS API). Peran ARN akan terlihat seperti `arn:aws:iam::123456789012:role/UpdateApp`, di mana peran diberi nama `UpdateApp` dan peran tersebut dibuat pada nomor akun 123456789012.
**catatan**  
Administrator secara opsional dapat mengonfigurasi peran sehingga pengguna yang menerima peran tersebut harus terlebih dahulu diautentikasi menggunakan Multi-Factor Authentication (MFA) Untuk informasi selengkapnya, lihat [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md). 

1. Dalam akun pengembangan, administrator memberi anggota grup Pengembang izin untuk beralih ke peran. Ini dilakukan dengan memberikan izin grup Pengembang untuk memanggil AWS Security Token Service (AWS STS) `AssumeRole` API untuk `UpdateApp` peran tersebut. Pengguna IAM mana pun yang termasuk dalam grup Pengembang di akun pengembangan sekarang dapat beralih ke peran `UpdateApp` dalam akun produksi. Pengguna lain yang tidak berada dalam grup developer tidak memiliki izin untuk beralih ke peran tersebut sehingga tidak dapat mengakses bucket S3 dalam akun produksi.

1. Pengguna meminta untuk beralih ke peran:
   + AWS konsol: Pengguna memilih nama akun di bilah navigasi dan memilih **Beralih** Peran. Pengguna menentukan ID akun (atau alias) dan nama peran. Atau, pengguna dapat mengklik tautan yang dikirim melalui email oleh administrator. Tautan tersebut membawa pengguna ke halaman **Beralih Peran** dengan detail yang sudah diisi.
   + AWS API/AWS CLI: Seorang pengguna dalam grup Pengembang dari akun pengembangan memanggil `AssumeRole` fungsi untuk mendapatkan kredensi untuk peran tersebut. `UpdateApp` Pengguna menentukan ARN dari peran `UpdateApp` sebagai bagian dari panggilan. Jika pengguna di grup Testers melakukan permintaan yang sama, permintaan tersebut gagal karena Penguji tidak memiliki izin untuk menelepon `AssumeRole` untuk peran `UpdateApp` ARN.

1. AWS STS mengembalikan kredensi sementara:
   + AWS console: AWS STS memverifikasi permintaan dengan kebijakan kepercayaan peran untuk memastikan bahwa permintaan tersebut berasal dari entitas tepercaya (yaitu: akun pengembangan). Setelah verifikasi, AWS STS mengembalikan [kredensi keamanan sementara](https://docs.aws.amazon.com/STS/latest/UsingSTS/Welcome.html) ke konsol. AWS 
   + API/CLI: AWS STS memverifikasi permintaan terhadap kebijakan kepercayaan peran untuk memastikan bahwa permintaan tersebut berasal dari entitas tepercaya (yaitu: akun Pengembangan). Setelah verifikasi, AWS STS mengembalikan [kredensi keamanan sementara](https://docs.aws.amazon.com/STS/latest/UsingSTS/Welcome.html) ke aplikasi.

1. Kredensi sementara memungkinkan akses ke sumber daya: AWS 
   + AWS konsol: AWS Konsol menggunakan kredensi sementara atas nama pengguna untuk semua tindakan konsol berikutnya, dalam hal ini, untuk membaca dan menulis ke bucket. `productionapp` Konsol tidak dapat mengakses sumber daya lain di akun produksi. Saat pengguna keluar dari peran, izin pengguna kembali ke izin awal yang ada sebelum beralih ke peran.
   + API?CLI: Aplikasi menggunakan kredensial keamanan sementara untuk memperbarui bucket `productionapp`. Dengan kredensial keamanan sementara, aplikasi hanya dapat membaca dari dan menulis ke bucket `productionapp` dan tidak dapat mengakses sumber daya lain dalam akun Produksi. Aplikasi tidak perlu keluar dari peran, tetapi berhenti menggunakan kredensial sementara dan menggunakan kredensial asli pada panggilan API selanjutnya.

## Sumber daya tambahan
<a name="id_roles_common-scenarios_more-info"></a>

Untuk informasi selengkapnya, lihat informasi berikut:
+ [Tutorial IAM: Delegasikan akses di seluruh AWS akun menggunakan peran IAM](tutorial_cross-account-with-roles.md)

# Akses untuk non beban AWS kerja
<a name="id_roles_common-scenarios_non-aws"></a>

[Peran IAM](id_roles.md) [adalah objek di AWS Identity and Access Management (IAM) yang diberi izin.](access_policies.md) Ketika Anda [mengasumsikan peran tersebut](id_roles_manage-assume.md) menggunakan identitas IAM atau identitas dari luar AWS, itu memberi Anda kredensi keamanan sementara untuk sesi peran Anda. Anda mungkin memiliki beban kerja yang berjalan di pusat data atau infrastruktur lain di luar AWS yang harus mengakses AWS sumber daya Anda. Alih-alih membuat, mendistribusikan, dan mengelola kunci akses jangka panjang, Anda dapat menggunakan AWS Identity and Access Management Roles Anywhere (IAM Roles Anywhere) untuk mengautentikasi non beban kerja Anda. AWS IAM Roles Anywhere menggunakan sertifikat X.509 dari otoritas sertifikat (CA) Anda untuk mengautentikasi identitas dan menyediakan akses dengan aman Layanan AWS dengan kredensi sementara yang disediakan oleh peran IAM.

**Untuk menggunakan Peran IAM Di Mana Saja**

1. Siapkan CA menggunakan [AWS Private Certificate Authority](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html)atau menggunakan CA dari infrastruktur PKI Anda sendiri.

1. Setelah menyiapkan CA, Anda membuat objek di IAM Roles Anywhere yang disebut *jangkar kepercayaan*. Anchor ini membangun kepercayaan antara IAM Roles Anywhere dan CA Anda untuk otentikasi.

1. Anda kemudian dapat mengonfigurasi peran IAM yang ada, atau membuat peran baru yang mempercayai layanan IAM Roles Anywhere.

1. Otentikasi non AWS beban kerja Anda dengan IAM Roles Anywhere menggunakan trust anchor. AWS memberikan kredensil sementara non AWS beban kerja ke peran IAM yang memiliki akses ke sumber daya Anda. AWS 

## Sumber daya tambahan
<a name="id_roles_non-aws_additional_resources"></a>

Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang menyediakan akses ke AWS non-beban kerja.
+ Untuk informasi selengkapnya tentang mengonfigurasi Peran IAM Di Mana Saja, lihat [Apa itu AWS Identity and Access Management Peran Di Mana Saja](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html) di Panduan Pengguna *IAM Roles Anywhere*.
+ *Untuk mempelajari cara menyiapkan infrastruktur kunci publik (PKI) untuk Peran IAM Di Mana Saja, lihat Peran [IAM Di Mana Saja dengan otoritas sertifikat eksternal di Blog](https://aws.amazon.com/blogs/) Keamanan.AWS *

# Akses ke Akun AWS yang dimiliki oleh pihak ketiga
<a name="id_roles_common-scenarios_third-party"></a>

Ketika pihak ketiga memerlukan akses ke AWS sumber daya organisasi Anda, Anda dapat menggunakan peran untuk mendelegasikan akses ke sumber daya organisasi Anda. Misalnya, pihak ketiga mungkin menyediakan layanan untuk mengelola sumber daya AWS Anda. Dengan peran IAM, Anda dapat memberikan pihak ketiga ini akses ke AWS sumber daya Anda tanpa membagikan kredensi AWS keamanan Anda. Sebaliknya, pihak ketiga dapat mengakses AWS sumber daya Anda dengan mengasumsikan peran yang Anda buat di situs Anda Akun AWS. Untuk mempelajari apakah prinsipal dalam akun di luar zona kepercayaan (organisasi atau akun terpercaya) memiliki akses untuk mengasumsikan peran Anda, lihat [Apa yang dimaksud dengan Penganalisis Akses IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

Pihak ketiga harus menyediakan Anda dengan informasi berikut untuk membuat peran yang dapat mereka tanggung:
+ ** Akun AWS ID pihak ketiga**. Anda menentukan Akun AWS ID mereka sebagai prinsipal saat Anda menentukan kebijakan kepercayaan untuk peran tersebut.
+ **ID eksternal untuk mengasosiasikan secara unik dengan peran.** ID eksternal dapat berupa pengenal apa pun yang hanya diketahui oleh Anda dan pihak ketiga. Misalnya, Anda dapat menggunakan ID faktur antara Anda dan pihak ketiga, tetapi tidak menggunakan sesuatu yang dapat ditebak, seperti nama atau nomor telepon pihak ketiga. Anda harus menentukan ID ini saat Anda menentukan kebijakan kepercayaan untuk peran tersebut. Pihak ketiga harus memberikan ID ini saat memegang peran tersebut.
+ **Izin yang diperlukan pihak ketiga untuk bekerja dengan AWS sumber daya Anda**. Anda harus menentukan izin ini saat menentukan kebijakan izin peran. Kebijakan ini menetapkan tindakan apa yang dapat mereka lakukan dan sumber daya apa yang dapat mereka akses.

Setelah Anda membuat peran tersebut, Anda harus memberikan peran Amazon Resource Name (ARN) tersebut kepada pihak ketiga. Mereka memerlukan ARN peran Anda untuk menjalankan peran tersebut.

**penting**  
Saat Anda memberi pihak ketiga akses ke AWS sumber daya Anda, mereka dapat mengakses sumber daya apa pun yang Anda tentukan dalam kebijakan. Penggunaan sumber daya Anda oleh mereka dibebankan kepada Anda. Pastikan bahwa Anda membatasi penggunaan sumber daya Anda dengan tepat.

## Eksternal IDs untuk akses pihak ketiga
<a name="id_roles_third-party_external-id"></a>

ID eksternal memungkinkan pengguna yang mengambil peran untuk menegaskan keadaan di mana mereka beroperasi. Itu ini juga memberikan cara bagi pemilik akun untuk mengizinkan peran tersebut untuk diasumsikan hanya dalam keadaan tertentu. Fungsi utama dari ID eksternal adalah untuk mengatasi dan mencegah[Masalah confused deputy](confused-deputy.md).

**penting**  
AWS tidak memperlakukan ID eksternal sebagai rahasia. Setelah Anda membuat rahasia seperti access key pair atau password di AWS, Anda tidak dapat melihatnya lagi. ID eksternal untuk peran dapat dilihat oleh siapa pun yang memiliki izin untuk melihat peran tersebut. 

## Kapan saya harus menggunakan ID eksternal?
<a name="external-id-use"></a>

Gunakan ID eksternal dalam situasi-situasi berikut:
+ Anda adalah Akun AWS pemilik dan Anda telah mengonfigurasi peran untuk pihak ketiga yang mengakses orang lain Akun AWS selain milik Anda. Anda harus meminta ID eksternal dari pihak ketiga yang disertakannya, ketika mereka mengasumsikan peran Anda. Kemudian Anda memeriksa ID eksternal tersebut dalam kebijakan kepercayaan peran Anda. Melakukannya memastikan bahwa pihak eksternal dapat mengasumsikan peran Anda hanya ketika bertindak atas nama Anda.
+ Anda berada dalam posisi mengasumsikan peran atas nama pelanggan yang berbeda seperti Example Corp dalam skenario kami sebelumnya. Anda harus menetapkan ID eksternal unik untuk setiap pelanggan dan menginstruksikan mereka untuk menambahkan ID eksternal ke kebijakan kepercayaan peran mereka. Kemudian Anda harus memastikan bahwa Anda selalu menyertakan ID eksternal yang benar dalam permintaan Anda untuk mengasumsikan peran.

  Anda mungkin sudah memiliki pengidentifikasi unik untuk setiap pelanggan Anda, dan ID unik ini cukup untuk digunakan sebagai ID eksternal. ID eksternal bukan merupakan nilai khusus yang Anda perlukan untuk membuat secara eksplisit, atau melacak secara terpisah, hanya untuk tujuan ini.

  Anda harus selalu menentukan ID eksternal dalam `AssumeRole` panggilan API Anda. Selain saat pelanggan memberi Anda ARN peran, uji apakah Anda dapat mengasumsikan peran tersebut baik dengan atau tanpa ID eksternal yang benar. Jika Anda dapat mengasumsikan peran tersebut tanpa ID eksternal yang benar, jangan menyimpan ARN peran pelanggan dalam sistem Anda. Tunggu hingga pelanggan Anda memperbarui kebijakan kepercayaan peran untuk meminta ID eksternal yang benar. Dengan cara ini, Anda membantu pelanggan Anda untuk melakukan hal yang benar, yang membantu Anda semua melindungi diri dari masalah confused deputy.

## Contoh skenario menggunakan ID eksternal
<a name="id_roles_third-party_example"></a>

Misalnya, katakanlah Anda memutuskan untuk menyewa perusahaan pihak ketiga bernama Example Corp untuk memantau Anda Akun AWS dan membantu mengoptimalkan biaya. Untuk melacak pengeluaran harian Anda, Example Corp perlu mengakses AWS sumber daya Anda. Example Corp juga memantau banyak akun AWS lain untuk nasabah lain.

Jangan berikan Example Corp akses ke pengguna IAM dan kredensialnya jangka panjangnya di akun Anda. AWS Sebaliknya, gunakan peran IAM dan kredensial keamanan sementaranya. Peran IAM menyediakan mekanisme untuk memungkinkan pihak ketiga mengakses AWS sumber daya Anda tanpa perlu berbagi kredensi jangka panjang (seperti kunci akses pengguna IAM).

Anda dapat menggunakan peran IAM untuk membangun hubungan tepercaya antara akun Anda Akun AWS dan akun Example Corp. Setelah hubungan ini terjalin, anggota akun Example Corp dapat memanggil AWS Security Token Service [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API untuk mendapatkan kredenal keamanan sementara. Anggota Example Corp kemudian dapat menggunakan kredensialnya untuk mengakses AWS sumber daya di akun Anda. 

**catatan**  
Untuk informasi selengkapnya tentang operasi AWS API lainnya yang dapat Anda hubungi untuk mendapatkan kredenal keamanan sementara, lihat. AssumeRole [Bandingkan AWS STS kredensialnya](id_credentials_sts-comparison.md)

Berikut rincian skenario ini secara lebih detail:

1. Anda merekrut Example Corp, sehingga mereka membuat pengenal pelanggan unik untuk Anda. Mereka memberi Anda ID pelanggan unik ini dan Akun AWS nomor mereka. Anda memerlukan informasi ini untuk membuat peran IAM pada langkah berikutnya. 
**catatan**  
Contoh Corp dapat menggunakan nilai string apa pun yang mereka inginkan untuk ExternalId, asalkan unik untuk setiap pelanggan. Itu dapat berupa nomor akun pelanggan atau bahkan string karakter acak, selama tidak ada dua pelanggan yang memiliki nilai yang sama. Itu tidak dimaksudkan untuk menjadi 'rahasia'. Contoh Corp harus memberikan ExternalId nilai kepada setiap pelanggan. Yang penting adalah bahwa itu harus dihasilkan oleh Example Corp dan ***bukan*** pelanggan mereka untuk memastikan setiap ID eksternal unik.

1. Anda masuk AWS dan membuat peran IAM yang memberi Example Corp akses ke sumber daya Anda. Seperti peran IAM lainnya, peran ini memiliki dua kebijakan, kebijakan izin, dan kebijakan kepercayaan. Kebijakan kepercayaan peran menentukan siapa yang dapat mengasumsikan peran tersebut. Dalam skenario sampel kami, kebijakan menentukan Akun AWS jumlah Example Corp sebagai. `Principal` Hal ini memungkinkan identitas dari akun tersebut untuk mengambil peran. Selain itu, Anda menambahkan elemen `[Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)` pada kebijakan kepercayaan. Ini `Condition` menguji `ExternalId` kunci konteks untuk memastikan bahwa itu sesuai dengan ID pelanggan unik dari Example Corp. Misalnya:

   ```
       "Principal": {"AWS": "Example Corp's Akun AWS ID"},
       "Condition": {"StringEquals": {"sts:ExternalId": "Unique ID Assigned by Example Corp"}}
   ```

1. Kebijakan izin untuk peran menentukan apa saja yang diperbolehkan oleh peran untuk dilakukan seseorang. Misalnya, Anda dapat menentukan bahwa peran tersebut dapat memperbolehkan seseorang untuk mengelola hanya sumber daya Amazon EC2 Amazon dan Amazon RDS Anda tetapi tidak dengan pengguna atau grup IAM Anda. Dalam skenario sampel kami, Anda menggunakan kebijakan izin untuk memberikan akses hanya-baca kepada Example Corp ke semua sumber daya dalam akun Anda.

1. Setelah Anda membuat peran tersebut, Anda menyediakan Amazon Resource Name (ARN) dari peran Anda kepada Example Corp.

1. Ketika Example Corp perlu mengakses AWS sumber daya Anda, seseorang dari perusahaan memanggil AWS `sts:AssumeRole` API. Panggilan tersebut mencakup ARN dari peran yang akan diasumsikan dan ExternalId parameter yang sesuai dengan ID pelanggan mereka.

Jika permintaan berasal dari seseorang yang menggunakan Example Corp Akun AWS, dan jika peran ARN dan ID eksternal sudah benar, permintaan berhasil. Ini kemudian memberikan kredensi keamanan sementara yang dapat digunakan Example Corp untuk mengakses AWS sumber daya yang diizinkan oleh peran Anda.

Dengan kata lain, ketika kebijakan peran mencakup ID eksternal, siapa pun yang ingin mengasumsikan peran tersebut haruslah prinsipal dalam peran tersebut dan harus menyertakan ID eksternal yang benar.

## Poin kunci untuk eksternal IDs
<a name="id_roles_third-party_key-points"></a>
+ Dalam lingkungan multi-tenant di mana Anda mendukung beberapa pelanggan dengan AWS akun yang berbeda, kami sarankan untuk menggunakan satu ID eksternal per. Akun AWS ID ini harus berupa string acak yang dihasilkan oleh pihak ketiga.
+ Untuk mewajibkan pihak ketiga untuk memberikan ID eksternal saat mengasumsikan peran, perbarui kebijakan kepercayaan peran tersebut dengan ID eksternal pilihan Anda.
+ Untuk memberikan ID eksternal saat Anda mengambil peran, gunakan AWS CLI atau AWS API untuk mengambil peran tersebut. Untuk informasi lebih lanjut, lihat operasi API STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html), atau operasi CLI STS [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html).
+ Nilai `ExternalId` harus memiliki minimal 2 karakter dan maksimal 1.224 karakter. Nilai harus berupa alfanumerik tanpa spasi. Alfanumerik dapat mencakup simbol berikut: plus (\$1), sama (=), koma (,), titik (.), di (@), titik dua (:), garis miring (/), dan tanda hubung (-).

## Sumber daya tambahan
<a name="id_roles_third-party_additional_resources"></a>

Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang menyediakan akses yang Akun AWS dimiliki oleh pihak ketiga.
+ Untuk mempelajari cara mengizinkan orang lain melakukan tindakan dalam diri Anda Akun AWS, lihat[Membuat peran menggunakan kebijakan kepercayaan khusus](id_roles_create_for-custom.md).
+ Untuk mempelajari cara memberikan izin untuk beralih ke peran, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md)
+ Untuk mempelajari cara membuat dan menyediakan kredensi keamanan sementara kepada pengguna tepercaya, [Izin untuk kredensial keamanan sementara](id_credentials_temp_control-access.md)

# Akses ke AWS layanan
<a name="id_roles_common-scenarios_services"></a>

Banyak AWS layanan mengharuskan Anda menggunakan peran untuk mengontrol apa yang dapat diakses oleh layanan tersebut. Peran yang diasumsikan layanan untuk melakukan tindakan atas nama Anda disebut [peran layanan](id_roles.md#iam-term-service-role). Ketika suatu peran melayani tujuan khusus untuk suatu layanan, itu dapat dikategorikan sebagai peran [terkait layanan](id_roles.md#iam-term-service-linked-role). Lihat [dokumentasi AWS](https://docs.aws.amazon.com/) untuk setiap layanan guna melihat apakah layanan menggunakan peran dan untuk pelajari cara menetapkan peran untuk digunakan layanan.

Untuk detail tentang membuat peran untuk mendelegasikan akses ke layanan yang ditawarkan oleh AWS, lihat[Membuat peran untuk mendelegasikan izin ke layanan AWS](id_roles_create_for-service.md).

# Akses ke pengguna yang diautentikasi secara eksternal (federasi identitas)
<a name="id_roles_common-scenarios_federated-users"></a>

Pengguna Anda mungkin sudah memiliki identitas di luar AWS, seperti di direktori perusahaan Anda. Jika pengguna tersebut perlu bekerja dengan AWS sumber daya (atau bekerja dengan aplikasi yang mengakses sumber daya tersebut), maka pengguna tersebut juga memerlukan AWS kredensil keamanan. Anda dapat menggunakan peran IAM untuk menentukan izin bagi pengguna yang identitasnya difederasi dari organisasi Anda atau penyedia identitas pihak ketiga (IdP).

**catatan**  
Sebagai praktik terbaik keamanan, kami sarankan Anda mengelola akses pengguna di [Pusat Identitas IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/what-is.html) dengan federasi identitas alih-alih membuat pengguna IAM. Untuk informasi tentang situasi tertentu di mana pengguna IAM diperlukan, lihat [Kapan membuat pengguna IAM (bukan peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose)).

## Pengguna federasi dari aplikasi seluler atau berbasis web dengan Amazon Cognito
<a name="id_roles_common-scenarios_federated-users-cognito"></a>

Jika Anda membuat aplikasi seluler atau berbasis web yang mengakses AWS sumber daya, aplikasi memerlukan kredensi keamanan untuk membuat permintaan terprogram. AWS Untuk sebagian besar skenario aplikasi seluler, kami menyarankan agar Anda menggunakan [Amazon Cognito](https://aws.amazon.com/cognito/). Anda dapat menggunakan layanan ini dengan SDK [AWS Seluler untuk iOS dan SDK Seluler untuk](https://aws.amazon.com/sdkforios/) [Android dan AWS Fire OS untuk membuat identitas unik bagi pengguna dan](https://aws.amazon.com/sdkforandroid/) mengautentikasi mereka untuk akses aman ke sumber daya Anda. AWS Amazon Cognito mendukung penyedia identitas yang sama seperti yang tercantum di bagian berikutnya, dan juga mendukung [identitas yang diautentikasi pengembang](https://aws.amazon.com/blogs/mobile/amazon-cognito-announcing-developer-authenticated-identities) dan akses (tamu) yang tidak terotentikasi. Amazon Cognito juga menyediakan operasi API untuk mensinkronisasi data pengguna sehingga data terjaga saat pengguna berpindah antar perangkat. Untuk informasi selengkapnya, lihat [Amazon Cognito untuk aplikasi seluler](id_federation_common_scenarios.md#id_roles_providers_oidc_cognito). 

## Menggabungkan pengguna dengan penyedia layanan identitas publik atau OpenID Connect
<a name="id_roles_common-scenarios_federated-users-openId"></a>

Bila memungkinkan, gunakan Amazon Cognito untuk skenario aplikasi berbasis web dan seluler. Amazon Cognito melakukan sebagian besar behind-the-scenes pekerjaan dengan layanan penyedia identitas publik untuk Anda. Ia bekerja dengan layanan pihak ketiga yang sama dan juga mendukung masuk secara anonim. Namun, untuk skenario yang lebih lanjut, Anda dapat bekerja secara langsung dengan layanan pihak ketiga seperti Login with Amazon, Facebook, Google, atau IdP yang kompatibel dengan OpenID Connect (OIDC). Untuk informasi selengkapnya tentang penggunaan federasi OIDC menggunakan salah satu layanan ini, lihat. [Federasi OIDC](id_roles_providers_oidc.md)

## Pengguna federasi dengan SAML 2.0
<a name="id_roles_common-scenarios_federated-users-saml20"></a>

Jika organisasi Anda sudah menggunakan paket perangkat lunak penyedia identitas yang mendukung SAMP 2.0 (Security Assertion Markup Language 2.0), Anda dapat membuat kepercayaan antara organisasi Anda sebagai penyedia identitas (iDP) dan sebagai penyedia layanan. AWS Anda kemudian dapat menggunakan SAMP untuk menyediakan pengguna Anda dengan federated single-sign on (SSO) ke Konsol Manajemen AWS atau akses federasi untuk memanggil operasi API. AWS Misalnya, jika perusahaan Anda menggunakan Microsoft Active Directory dan Active Directory Federation Services, maka Anda dapat melakukan federasi menggunakan SAML 2.0. Untuk informasi selengkapnya tentang pengguna federasi dengan SAML 2.0, lihat [Federasi SAMP 2.0](id_roles_providers_saml.md).

## Pengguna federasi dengan membuat aplikasi broker identitas khusus
<a name="id_roles_common-scenarios_federated-users-idbroker"></a>

Jika penyimpanan identitas tidak kompatibel dengan SAML 2.0, maka Anda dapat membuat aplikasi broker identitas khusus untuk melakukan fungsi yang serupa. Aplikasi broker mengotentikasi pengguna, meminta kredensi sementara untuk pengguna dari AWS, dan kemudian menyediakannya kepada pengguna untuk mengakses sumber daya. AWS 

Misalnya, Example Corp. memiliki banyak karyawan yang perlu menjalankan aplikasi internal yang mengakses AWS sumber daya perusahaan. Karyawan tersebut sudah memiliki identitas di sistem identitas dan autentikasi perusahaan, dan Example Corp. tidak ingin membuat pengguna IAM terpisah untuk setiap karyawan perusahaan.

Bob adalah pengembang di Example Corp. Untuk mengaktifkan aplikasi internal Example Corp untuk mengakses AWS sumber daya perusahaan, Bob mengembangkan aplikasi broker identitas kustom. Aplikasi memverifikasi bahwa karyawan dimasukkan ke dalam sistem identitas dan autentikasi Example Corp. yang ada, yang mungkin menggunakan LDAP, Active Directory, atau sistem lainnya. Aplikasi broker identitas kemudian mendapatkan kredensial keamanan sementara bagi karyawan. Skenario ini mirip dengan yang sebelumnya (aplikasi seluler yang menggunakan sistem otentikasi khusus), kecuali bahwa aplikasi yang membutuhkan akses ke AWS sumber daya semuanya berjalan dalam jaringan perusahaan, dan perusahaan memiliki sistem otentikasi yang ada.

Untuk mendapatkan kredensial keamanan sementara, aplikasi broker identitas menelepon `AssumeRole` atau `GetFederationToken` untuk memperoleh kredensial keamanan sementara, tergantung pada bagaimana Bob ingin mengelola kebijakan untuk pengguna dan kapan kredensial sementara harus kedaluwarsa. (Untuk informasi selengkapnya tentang perbedaan antara operasi API tersebut, lihat [Kredensial keamanan sementara di IAM](id_credentials_temp.md) dan [Izin untuk kredensial keamanan sementara](id_credentials_temp_control-access.md).) Panggilan mengembalikan kredensil keamanan sementara yang terdiri dari ID kunci AWS akses, kunci akses rahasia, dan token sesi. Aplikasi broker identitas membuat kredensial keamanan sementara ini tersedia bagi aplikasi internal perusahaan. Aplikasi kemudian dapat menggunakan kredensial sementara untuk membuat panggilan ke AWS secara langsung. Aplikasi menyimpan kredensial hingga kedaluwarsa, kemudian meminta set kredensial sementara yang baru. Gambar berikut mengilustrasikan skenario ini.

![\[Contoh alur kerja menggunakan aplikasi broker identitas khusus\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/enterprise-authentication-with-identity-broker-application.diagram.png)


Skenario ini memiliki atribut berikut:
+ Aplikasi pialang identitas memiliki izin untuk mengakses layanan token API (STS) IAM untuk membuat kredensial keamanan sementara.
+ Aplikasi pialang identitas dapat memverifikasi bahwa karyawan diautentikasi dengan sistem autentikasi yang sudah ada.
+ Pengguna bisa mendapatkan URL sementara yang memberi mereka akses ke Konsol AWS Manajemen (yang disebut sebagai sistem masuk tunggal).

Untuk informasi tentang membuat kredensial keamanan sementara, lihat [Bandingkan AWS STS kredensialnya](id_credentials_sts-comparison.md). Untuk informasi selengkapnya tentang prinsipal federasi SAMP yang mendapatkan akses ke Management Console, AWS lihat. [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md)

# Pembuatan peran IAM
<a name="id_roles_create"></a>

Untuk membuat peran, Anda dapat menggunakan Konsol Manajemen AWS, Tools for Windows PowerShell, atau IAM API. AWS CLI

Jika Anda menggunakan Konsol Manajemen AWS, wizard memandu Anda melalui langkah-langkah untuk membuat peran. Wizard memiliki langkah yang sedikit berbeda tergantung pada apakah Anda membuat peran untuk AWS layanan, untuk Akun AWS, atau untuk prinsipal federasi SAMP atau OIDC.

**Peran untuk pengguna IAM**  
Buat peran ini untuk mendelegasikan izin dalam peran Anda Akun AWS atau ke peran yang ditentukan di peran lain Akun AWS yang Anda miliki. Pengguna dalam satu akun dapat beralih ke peran dalam akun yang sama atau berbeda. Saat menggunakan peran tersebut, pengguna hanya dapat melakukan tindakan dan mengakses sumber daya yang diizinkan dengan peran tersebut; izin pengguna yang asli ditangguhkan. Saat pengguna keluar dari peran, izin pengguna asli mereka dipulihkan.

Untuk informasi selengkapnya, lihat [Buat peran untuk memberikan izin kepada pengguna IAM](id_roles_create_for-user.md).

Untuk informasi selengkapnya tentang membuat peran untuk akses lintas akun, lihat[Membuat peran menggunakan kebijakan kepercayaan khusus](id_roles_create_for-custom.md).

**Peran untuk AWS layanan**  
Buat peran ini untuk mendelegasikan izin ke layanan yang dapat melakukan tindakan atas nama Anda. [Peran layanan](id_roles.md#iam-term-service-role) yang Anda berikan ke layanan harus memiliki kebijakan IAM dengan izin yang memungkinkan layanan melakukan tindakan yang terkait dengan layanan tersebut. Izin yang berbeda diperlukan untuk setiap AWS layanan.

Untuk informasi selengkapnya tentang membuat peran layanan, lihat[Membuat peran untuk mendelegasikan izin ke layanan AWS](id_roles_create_for-service.md).

Untuk informasi selengkapnya tentang membuat peran terkait layanan, lihat. [Buat peran tertaut layanan](id_roles_create-service-linked-role.md)

**Peran untuk federasi identitas**  
Buat peran ini untuk mendelegasikan izin kepada pengguna yang sudah memiliki identitas di luar. AWS Saat Anda menggunakan penyedia identitas , Anda tidak perlu membuat kode masuk khusus atau mengelola identitas pengguna Anda sendiri. Pengguna eksternal Anda masuk melalui iDP, dan Anda dapat memberikan izin identitas eksternal tersebut untuk menggunakan AWS sumber daya di akun Anda. Penyedia identitas membantu menjaga keamanan AWS akun Anda karena Anda tidak perlu mendistribusikan atau menyematkan kredensi keamanan jangka panjang, seperti kunci akses, di aplikasi Anda.

Lihat informasi yang lebih lengkap di [Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md).

# Buat peran untuk memberikan izin kepada pengguna IAM
<a name="id_roles_create_for-user"></a>

Anda dapat menggunakan peran IAM untuk menyediakan akses ke AWS sumber daya Anda. Dengan peran IAM, Anda dapat membangun hubungan kepercayaan antara akun *kepercayaan* Anda dan akun AWS *tepercaya* lainnya. Akun trusting memiliki sumber daya yang akan diakses dan akun terpercaya berisi pengguna yang membutuhkan akses ke sumber daya. Namun, akun lain bisa saja memiliki sumber daya di akun Anda. Misalnya, akun kepercayaan mungkin mengizinkan akun tepercaya untuk membuat sumber daya baru, seperti membuat objek baru di bucket Amazon S3. Dalam hal ini, akun yang menciptakan sumber daya memiliki sumber daya dan mengendalikan siapa yang dapat mengakses sumber daya tersebut.

Setelah Anda membuat hubungan kepercayaan, pengguna IAM atau aplikasi dari akun tepercaya dapat menggunakan operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API AWS Security Token Service (AWS STS). Operasi ini menyediakan kredensi keamanan sementara yang memungkinkan akses ke AWS sumber daya di akun Anda.

Akun-akun tersebut dapat dikendalikan oleh Anda, atau akun dengan pengguna-pengguna dapat dikendalikan oleh pihak ketiga. Jika akun lain dengan pengguna adalah Akun AWS yang tidak Anda kendalikan, maka Anda dapat menggunakan `externalId` atribut tersebut. ID eksternal dapat berupa kata atau nomor apa pun yang disepakati antara Anda dan administrator akun pihak ketiga. Opsi ini secara otomatis menambahkan persyaratan kepada kebijakan kepercayaan yang memperbolehkan pengguna untuk mengasumsikan peran hanya jika permintaan mencakup `sts:ExternalID` yang benar. Untuk informasi selengkapnya, lihat [Akses ke Akun AWS yang dimiliki oleh pihak ketiga](id_roles_common-scenarios_third-party.md).

Untuk informasi tentang cara menggunakan peran untuk mendelegasikan izin, lihat [Istilah dan konsep peran](id_roles.md#id_roles_terms-and-concepts). Untuk informasi tentang menggunakan peran layanan untuk memperbolehkan layanan mengakses sumber daya di akun Anda, lihat [Membuat peran untuk mendelegasikan izin ke layanan AWS](id_roles_create_for-service.md).

## Membuat peran IAM (konsol)
<a name="roles-creatingrole-user-console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk membuat peran yang dapat diasumsikan oleh pengguna IAM. Misalnya, asumsikan bahwa organisasi Anda memiliki banyak Akun AWS untuk mengisolasi lingkungan pengembangan dari lingkungan produksi. Untuk informasi tingkat tinggi tentang membuat peran yang memungkinkan pengguna di akun pengembangan mengakses sumber daya di akun produksi, lihat[Contoh skenario menggunakan akun pengembangan dan produksi terpisah](id_roles_common-scenarios_aws-accounts.md#id_roles_common-scenarios_aws-accounts-example).

**Izin minimum**  
Untuk melakukan langkah-langkah berikut, Anda harus memiliki setidaknya izin IAM berikut:  
`access-analyzer:ValidatePolicy`
`iam:AttachRolePolicy`
`iam:CreatePolicy`
`iam:CreateRole`
`iam:GetAccountSummary`
`iam:GetPolicy`
`iam:GetPolicyVersion`
`iam:GetRole`
`iam:ListAccountAliases`
`iam:ListAttachedRolePolicies`
`iam:ListOpenIDConnectProviders`
`iam:ListPolicies`
`iam:ListRolePolicies`
`iam:ListRoles`
`iam:ListRoleTags`
`iam:ListSAMLProviders`

------
#### [ Console ]

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, pilih **Peran** dan kemudian pilih **Buat peran**.

1. Pilih tipe **Akun AWS**peran.

1. Untuk membuat peran untuk akun Anda, pilih **Akun ini**. Untuk membuat peran untuk akun lain, pilih **Lainnya Akun AWS** dan masukkan **ID Akun** yang ingin Anda berikan akses ke sumber daya Anda.

   Administrator akun yang ditentukan dapat memberikan izin untuk mengasumsikan peran ini kepada setiap pengguna IAM dalam akun tersebut. Untuk melakukannya, administrator melampirkan kebijakan kepada pengguna atau grup yang memberikan izin untuk tindakan `sts:AssumeRole`. Kebijakan tersebut harus menentukan ARN peran sebagai `Resource`. 

1. **Jika Anda memberikan izin kepada pengguna dari akun yang tidak Anda kendalikan, dan pengguna akan mengambil peran ini secara terprogram, pilih Memerlukan ID eksternal.** ID eksternal dapat berupa kata atau nomor apa pun yang disepakati antara Anda dan administrator akun pihak ketiga. Opsi ini secara otomatis menambahkan persyaratan kepada kebijakan kepercayaan yang memperbolehkan pengguna untuk mengasumsikan peran hanya jika permintaan mencakup `sts:ExternalID` yang benar. Untuk informasi selengkapnya, lihat [Akses ke Akun AWS yang dimiliki oleh pihak ketiga](id_roles_common-scenarios_third-party.md).
**penting**  
Memilih opsi ini membatasi akses ke peran hanya melalui AWS CLI, Alat untuk Windows PowerShell, atau AWS API. Ini karena Anda tidak dapat menggunakan AWS konsol untuk beralih ke peran yang memiliki `externalId` kondisi dalam kebijakan kepercayaannya. Namun, Anda dapat membuat jenis akses ini secara terprogram dengan menulis skrip atau aplikasi menggunakan SDK yang relevan. Untuk informasi lebih lanjut dan contoh skrip, lihat [Cara Mengaktifkan Akses Lintas Akun ke Konsol Manajemen AWS](https://aws.amazon.com/blogs/security/how-to-enable-cross-account-access-to-the-aws-management-console) dalam Blog Keamanan AWS .

1. Jika Anda ingin membatasi peran bagi pengguna yang masuk ke multi-factor authentication (MFA) (MFA), pilih **Memerlukan MFA**. Ini menambahkan persyaratan ke kebijakan kepercayaan peran yang memeriksa masuk MFA. Seorang pengguna yang ingin mengasumsikan peran tersebut harus masuk dengan kata sandi satu kali sementara dari perangkat MFA yang dikonfigurasi. Pengguna tanpa otentikasi MFA tidak dapat mengasumsikan peran tersebut. Untuk informasi lebih lanjut tentang MFA, lihat [AWS Otentikasi multi-faktor di IAM](id_credentials_mfa.md)

1. Pilih **Berikutnya**.

1. IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda. Pilih kebijakan yang akan digunakan untuk kebijakan izin atau pilih **Buat kebijakan** untuk membuka tab peramban baru dan membuat kebijakan baru dari awal. Untuk informasi selengkapnya, lihat [Membuat kebijakan IAM](access_policies_create-console.md#access_policies_create-start). Setelah Anda membuat kebijakan, tutup tab tersebut dan kembali ke tab asli Anda. Pilih kotak centang di samping kebijakan izin yang Anda inginkan bagi siapa saja yang mengambil peran tersebut. Jika Anda lebih suka, Anda boleh tidak memilih kebijakan saat ini, kemudian melampirkan kebijakan kepada peran di lain waktu. Secara default, peran tidak memiliki izin.

1. (Opsional) Tetapkan [batas izin](access_policies_boundaries.md). Ini adalah fitur lanjutan. 

   Buka bagian **Atur batasan izin** dan pilih **Gunakan batas izin untuk mengontrol izin peran maksimum**. Pilih kebijakan yang akan digunakan untuk batas izin.

1. Pilih **Berikutnya**.

1. Untuk **Nama peran**, masukkan nama peran Anda. Nama peran harus unik di dalam diri Anda Akun AWS. Bila nama peran digunakan dalam kebijakan atau sebagai bagian dari ARN, nama peran tersebut peka huruf besar/kecil. Saat nama peran muncul ke pelanggan di konsol, seperti selama proses masuk, nama peran tidak peka huruf besar/kecil. Karena berbagai entitas mungkin mereferensikan peran tersebut, Anda tidak dapat mengedit nama peran setelah peran tersebut dibuat.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran baru ini.

1. Pilih **Edit** di **Langkah 1: Pilih entitas tepercaya** atau **Langkah 2: Tambahkan bagian izin** untuk mengedit kasus penggunaan dan izin untuk peran tersebut. Anda akan dikembalikan ke halaman sebelumnya untuk melakukan pengeditan.

1. (Opsional) Tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang menggunakan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md).

1. Tinjau peran dan kemudian pilih **Buat peran**.
**penting**  
Ingatlah bahwa ini hanya setengah bagian pertama dari konfigurasi yang diperlukan. Anda juga harus memberikan izin kepada pengguna individu dalam akun terpercaya untuk beralih ke peran dalam konsol, atau mengasumsikan peran tersebut secara terprogram. Untuk informasi selengkapnya tentang langkah ini, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

------

## Membuat peran IAM ()AWS CLI
<a name="roles-creatingrole-user-cli"></a>

Membuat peran dari AWS CLI melibatkan beberapa langkah. Saat Anda menggunakan konsol untuk membuat peran, banyak langkah dilakukan untuk Anda, tetapi dengan itu AWS CLI Anda harus secara eksplisit melakukan setiap langkah sendiri. Anda harus membuat peran dan kemudian menetapkan kebijakan izin untuk peran tersebut. Atau, Anda juga dapat mengatur [batas izin](access_policies_boundaries.md) untuk peran Anda.

**Untuk membuat peran bagi akses lintas akun (AWS CLI)**

1. Buat peran: [aws iam create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)

1. Lampirkan kebijakan izin terkelola ke peran: [aws](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) iam attach-role-policy

    atau

   [Buat kebijakan izin sebaris untuk peran tersebut: aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

1. (Opsional) Tambahkan atribut khusus ke peran tersebut dengan melampirkan tag: [aws iam tag-role](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-role.html)

   Untuk informasi selengkapnya, lihat [Mengelola tag pada peran IAM (AWS CLI atau AWS API)](id_tags_roles.md#id_tags_roles_procs-cli-api).

1. [(Opsional) Tetapkan [batas izin](access_policies_boundaries.md) untuk peran: aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html)

   Batas izin mengontrol izin maksimum yang dapat dimiliki sebuah peran. Batas izin adalah AWS fitur lanjutan.

Contoh berikut menunjukkan dua langkah pertama, dan yang paling umum untuk membuat peran lintas akun dalam lingkungan sederhana. Contoh ini memungkinkan setiap pengguna dalam akun `123456789012` untuk mengasumsikan peran dan melihat `example_bucket` bucket Amazon S3. Contoh ini juga mengasumsikan bahwa Anda menggunakan komputer klien yang menjalankan Windows, dan telah mengonfigurasi antarmuka baris perintah Anda kredensial akun dan Wilayah Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi Antarmuka Baris AWS Perintah](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).

Dalam contoh ini, sertakan kebijakan kepercayaan berikut pada perintah pertama ketika Anda membuat peran tersebut. Kebijakan kepercayaan ini memperbolehkan pengguna dalam akun `123456789012` untuk mengasumsikan peran dengan menggunakan operasi `AssumeRole`, tetapi hanya jika pengguna memberikan otentikasi MFA dengan menggunakan parameter `SerialNumber` dan `TokenCode`. Untuk informasi lebih lanjut tentang MFA, lihat [AWS Otentikasi multi-faktor di IAM](id_credentials_mfa.md).

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

****  

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

------

**penting**  
Jika elemen `Principal` Anda memuat ARN untuk peran atau pengguna IAM tertentu, kemudian ARN diubah menjadi ID prinsipal unik saat kebijakan disimpan. Hal ini membantu memitigasi risiko seseorang meningkatkan izin mereka dengan menghapus dan membuat kembali peran atau pengguna. Anda biasanya tidak melihat ID ini di dalam konsol karena terdapat transformasi balik kembali ke ARN ketika kebijakan kepercayaan ditampilkan. Namun, jika Anda menghapus peran atau pengguna, maka ID utama muncul di konsol karena tidak AWS dapat lagi memetakannya kembali ke ARN. Oleh karena itu, jika Anda menghapus dan membuat ulang pengguna atau peran yang dirujuk di dalam elemen `Principal` kebijakan kepercayaan, Anda harus mengubah peran untuk mengganti ARN.

Saat menggunakan perintah kedua, Anda harus melampirkan kebijakan terkelola yang ada pada peran tersebut. Kebijakan izin berikut ini memperbolehkan siapa pun yang mengasumsikan peran untuk hanya melaksanakan tindakan `ListBucket` pada `example_bucket` bucket Amazon S3.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
          "Effect": "Allow",
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::example_bucket"
      }
  ]
}
```

------

Untuk membuat peran `Test-UserAccess-Role` ini, Anda harus terlebih dahulu menyimpan kebijakan kepercayaan sebelumnya dengan nama `trustpolicyforacct123456789012.json` ke folder `policies` di drive lokal `C:` Anda. Kemudian simpan kebijakan izin sebelumnya sebagai kebijakan terkelola pelanggan di nama `PolicyForRole` Anda Akun AWS . Kemudian Anda dapat menggunakan perintah berikut untuk membuat peran dan melampirkan kebijakan terkelola.

```
# Create the role and attach the trust policy file that allows users in the specified account to assume the role.
$ aws iam create-role --role-name Test-UserAccess-Role --assume-role-policy-document file://C:\policies\trustpolicyforacct123456789012.json

# Attach the permissions policy (in this example a managed policy) to the role to specify what it is allowed to do.
$ aws iam attach-role-policy --role-name Test-UserAccess-Role --policy-arn arn:aws:iam::123456789012:policy/PolicyForRole
```

**penting**  
Ingatlah bahwa ini hanya setengah bagian pertama dari konfigurasi yang diperlukan. Anda juga harus memberikan izin kepada pengguna individu dalam akun terpercaya untuk beralih ke peran. Untuk informasi selengkapnya tentang langkah ini, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

Setelah Anda membuat peran dan memberinya izin untuk melakukan AWS tugas atau mengakses AWS sumber daya, setiap pengguna di `123456789012` akun dapat mengambil peran tersebut. Untuk informasi selengkapnya, lihat [Beralih ke peran IAM ()AWS CLI](id_roles_use_switch-role-cli.md).

## Membuat peran IAM (AWS API)
<a name="roles-creatingrole-user-api"></a>

Membuat peran dari AWS API melibatkan beberapa langkah. Saat Anda menggunakan konsol untuk membuat peran, banyak langkah yang dilakukan untuk Anda, tetapi dengan API Anda harus melakukan setiap langkah sendiri secara eksplisit. Anda harus membuat peran dan kemudian menetapkan kebijakan izin untuk peran tersebut. Atau, Anda juga dapat mengatur [batas izin](access_policies_boundaries.md) untuk peran Anda.

**Untuk membuat peran dalam kode (AWS API)**

1. Buat peran: [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)

   Untuk kebijakan kepercayaan peran, Anda dapat menentukan lokasi file.

1. Lampirkan kebijakan izin terkelola pada peran: [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)

   atau

   Buat kebijakan izin inline untuk peran: [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)
**penting**  
Ingatlah bahwa ini hanya setengah bagian pertama dari konfigurasi yang diperlukan. Anda juga harus memberikan izin kepada pengguna individu dalam akun terpercaya untuk beralih ke peran. Untuk informasi selengkapnya tentang langkah ini, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

1. (Opsional) Tambahkan atribut khusus ke pengguna dengan melampirkan tag: [TagRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagRole.html)

   Untuk informasi selengkapnya, lihat [Mengelola tag pada pengguna IAM (AWS CLI atau AWS API)](id_tags_users.md#id_tags_users_procs-cli-api).

1. (Opsional) Tetapkan [batas izin](access_policies_boundaries.md) untuk peran tersebut: [PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html)

   Batas izin mengontrol izin maksimum yang dapat dimiliki sebuah peran. Batas izin adalah AWS fitur lanjutan.

Setelah Anda membuat peran dan memberinya izin untuk melakukan AWS tugas atau mengakses AWS sumber daya, Anda harus memberikan izin kepada pengguna di akun agar mereka dapat mengambil peran tersebut. Untuk informasi lebih lanjut tentang mengambil peran, lihat [Beralih ke peran IAM (AWS API)](id_roles_use_switch-role-api.md).

## Membuat peran IAM ()AWS CloudFormation
<a name="roles_creatingrole-user-cloudformation"></a>

Untuk informasi tentang membuat peran IAM AWS CloudFormation, lihat [referensi sumber daya dan properti](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) serta [contoh](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#aws-resource-iam-role--examples) di *Panduan AWS CloudFormation Pengguna*.

*Untuk informasi selengkapnya tentang template IAM di AWS CloudFormation, lihat [cuplikan AWS Identity and Access Management templat di Panduan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html) Pengguna.AWS CloudFormation *

# Membuat peran untuk mendelegasikan izin ke layanan AWS
<a name="id_roles_create_for-service"></a>

Banyak AWS layanan mengharuskan Anda menggunakan peran untuk memungkinkan layanan mengakses sumber daya di layanan lain atas nama Anda. Peran yang diasumsikan layanan untuk melakukan tindakan atas nama Anda disebut [peran layanan](id_roles.md#iam-term-service-role). Ketika suatu peran melayani tujuan khusus untuk suatu layanan, itu dikategorikan sebagai peran [terkait layanan](id_roles.md#iam-term-service-linked-role). Untuk melihat apa yang didukung layanan dengan menggunakan peran yang terkait dengan layanan, atau apakah layanan mendukung segala bentuk kredensial sementara, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md). Untuk mempelajari bagaimana layanan individu menggunakan peran, pilih nama layanan dalam tabel untuk melihat dokumentasi untuk layanan tersebut.

Saat menyetel `PassRole` izin, Anda harus memastikan bahwa pengguna tidak melewati peran di mana peran tersebut memiliki lebih banyak izin daripada yang Anda inginkan untuk dimiliki pengguna. Misalnya, Alice mungkin tidak diizinkan untuk melakukan tindakan Amazon S3 apa pun. Jika Alice dapat meneruskan peran ke layanan yang memungkinkan tindakan Amazon S3, layanan dapat melakukan tindakan Amazon S3 atas nama Alice saat menjalankan pekerjaan.

Untuk informasi tentang cara peran membantu Anda untuk mendelegasikan izin, lihat [Istilah dan konsep peran](id_roles.md#id_roles_terms-and-concepts).

## Izin peran layanan
<a name="id_roles_create_service-permissions"></a>

Anda harus mengonfigurasikan izin untuk memperbolehkan entitas IAM (pengguna atau peran) untuk membuat atau mengubah peran terkait layanan.

**catatan**  
ARN untuk peran terkait layanan mencakup prinsip layanan, yang ditunjukkan dalam kebijakan berikut sebagai. `SERVICE-NAME.amazonaws.com` Jangan mencoba menebak prinsip layanan, karena peka huruf besar/kecil dan formatnya dapat bervariasi antar AWS layanan. Untuk melihat prinsipal layanan untuk suatu layanan, lihat dokumentasi peran yang terkait dengan layanan.

**Untuk memungkinkan entitas IAM untuk membuat peran layanan tertentu**

Tambahkan kebijakan berikut ke entitas IAM yang perlu membuat peran layanan tersebut. Kebijakan ini memungkinkan Anda untuk membuat peran layanan untuk layanan tertentu dan dengan nama yang spesifik. Anda dapat melampirkan kebijakan terkelola atau inline pada peran tersebut. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME"
        }
    ]
}
```

------

**Untuk memungkinkan entitas IAM membuat peran layanan apa pun**

AWS merekomendasikan bahwa Anda hanya mengizinkan pengguna administratif untuk membuat peran layanan apa pun. Seseorang yang memiliki izin untuk membuat peran dan melampirkan kebijakan apa pun dapat meningkatkan izinnya sendiri. Sebagai gantinya, buat kebijakan yang memungkinkan mereka hanya membuat peran yang mereka butuhkan atau minta administrator membuat peran layanan atas nama mereka.

Untuk melampirkan kebijakan yang memungkinkan administrator mengakses seluruh kebijakan Anda Akun AWS, gunakan kebijakan [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess) AWS terkelola.

**Untuk mengizinkan entitas IAM mengedit peran layanan**

Tambahkan kebijakan berikut ke entitas IAM yang perlu mengubah peran layanan.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EditSpecificServiceRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:ListAttachedRolePolicies",
                "iam:ListRolePolicies",
                "iam:PutRolePolicy",
                "iam:UpdateRole",
                "iam:UpdateRoleDescription"
            ],
            "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME"
        },
        {
            "Sid": "ViewRolesAndPolicies",
            "Effect": "Allow",
            "Action": [
                "iam:GetPolicy",
                "iam:ListRoles"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**Untuk mengizinkan entitas IAM menghapus peran layanan tertentu**

Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menghapus peran layanan tertentu.

```
{
    "Effect": "Allow",
    "Action": "iam:DeleteRole",
    "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME"
}
```

**Untuk mengizinkan entitas IAM menghapus peran layanan apa pun**

AWS merekomendasikan bahwa Anda hanya mengizinkan pengguna administratif untuk menghapus peran layanan apa pun. Sebagai gantinya, buat kebijakan yang memungkinkan mereka menghapus hanya peran yang mereka butuhkan atau minta administrator menghapus peran layanan atas nama mereka.

Untuk melampirkan kebijakan yang memungkinkan administrator mengakses seluruh kebijakan Anda Akun AWS, gunakan kebijakan [AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess) AWS terkelola.

## Membuat peran untuk AWS layanan (konsol)
<a name="roles-creatingrole-service-console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk membuat peran untuk layanan. Karena beberapa layanan mendukung lebih dari satu peran layanan, lihat [dokumentasi AWS](https://docs.aws.amazon.com/) agar layanan Anda dapat melihat kasus penggunaan mana yang dapat dipilih. Anda dapat mempelajari cara menetapkan kebijakan kepercayaan dan izin yang diperlukan untuk peran tersebut sehingga layanan dapat mengasumsikan peran tersebut atas nama Anda. Langkah-langkah yang dapat Anda gunakan untuk mengontrol izin untuk peran Anda dapat bervariasi, tergantung pada bagaimana layanan mendefinisikan kasus penggunaan, dan apakah Anda membuat peran terkait layanan atau tidak.

------
#### [ Console ]

**Untuk membuat peran untuk Layanan AWS (konsol IAM)**

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 **Peran**, dan lalu pilih **Buat peran**.

1. Untuk **jenis entitas Tepercaya**, pilih **Layanan AWS**.

1. Untuk **kasus Layanan atau penggunaan**, pilih layanan, lalu pilih kasus penggunaan. Kasus penggunaan ditentukan oleh layanan untuk menyertakan kebijakan kepercayaan yang diperlukan layanan.

1. Pilih **Berikutnya**.

1. Untuk **kebijakan Izin**, opsi bergantung pada kasus penggunaan yang Anda pilih:
   + Jika layanan menentukan izin untuk peran tersebut, Anda tidak dapat memilih kebijakan izin.
   + Pilih dari serangkaian kebijakan izin terbatas.
   + Pilih dari semua kebijakan izin.
   + Pilih kebijakan tanpa izin, buat kebijakan setelah peran dibuat, lalu lampirkan kebijakan ke peran.

1. (Opsional) Tetapkan [batas izin](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Ini adalah fitur lanjutan yang tersedia untuk peran layanan, tetapi bukan peran tertaut layanan.

   1. Buka bagian **Setel batas izin**, lalu pilih **Gunakan batas izin untuk mengontrol izin peran maksimum**. 

      IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda.

   1. Pilih kebijakan yang akan digunakan untuk batas izin.

1. Pilih **Berikutnya**.

1. Untuk **nama Peran**, opsi bergantung pada layanan:
   + Jika layanan menentukan nama peran, Anda tidak dapat mengedit nama peran.
   + Jika layanan mendefinisikan awalan untuk nama peran, Anda dapat memasukkan akhiran opsional.
   + Jika layanan tidak menentukan nama peran, Anda dapat memberi nama peran.
**penting**  
Saat Anda memberi nama peran, perhatikan hal berikut:  
Nama peran harus unik di dalam diri Anda Akun AWS, dan tidak dapat dibuat unik berdasarkan kasus.  
Misalnya, jangan membuat peran bernama keduanya **PRODROLE** dan**prodrole**. Ketika nama peran digunakan dalam kebijakan atau sebagai bagian dari ARN, nama peran tersebut peka huruf besar/kecil, namun ketika nama peran muncul kepada pelanggan di konsol, seperti selama proses masuk, nama peran tersebut tidak peka huruf besar/kecil.
Anda tidak dapat mengedit nama peran setelah dibuat karena entitas lain mungkin mereferensikan peran tersebut.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran tersebut.

1. **(Opsional) Untuk mengedit kasus penggunaan dan izin untuk peran, di **Langkah 1: Pilih entitas tepercaya** atau **Langkah 2: Tambahkan izin**, pilih Edit.**

1. (Opsional) Untuk membantu mengidentifikasi, mengatur, atau mencari peran, tambahkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) di *Panduan Pengguna IAM*.

1. Tinjau peran lalu pilih **Buat peran**.

------

## Membuat peran untuk layanan (AWS CLI)
<a name="roles-creatingrole-service-cli"></a>

Membuat peran dari AWS CLI melibatkan beberapa langkah. Saat Anda menggunakan konsol untuk membuat peran, banyak langkah dilakukan untuk Anda, tetapi dengan itu AWS CLI Anda harus secara eksplisit melakukan setiap langkah sendiri. Anda harus membuat peran dan kemudian menetapkan kebijakan izin untuk peran tersebut. Jika layanan yang Anda gunakan untuk bekerja adalah Amazon EC2, maka Anda juga harus membuat profil instans dan menambahkan peran kepadanya. Atau, Anda juga dapat mengatur [batas izin](access_policies_boundaries.md) untuk peran Anda.

**Untuk membuat peran untuk AWS layanan dari AWS CLI**

1. `[create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)`Perintah berikut membuat peran bernama *Test-Role* dan melampirkan kebijakan kepercayaan padanya:

   `aws iam create-role --role-name Test-Role --assume-role-policy-document file://Test-Role-Trust-Policy.json`

1. Lampirkan kebijakan izin terkelola ke peran: [aws attach-role-policy iam](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html).

   Misalnya, `attach-role-policy` perintah berikut melampirkan kebijakan AWS terkelola yang dinamai `ReadOnlyAccess` ke peran IAM bernama: `ReadOnlyRole`

   `aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --role-name ReadOnlyRole`

    atau

   [Buat kebijakan izin sebaris untuk peran tersebut: aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

   Untuk menambahkan kebijakan izin sebaris, lihat contoh berikut:

    `aws iam put-role-policy --role-name Test-Role --policy-name ExamplePolicy --policy-document file://AdminPolicy.json`

1. (Opsional) Tambahkan atribut khusus ke peran tersebut dengan melampirkan tag: [aws iam tag-role](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-role.html)

   Untuk informasi selengkapnya, lihat [Mengelola tag pada peran IAM (AWS CLI atau AWS API)](id_tags_roles.md#id_tags_roles_procs-cli-api).

1. [(Opsional) Tetapkan [batas izin](access_policies_boundaries.md) untuk peran: aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html)

   Batas izin mengontrol izin maksimum yang dapat dimiliki sebuah peran. Batas izin adalah AWS fitur lanjutan.

Jika Anda akan menggunakan peran dengan Amazon EC2 atau AWS layanan lain yang menggunakan Amazon EC2, Anda harus menyimpan peran tersebut dalam profil instans. Profil instans adalah wadah untuk peran yang dapat dilampirkan ke instans Amazon EC2 saat diluncurkan. Profil instans hanya dapat berisi satu , dan batas tersebut tidak dapat ditingkatkan. Jika Anda membuat peran menggunakan Konsol Manajemen AWS, profil instance dibuat untuk Anda dengan nama yang sama dengan peran. Untuk informasi selengkapnya tentang profil instans, lihat [Gunakan profil contoh](id_roles_use_switch-role-ec2_instance-profiles.md). Untuk informasi tentang cara meluncurkan instans EC2 dengan peran, lihat [Mengontrol Akses ke Sumber Daya Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances) di Panduan Pengguna *Amazon EC2*.

**Untuk membuat profil instans dan menyimpan peran di dalamnya (AWS CLI)**

1. Buat profil instance: [aws iam create-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html)

1. Tambahkan peran ke profil instance: [aws iam add-role-to-instance](https://docs.aws.amazon.com/cli/latest/reference/iam/add-role-to-instance-profile.html) -profile

 AWS CLI Contoh perintah yang ditetapkan di bawah ini menunjukkan dua langkah pertama untuk membuat peran dan melampirkan izin. Itu juga menunjukkan dua langkah untuk membuat profil instans dan menambahkan peran ke profil. Contoh kebijakan kepercayaan ini memungkinkan layanan Amazon EC2 untuk mengambil peran dan melihat `example_bucket` bucket Amazon S3. Contoh ini juga mengasumsikan bahwa Anda sedang bekerja di komputer klien yang menjalankan Windows dan telah mengonfigurasi antarmuka baris perintah Anda dengan kredensial akun dan Wilayah Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi Antarmuka Baris AWS Perintah](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).

Dalam contoh ini, sertakan kebijakan kepercayaan berikut pada perintah pertama ketika Anda membuat peran tersebut. Kebijakan kepercayaan ini memungkinkan layanan Amazon EC2 untuk mengasumsikan peran. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Principal": {"Service": "ec2.amazonaws.com"},
    "Action": "sts:AssumeRole"
  }
}
```

------

Saat Anda menggunakan perintah kedua, Anda harus melampirkan kebijakan izin pada peran tersebut. Contoh kebijakan izin berikut memungkinkan peran untuk hanya mengasumsikan tindakan `ListBucket` pada `example_bucket` bucket Amazon S3.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::example_bucket"
  }
}
```

------

Untuk membuat peran ini `Test-Role-for-EC2`, Anda harus terlebih dahulu menyimpan kebijakan kepercayaan sebelumnya dengan nama `trustpolicyforec2.json` dan kebijakan izin sebelumnya dengan nama `permissionspolicyforec2.json` ke `policies` direktori di lokasi Anda `C:`. Anda dapat menggunakan perintah berikut untuk membuat peran, melampirkan kebijakan, membuat profil instans, dan menambahkan peran ke profil instans.

```
# Create the role and attach the trust policy that allows EC2 to assume this role.
$ aws iam create-role --role-name Test-Role-for-EC2 --assume-role-policy-document file://C:\policies\trustpolicyforec2.json

# Embed the permissions policy (in this example an inline policy) to the role to specify what it is allowed to do.
$ aws iam put-role-policy --role-name Test-Role-for-EC2 --policy-name Permissions-Policy-For-Ec2 --policy-document file://C:\policies\permissionspolicyforec2.json

# Create the instance profile required by EC2 to contain the role
$ aws iam create-instance-profile --instance-profile-name EC2-ListBucket-S3

# Finally, add the role to the instance profile
$ aws iam add-role-to-instance-profile --instance-profile-name EC2-ListBucket-S3 --role-name Test-Role-for-EC2
```

Saat meluncurkan instans EC2, tentukan nama profil instans di halaman **Konfigurasi Detail Instance** jika Anda menggunakan AWS konsol. Jika Anda menggunakan `aws ec2 run-instances` perintah CLI, tentukan `--iam-instance-profile` parameter.

## Membuat peran untuk layanan (AWS API)
<a name="roles-creatingrole-service-api"></a>

Membuat peran dari AWS API melibatkan beberapa langkah. Saat Anda menggunakan konsol untuk membuat peran, banyak langkah yang dilakukan untuk Anda, tetapi dengan API Anda harus melakukan setiap langkah sendiri secara eksplisit. Anda harus membuat peran dan kemudian menetapkan kebijakan izin untuk peran tersebut. Jika layanan yang Anda gunakan untuk bekerja adalah Amazon EC2, maka Anda juga harus membuat profil instans dan menambahkan peran kepadanya. Atau, Anda juga dapat mengatur [batas izin](access_policies_boundaries.md) untuk peran Anda.

**Untuk membuat peran untuk AWS layanan (AWS API)**

1. Buat peran: [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)

   Untuk kebijakan kepercayaan peran, Anda dapat menentukan lokasi file.

1. Lampirkan kebijakan izin terkelola pada peran: [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)

    atau

   Buat kebijakan izin inline untuk peran: [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)

1. (Opsional) Tambahkan atribut khusus ke pengguna dengan melampirkan tag: [TagRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagRole.html)

   Untuk informasi selengkapnya, lihat [Mengelola tag pada pengguna IAM (AWS CLI atau AWS API)](id_tags_users.md#id_tags_users_procs-cli-api).

1. (Opsional) Tetapkan [batas izin](access_policies_boundaries.md) untuk peran tersebut: [PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html)

   Batas izin mengontrol izin maksimum yang dapat dimiliki sebuah peran. Batas izin adalah AWS fitur lanjutan.

Jika Anda akan menggunakan peran dengan Amazon EC2 atau AWS layanan lain yang menggunakan Amazon EC2, Anda harus menyimpan peran tersebut dalam profil instans. Profil contoh adalah wadah untuk peran. Profil instans hanya dapat berisi satu peran, dan batas tersebut tidak dapat ditingkatkan. Jika Anda membuat peran di Konsol Manajemen AWS, profil instance dibuat untuk Anda dengan nama yang sama dengan peran. Untuk informasi selengkapnya tentang profil instans, lihat [Gunakan profil contoh](id_roles_use_switch-role-ec2_instance-profiles.md). Untuk informasi tentang cara meluncurkan instans Amazon EC2 dengan peran, lihat [Mengontrol Akses ke Sumber Daya Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances) di Panduan Pengguna Amazon *EC2*. 

**Untuk membuat profil instance dan menyimpan peran di dalamnya (AWS API)**

1. Buat profil instans: [CreateInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateInstanceProfile.html)

1. Tambahkan peran ke profil instans: [AddRoleToInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html)

# Buat peran tertaut layanan
<a name="id_roles_create-service-linked-role"></a>

Peran tertaut layanan adalah tipe unik peran IAM yang tertaut secara langsung dengan layanan AWS . Peran terkait layanan telah ditentukan sebelumnya oleh layanan dan mencakup semua izin yang diperlukan layanan untuk memanggil AWS layanan lain atas nama Anda. Layanan yang terhubung juga menentukan cara Anda membuat, memodifikasi, dan menghapus peran yang terkait dengan layanan. Layanan dapat secara otomatis membuat atau menghapus peran. Peran ini memungkinkan Anda membuat, memodifikasi, atau menghapus peran sebagai bagian dari wizard atau proses dalam layanan. Atau Anda harus menggunakan IAM untuk membuat atau menghapus peran tersebut. Terlepas dari metodenya, peran terkait layanan menyederhanakan proses penyiapan layanan karena Anda tidak perlu menambahkan izin secara manual untuk layanan untuk menyelesaikan tindakan atas nama Anda.

**catatan**  
Ingatlah bahwa peran layanan berbeda dari peran terkait layanan. Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. Peran terkait layanan adalah jenis peran layanan yang ditautkan ke. Layanan AWS Layanan tersebut dapat menjalankan peran untuk melakukan tindakan atas nama Anda. Peran terkait layanan muncul di Anda Akun AWS dan dimiliki oleh layanan. Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan. 

Layanan tertaut menentukan izin peran tertaut-layanannya, dan kecuali ditentukan lain, hanya layanan itu yang dapat mengambil peran tersebut. Izin yang ditentukan mencakup kebijakan kepercayaan dan kebijakan izin, serta bahwa kebijakan izin tidak dapat dilampirkan ke entitas IAM lainnya.

Sebelum Anda dapat menghapus peran, Anda harus terlebih dahulu menghapus sumber daya terkait mereka. Ini membantu mencegah Anda secara tidak sengaja menghapus izin untuk mengakses sumber daya. 

**Tip**  
Untuk informasi tentang layanan mana yang mendukung peran yang terkait dengan layanan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **di kolom **Peran Terkait-Layanan** Pilih **Ya** dengan tautan untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut.

## Izin peran terkait layanan
<a name="service-linked-role-permissions"></a>

Anda harus mengonfigurasi izin untuk entitas IAM (pengguna atau peran) untuk mengizinkan pengguna atau peran membuat atau mengedit peran tertaut-layanan.

**catatan**  
ARN untuk peran terkait layanan mencakup prinsipal layanan, yang ditunjukkan dalam kebijakan di bawah ini sebagai `SERVICE-NAME.amazonaws.com`. Jangan mencoba menebak prinsipal layanan, karena peka huruf besar/kecil dan formatnya dapat bervariasi antar AWS layanan. Untuk melihat prinsipal layanan untuk suatu layanan, lihat dokumentasi peran yang terkait dengan layanan.

**Untuk memungkinkan entitas IAM membuat peran terkait layanan tertentu**

Tambahkan kebijakan berikut ke entitas IAM yang perlu membuat peran tertaut-layanan.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*",
            "Condition": {"StringLike": {"iam:AWSServiceName": "SERVICE-NAME.amazonaws.com"}}
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*"
        }
    ]
}
```

------

**Untuk mengizinkan entitas IAM membuat peran terkait layanan apa pun**

Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu membuat peran tertaut-layanan, atau peran layanan apa pun yang menyertakan kebijakan yang diperlukan. Pernyataan kebijakan ini tidak mengizinkan entitas IAM untuk melampirkan kebijakan ke peran tersebut.

```
{
    "Effect": "Allow",
    "Action": "iam:CreateServiceLinkedRole",
    "Resource": "arn:aws:iam::*:role/aws-service-role/*"
}
```

**Untuk mengizinkan entitas IAM mengedit deskripsi peran layanan apa pun**

Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu mengedit deskripsi peran tertaut-layanan, atau peran layanan apa pun.

```
{
    "Effect": "Allow",
    "Action": "iam:UpdateRoleDescription",
    "Resource": "arn:aws:iam::*:role/aws-service-role/*"
}
```

**Untuk mengizinkan entitas IAM menghapus peran terkait layanan tertentu**

Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menghapus peran tertaut-layanan.

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*"
}
```

**Untuk mengizinkan entitas IAM menghapus peran terkait layanan**

Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menghapus peran tertaut-layanan, tetapi bukan peran layanan.

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/*"
}
```

**Untuk memungkinkan entitas IAM meneruskan peran yang ada ke layanan**

Beberapa AWS layanan memungkinkan Anda untuk meneruskan peran yang ada ke layanan, alih-alih membuat peran terkait layanan baru. Untuk melakukannya, pengguna harus memiliki izin untuk *melewati peran tersebut* dengan layanan tersebut. Tambahkan pernyataan berikut ini ke kebijakan izin untuk entitas IAM yang perlu meneruskan peran. Pernyataan kebijakan ini juga memungkinkan entitas untuk melihat daftar peran yang darinya mereka dapat memilih peran untuk diteruskan. Untuk informasi selengkapnya, lihat [Berikan izin pengguna untuk meneruskan peran ke layanan AWS](id_roles_use_passrole.md).

```
{
  "Sid": "PolicyStatementToAllowUserToListRoles",
  "Effect": "Allow",
  "Action": ["iam:ListRoles"],
  "Resource": "*"
},
{
  "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole",
  "Effect": "Allow",
  "Action": [ "iam:PassRole" ],
  "Resource": "arn:aws:iam::account-id:role/my-role-for-XYZ"
}
```

## Izin tidak langsung dengan peran terkait layanan
<a name="create-service-linked-role-permissions-transfer"></a>

Izin yang diberikan oleh peran terkait layanan dapat ditransfer secara tidak langsung ke pengguna dan peran lain. Ketika peran terkait layanan digunakan oleh AWS layanan, peran terkait layanan tersebut dapat menggunakan izinnya sendiri untuk memanggil layanan lain. AWS Ini berarti bahwa pengguna dan peran dengan izin untuk memanggil layanan yang menggunakan peran terkait layanan mungkin memiliki akses tidak langsung ke layanan yang dapat diakses oleh peran terkait layanan tersebut.

Misalnya, saat Anda membuat instans Amazon RDS DB, [peran terkait layanan untuk RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.ServiceLinkedRoles.html) secara otomatis dibuat jika belum ada. Peran terkait layanan ini memungkinkan RDS memanggil Amazon EC2, Amazon SNS, Amazon CloudWatch Logs, dan Amazon Kinesis atas nama Anda. Jika Anda mengizinkan pengguna dan peran di akun Anda untuk memodifikasi atau membuat database RDS, mereka mungkin dapat berinteraksi secara tidak langsung dengan Amazon EC2, Amazon SNS, log Amazon Logs, dan sumber daya CloudWatch Amazon Kinesis dengan memanggil RDS, karena RDS akan menggunakan peran terkait layanan untuk mengakses sumber daya tersebut.

### Metode untuk membuat peran terkait layanan
<a name="create-service-linked-role"></a>

Metode yang Anda gunakan untuk membuat peran terkait layanan tergantung pada layanannya. Dalam beberapa kasus, Anda tidak perlu membuat peran terkait layanan secara manual. Misalnya, ketika Anda menyelesaikan tindakan tertentu (seperti membuat sumber daya) dalam layanan, layanan tersebut mungkin membuat peran yang berkaitan dengan layanan bagi Anda. Atau jika Anda menggunakan layanan sebelum mulai mendukung peran tertaut-layanan, maka layanan tersebut mungkin secara otomatis membuat peran tersebut di akun Anda. Untuk mempelajari informasi selengkapnya, lihat [Peran baru muncul di AWS akun saya](troubleshoot_roles.md#troubleshoot_roles_new-role-appeared).

Dalam kasus lain, layanan mungkin mendukung pembuatan peran yang ditautkan ke layanan secara manual menggunakan konsol layanan, API, atau CLI. Untuk informasi tentang layanan mana yang mendukung peran yang terkait dengan layanan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **di kolom **Peran Terkait-Layanan** Untuk mempelajari apakah layanan mendukung pembuatan peran tertaut-layanan, pilih tautan **Ya** untuk melihat dokumentasi peran tertaut-layanan untuk layanan itu.

Jika layanan tidak mendukung pembuatan peran, maka Anda dapat menggunakan IAM untuk membuat peran yang terhubung dengan layanan.

**penting**  
Peran terkait layanan dihitung terhadap peran [IAM Anda dalam Akun AWS batas, tetapi jika Anda telah mencapai batas, Anda masih dapat membuat peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entities) terkait layanan di akun Anda. Hanya peran yang berkaitan dengan layanan yang dapat melebihi batas.

### Membuat peran terkait layanan (konsol)
<a name="create-service-linked-role-iam-console"></a>

Sebelum Anda membuat peran yang ditautkan ke layanan di IAM, cari tahu apakah layanan yang ditautkan secara otomatis membuat peran yang ditautkan ke layanan. Selain itu, pelajari apakah Anda dapat membuat peran dari konsol layanan, API, atau CLI.<a name="create-service-linked-role-iam-console"></a>

**Untuk membuat peran terkait layanan (konsol)**

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 **Peran**. Kemudian, pilih **Buat peran**.

1. Pilih jenis peran **AWS Layanan**.

1. Pilih kasus penggunaan untuk layanan Anda. Kasus penggunaan ditentukan oleh layanan untuk menyertakan kebijakan kepercayaan yang disyaratkan oleh layanan. Lalu, pilih **Selanjutnya**.

1. Pilih satu kebijakan izin atau lebih untuk dilampirkan ke peran tersebut. Bergantung pada kasus penggunaan yang Anda pilih, layanan mungkin melakukan salah satu hal berikut:
   + Tentukan izin yang digunakan oleh peran.
   + Memungkinkan Anda memilih dari serangkaian izin terbatas.
   + Memungkinkan Anda memilih dari izin apa pun.
   + Memungkinkan Anda memilih tidak ada kebijakan saat ini, membuat kebijakan nanti, lalu melampirkannya ke peran.

   **Pilih kotak centang di samping kebijakan yang menetapkan izin yang Anda inginkan untuk peran tersebut, lalu pilih Berikutnya.** 
**catatan**  
Izin yang Anda tentukan tersedia untuk setiap entitas yang menggunakan peran tersebut. Secara default, peran tidak memiliki izin.

1. Untuk **Nama peran**, tingkat penyesuaian nama peran ditentukan oleh layanan. Jika layanan mendefinisikan nama peran, maka opsi ini tidak dapat diedit. Dalam kasus lain, layanan mungkin menentukan awalan untuk peran dan memungkinkan Anda memasukkan akhiran opsional.

   Jika memungkinkan, masukkan akhiran nama peran untuk ditambahkan ke nama default. Akhiran ini membantu Anda mengidentifikasi tujuan peran ini. Nama peran harus unik di akun AWS Anda. Grup tidak dibedakan berdasarkan huruf besar-kecil. Misalnya, Anda tidak dapat membuat peran dengan nama **<service-linked-role-name>\$1SAMPLE** dan **<service-linked-role-name>\$1sample**. Anda tidak dapat mengubah nama peran setelah dibuat karena berbagai entitas mungkin mereferensikan peran tersebut.

1. (Opsional) Untuk **Deskripsi**, edit deskripsi untuk peran terkait layanan baru.

1. Anda tidak dapat melampirkan tag ke peran terkait layanan selama pembuatan. Untuk informasi selengkapnya tentang menggunakan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md).

1. Tinjau peran dan kemudian pilih **Buat peran**.

### Membuat peran terkait layanan (AWS CLI)
<a name="create-service-linked-role-iam-cli"></a>

Sebelum membuat peran terkait layanan di IAM, cari tahu apakah layanan tertaut secara otomatis membuat peran terkait layanan dan apakah Anda dapat membuat peran dari CLI layanan. Jika CLI layanan tidak didukung, Anda dapat menggunakan perintah IAM untuk membuat peran terkait layanan dengan kebijakan kepercayaan dan kebijakan sebaris yang diperlukan layanan untuk menjalankan peran tersebut.

**Untuk membuat peran terkait layanan ()AWS CLI**

Jalankan perintah berikut:

```
aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name SERVICE-NAME.amazonaws.com
```

### Membuat peran terkait layanan (API)AWS
<a name="create-service-linked-role-iam-api"></a>

Sebelum membuat peran terkait layanan di IAM, cari tahu apakah layanan tertaut secara otomatis membuat peran terkait layanan dan apakah Anda dapat membuat peran dari API layanan. Jika API layanan tidak didukung, Anda dapat menggunakan AWS API untuk membuat peran terkait layanan dengan kebijakan kepercayaan dan kebijakan sebaris yang diperlukan layanan untuk mengambil peran tersebut.

**Untuk membuat peran terkait layanan (API)AWS **

Gunakan panggilan API [CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html). Dalam permintaan, sebutkan nama layanan `SERVICE_NAME_URL.amazonaws.com`. 

Misalnya, untuk membuat peran terkait layanan **Lex Bots**, gunakan `lex.amazonaws.com`.

# Membuat peran untuk penyedia identitas pihak ketiga
<a name="id_roles_create_for-idp"></a>

Anda dapat menggunakan penyedia identitas alih-alih membuat pengguna IAM di situs Anda Akun AWS. Dengan penyedia identitas (iDP), Anda dapat mengelola identitas pengguna di luar AWS dan memberikan izin identitas pengguna eksternal ini untuk mengakses AWS sumber daya di akun Anda. Untuk informasi lebih lanjut tentang federasi dan penyedia identitas, lihat [Penyedia identitas dan federasi ke AWS](id_roles_providers.md).

## Membuat peran untuk prinsipal federasi OIDC dan SAMP (konsol)
<a name="roles-creatingrole-federated-users-console"></a>

Prosedur untuk membuat peran tergantung pada pilihan penyedia pihak ketiga Anda:
+ Untuk OpenID Connect (OIDC), lihat. [Buat peran untuk federasi OpenID Connect (konsol)](id_roles_create_for-idp_oidc.md)
+ Untuk SAML 2.0, lihat [Buat peran untuk federasi SAMP 2.0 (konsol)](id_roles_create_for-idp_saml.md).

## Membuat peran untuk akses gabungan (AWS CLI)
<a name="roles-creatingrole-identityprovider-cli"></a>

Langkah-langkah untuk membuat peran untuk penyedia identitas yang didukung (OIDC atau SAML) dari AWS CLI adalah identik. Perbedaannya ada dalam konten kebijakan kepercayaan yang Anda buat dalam langkah-langkah prasyarat. Mulai dengan mengikuti langkah-langkah dalam bagian **Prasyarat** untuk jenis penyedia yang Anda gunakan:
+ Untuk penyedia OIDC, lihat [Prasyarat untuk menciptakan peran untuk OIDC](id_roles_create_for-idp_oidc.md#idp_oidc_Prerequisites).
+ Untuk penyedia SAML, lihat [Prasyarat untuk membuat peran untuk SAML](id_roles_create_for-idp_saml.md#idp_saml_Prerequisites).

Membuat peran dari AWS CLI melibatkan beberapa langkah. Saat Anda menggunakan konsol untuk membuat peran, banyak langkah dilakukan untuk Anda, tetapi dengan itu AWS CLI Anda harus secara eksplisit melakukan setiap langkah sendiri. Anda harus membuat peran dan kemudian menetapkan kebijakan izin untuk peran tersebut. Atau, Anda juga dapat mengatur [batas izin](access_policies_boundaries.md) untuk peran Anda.

**Untuk membuat peran (AWS CLI)**

1. Buat peran: [aws iam create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)

1. Lampirkan kebijakan izin ke peran: [aws](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) iam attach-role-policy

    atau

   [Buat kebijakan izin sebaris untuk peran tersebut: aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

1. (Opsional) Tambahkan atribut khusus ke peran tersebut dengan melampirkan tag: [aws iam tag-role](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-role.html)

   Untuk informasi selengkapnya, lihat [Mengelola tag pada peran IAM (AWS CLI atau AWS API)](id_tags_roles.md#id_tags_roles_procs-cli-api).

1. [(Opsional) Tetapkan [batas izin](access_policies_boundaries.md) untuk peran: aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html)

   Batas izin mengontrol izin maksimum yang dapat dimiliki sebuah peran. Batas izin adalah AWS fitur lanjutan.

Contoh berikut menunjukkan dua langkah pertama, dan paling umum, untuk membuat peran penyedia identitas dalam lingkungan yang sederhana. Contoh ini memungkinkan setiap pengguna dalam akun `123456789012` untuk mengasumsikan peran dan melihat `example_bucket` bucket Amazon S3. Contoh ini juga mengasumsikan bahwa Anda menjalankan AWS CLI pada komputer yang menjalankan Windows, dan telah mengkonfigurasi AWS CLI dengan kredensi Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).

Contoh kebijakan kepercayaan berikut ini dirancang untuk aplikasi seluler jika pengguna masuk dengan menggunakan Amazon Cognito. Dalam contoh ini, *us-east:12345678-ffff-ffff-ffff-123456* mewakili ID kumpulan identitas yang ditetapkan oleh Amazon Cognito.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "RoleForCognito",
        "Effect": "Allow",
        "Principal": {"Federated": "cognito-identity.amazonaws.com"},
        "Action": "sts:AssumeRoleWithWebIdentity",
        "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}}
    }
}
```

------

Kebijakan izin berikut ini memperbolehkan siapa pun yang mengasumsikan peran untuk hanya melaksanakan tindakan `ListBucket` pada `example_bucket` bucket Amazon S3.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::example_bucket"
  }
}
```

------

Untuk membuat peran ini `Test-Cognito-Role`, Anda harus terlebih dahulu menyimpan kebijakan kepercayaan sebelumnya dengan nama `trustpolicyforcognitofederation.json` dan kebijakan izin sebelumnya dengan nama `permspolicyforcognitofederation.json` ke `policies` direktori di lokasi Anda `C:`. Kemudian Anda dapat menggunakan perintah berikut untuk membuat peran dan melampirkan kebijakan inline.

```
# Create the role and attach the trust policy that enables users in an account to assume the role.
$ aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json

# Attach the permissions policy to the role to specify what it is allowed to do.
aws iam put-role-policy --role-name Test-Cognito-Role --policy-name Perms-Policy-For-CognitoFederation --policy-document file://C:\policies\permspolicyforcognitofederation.json
```

## Membuat peran untuk akses federasi (AWS API)
<a name="roles-creatingrole-identityprovider-api"></a>

Langkah-langkah untuk membuat peran untuk penyedia identitas yang didukung (OIDC atau SAML) dari AWS CLI adalah identik. Perbedaannya ada dalam konten kebijakan kepercayaan yang Anda buat dalam langkah-langkah prasyarat. Mulai dengan mengikuti langkah-langkah dalam bagian **Prasyarat** untuk jenis penyedia yang Anda gunakan:
+ Untuk penyedia OIDC, lihat [Prasyarat untuk menciptakan peran untuk OIDC](id_roles_create_for-idp_oidc.md#idp_oidc_Prerequisites).
+ Untuk penyedia SAML, lihat [Prasyarat untuk membuat peran untuk SAML](id_roles_create_for-idp_saml.md#idp_saml_Prerequisites).

**Untuk membuat peran (AWS API)**

1. Buat peran: [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)

1. Lampirkan kebijakan izin pada peran: [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)

    atau

   Buat kebijakan izin inline untuk peran: [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)

1. (Opsional) Tambahkan atribut khusus ke pengguna dengan melampirkan tag: [TagRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagRole.html)

   Untuk informasi selengkapnya, lihat [Mengelola tag pada pengguna IAM (AWS CLI atau AWS API)](id_tags_users.md#id_tags_users_procs-cli-api).

1. (Opsional) Tetapkan [batas izin](access_policies_boundaries.md) untuk peran tersebut: [PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html)

   Batas izin mengontrol izin maksimum yang dapat dimiliki sebuah peran. Batas izin adalah AWS fitur lanjutan.

# Buat peran untuk federasi OpenID Connect (konsol)
<a name="id_roles_create_for-idp_oidc"></a>

Anda dapat menggunakan penyedia identitas federasi OpenID Connect (OIDC) alih-alih membuat pengguna di penyedia identitas Anda. AWS Identity and Access Management Akun AWS Dengan penyedia identitas (iDP), Anda dapat mengelola identitas pengguna di luar AWS dan memberikan izin identitas pengguna eksternal ini untuk mengakses AWS sumber daya di akun Anda. Untuk informasi lebih lanjut tentang federasi dan IdPs, lihat[Penyedia identitas dan federasi ke AWS](id_roles_providers.md).

## Prasyarat untuk menciptakan peran untuk OIDC
<a name="idp_oidc_Prerequisites"></a>

Sebelum Anda dapat membuat peran untuk federasi OIDC, Anda harus terlebih dahulu menyelesaikan langkah-langkah prasyarat berikut.<a name="oidc-prereqs"></a>

**Untuk mempersiapkan diri untuk menciptakan peran untuk federasi OIDC**

1. Daftar dengan satu atau lebih layanan yang menawarkan identitas OIDC federasi. Jika Anda membuat aplikasi yang memerlukan akses ke AWS sumber daya, Anda juga mengonfigurasi aplikasi dengan informasi penyedia. Saat melakukannya, penyedia memberi Anda aplikasi atau ID audiens yang unik untuk aplikasi Anda. (Penyedia berbeda menggunakan terminologi berbeda untuk proses ini. Panduan ini menggunakan istilah *konfigurasi* untuk proses mengidentifikasi aplikasi Anda dengan penyedia.) Anda dapat mengonfigurasi beberapa aplikasi dengan setiap penyedia, atau beberapa penyedia dengan satu aplikasi. Lihat informasi tentang penggunaan penyedia identitas sebagai berikut:
   + [Login dengan Amazon Developer Center](https://login.amazon.com/)
   + [Tambahkan Login Facebook ke Aplikasi atau Website Anda](https://developers.facebook.com/docs/facebook-login/v2.1) di situs pengembang Facebook.
   + [Menggunakan OAuth 2.0 untuk Login (OpenID Connect)](https://developers.google.com/accounts/docs/OAuth2Login) di situs pengembang Google.

1. <a name="idpoidcstep2"></a>Setelah Anda menerima informasi yang diperlukan dari iDP, buat iDP di IAM. Untuk informasi selengkapnya, lihat [Buat penyedia identitas OpenID Connect (OIDC) di IAM](id_roles_providers_create_oidc.md).
**penting**  
Jika Anda menggunakan IdP OIDC dari Google, Facebook, atau Amazon Cognito, jangan buat iDP IAM terpisah di file. Konsol Manajemen AWS Penyedia identitas OIDC ini sudah dibangun AWS dan tersedia untuk Anda gunakan. Lewati langkah ini dan buat peran baru menggunakan IDP Anda di langkah berikut.

1. Persiapkan kebijakan untuk peran yang akan diaambil oleh pengguna yang diotentikasi IdP. Sebagaimana peran apa pun, peran untuk aplikasi seluler mencakup dua kebijakan. Salah satunya adalah kebijakan kepercayaan yang menentukan siapa yang dapat mengasumsikan peran tersebut. Lainnya adalah kebijakan izin yang menentukan tindakan AWS dan sumber daya yang diperbolehkan atau ditolak untuk diakses aplikasi seluler.

   Untuk web IdPs, kami menyarankan Anda menggunakan [Amazon Cognito](https://aws.amazon.com/cognito/) untuk mengelola identitas. Dalam hal ini, gunakan kebijakan kepercayaan yang serupa dengan contoh ini.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Principal": {"Federated": "cognito-identity.amazonaws.com"},
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east-2:12345678-abcd-abcd-abcd-123456"},
               "ForAnyValue:StringLike": {"cognito-identity.amazonaws.com:amr": "unauthenticated"}
           }
       }
   }
   ```

------

   Ganti `us-east-2:12345678-abcd-abcd-abcd-123456` dengan ID kumpulan identitas yang diberikan Amazon Cognito kepada Anda.

   Jika Anda mengonfigurasi IdP OIDC secara manual, saat membuat kebijakan kepercayaan, Anda harus menggunakan tiga nilai yang memastikan bahwa hanya aplikasi yang dapat mengambil peran tersebut:
   + Untuk elemen `Action`, gunakan tindakan `sts:AssumeRoleWithWebIdentity`.
   + Untuk elemen `Principal`, gunakan string `{"Federated":providerUrl/providerArn}`.
     + Untuk beberapa OIDC umum IdPs, itu `providerUrl` adalah URL. Contoh berikut termasuk metode untuk menentukan prinsip untuk beberapa umum IdPs:

       `"Principal":{"Federated":"cognito-identity.amazonaws.com"}`

       `"Principal":{"Federated":"www.amazon.com"}`

       `"Principal":{"Federated":"graph.facebook.com"}`

       `"Principal":{"Federated":"accounts.google.com"}`
     + Untuk penyedia OIDC lainnya, gunakan Nama Sumber Daya Amazon (ARN) dari IDP OIDC yang Anda buat, seperti contoh berikut: [Step 2](#idpoidcstep2)

       `"Principal":{"Federated":"arn:aws:iam::123456789012:oidc-provider/server.example.com"}`
   + Untuk elemen `Condition` , gunakan syarat `StringEquals` untuk membatasi izin. Uji ID kumpulan identitas untuk Amazon Cognito) atau ID aplikasi untuk penyedia lain. ID kumpulan identitas harus sesuai dengan ID aplikasi yang Anda terima saat mengonfigurasi aplikasi dengan iDP. Pencocokan antara IDs memastikan bahwa permintaan berasal dari aplikasi Anda.
**catatan**  
Peran IAM untuk kumpulan identitas Amazon Cognito mempercayai `cognito-identity.amazonaws.com` kepala layanan untuk mengambil peran tersebut. Peran jenis ini harus mengandung setidaknya satu kunci kondisi untuk membatasi kepala sekolah yang dapat mengambil peran tersebut.  
Pertimbangan tambahan berlaku untuk kumpulan identitas Amazon Cognito yang mengambil peran IAM [lintas akun](access_policies-cross-account-resource-access.md). Kebijakan kepercayaan dari peran ini harus menerima prinsip `cognito-identity.amazonaws.com` layanan dan harus berisi kunci `aud` kondisi untuk membatasi asumsi peran bagi pengguna dari kumpulan identitas yang Anda inginkan. Kebijakan yang mempercayai kumpulan identitas Amazon Cognito tanpa kondisi ini menimbulkan risiko bahwa pengguna dari kumpulan identitas yang tidak diinginkan dapat mengambil peran tersebut. Untuk informasi selengkapnya, lihat [Kebijakan kepercayaan untuk peran IAM dalam autentikasi Dasar (Klasik) di Panduan](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#trust-policies) Pengembang *Amazon Cognito*.

     Buat elemen kondisi yang mirip dengan salah satu contoh berikut, tergantung pada idP yang Anda gunakan: 

     `"Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}}`

     `"Condition": {"StringEquals": {"www.amazon.com:app_id": "amzn1.application-oa2-123456"}}`

     `"Condition": {"StringEquals": {"graph.facebook.com:app_id": "111222333444555"}}`

     `"Condition": {"StringEquals": {"accounts.google.com:aud": "66677788899900pro0"}}`

     Untuk penyedia OIDC, gunakan URL IdP OIDC yang memenuhi syarat sepenuhnya dengan kunci konteks `aud`, seperti contoh berikut: 

     `"Condition": {"StringEquals": {"server.example.com:aud": "appid_from_oidc_idp"}}`
**catatan**  
Nilai-nilai untuk kepala sekolah dalam kebijakan kepercayaan untuk peran tersebut spesifik untuk IDP. Peran untuk OIDC hanya dapat menentukan satu prinsipal. Oleh karena itu, jika aplikasi seluler memungkinkan pengguna untuk masuk dari lebih dari satu iDP, buat peran terpisah untuk setiap IDP yang ingin Anda dukung. Buat kebijakan kepercayaan terpisah untuk setiap IDP.

   Jika pengguna menggunakan aplikasi seluler untuk masuk dari Login with Amazon, contoh kebijakan kepercayaan berikut akan berlaku. Dalam contoh, *amzn1.application-oa2-123456* mewakili ID aplikasi yang ditetapkan Amazon saat Anda mengonfigurasi aplikasi menggunakan Login with Amazon.

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

****  

   ```
   {
         "Version":"2012-10-17",		 	 	 
         "Statement": [{
             "Sid": "RoleForLoginWithAmazon",
             "Effect": "Allow",
             "Principal": {"Federated": "www.amazon.com"},
             "Action": "sts:AssumeRoleWithWebIdentity",
             "Condition": {"StringEquals": {"www.amazon.com:app_id": "amzn1.application-oa2-123456"}}
         }]
     }
   ```

------

   Jika pengguna menggunakan aplikasi seluler untuk masuk dari Facebook, contoh kebijakan kepercayaan berikut akan berlaku. Dalam contoh ini, *111222333444555* mewakili ID aplikasi yang ditetapkan Facebook.

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

****  

   ```
   {
         "Version":"2012-10-17",		 	 	 
         "Statement": [{
             "Sid": "RoleForFacebook",
             "Effect": "Allow",
             "Principal": {"Federated": "graph.facebook.com"},
             "Action": "sts:AssumeRoleWithWebIdentity",
             "Condition": {"StringEquals": {"graph.facebook.com:app_id": "111222333444555"}}
         }]
     }
   ```

------

   Jika pengguna menggunakan aplikasi seluler untuk masuk dari Google, contoh kebijakan kepercayaan berikut akan berlaku. Dalam contoh ini, *666777888999000* mewakili ID aplikasi yang ditetapkan Google.

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

****  

   ```
   {
         "Version":"2012-10-17",		 	 	 
         "Statement": [{
             "Sid": "RoleForGoogle",
             "Effect": "Allow",
             "Principal": {"Federated": "accounts.google.com"},
             "Action": "sts:AssumeRoleWithWebIdentity",
             "Condition": {"StringEquals": {"accounts.google.com:aud": "666777888999000"}}
         }]
     }
   ```

------

   Jika pengguna menggunakan aplikasi seluler untuk masuk dari Amazon Cognito, contoh kebijakan kepercayaan berikut akan berlaku. Dalam contoh ini, *us-east:12345678-ffff-ffff-ffff-123456* mewakili ID kumpulan identitas yang ditetapkan Amazon Cognito.

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

****  

   ```
   {
         "Version":"2012-10-17",		 	 	 
         "Statement": [{
             "Sid": "RoleForCognito",
             "Effect": "Allow",
             "Principal": {"Federated": "cognito-identity.amazonaws.com"},
             "Action": "sts:AssumeRoleWithWebIdentity",
             "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}}
         }]
     }
   ```

------

## Menciptakan peran untuk OIDC
<a name="idp_oidc_Create"></a>

Setelah Anda menyelesaikan prasyarat, Anda dapat membuat peran dalam IAM. *Untuk penyedia identitas OpenID Connect (OIDC) bersama yang diakui (IdPs), IAM memerlukan evaluasi eksplisit atas klaim spesifik dalam JSON Web Tokens () yang dikenal sebagai kontrol penyedia identitas. JWTs* Untuk informasi selengkapnya tentang OIDC mana yang IdPs memiliki kontrol penyedia *identitas*, lihat. [Kontrol penyedia identitas untuk penyedia OIDC bersama](id_roles_providers_oidc_secure-by-default.md)

Prosedur berikut menjelaskan cara membuat peran untuk federasi OIDC di. Konsol Manajemen AWS Untuk membuat peran dari AWS CLI atau AWS API, lihat prosedur di[Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md).

**penting**  
Jika Anda menggunakan Amazon Cognito, gunakan konsol Amazon Cognito untuk mengatur peran. Jika tidak, gunakan konsol IAM untuk membuat peran federasi OIDC.

**Untuk membuat peran IAM untuk federasi OIDC**

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

1. Pada panel navigasi, silakan pilih **Peran** lalu pilih **Buat peran**.

1. Pilih **identitas Web** sebagai jenis entitas tepercaya dan pilih **Berikutnya**.

1. Untuk **penyedia Identity**, pilih IDP untuk peran Anda: 
   + **Jika Anda ingin membuat peran untuk IDP web individual, pilih **Login with Amazon**, **Facebook**, atau Google.** 
**catatan**  
Anda harus membuat peran terpisah untuk setiap IDP yang ingin Anda dukung.
   + Jika Anda ingin membuat peran skenario lanjutan untuk Amazon Cognito, pilih Amazon **Cognito**. 
**catatan**  
Anda harus membuat peran secara manual untuk digunakan dengan Amazon Cognito hanya ketika Anda mengerjakan skenario lanjutan. Jika tidak, Amazon Cognito dapat membuat peran untuk Anda. *Untuk informasi selengkapnya tentang Amazon Cognito, lihat [Penyedia identitas eksternal kumpulan identitas (identitas gabungan)](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) di Panduan Pengembang Amazon Cognito.* 
   + Jika Anda ingin membuat peran untuk GitHub Tindakan, Anda harus mulai dengan menambahkan penyedia GitHub OIDC ke IAM. **Setelah Anda menambahkan penyedia GitHub OIDC ke IAM, pilih token.actions.githubusercontent.com.** 
**catatan**  
Untuk informasi tentang cara AWS mengonfigurasi penyedia OIDC trust GitHub sebagai identitas gabungan, lihat [GitHub Dokumen - Mengonfigurasi OpenID Connect di](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) Amazon Web Services. Untuk informasi tentang praktik terbaik untuk membatasi akses untuk peran yang terkait dengan IDP IAM GitHub untuk, [Mengkonfigurasi peran untuk penyedia identitas GitHub OIDC](#idp_oidc_Create_GitHub) lihat di halaman ini.
   + Jika Anda ingin membuat peran untuk HashiCorp Cloud Platform (HCP) Terraform, Anda harus mulai dengan menambahkan penyedia Terraform OIDC ke IAM. **Setelah Anda menambahkan penyedia Terraform OIDC ke IAM, pilih app.terraform.io.** 
**penting**  
Peran IAM untuk penyedia HashiCorp Cloud Platform (HCP) Terraform OIDC harus mengevaluasi kunci kondisi IAM,, `app.terraform.io:sub` dalam kebijakan kepercayaan peran. Kunci kondisi ini membatasi organisasi, proyek, ruang kerja, atau fase lari HCP Terraform yang dapat mengambil peran tersebut. Tanpa kunci kondisi ini, kebijakan kepercayaan Anda memberikan akses ke peran dan AWS sumber daya Anda dengan identitas di luar organisasi Anda, yang tidak sejalan dengan prinsip hak istimewa paling sedikit.   
Jika Anda menetapkan atau mengubah kebijakan kepercayaan peran untuk peran yang terkait dengan penyedia HCP Terraform OIDC di AWS akun Anda, tetapi tidak mengevaluasi kunci kondisi IAM`app.terraform.io:sub`, Anda akan menerima kesalahan. Selain itu, AWS STS akan menolak permintaan otorisasi jika kebijakan kepercayaan peran Anda tidak mengevaluasi kunci kondisi ini.

1. Informasi yang diminta bervariasi berdasarkan penyedia OIDC yang Anda pilih.
   + Masukkan pengenal untuk aplikasi Anda. Label pengenal berubah berdasarkan penyedia yang Anda pilih:
     + Jika Anda ingin membuat peran untuk Login with Amazon, masukkan ID aplikasi ke dalam kotak **ID Aplikasi**.
     + Jika Anda ingin membuat peran untuk Facebook, masukkan ID aplikasi ke dalam kotak **ID Aplikasi**.
     + Jika Anda ingin membuat peran untuk Google, masukkan nama audiens ke dalam kotak **Audiens**.
     + Jika Anda ingin membuat peran untuk Amazon Cognito, masukkan ID kumpulan identitas yang telah Anda buat untuk aplikasi Amazon Cognito ke dalam kotak ID Kumpulan **Identitas**.
   + Jika Anda ingin membuat peran untuk GitHub Tindakan, masukkan detail berikut:
     + Untuk **Audiens**, pilih `sts.amazonaws.com`.
     + Untuk **GitHub organisasi**, masukkan nama GitHub organisasi. Nama GitHub organisasi diperlukan dan harus alfanumerik termasuk tanda hubung (-). Anda tidak dapat menggunakan karakter wildcard (\$1 dan?) dalam nama GitHub organisasi.
     + (Opsional) Untuk **GitHub repositori**, masukkan nama GitHub repositori. Jika Anda tidak menentukan nilai, itu default ke wildcard (). `*`
     + (Opsional) Untuk **GitHub cabang**, masukkan nama GitHub cabang. Jika Anda tidak menentukan nilai, itu default ke wildcard (). `*`
   + Jika Anda ingin membuat peran untuk HashiCorp Cloud Platform (HCP) Terraform, masukkan detail berikut:
     + Untuk **Audiens**, pilih `aws.workload.identity`.
     + Untuk **Organisasi**, masukkan nama organisasi. Anda dapat menentukan karakter wildcard (`*`) untuk semua organisasi.
     + Untuk **Project**, masukkan nama proyek. Anda dapat menentukan karakter wildcard (`*`) untuk semua proyek.
     + Untuk **Workspace**, masukkan nama ruang kerja. Anda dapat menentukan karakter wildcard (`*`) untuk semua ruang kerja.
     + Untuk **Run Phase**, masukkan nama fase run. Anda dapat menentukan karakter wildcard (`*`) untuk semua fase run.

1. (Opsional) Untuk **Kondisi (opsional)**, pilih **Tambahkan Kondisi** untuk membuat kondisi tambahan yang harus dipenuhi sebelum pengguna aplikasi Anda dapat menggunakan izin yang diberikan peran. Misalnya, Anda dapat menambahkan kondisi yang memberikan akses ke AWS sumber daya hanya untuk ID pengguna IAM tertentu. Anda juga dapat menambahkan ketentuan ke kebijakan kepercayaan setelah peran dibuat. Untuk informasi selengkapnya, lihat [Memperbarui kebijakan kepercayaan peran](id_roles_update-role-trust-policy.md).

1. **Tinjau informasi OIDC Anda dan kemudian pilih Berikutnya.**

1. IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda. Pilih kebijakan yang akan digunakan untuk kebijakan izin, atau pilih **Buat kebijakan** untuk membuka tab browser baru dan membuat kebijakan baru dari awal. Untuk informasi selengkapnya, lihat [Membuat kebijakan IAM](access_policies_create-console.md#access_policies_create-start). Setelah Anda membuat kebijakan, tutup tab tersebut dan kembali ke tab asli Anda. Pilih kotak centang di samping kebijakan izin yang ingin dimiliki pengguna OIDC. Jika Anda lebih suka, Anda boleh tidak memilih kebijakan saat ini, kemudian melampirkan kebijakan kepada peran di lain waktu. Secara default, peran tidak memiliki izin.

1. (Opsional) Tetapkan [batas izin](access_policies_boundaries.md). Ini adalah fitur lanjutan.

   Buka bagian **batas izin dan pilih Gunakan batas** **izin untuk mengontrol izin peran maksimum**. Pilih kebijakan yang akan digunakan untuk batas izin.

1. Pilih **Berikutnya**.

1. Untuk **Nama peran**, masukkan nama peran. Nama peran harus unik di dalam diri Anda Akun AWS. Mereka tidak bergantung pada kasus. Misalnya, Anda tidak dapat membuat peran bernama keduanya **PRODROLE** dan**prodrole**. Karena AWS sumber daya lain mungkin mereferensikan peran, Anda tidak dapat mengedit nama peran setelah membuatnya.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran baru ini.

1. Untuk mengedit kasus penggunaan dan izin untuk peran, pilih **Edit** di **Langkah 1: Pilih entitas tepercaya** atau **Langkah 2: Tambahkan izin** bagian. 

1. (Opsional) Untuk menambahkan metadata ke peran, lampirkan tag sebagai pasangan kunci-nilai. Untuk informasi selengkapnya tentang menggunakan tanda di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md).

1. Tinjau peran, lalu pilih **Buat peran**.

## Mengkonfigurasi peran untuk penyedia identitas GitHub OIDC
<a name="idp_oidc_Create_GitHub"></a>

Jika Anda menggunakan GitHub sebagai penyedia identitas OpenID Connect (OIDC) (IDP), praktik terbaik adalah membatasi entitas yang dapat mengambil peran yang terkait dengan IDP IAM. Bila Anda menyertakan pernyataan kondisi dalam kebijakan kepercayaan, Anda dapat membatasi peran ke GitHub organisasi, repositori, atau cabang tertentu. Anda dapat menggunakan kunci kondisi `token.actions.githubusercontent.com:sub` dengan operator kondisi string untuk membatasi akses. Kami menyarankan Anda membatasi kondisi ke kumpulan repositori atau cabang tertentu dalam organisasi Anda GitHub . Untuk informasi tentang cara AWS mengonfigurasi OIDC trust GitHub sebagai identitas federasi, lihat [GitHub Dokumen - Mengonfigurasi OpenID Connect di](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) Amazon Web Services. 

Jika Anda menggunakan GitHub lingkungan dalam alur kerja tindakan atau dalam kebijakan OIDC, kami sangat menyarankan untuk menambahkan aturan perlindungan ke lingkungan untuk keamanan tambahan. Gunakan cabang dan tag penyebaran untuk membatasi cabang dan tag mana yang dapat diterapkan ke lingkungan. Untuk informasi selengkapnya tentang mengonfigurasi lingkungan dengan aturan perlindungan, lihat [Cabang dan tag penerapan](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-branches-and-tags) di GitHub artikel *Menggunakan lingkungan untuk penerapan*.

Kapan GitHub OIDC iDP adalah Principal tepercaya untuk peran Anda, IAM memeriksa kondisi kebijakan kepercayaan peran untuk memverifikasi bahwa kunci kondisi `token.actions.githubusercontent.com:sub` ada dan bahwa nilainya bukan semata-mata karakter wildcard (\$1 dan?) atau null. IAM melakukan pemeriksaan ini ketika kebijakan kepercayaan dibuat atau diperbarui. Jika kunci kondisi tidak `token.actions.githubusercontent.com:sub` ada, atau nilai kunci tidak memenuhi kriteria nilai yang disebutkan, permintaan akan gagal dan mengembalikan kesalahan.

**penting**  
Jika Anda tidak membatasi kunci kondisi `token.actions.githubusercontent.com:sub` untuk organisasi atau repositori tertentu, maka GitHub Tindakan dari organisasi atau repositori di luar kendali Anda dapat mengambil peran yang terkait dengan GitHub IDP IAM di akun Anda. AWS 

Contoh kebijakan kepercayaan berikut membatasi akses ke GitHub organisasi, repositori, dan cabang yang ditentukan. `token.actions.githubusercontent.com:sub`Nilai kunci kondisi dalam contoh berikut adalah format nilai subjek default yang didokumentasikan oleh GitHub.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::012345678910:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
          "token.actions.githubusercontent.com:sub": "repo:GitHubOrg/GitHubRepo:ref:refs/heads/GitHubBranch"
        }
      }
    }
  ]
}
```

------

Contoh kondisi berikut membatasi akses ke GitHub organisasi dan repositori yang ditentukan, tetapi memberikan akses ke cabang mana pun dalam repositori.

```
"Condition": {
  "StringEquals": {
          "token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
  },
  "StringLike": {    
    "token.actions.githubusercontent.com:sub": "repo:GitHubOrg/GitHubRepo:*"
  }
}
```

Contoh kondisi berikut membatasi akses ke repositori atau cabang apa pun dalam organisasi yang ditentukan GitHub . Kami menyarankan Anda membatasi kunci kondisi `token.actions.githubusercontent.com:sub` ke nilai tertentu yang membatasi akses ke GitHub Tindakan dari dalam GitHub organisasi Anda.

```
"Condition": {
  "StringEquals": {
          "token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
  },
  "StringLike": {    
    "token.actions.githubusercontent.com:sub": "repo:GitHubOrg/*"
  }
}
```

Untuk informasi selengkapnya tentang kunci federasi OIDC yang tersedia untuk pemeriksaan kondisi dalam kebijakan, lihat. [Kunci yang tersedia untuk AWS federasi OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif)

# Buat peran untuk federasi SAMP 2.0 (konsol)
<a name="id_roles_create_for-idp_saml"></a>

 Anda dapat menggunakan federasi SAMP 2.0 alih-alih membuat pengguna IAM di file Anda. Akun AWS Dengan penyedia identitas (iDP), Anda dapat mengelola identitas pengguna di luar AWS dan memberikan izin identitas pengguna eksternal ini untuk mengakses AWS sumber daya di akun Anda. Untuk informasi lebih lanjut tentang federasi dan penyedia identitas, lihat [Penyedia identitas dan federasi ke AWS](id_roles_providers.md).

**catatan**  
Untuk meningkatkan ketahanan federasi, kami menyarankan Anda mengonfigurasi IDP dan AWS federasi Anda untuk mendukung beberapa titik akhir masuk SAMP. Untuk detailnya, lihat artikel Blog AWS Keamanan [Cara menggunakan endpoint SAMP regional untuk](https://aws.amazon.com/blogs//security/how-to-use-regional-saml-endpoints-for-failover) failover.

## Prasyarat untuk membuat peran untuk SAML
<a name="idp_saml_Prerequisites"></a>

Sebelum Anda dapat membuat peran untuk federasi SAMP 2.0, Anda harus terlebih dahulu menyelesaikan langkah-langkah prasyarat berikut.<a name="saml-prereqs"></a>

**Untuk mempersiapkan pembuatan peran federasi SAML 2.0**

1. <a name="idpsamlstep1"></a>Sebelum Anda membuat peran untuk federasi berbasis SAML, Anda harus membuat penyedia SAML di IAM. Untuk informasi selengkapnya, lihat [Buat penyedia identitas SAMP di IAM](id_roles_providers_create_saml.md).

1. Persiapkan kebijakan untuk peran yang akan diasumsikan oleh pengguna yang diotentikasi–SAML 2.0. Sebagaimana peran apa pun, peran untuk federasi SAML mencakup dua kebijakan. Salah satunya adalah kebijakan kepercayaan peran yang dapat mengasumsikan peran. Yang lainnya adalah kebijakan izin IAM yang menentukan AWS tindakan dan sumber daya yang diizinkan atau ditolak aksesnya oleh prinsipal federasi SAMP.

   Ketika Anda membuat kebijakan kepercayaan untuk peran Anda, Anda harus menggunakan tiga nilai untuk memastikan bahwa hanya aplikasi Anda yang dapat mengambil peran:
   + Untuk elemen `Action`, gunakan tindakan `sts:AssumeRoleWithSAML`.
   + Untuk elemen `Principal`, gunakan string `{"Federated":ARNofIdentityProvider}`. Mengganti `ARNofIdentityProvider` dengan ARN [penyedia identitas SAML](id_roles_providers_saml.md) yang Anda buat di [Step 1](#idpsamlstep1).
   + Untuk `Condition` elemen, gunakan `StringEquals` kondisi untuk menguji apakah `saml:aud` atribut dari respons SAMP cocok dengan URL yang ditampilkan browser Anda saat masuk ke konsol. URL titik akhir masuk ini adalah atribut penerima SAMP penyedia identitas Anda. Anda dapat menyertakan login URLs dalam wilayah tertentu. AWS merekomendasikan penggunaan titik akhir Regional alih-alih titik akhir global untuk meningkatkan ketahanan federasi. Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html).

     Jika enkripsi SAMP diperlukan, URL masuk harus menyertakan pengenal unik yang ditetapkan ke penyedia AWS SAMP Anda. Anda dapat melihat pengenal unik dengan memilih penyedia identitas di konsol IAM untuk menampilkan halaman detail.

     `https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID`

   Contoh kebijakan kepercayaan berikut ini dirancang untuk pengguna federasi SAML:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRoleWithSAML",
           "Principal": {
               "Federated": "arn:aws:iam::111122223333:saml-provider/PROVIDER-NAME"
           },
           "Condition": {
               "StringEquals": {
                   "SAML:aud": "https://region-code.signin.aws.amazon.com/saml"
               }
           }
       }
   }
   ```

------

   Ganti ARN prinsipal dengan ARN aktual untuk penyedia SAML yang Anda buat di IAM. Itu akan memiliki ID akun dan nama penyedia Anda sendiri. 

## Membuat peran untuk SAML
<a name="idp_saml_Create"></a>

Setelah Anda menyelesaikan langkah-langkah persyaratan, Anda dapat membuat peran untuk federasi berbasis SAML. 

**Untuk membuat peran untuk federasi berbasis SAML**

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 **Peran** lalu pilih **Buat peran**.

1. Pilih jenis peran **federasi SAML 2.0**.

1. Untuk **Pilih penyedia SAMP**, pilih penyedia untuk peran Anda. 

1. Pilih metode tingkat akses SAML 2.0. 
   + Pilih **Izinkan akses terprogram hanya** untuk membuat peran yang dapat diasumsikan secara terprogram dari API atau. AWS AWS CLI
   + Pilih **Izinkan programatik dan Konsol Manajemen AWS akses** untuk membuat peran yang dapat diasumsikan secara terprogram dan dari. Konsol Manajemen AWS

   Peran yang dibuat oleh keduanya serupa, tetapi peran yang juga dapat diasumsikan dari konsol mencakup suatu kebijakan kepercayaan dengan syarat tertentu. Kondisi itu secara eksplisit memastikan bahwa audiens SAMP (`SAML:aud`atribut) disetel ke titik akhir AWS masuk untuk penyedia SAMP Anda.

1. Prosedur untuk mendefinisikan atribut bervariasi tergantung pada jenis akses.
   + Jika Anda membuat peran untuk akses terprogram, pilih atribut dari daftar **Atribut**. Kemudian, di kotak **Nilai**, masukkan nilai untuk disertakan dalam peran. Hal ini membatasi akses peran kepada pengguna dari penyedia identitas yang memiliki respon otentikasi SAML (pernyataan) mencakup atribut yang Anda tentukan. Anda harus menentukan setidaknya satu atribut untuk memastikan bahwa peran Anda terbatas pada subset pengguna dalam organisasi Anda. 
   + Jika Anda membuat peran untuk programatik dan Konsol Manajemen AWS akses, bagian **Titik akhir Masuk** menentukan URL yang ditampilkan browser Anda saat masuk ke konsol. Titik akhir ini adalah atribut penerima SAMP penyedia identitas Anda, yang memetakan ke kunci [`saml:aud`](reference_policies_iam-condition-keys.md#condition-keys-saml)konteks. Untuk informasi selengkapnya, lihat [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md).

     1. Pilih Endpoint **Regional atau Endpoint** **Non-Regional**. Kami merekomendasikan penggunaan beberapa titik akhir masuk SAMP Regional untuk meningkatkan ketahanan federasi.

     1. Untuk **Wilayah**, pilih wilayah yang didukung penyedia SAMP Anda untuk AWS login.

     1.  ** URLs Agar login menyertakan pengidentifikasi unik**, pilih apakah titik akhir masuk menyertakan pengidentifikasi unik yang ditetapkan ke penyedia identitas AWS SAMP Anda. Opsi ini diperlukan untuk pernyataan SAMP terenkripsi. Untuk informasi selengkapnya, lihat [Federasi SAMP 2.0](id_roles_providers_saml.md).

1. Untuk menambahkan lebih banyak kondisi terkait atribut ke kebijakan trust, pilih **Kondisi (opsional)**, pilih kondisi tambahan, dan tentukan nilai. 
**catatan**  
Daftar ini mencakup atribut SAML yang paling umum digunakan. IAM mendukung atribut tambahan yang dapat Anda gunakan untuk membuat persyaratan. Untuk daftar atribut didukung, lihat [Kunci yang Tersedia untuk Federasi SAML](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#condition-keys-saml). Jika Anda memerlukan syarat untuk atribut SAML yang didukung yang tidak ada dalam daftar, Anda dapat menambahkan syarat tersebut secara manual. Untuk melakukannya, ubah kebijakan kepercayaan setelah Anda membuat peran tersebut.

1.  Tinjau informasi kepercayaan SAMP 2.0 Anda dan kemudian pilih **Berikutnya**. 

1. IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda. Pilih kebijakan yang akan digunakan untuk kebijakan izin, atau pilih **Buat kebijakan** untuk membuka tab browser baru dan membuat kebijakan baru dari awal. Untuk informasi selengkapnya, lihat [Membuat kebijakan IAM](access_policies_create-console.md#access_policies_create-start). Setelah Anda membuat kebijakan, tutup tab tersebut dan kembali ke tab asli Anda. Pilih kotak centang di samping kebijakan izin yang Anda inginkan untuk dimiliki oleh pengguna federasi SAMP. Jika Anda lebih suka, Anda boleh tidak memilih kebijakan saat ini, kemudian melampirkan kebijakan kepada peran di lain waktu. Secara default, peran tidak memiliki izin.

1. (Opsional) Tetapkan [batas izin](access_policies_boundaries.md). Ini adalah fitur lanjutan.

   Buka bagian **batas izin dan pilih Gunakan batas** **izin untuk mengontrol izin peran maksimum**. Pilih kebijakan yang akan digunakan untuk batas izin.

1. Pilih **Berikutnya**.

1. Pilih **Berikutnya: Tinjauan**.

1. Untuk **Nama peran**, masukkan nama peran. Nama peran harus unik dalam diri Anda Akun AWS. Grup tidak dibedakan berdasarkan huruf besar-kecil. Misalnya, Anda tidak dapat membuat peran dengan nama **PRODROLE** dan **prodrole**. Karena AWS sumber daya lain mungkin merujuk peran, Anda tidak dapat mengedit nama peran setelah dibuat. 

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran baru ini.

1. Pilih **Edit** di **Langkah 1: Pilih entitas tepercaya** atau **Langkah 2: Tambahkan bagian izin** untuk mengedit kasus penggunaan dan izin untuk peran tersebut. 

1. (Opsional) Tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang menggunakan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md).

1. Tinjau peran, lalu pilih **Buat peran**.

Setelah membuat peran tersebut, Anda menyelesaikan kepercayaan SAML dengan mengonfigurasi perangkat lunak penyedia identitas dengan informasi tentang AWS. Informasi ini mencakup peran yang Anda inginkan untuk digunakan oleh pengguna federasi SAMP Anda. Ini disebut sebagai mengonfigurasi kepercayaan pihak pengandal antara Idp dan AWS. Lihat informasi yang lebih lengkap di [Konfigurasikan IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak dan menambahkan klaim](id_roles_providers_create_saml_relying-party.md). 

# Membuat peran menggunakan kebijakan kepercayaan khusus
<a name="id_roles_create_for-custom"></a>

Anda dapat membuat kebijakan kepercayaan khusus untuk mendelegasikan akses dan mengizinkan orang lain melakukan tindakan di situs Anda Akun AWS. Untuk informasi selengkapnya, lihat [Membuat kebijakan IAM](access_policies_create-console.md#access_policies_create-start).

Untuk informasi tentang cara menggunakan peran untuk mendelegasikan izin, lihat [Istilah dan konsep peran](id_roles.md#id_roles_terms-and-concepts).

## Membuat peran IAM menggunakan kebijakan kepercayaan khusus (konsol)
<a name="roles-creatingrole-custom-trust-policy-console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk membuat peran yang dapat diasumsikan oleh pengguna IAM. Misalnya, asumsikan bahwa organisasi Anda memiliki banyak Akun AWS untuk mengisolasi lingkungan pengembangan dari lingkungan produksi. Untuk informasi tingkat tinggi tentang membuat peran yang memungkinkan pengguna di akun pengembangan mengakses sumber daya di akun produksi, lihat[Contoh skenario menggunakan akun pengembangan dan produksi terpisah](id_roles_common-scenarios_aws-accounts.md#id_roles_common-scenarios_aws-accounts-example).

**Untuk membuat peran menggunakan kebijakan kepercayaan khusus (konsol)**

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, pilih **Peran** dan kemudian pilih **Buat peran**.

1. Pilih jenis peran **kebijakan kepercayaan kustom**.

1. Di bagian **Kebijakan kepercayaan khusus**, masukkan atau tempel kebijakan kepercayaan khusus untuk peran tersebut. Untuk informasi selengkapnya, lihat [Membuat kebijakan IAM](access_policies_create-console.md#access_policies_create-start).

1. Selesaikan peringatan keamanan, kesalahan, atau peringatan umum yang dihasilkan selama [validasi kebijakan](access_policies_policy-validator.md), lalu pilih **Berikutnya**.

1. (Opsional) Tetapkan [batas izin](access_policies_boundaries.md). Ini adalah fitur lanjutan yang tersedia untuk peran layanan, tetapi bukan peran tertaut layanan.

   Buka bagian **batas izin dan pilih Gunakan batas** **izin untuk mengontrol izin peran maksimum**. IAM menyertakan daftar kebijakan yang AWS dikelola dan dikelola pelanggan di akun Anda. Pilih kebijakan yang akan digunakan untuk batas izin.

1. Pilih **Berikutnya**.

1. Untuk **Nama peran**, tingkat penyesuaian nama peran ditentukan oleh layanan. Jika layanan mendefinisikan nama peran, opsi ini tidak dapat diedit. Dalam kasus lain, layanan mungkin menentukan awalan peran dan memungkinkan Anda untuk memasukkan akhiran opsional. Beberapa layanan memungkinkan Anda untuk menentukan seluruh nama peran Anda.

   Jika memungkinkan, masukkan nama peran atau akhiran nama peran. Nama peran harus unik di dalam diri Anda Akun AWS. Grup tidak dibedakan berdasarkan huruf besar-kecil. Misalnya, Anda tidak dapat membuat peran dengan nama **PRODROLE** dan **prodrole**. Karena AWS sumber daya lain mungkin mereferensikan peran, Anda tidak dapat mengedit nama peran setelah dibuat.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran baru ini.

1. (Opsional) Pilih **Edit** di **Langkah 1: Pilih entitas tepercaya** atau **Langkah 2: Tambahkan izin** bagian untuk mengedit kebijakan kustom dan izin untuk peran tersebut. 

1. (Opsional) Tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang menggunakan tag di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md).

1. Tinjau peran dan kemudian pilih **Buat peran**.

# Contoh kebijakan untuk mendelegasikan akses
<a name="id_roles_create_policy-examples"></a>

Contoh berikut menunjukkan bagaimana Anda dapat mengizinkan atau memberikan Akun AWS akses ke sumber daya di sumber lain Akun AWS. Untuk mempelajari cara membuat kebijakan IAM dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

**Topics**
+ [Menggunakan peran untuk mendelegasikan akses ke sumber daya sumber daya lain Akun AWS](#example-delegate-xaccount-rolesapi)
+ [Menggunakan kebijakan untuk mendelegasikan akses ke layanan](#id_roles_create_policy-examples-access-to-services)
+ [Menggunakan kebijakan berbasis sumber daya untuk mendelegasikan akses ke bucket Amazon S3 di akun lain](#example-delegate-xaccount-S3)
+ [Menggunakan kebijakan berbasis sumber daya untuk mendelegasikan akses ke antrean Amazon SQS di akun lainnya](#example-delegate-xaccount-SQS)
+ [Tidak dapat mendelegasikan akun ketika akun ditolak aksesnya](#example-delegate-xaccount-SQS-denied)

## Menggunakan peran untuk mendelegasikan akses ke sumber daya sumber daya lain Akun AWS
<a name="example-delegate-xaccount-rolesapi"></a>

 Untuk tutorial yang menunjukkan cara menggunakan peran IAM untuk memberikan pengguna dalam satu akun akses ke AWS sumber daya yang ada di akun lain, lihat[Tutorial IAM: Delegasikan akses di seluruh AWS akun menggunakan peran IAM](tutorial_cross-account-with-roles.md). 

**penting**  
Anda dapat menyertakan ARN untuk peran atau pengguna tertentu dalam elemen `Principal` kebijakan kepercayaan peran. Saat Anda menyimpan polis, AWS ubah ARN menjadi ID utama yang unik. Hal ini membantu memitigasi risiko seseorang meningkatkan hak istimewa mereka dengan menghapus dan membuat kembali peran atau pengguna. Anda biasanya tidak melihat ID ini di konsol, karena juga ada transformasi balik kembali ke ARN ketika kebijakan kepercayaan ditampilkan. Namun, jika Anda menghapus peran atau pengguna, maka hubungan Anda akan rusak. Kebijakan tidak lagi berlaku, bahkan jika Anda membuat ulang pengguna atau peran karena itu tidak sesuai dengan ID prinsipal yang disimpan dalam kebijakan kepercayaan. Ketika ini terjadi, ID utama muncul di konsol karena tidak AWS dapat lagi memetakannya kembali ke ARN. Oleh karena itu, jika Anda menghapus dan membuat ulang pengguna atau peran yang dirujuk di dalam elemen `Principal` kebijakan kepercayaan, Anda harus mengubah peran untuk mengganti ARN. Itu diubah menjadi ID prinsipal baru saat Anda menyimpan kebijakan.

## Menggunakan kebijakan untuk mendelegasikan akses ke layanan
<a name="id_roles_create_policy-examples-access-to-services"></a>

Contoh berikut ini menunjukkan kebijakan yang dapat dilampirkan pada sebuah peran. Kebijakan ini memungkinkan dua layanan, Amazon EMR dan AWS Data Pipeline, untuk mengambil peran. Layanan kemudian dapat melakukan tugas yang diberikan oleh kebijakan izin yang ditetapkan untuk peran tersebut (tidak ditampilkan). Untuk menetapkan beberapa prinsipal layanan, Anda tidak menentukan dua elemen `Service`; Anda hanya dapat memiliki satu. Sebagai gantinya, Anda menggunakan serangkaian dari beberapa prinsipal layanan sebagai nilai elemen `Service` tunggal.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "elasticmapreduce.amazonaws.com",
          "datapipeline.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

## Menggunakan kebijakan berbasis sumber daya untuk mendelegasikan akses ke bucket Amazon S3 di akun lain
<a name="example-delegate-xaccount-S3"></a>

Dalam contoh ini, akun A menggunakan kebijakan berbasis sumber daya ([kebijakan bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucketPolicies.html) Amazon S3) untuk memberikan akun B akses penuh ke bucket S3 akun A. Lalu akun B membuat kebijakan pengguna IAM untuk mendelegasikan akses ke bucket akun A kepada salah satu pengguna di akun B. 

Kebijakan S3 bucket di akun A mungkin terlihat seperti kebijakan berikut. Dalam contoh ini, bucket S3 akun A diberi nama *amzn-s3-demo-bucket*, dan nomor akun B adalah 111122223333. Itu tidak menentukan pengguna individual atau pengguna kelompok di akun B, hanya akun itu sendiri.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "AccountBAccess1",
    "Effect": "Allow",
    "Principal": {"AWS": "111122223333"},
    "Action": "s3:*",
    "Resource": [
      "arn:aws:s3:::amzn-s3-demo-bucket",
      "arn:aws:s3:::amzn-s3-demo-bucket/*"
    ]
  }
}
```

------

Atau, akun A dapat menggunakan Amazon S3 [Access Control Lists (ACLs)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3_ACLs_UsingACLs.html) untuk memberikan akses akun B ke bucket S3 atau satu objek di dalam bucket. Dalam hal ini, satu-satunya hal yang berubah adalah bagaimana akun A memberikan akses ke akun B. Akun B masih menggunakan kebijakan untuk mendelegasikan akses ke kelompok IAM di akun B, seperti yang dijelaskan di bagian berikutnya dari contoh ini. Untuk informasi selengkapnya tentang mengontrol akses pada bucket dan objek S3, buka [Kontrol Akses](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAuthAccess.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*. 

Administrator akun B dapat membuat sampel kebijakan berikut. Kebijakan ini memungkinkan akses baca ke kelompok atau pengguna di akun B. Kebijakan sebelumnya memberikan akses ke akun B. Namun demikian, kelompok individu dan pengguna di akun B tidak dapat mengakses sumber daya sampai suatu kelompok atau pengguna memberikan izin secara jelas ke sumber daya tersebut. Izin dalam kebijakan ini hanya dapat menjadi subset dari izin yang ada di kebijakan lintas akun sebelumnya. Akun B tidak dapat memberikan lebih banyak izin untuk kelompok dan penggunanya daripada yang diberikan akun A ke akun B dalam kebijakan pertama. Dalam kebijakan ini, elemen `Action` secara jelas ditentukan untuk hanya mengizinkan tindakan `List`, dan elemen `Resource` kebijakan ini sesuai dengan `Resource` untuk kebijakan bucket yang diterapkan oleh akun A.

Untuk menerapkan kebijakan ini akun B menggunakan IAM untuk melampirkannya ke pengguna (atau kelompok) yang sesuai di akun B. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:List*",
    "Resource": [
      "arn:aws:s3:::amzn-s3-demo-bucket",
      "arn:aws:s3:::amzn-s3-demo-bucket/*"
    ]
  }
}
```

------

## Menggunakan kebijakan berbasis sumber daya untuk mendelegasikan akses ke antrean Amazon SQS di akun lainnya
<a name="example-delegate-xaccount-SQS"></a>

Dalam contoh berikut, akun A memiliki antrean Amazon SQS yang menggunakan kebijakan berbasis sumber daya yang dilampirkan ke antrean untuk memberikan akses antrean ke akun B. Kemudian akun B menggunakan kebijakan kelompok IAM untuk mendelegasikan akses ke kelompok di akun B. 

Contoh kebijakan antrean berikut memberi akun B izin untuk melakukan tindakan `SendMessage` dan `ReceiveMessage` pada antrean akun A yang disebut *antrean1*, tetapi hanya antara tengah hari hingga pukul 15.00 pada 30 November 2014. Nomor akun Akun B adalah 1111-2222-3333. Akun A menggunakan Amazon SQS untuk menerapkan kebijakan ini. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Principal": {"AWS": "111122223333"},
    "Action": [
      "sqs:SendMessage",
      "sqs:ReceiveMessage"
    ],
    "Resource": ["arn:aws:sqs:*:123456789012:queue1"],
    "Condition": {
      "DateGreaterThan": {"aws:CurrentTime": "2014-11-30T12:00Z"},
      "DateLessThan": {"aws:CurrentTime": "2014-11-30T15:00Z"}
    }
  }
}
```

------

Kebijakan akun B untuk mendelegasikan akses ke suatu kelompok di akun B dapat terlihat seperti contoh berikut. Akun B menggunakan IAM untuk melampirkan kebijakan ini ke kelompok (atau pengguna). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "sqs:*",
    "Resource": "arn:aws:sqs:*:123456789012:queue1"
  }
}
```

------

Dalam contoh kebijakan pengguna IAM sebelumnya, akun B menggunakan wildcard untuk memberikan akses ke penggunanya ke semua tindakan Amazon SQS pada antrean akun A. Namun, akun B hanya dapat mendelegasikan akses jika akun B telah diberi akses. Kelompok akun B yang memiliki kebijakan kedua dapat mengakses antrean hanya antara tengah hari hingga pukul 15.00 pada 30 November 2014. Pengguna hanya dapat melakukan tindakan `SendMessage` dan `ReceiveMessage`, sebagaimana ditentukan dalam kebijakan antrean Amazon SQS akun A. 

## Tidak dapat mendelegasikan akun ketika akun ditolak aksesnya
<a name="example-delegate-xaccount-SQS-denied"></a>

 Akun AWS Tidak dapat mendelegasikan akses ke sumber daya akun lain jika akun lain secara eksplisit menolak akses ke akun induk pengguna. Penolakan ini meluas ke para pengguna dalam akun tersebut, baik apakah pengguna sudah memiliki kebijakan yang memberikan akses kepada mereka atau belum.

Sebagai contoh, akun A menyusun kebijakan bucket pada bucket S3 akun A yang secara eksplisit menolak akses akun B ke bucket akun A. Namun, akun B menyusun kebijakan pengguna IAM yang memberi pengguna akun B akses ke bucket akun A. Penolakan secara eksplisit yang diterapkan kepada bucket S3 akun A meluas ke para pengguna di akun B. Itu membatalkan kebijakan pengguna IAM yang memberikan akses ke pengguna di akun B. (Untuk informasi selengkapnya tentang bagaimana izin dievaluasi, lihat [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md).) 

Kebijakan bucket Akun A dapat terlihat seperti kebijakan berikut ini. Dalam contoh ini, bucket S3 akun A diberi nama *amzn-s3-demo-bucket*, dan nomor akun B adalah 1111-2222-3333. Akun A menggunakan Amazon S3 untuk menerapkan kebijakan ini. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "AccountBDeny",
    "Effect": "Deny",
    "Principal": {"AWS": "111122223333"},
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
  }
}
```

------

Penolakan secara eksplisit ini membatalkan kebijakan apa pun dalam akun B yang memberikan izin untuk mengakses bucket S3 dalam akun A. 

# Manajemen peran IAM
<a name="id_roles_manage"></a>

Sebelum pengguna, aplikasi, atau layanan dapat menggunakan peran yang Anda buat, Anda harus memberikan izin untuk beralih ke peran tersebut. Anda dapat menggunakan kebijakan apa pun yang dilampirkan ke grup atau pengguna untuk memberikan izin yang diperlukan. Bagian ini menjelaskan cara memberikan izin kepada pengguna untuk menggunakan peran. Ini juga menjelaskan bagaimana pengguna dapat beralih ke peran dari Konsol Manajemen AWS, Alat untuk Windows PowerShell, AWS Command Line Interface (AWS CLI) dan [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API.

**penting**  
Saat Anda membuat program peran secara terprogram, alih-alih di konsol IAM, Anda memiliki opsi untuk menambahkan `Path` hingga 512 karakter selain `RoleName`, yang panjangnya dapat mencapai 64 karakter. Namun, jika Anda bermaksud menggunakan peran dengan fitur **Switch Role** di Konsol Manajemen AWS, maka gabungan `Path` dan `RoleName` tidak dapat melebihi 64 karakter.

**Topics**
+ [Lihat akses peran](#roles-modify_prerequisites)
+ [Menghasilkan kebijakan berdasarkan informasi akses](#roles-modify_gen-policy)
+ [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md)
+ [Berikan izin pengguna untuk meneruskan peran ke layanan AWS](id_roles_use_passrole.md)
+ [Mencabut kredensi keamanan sementara peran IAM](id_roles_use_revoke-sessions.md)
+ [Memperbarui peran terkait layanan](id_roles_update-service-linked-role.md)
+ [Memperbarui kebijakan kepercayaan peran](id_roles_update-role-trust-policy.md)
+ [Memperbarui izin untuk peran](id_roles_update-role-permissions.md)
+ [Perbarui setelan untuk peran](id_roles_update-role-settings.md)
+ [Hapus peran atau profil contoh](id_roles_manage_delete.md)

## Lihat akses peran
<a name="roles-modify_prerequisites"></a>

Sebelum mengubah izin pengguna, Anda harus meninjau aktivitas tingkat-layanan terakhirnya. Ini penting karena Anda tidak ingin menghapus akses dari suatu prinsipal (orang atau aplikasi) yang menggunakannya. Untuk informasi selengkapnya tentang melihat informasi yang terakhir diakses, lihat [Memperbaiki izin dalam AWS menggunakan informasi yang terakhir diakses](access_policies_last-accessed.md).

## Menghasilkan kebijakan berdasarkan informasi akses
<a name="roles-modify_gen-policy"></a>

Terkadang Anda dapat memberikan izin ke entitas IAM (pengguna atau peran) di luar yang mereka butuhkan. Untuk membantu Anda menyaring izin yang Anda berikan, Anda dapat membuat kebijakan IAM yang didasarkan pada aktivitas akses untuk entitas. IAM Access Analyzer meninjau AWS CloudTrail log Anda dan menghasilkan templat kebijakan yang berisi izin yang telah digunakan oleh entitas dalam rentang tanggal yang ditentukan. Anda dapat menggunakan templat untuk membuat kebijakan terkelola dengan izin berbutir halus, lalu melampirkannya ke entitas IAM. Dengan begitu, Anda hanya memberikan izin yang dibutuhkan pengguna atau peran untuk berinteraksi dengan AWS sumber daya untuk kasus penggunaan spesifik Anda. Untuk mempelajari selengkapnya, lihat Pembuatan [kebijakan IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html).

# Berikan izin pengguna untuk beralih peran
<a name="id_roles_use_permissions-to-switch"></a>

Ketika administrator [membuat peran untuk akses lintas akun](id_roles_create_for-user.md), mereka membangun kepercayaan antara akun yang memiliki peran, sumber daya (akun kepercayaan), dan akun yang berisi pengguna (akun tepercaya). Untuk melakukannya, administrator akun terpercaya menentukan nomor akun terpercaya sebagai `Principal` dalam kebijakan kepercayaan peran tersebut. Itu *berpotensi* memungkinkan pengguna mana pun di akun tepercaya untuk mengambil peran tersebut. Untuk menyelesaikan konfigurasi, administrator akun terpercaya harus memberikan izin kepada kelompok atau pengguna tertentu dalam izin akun tersebut untuk beralih ke peran.

**Untuk memberikan izin untuk beralih ke peran**

1. Sebagai administrator akun tepercaya, buat kebijakan baru untuk pengguna, atau edit kebijakan yang ada untuk menambahkan elemen yang diperlukan. Lihat perinciannya di [Membuat atau mengubah](#roles-usingrole-createpolicy).

1. Kemudian, pilih cara Anda ingin membagikan informasi peran: 
   + **Tautan peran:** Kirim pengguna tautan yang membawa mereka ke halaman **Beralih Peran** dengan semua detail yang sudah diisi. 
   + **ID Akun atau alias:** Berikan setiap pengguna nama peran bersama dengan nomor ID akun atau alias akun. Pengguna kemudian masuk ke halaman **Ganti Peran** dan menambahkan detail secara manual. 

   Lihat perinciannya di [Memberikan informasi kepada pengguna](#roles-usingrole-giveuser).

Perhatikan bahwa Anda dapat beralih peran hanya jika Anda masuk sebagai pengguna IAM, peran federasi SAML, atau peran federasi identitas web. Anda tidak dapat beralih peran saat masuk sebagai Pengguna root akun AWS.

**penting**  
Anda tidak dapat beralih peran Konsol Manajemen AWS ke peran yang membutuhkan [ExternalId](id_roles_common-scenarios_third-party.md#id_roles_third-party_external-id)nilai. Anda hanya dapat beralih ke peran tersebut dengan memanggil [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API yang mendukung parameter `ExternalId`.

**Catatan**  
Topik ini membahas kebijakan untuk *pengguna*, karena pada akhirnya Anda memberikan izin kepada pengguna untuk menyelesaikan tugas. Namun, kami tidak menyarankan Anda memberikan izin langsung ke pengguna individu. Saat pengguna mengambil peran, mereka diberi izin yang terkait dengan peran tersebut.
Saat Anda beralih peran Konsol Manajemen AWS, konsol selalu menggunakan kredenal asli Anda untuk mengotorisasi sakelar. Hal ini berlaku baik Anda masuk sebagai pengguna IAM, sebagai peran federasi SAML, atau sebagai peran federasi identitas-web. Misalnya, jika Anda beralih ke RoleA, IAM menggunakan pengguna asli atau kredensi peran federasi untuk menentukan apakah Anda diizinkan untuk mengambil RoleA. Jika Anda kemudian mencoba untuk beralih ke RoleB *saat menggunakan RoleA*, pengguna **asli** atau kredensial peran federasi digunakan untuk mengotorisasi upaya Anda. Kredensial untuk RoleA tidak digunakan untuk tindakan ini.

**Topics**
+ [Membuat atau mengubah](#roles-usingrole-createpolicy)
+ [Memberikan informasi kepada pengguna](#roles-usingrole-giveuser)

## Membuat atau mengubah
<a name="roles-usingrole-createpolicy"></a>

Kebijakan yang memberikan izin kepada pengguna untuk mengasumsikan peran harus mencantumkan pernyataan dengan efek `Allow` pada hal berikut: 
+ Tindakan `sts:AssumeRole`
+ Amazon Resource Name (ARN) peran dalam elemen `Resource`

Pengguna yang mendapatkan kebijakan diizinkan untuk beralih peran pada sumber daya yang terdaftar (baik melalui keanggotaan grup atau langsung dilampirkan).

**catatan**  
Jika `Resource` diatur menjadi `*`, pengguna dapat mengasumsikan peran apa pun dalam akun apa pun yang memercayai akun pengguna. (Dengan kata lain, kebijakan kepercayaan peran menentukan akun pengguna sebagai `Principal`). Sebaiknya, kami menyarankan agar Anda mengikuti [prinsip hak istimewa terendah](http://en.wikipedia.org/wiki/Principle_of_least_privilege) dan menentukan ARN lengkap hanya untuk peran yang dibutuhkan pengguna.

Contoh berikut menunjukkan kebijakan yang memungkinkan pengguna untuk mengasumsikan peran hanya dalam satu akun. Selain itu, kebijakan ini menggunakan wildcard (\$1) untuk menentukan bahwa pengguna dapat beralih ke peran hanya jika nama peran dimulai dan huruf `Test`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::111122223333:role/Test*"
    }
}
```

------

**catatan**  
Izin yang diberikan oleh peran kepada pengguna tidak menambah izin yang sudah diberikan kepada pengguna. Saat pengguna beralih ke suatu peran, pengguna sementara waktu akan memberikan izin awalnya sebagai ganti atas apa yang diberikan oleh peran tersebut. Saat pengguna keluar dari peran, izin pengguna asli mereka dipulihkan secara otomatis. Misalnya, katakanlah izin pengguna memungkinkan bekerja dengan instans Amazon EC2, tetapi kebijakan izin peran tidak memberikan izin tersebut. Dalam hal ini, saat menggunakan peran tersebut, pengguna tidak dapat bekerja dengan instans Amazon EC2 di dalam konsol. Selain itu, kredensial sementara yang diperoleh melalui `AssumeRole` tidak bekerja dengan instans Amazon EC2 secara terprogram.

## Memberikan informasi kepada pengguna
<a name="roles-usingrole-giveuser"></a>

Setelah Anda membuat peran dan memberikan izin kepada pengguna Anda untuk beralih ke sana, Anda harus memberikan hal-hal berikut kepada pengguna:
+ Nama peran
+ ID atau alias akun yang berisi peran tersebut

Anda dapat merampingkan akses untuk pengguna Anda dengan mengirimkan tautan yang telah dikonfigurasi sebelumnya dengan ID akun dan nama peran. Anda dapat melihat tautan peran setelah menyelesaikan wizard **Buat Peran** dengan memilih spanduk **Lihat Peran**, atau pada halaman **Ringkasan Peran untuk peran** yang diaktifkan lintas akun.

Anda juga dapat menggunakan format berikut untuk menyusun tautan secara manual. Ganti ID akun atau alias Anda dan nama peran untuk dua parameter dalam contoh berikut.

`https://signin.aws.amazon.com/switchrole?account=your_account_ID_or_alias&roleName=optional_path/role_name`

Kami menyarankan Anda mengarahkan pengguna Anda [Beralih dari pengguna ke peran IAM (konsol)](id_roles_use_switch-role-console.md) untuk memandu mereka melalui proses tersebut. Untuk memecahkan masalah umum yang mungkin Anda temui saat mengasumsikan peran, lihat [Saya tidak dapat mengsumsikan peran](troubleshoot_roles.md#troubleshoot_roles_cant-assume-role).

**Pertimbangan-pertimbangan**
+ Jika Anda membuat peran secara terprogram, Anda dapat membuat peran dengan jalur dan nama. Jika demikian, Anda harus memberikan jalur lengkap dan nama peran kepada pengguna agar mereka dapat masuk ke halaman **Beralih Peran** di Konsol Manajemen AWS. Sebagai contoh: `division_abc/subdivision_efg/role_XYZ`.
+ Jika Anda membuat peran secara terprogram, Anda dapat menambahkan hingga 512 karakter dan a`Path`. `RoleName` Panjang nama peran dapat mencapai 64 karakter. Namun, untuk menggunakan peran dengan fitur **Switch Role** di Konsol Manajemen AWS, gabungan `Path` dan `RoleName` tidak dapat melebihi 64 karakter.
+ Untuk tujuan keamanan, Anda dapat [meninjau AWS CloudTrail log](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) untuk mengetahui siapa yang melakukan tindakan AWS. Anda dapat menggunakan kunci syarat `sts:SourceIdentity` dalam peran kebijakan kepercayaan untuk mengharuskan pengguna menentukan identias saat mereka mengasumsikan sebuah peran. Misalnya, Anda dapat meminta agar pengguna IAM menentukan nama pengguna mereka sendiri sebagai identitas sumber mereka. Ini dapat membantu Anda menentukan pengguna mana yang melakukan tindakan tertentu di AWS. Untuk informasi selengkapnya, lihat [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity). Anda juga dapat menggunakan [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname) untuk mengharuskan pengguna menentukan nama sesi saat mereka mengambil peran. Hal ini dapat membantu Anda membedakan antara sesi peran ketika peran digunakan oleh prinsipal yang berbeda.

# Berikan izin pengguna untuk meneruskan peran ke layanan AWS
<a name="id_roles_use_passrole"></a>

Untuk mengonfigurasi banyak AWS layanan, Anda harus *meneruskan* peran IAM ke layanan. Ini memungkinkan layanan untuk mengambil peran nanti dan melakukan tindakan atas nama Anda. Untuk sebagian besar layanan, Anda hanya perlu meneruskan peran ke layanan satu kali selama penyiapan, dan tidak setiap kali layanan mengambil peran tersebut. Misalnya, anggap Anda memiliki aplikasi yang berjalan di instans Amazon EC2 Aplikasi tersebut memerlukan kredensial sementara untuk autentikasi, dan izin untuk mengotorisasi aplikasi guna melakukan tindakan di AWS. Saat menyiapkan aplikasi, Anda harus meneruskan peran ke Amazon EC2 untuk digunakan dengan instance yang menyediakan kredensi tersebut. Anda menentukan izin untuk aplikasi yang berjalan pada instans dengan melampirkan kebijakan IAM pada peran tersebut. Aplikasi ini mengasumsikan peran setiap kali diperlukan untuk melakukan tindakan yang diizinkan oleh peran tersebut.

Untuk meneruskan peran (dan izinnya) ke AWS layanan, pengguna harus memiliki izin untuk *meneruskan peran tersebut* ke layanan. Ini membantu administrator untuk memastikan bahwa hanya pengguna yang disetujui yang dapat mengonfigurasi layanan dengan peran yang memberikan izin. Untuk mengizinkan pengguna meneruskan peran ke AWS layanan, Anda harus memberikan `PassRole` izin kepada pengguna, peran, atau grup IAM pengguna.

**Awas**  
Anda hanya dapat menggunakan `PassRole` izin untuk meneruskan peran IAM ke layanan yang berbagi AWS akun yang sama. Untuk meneruskan peran di Akun A ke layanan di Akun B, Anda harus terlebih dahulu membuat peran IAM di Akun B yang dapat mengambil peran dari Akun A, dan kemudian peran dalam Akun B dapat diteruskan ke layanan. Lihat perinciannya di [Akses sumber daya lintas akun di IAM](access_policies-cross-account-resource-access.md).
Jangan mencoba mengontrol siapa yang dapat melewati peran dengan menandai peran dan kemudian menggunakan kunci `ResourceTag` kondisi dalam kebijakan dengan `iam:PassRole` tindakan tersebut. Pendekatan ini tidak memiliki hasil yang dapat diandalkan.

Saat menyetel `PassRole` izin, Anda harus memastikan bahwa pengguna tidak melewati peran di mana peran tersebut memiliki lebih banyak izin daripada yang Anda inginkan untuk dimiliki pengguna. Misalnya, Alice mungkin tidak diizinkan untuk melakukan tindakan Amazon S3 apa pun. Jika Alice dapat meneruskan peran ke layanan yang memungkinkan tindakan Amazon S3, layanan dapat melakukan tindakan Amazon S3 atas nama Alice saat menjalankan pekerjaan.

Saat menentukan peran terkait layanan, Anda juga harus memiliki izin untuk meneruskan peran tersebut ke layanan. Beberapa layanan secara otomatis membuat peran yang terkait dengan layanan di akun Anda ketika Anda melakukan tindakan di layanan tersebut. Misalnya, Amazon EC2 Auto Scaling `AWSServiceRoleForAutoScaling` membuat peran terkait layanan untuk Anda saat Anda membuat grup Auto Scaling untuk pertama kalinya. Jika Anda mencoba menentukan peran terkait layanan saat membuat grup Auto Scaling dan Anda tidak memiliki `iam:PassRole` izin, Anda akan menerima kesalahan. Jika Anda tidak menentukan peran secara eksplisit, `iam:PassRole` izin tidak diperlukan, dan defaultnya adalah menggunakan `AWSServiceRoleForAutoScaling` peran untuk semua operasi yang dilakukan pada grup tersebut. Untuk mempelajari layanan yang mendukung peran yang terkait dengan layanan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md). Untuk mempelajari layanan mana yang secara otomatis membuat peran yang terkait dengan layanan saat Anda melakukan tindakan dalam layanan tersebut, pilih tautan **Ya** dan lihat dokumentasi peran yang terkait dengan layanan untuk layanan tersebut.

Pengguna dapat meneruskan sebuah peran ARN sebagai sebuah parameter dalam setiap operasi API yang menggunakan peran tersebut untuk menetapkan izin ke layanan. Layanan kemudian memeriksa apakah pengguna memiliki izin `iam:PassRole`. Untuk membatasi pengguna agar hanya meneruskan peran yang disetujui, Anda dapat menyaring izin `iam:PassRole` dengan elemen `Resources` pernyataan kebijakan IAM. 

Anda dapat menggunakan `Condition` elemen dalam kebijakan JSON untuk menguji nilai kunci yang disertakan dalam konteks permintaan semua AWS permintaan. Untuk mempelajari penggunaan kunci syarat dalam kebijakan, lihat [Elemen kebijakan IAM JSON: Condition](reference_policies_elements_condition.md). Kunci syarat `iam:PassedToService` dapat digunakan untuk menentukan ke prinsipal layanan mana sebuah peran dapat diberikan. Untuk mempelajari selengkapnya tentang menggunakan kunci `iam:PassedToService` kondisi dalam kebijakan, lihat [iam: PassedToService](reference_policies_iam-condition-keys.md#ck_PassedToService).

**Contoh 1**  
Misalkan Anda ingin memberi pengguna kemampuan untuk meneruskan serangkaian peran yang disetujui ke layanan Amazon EC2 setelah meluncurkan instance. Anda memerlukan tiga elemen:
+ *Kebijakan izin* IAM yang dilamprkan ke peran yang menentukan apa yang dapat dilakukan peran tersebut. Cakupan diperbolehkan hanya untuk tindakan yang harus dilakukan peran, dan hanya untuk sumber daya yang diperlukan peran untuk tindakan tersebut. Anda dapat menggunakan kebijakan izin IAM yang AWS dikelola atau dibuat pelanggan.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": {
          "Effect": "Allow",
          "Action": [ "A list of the permissions the role is allowed to use" ],
          "Resource": [ "A list of the resources the role is allowed to access" ]
      }
  }
  ```

------
+ *Kebijakan kepercayaan* untuk peran yang memungkinkan layanan untuk mengasumsikan peran. Misalnya, Anda dapat melampirkan kebijakan kepercayaan berikut pada peran dengan tindakan `UpdateAssumeRolePolicy`. Kebijakan kepercayaan ini memungkinkan Amazon EC2 untuk menggunakan peran dan izin yang dilampirkan pada peran tersebut.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": {
          "Sid": "TrustPolicyStatementThatAllowsEC2ServiceToAssumeTheAttachedRole",
          "Effect": "Allow",
          "Principal": { "Service": "ec2.amazonaws.com" },
         "Action": "sts:AssumeRole"
      }
  }
  ```

------
+ *Kebijakan izin* IAM yang dilampirkan pada pengguna IAM yang memungkinkan pengguna untuk hanya meneruskan peran yang disetujui tersebut. Anda biasanya `iam:GetRole` menambahkan `iam:PassRole` sehingga pengguna bisa mendapatkan detail peran yang akan diteruskan. Dalam contoh ini, pengguna hanya dapat meneruskan peran yang ada di akun yang ditentukan dengan nama yang diawali dengan`EC2-roles-for-XYZ-`:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "iam:GetRole",
                  "iam:PassRole"
              ],
              "Resource": "arn:aws:iam::111122223333:role/EC2-roles-for-XYZ-*"
          }
      ]
  }
  ```

------

Sekarang pengguna dapat memulai instans Amazon EC2 dengan peran yang ditetapkan. Aplikasi yang berjalan pada instans dapat mengakses kredensial sementara untuk peran tersebut melalui metadata profil instans. Kebijakan izin IAM yang dilamprkan ke peran yang menentukan apa yang dapat dilakukan oleh instans tersebut. 

**Contoh 2**  
Amazon Relational Database Service (Amazon RDS) mendukung fitur yang **disebut** Enhanced Monitoring. Fitur ini memungkinkan Amazon RDS untuk memantau instans basis data dengan menggunakan agen. Ini juga memungkinkan Amazon RDS untuk mencatat metrik ke Amazon CloudWatch Logs. Untuk mengaktifkan fitur ini, Anda harus membuat peran layanan untuk memberi Amazon RDS izin untuk memantau dan menyusun metrik ke log Anda. 

**Untuk membuat peran untuk pemantauan yang ditingkatkan Amazon RDS.**

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

1. Pilih **Peran**, lalu pilih **Buat peran**.

1. Pilih jenis peran **AWS Layanan**, dan kemudian untuk **kasus Penggunaan untuk lainnya Layanan AWS**, pilih layanan **RDS**. Pilih **RDS — Enhanced Monitoring**, lalu pilih **Next**.

1. Pilih kebijakan RDSEnhanced MonitoringRole izin **Amazon**.

1. Pilih **Berikutnya**.

1. Untuk **nama Peran**, masukkan nama peran yang membantu Anda mengidentifikasi tujuan peran ini. Nama peran harus unik di dalam diri Anda Akun AWS. Bila nama peran digunakan dalam kebijakan atau sebagai bagian dari ARN, nama peran tersebut peka huruf besar/kecil. Saat nama peran muncul ke pelanggan di konsol, seperti selama proses masuk, nama peran tidak peka huruf besar/kecil. Karena berbagai entitas mungkin mereferensikan peran tersebut, Anda tidak dapat mengedit nama peran setelah peran tersebut dibuat.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi untuk peran baru ini.

1. (Opsional) Tambahkan metadata ke pengguna dengan cara melampirkan tanda sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang menggunakan tanda di IAM, lihat [Tag untuk AWS Identity and Access Management sumber daya](id_tags.md).

1. Tinjau peran dan kemudian pilih **Buat peran**.

Peran tersebut secara otomatis mendapatkan kebijakan kepercayaan yang memberikan izin layanan `monitoring.rds.amazonaws.com` untuk memegang peran tersebut. Setelah itu, Amazon RDS dapat melakukan semua tindakan yang diizinkan oleh kebijakan `AmazonRDSEnhancedMonitoringRole`.

Pengguna yang ingin Anda akses Enhanced Monitoring memerlukan kebijakan yang menyertakan pernyataan yang memungkinkan pengguna untuk mencantumkan peran RDS dan pernyataan yang memungkinkan pengguna untuk meneruskan peran, seperti berikut ini. Gunakan nomor akun Anda dan ganti nama peran dengan nama yang Anda berikan di langkah 6.

```
    {
      "Sid": "PolicyStatementToAllowUserToListRoles",
      "Effect": "Allow",
      "Action": ["iam:ListRoles"],
      "Resource": "*"
    },
    {
        "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole",
        "Effect": "Allow",
        "Action": [ "iam:PassRole" ],
        "Resource": "arn:aws:iam::account-id:role/RDS-Monitoring-Role"
    }
```

Anda dapat menggabungkan pernyataan ini dengan pernyataan dalam kebijakan lain atau menempatkannya ke dalam kebijakannya sendiri. Sebagai gantinya, untuk menentukan bahwa pengguna dapat meneruskan peran apa pun yang dimulai`RDS-`, Anda dapat mengganti nama peran di ARN sumber daya dengan wildcard, sebagai berikut.

```
        "Resource": "arn:aws:iam::account-id:role/RDS-*"
```

## `iam:PassRole`tindakan dalam AWS CloudTrail log
<a name="id_roles_use_passrole_logs"></a>

 `PassRole`bukan panggilan API. `PassRole`adalah izin, artinya tidak ada CloudTrail log yang dihasilkan untuk IAM`PassRole`. Untuk meninjau peran apa yang diteruskan ke mana Layanan AWS CloudTrail, Anda harus meninjau CloudTrail log yang membuat atau memodifikasi AWS sumber daya yang menerima peran tersebut. Misalnya, peran diteruskan ke AWS Lambda fungsi saat dibuat. Log untuk `CreateFunction` tindakan menunjukkan catatan peran yang diteruskan ke fungsi. 

# Mencabut kredensi keamanan sementara peran IAM
<a name="id_roles_use_revoke-sessions"></a>

**Awas**  
Jika Anda mengikuti langkah-langkah di halaman ini, semua pengguna dengan sesi saat ini yang dibuat dengan asumsi peran ditolak akses ke semua AWS tindakan dan sumber daya. Hal ini dapat mengakibatkan pengguna kehilangan pekerjaan yang belum disimpan.

Ketika Anda mengizinkan pengguna untuk mengakses Konsol Manajemen AWS dengan waktu durasi sesi yang lama (seperti 12 jam), kredensi sementara mereka tidak kedaluwarsa dengan cepat. Jika pengguna secara tidak sengaja mengekspos kredensialnya kepada pihak ketiga yang tidak sah, pihak tersebut memiliki akses selama sesi berlangsung. Namun, Anda dapat segera mencabut semua izin untuk kredensial peran yang diterbitkan sebelum waktu tertentu jika perlu. Semua kredensial sementara untuk peran tersebut yang diterbitkan sebelum waktu yang ditentukan menjadi tidak berlaku. Ini memaksa semua pengguna untuk mengautentikasi ulang dan meminta kredensi baru.

 

**catatan**  
Anda tidak dapat mencabut sesi untuk *[peran yang terkait dengan layanan](id_roles.md#iam-term-service-linked-role)*.

Saat Anda mencabut izin untuk peran menggunakan prosedur dalam topik ini, AWS lampirkan kebijakan sebaris baru ke peran yang menolak semua izin untuk semua tindakan. Ini mencakup sebuah syarat yang menerapkan pembatasan hanya jika pengguna mengasumsikan peran tersebut *sebelum* waktu saat Anda mencabut izin. Jika pengguna mengasumsikan peran tersebut *setelah* Anda mencabut izin, maka kebijakan penolakan tidak berlaku bagi pengguna tersebut.

Untuk informasi lebih lanjut tentang menolak akses, lihat[Menonaktifkan izin untuk kredensial keamanan sementara](id_credentials_temp_control-access_disable-perms.md).

**penting**  
Kebijakan penolakan ini berlaku untuk semua pengguna peran yang ditentukan, bukan hanya untuk mereka yang memiliki sesi konsol durasi yang lebih lama.

## Izin minimum untuk mencabut izin sesi dari peran
<a name="revoke-session-permissions"></a>

Untuk dapat berhasil mencabut izin sesi dari peran, Anda harus memiliki izin `PutRolePolicy` untuk peran tersebut. Ini memungkinkan Anda untuk melampirkan kebijakan inline `AWSRevokeOlderSessions` ke peran tersebut.

## Mencabut izin sesi
<a name="revoke-session"></a>

Anda dapat mencabut izin sesi dari peran untuk menolak semua izin kepada pengguna mana pun yang mengambil peran tersebut.

**catatan**  
Anda tidak dapat mengedit peran di IAM yang dibuat dari kumpulan izin Pusat Identitas IAM. Anda harus mencabut sesi set izin aktif untuk pengguna di Pusat Identitas IAM. Untuk informasi selengkapnya, lihat [Mencabut sesi peran IAM aktif yang dibuat oleh set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#revoke-user-permissions) di Panduan Pengguna Pusat *Identitas IAM*.

**Untuk segera menolak semua izin untuk pengguna kredensial peran saat ini**

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, pilih **Peran**, lalu pilih nama (bukan kotak centang) peran yang izinnya ingin dicabut.

1. Di halaman **Ringkasan** untuk peran yang dipilih, pilih tab **Cabut sesi**.

1. Di tab **Cabut sesi**, pilih **Cabut sesi aktif**.

1. AWS meminta Anda untuk mengkonfirmasi tindakan. Pilih **Saya mengakui bahwa saya mencabut semua sesi aktif untuk** peran ini. kotak centang dan pilih **Cabut sesi aktif** pada kotak dialog.

   IAM kemudian melampirkan kebijakan yang dinamai `AWSRevokeOlderSessions` untuk peran tersebut. Setelah Anda memilih **Cabut sesi aktif**, kebijakan menolak semua akses ke pengguna yang mengambil peran di masa lalu serta sekitar 30 detik ke depan. Pilihan future time ini memperhitungkan penundaan propagasi kebijakan untuk menangani sesi baru yang diperoleh atau diperbarui sebelum kebijakan yang diperbarui berlaku di wilayah tertentu. Setiap pengguna yang mengambil peran lebih dari sekitar 30 detik setelah Anda memilih Mencabut sesi aktif tidak terpengaruh. Untuk mempelajari mengapa perubahan tidak selalu langsung terlihat, lihat [Perubahan yang saya buat tidak selalu langsung terlihat](troubleshoot.md#troubleshoot_general_eventual-consistency). 

**catatan**  
Jika Anda memilih untuk **Mencabut sesi aktif** lagi nanti, stempel tanggal dan waktu dalam kebijakan akan di-refresh dan sekali lagi menolak semua izin untuk setiap pengguna yang mengambil peran sebelum waktu yang ditentukan.

Pengguna valid yang sesinya dicabut dengan cara ini harus memperoleh kredensial sementara untuk sesi baru untuk melanjutkan bekerja. AWS CLI Cache kredensialnya sampai kedaluwarsa. Untuk memaksa CLI menghapus dan menyegarkan kredensial yang tersimpan yang sudah tidak valid, jalankan salah satu perintah berikut:

**Linux, macOS, atau Unix**

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

**Windows**

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

## Mencabut izin sesi sebelum waktu yang ditentukan
<a name="revoke-session-policy"></a>

 Anda juga dapat mencabut izin sesi kapan saja sesuai pilihan Anda menggunakan AWS CLI atau SDK untuk menentukan nilai `aws:TokenIssueTime` kunci dalam elemen Kondisi kebijakan. 

Kebijakan ini menolak semua izin jika nilainya lebih awal dari `aws:TokenIssueTime` tanggal dan waktu yang ditentukan. Nilai dari `aws:TokenIssueTime` sesuai dengan waktu yang tepat saat kredensial keamanan sementara dibuat. `aws:TokenIssueTime`Nilai hanya ada dalam konteks AWS permintaan yang ditandatangani dengan kredenal keamanan sementara, sehingga pernyataan Deny dalam kebijakan tidak memengaruhi permintaan yang ditandatangani dengan kredensi jangka panjang pengguna IAM.

Kebijakan ini juga dapat dilampirkan pada suatu peran. Dalam hal ini, kebijakan hanya memengaruhi kredensial keamanan sementara yang dibuat oleh peran sebelum tanggal dan waktu yang ditentukan.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"}
    }
  }
}
```

------

Pengguna valid yang sesinya dicabut dengan cara ini harus memperoleh kredensial sementara untuk sesi baru untuk melanjutkan bekerja. AWS CLI Cache kredensialnya sampai kedaluwarsa. Untuk memaksa CLI menghapus dan menyegarkan kredensial yang tersimpan yang sudah tidak valid, jalankan salah satu perintah berikut:

**Linux, macOS, atau Unix**

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

**Windows**

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

# Memperbarui peran terkait layanan
<a name="id_roles_update-service-linked-role"></a>

Metode yang Anda gunakan untuk mengedit peran yang ditautkan ke layanan bergantung pada layanan. Beberapa layanan mungkin mengizinkan Anda mengedit izin untuk peran tertaut-layanan dari konsol layanan, API, atau CLI. Namun, setelah Anda membuat peran terkait layanan, Anda tidak dapat mengubah nama peran karena berbagai entitas mungkin mereferensikan peran tersebut. Anda dapat mengedit deskripsi peran apa pun dari konsol IAM, API, atau CLI.

Untuk informasi tentang layanan mana yang mendukung peran yang terkait dengan layanan, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **di kolom **Peran Terkait-Layanan** Untuk mempelajari apakah layanan mendukung pengeditan peran terkait layanan, pilih tautan **Yes** untuk melihat dokumentasi peran terkait layanan untuk layanan itu.

## Mengedit deskripsi peran yang ditautkan ke layanan (konsol)
<a name="edit-service-linked-role-iam-console"></a>

Anda dapat menggunakan konsol IAM untuk menyunting penjelasan peran terkait layanan.

**Untuk menyunting deskripsi peran terkait layanan (konsol IAM)**

1. Di panel navigasi konsol IAM, pilih **Peran**.

1. Pilih nama peran yang akan diubah.

1. Di ujung kanan **Deskripsi peran**, pilih **Edit**. 

1. Masukkan deskripsi baru di kotak, lalu pilih **Simpan**.

## Menyunting deskripsi peran terkait layanan (AWS CLI)
<a name="edit-service-linked-role-iam-cli"></a>

Anda dapat menggunakan perintah IAM dari AWS CLI untuk mengedit deskripsi peran terkait layanan.

**Untuk mengubah deskripsi peran terkait layanan (AWS CLI)**

1. (Opsional) Untuk melihat deskripsi peran saat ini, jalankan perintah berikut:

   ```
   aws iam [get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) --role-name ROLE-NAME
   ```

   Gunakan nama peran, bukan ARN, untuk mereferensikan ke peran dengan perintah CLI. Misalnya, jika peran memiliki ARN berikut: `arn:aws:iam::123456789012:role/myrole`, referensi Anda ke peran sebagai **myrole**.

1. Untuk memperbarui deskripsi peran terkait layanan, jalankan perintah berikut:

   ```
   aws iam [update-role](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role.html) --role-name ROLE-NAME --description OPTIONAL-DESCRIPTION
   ```

## Mengedit deskripsi peran terkait layanan (API)AWS
<a name="edit-service-linked-role-iam-api"></a>

Anda dapat menggunakan AWS API untuk mengedit deskripsi peran terkait layanan.

**Untuk mengubah deskripsi peran terkait layanan (API)AWS**

1. (Opsional) Untuk melihat deskripsi peran saat ini, panggil operasi berikut, dan sebutkan nama peran:

   AWS API: [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. Untuk memperbarui deskripsi peran, hubungi operasi berikut, dan sebutkan nama (dan deskripsi opsional) peran tersebut: 

   AWS API: [UpdateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRole.html) 

# Memperbarui kebijakan kepercayaan peran
<a name="id_roles_update-role-trust-policy"></a>

Untuk mengubah siapa yang dapat mengasumsikan peran, Anda harus mengubah kebijakan kepercayaan peran tersebut. Anda tidak dapat mengubah kebijakan kepercayaan untuk *[peran yang terkait dengan layanan](id_roles.md#iam-term-service-linked-role)*.

**Catatan**  
Jika pengguna terdaftar sebagai prinsipal dalam kebijakan kepercayaan peran, tetapi tidak dapat mengasumsikan peran tersebut, periksa [batas izin](access_policies_boundaries.md) pengguna tersebut. Jika batas izin diatur untuk pengguna tersebut, maka itu seharusnya memungkinkan tindakan `sts:AssumeRole`.
Untuk memungkinkan pengguna untuk mengambil peran saat ini lagi dalam sesi peran, tentukan peran ARN atau Akun AWS ARN sebagai prinsipal dalam kebijakan kepercayaan peran. Layanan AWS yang menyediakan sumber daya komputasi seperti Amazon EC2, Amazon ECS, Amazon EKS, dan Lambda memberikan kredensi sementara dan secara otomatis memperbarui kredensional ini. Ini memastikan bahwa Anda selalu memiliki seperangkat kredensional yang valid. Untuk layanan ini, tidak perlu mengambil peran saat ini lagi untuk mendapatkan kredensi sementara. Namun, jika Anda berniat untuk meneruskan [tag sesi](id_session-tags.md) [atau kebijakan sesi](access_policies.md#policies_session), Anda perlu mengambil peran saat ini lagi.


## Memperbarui kebijakan kepercayaan peran (konsol)
<a name="id_roles_update-trust-policy-console"></a>

**Untuk mengubah kebijakan kepercayaan peran dalam Konsol Manajemen AWS**

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 **Peran**.

1. Dalam daftar peran di akun Anda, pilih nama peran yang ingin Anda ubah.

1. Pilih tab **Trust relationship**, lalu pilih **Edit trust policy**.

1. Ubah kebijakan kepercayaan sebagaimana diperlukan. Untuk menambahkan prinsipal tambahan yang dapat mengasumsikan peran, tentukan dalam elemen `Principal`. Misalnya, cuplikan kebijakan berikut menunjukkan cara mereferensikan dua Akun AWS elemen: `Principal`

   ```
   "Principal": {
     "AWS": [
       "arn:aws:iam::111122223333:root",
       "arn:aws:iam::444455556666:root"
     ]
   },
   ```

   Jika Anda menetapkan prinsipal di akun lain, menambahkan akun ke kebijakan kepercayaan dari suatu peran hanya setengah dari membangun hubungan kepercayaan lintas akun. Secara default, tidak ada pengguna dalam akun terpercaya yang dapat mengasumsikan peran tersebut. Administrator untuk akun yang baru dipercaya harus memberikan izin kepada pengguna untuk mengasumsikan peran tersebut. Untuk melakukannya, administrator harus membuat atau mengubah kebijakan yang dilampirkan pada pengguna untuk memberikan akses kepada pengguna ke tindakan `sts:AssumeRole`. Untuk informasi selengkapnya, lihat prosedur berikut atau [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

   Cuplikan kebijakan berikut menunjukkan cara mereferensikan dua AWS layanan dalam elemen: `Principal`

   ```
   "Principal": {
     "Service": [
       "opsworks.amazonaws.com",
       "ec2.amazonaws.com"
     ]
   },
   ```

1. Setelah selesai mengedit kebijakan kepercayaan Anda, pilih **Perbarui kebijakan** untuk menyimpan perubahan Anda.

   Untuk informasi selengkapnya tentang struktur dan sintaks, lihat [Kebijakan dan izin di AWS Identity and Access Management](access_policies.md) dan [Referensi elemen kebijakan IAM JSON](reference_policies_elements.md).

**Untuk mengizinkan pengguna dalam akun eksternal terpercaya untuk menggunakan peran (konsol)**

Untuk informasi dan detail selengkapnya tentang prosedur ini, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

1. Masuk ke eksternal tepercaya Akun AWS. 

1. Tentukan apakah akan melampirkan izin ke pengguna atau ke kelompok. Di panel navigasi konsol IAM, pilih **Pengguna atau **grup Pengguna**** yang sesuai.

1. Pilih nama pengguna atau kelompok yang ingin Anda beri akses, dan kemudian pilih tab **Izin**.

1. Lakukan salah satu langkah berikut:
   + Untuk mengubah kebijakan yang dikelola pelanggan, pilih nama kebijakan tersebut, pilih **Ubah Kebijakan**, lalu pilih tab **JSON**. Anda tidak dapat mengedit kebijakan AWS terkelola. AWS kebijakan terkelola muncul dengan AWS ikon (![\[Orange cube icon indicating a policy is managed by AWS.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/policy_icon.png)). Untuk informasi selengkapnya tentang perbedaan antara kebijakan yang dikelola AWS dan kebijakan yang dikelola oleh pelanggan, lihat [Kebijakan terkelola dan kebijakan inline](access_policies_managed-vs-inline.md).
   + Untuk mengubah kebijakan inline, pilih panah di samping nama kebijakan dan pilih **Ubah Kebijakan**.

1. Dalam editor kebijakan, tambahkan elemen `Statement` baru yang menentukan hal berikut:

   ```
   {
     "Effect": "Allow",
     "Action": "sts:AssumeRole",
     "Resource": "arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME"
   }
   ```

   Ganti ARN dalam pernyataan dengan ARN dari peran yang dapat diasumsikan oleh pengguna.

1. Ikuti prompt pada layar untuk menyelesaikan pengubahan kebijakan. 

## Memperbarui kebijakan kepercayaan peran (AWS CLI)
<a name="id_roles-update-trust-policy-cli"></a>

Anda dapat menggunakan AWS CLI untuk mengubah siapa yang dapat mengambil peran.

**Untuk mengubah kebijakan kepercayaan peran (AWS CLI)**

1. (Opsional) Jika Anda tidak tahu nama peran yang ingin Anda ubah, jalankan perintah berikut untuk membuat daftar peran di akun Anda:
   + [aws iam daftar peran](https://docs.aws.amazon.com/cli/latest/reference/iam/list-roles.html)

1. (Opsional) Untuk melihat penjelasan peran terkini, gunakan perintah berikut:
   + [aws iam mendapatkan peran](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)

1. Untuk mengubah prinsipal terpercaya yang dapat mengakses peran, buat file teks dengan kebijakan kepercayaan yang diperbarui. Anda dapat menggunakan editor teks apa pun untuk menyusun kebijakan.

   Misalnya, kebijakan kepercayaan berikut menunjukkan cara Akun AWS mereferensikan dua `Principal` elemen. Hal ini memungkinkan pengguna dalam dua terpisah Akun AWS untuk mengambil peran ini.

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

****  

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

------

   Jika Anda menetapkan prinsipal di akun lain, menambahkan akun ke kebijakan kepercayaan dari suatu peran hanya setengah dari membangun hubungan kepercayaan lintas akun. Secara default, tidak ada pengguna dalam akun terpercaya yang dapat mengasumsikan peran tersebut. Administrator untuk akun yang baru dipercaya harus memberikan izin kepada pengguna untuk mengasumsikan peran tersebut. Untuk melakukannya, administrator harus membuat atau mengubah kebijakan yang dilampirkan pada pengguna untuk memberikan akses kepada pengguna ke tindakan `sts:AssumeRole`. Untuk informasi selengkapnya, lihat prosedur berikut atau [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

1. Untuk menggunakan file yang baru saja Anda buat untuk memperbarui kebijakan kepercayaan, jalankan perintah berikut:
   + [aws iam update-assume-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/update-assume-role-policy.html)

**Untuk mengizinkan pengguna dalam akun eksternal tepercaya untuk menggunakan peran (AWS CLI)**

Untuk informasi dan detail selengkapnya tentang prosedur ini, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

1. Buat file JSON yang berisi kebijakan izin yang memberikan izin untuk mengasumsikan peran tersebut. Misalnya, kebijakan berikut memuat izin minimum yang diperlukan:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/ROLE-NAME"
       }
   }
   ```

------

   Ganti ARN dalam pernyataan dengan ARN dari peran yang dapat diasumsikan oleh pengguna.

1. Jalankan perintah berikut untuk mengunggah file JSON yang berisi kebijakan kepercayaan ke IAM:
   + [aws iam membuat kebijakan](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html)

   Keluaran dari perintah ini mencakup ARN kebijakan. Catat ARN ini karena Anda akan memerlukannya di langkah berikutnya. 

1. Tentukan pengguna atau kelompok mana yang akan dilampiri kebijakan ini. Jika Anda tidak tahu nama pengguna atau kelompok yang dimaksudkan, gunakan salah satu perintah berikut untuk membuat daftar pengguna atau kelompok di akun Anda:
   + [aws iam daftar-pengguna](https://docs.aws.amazon.com/cli/latest/reference/iam/list-users.html)
   + [aws iam daftar-grup](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups.html)

1. Gunakan salah satu perintah berikut untuk melampirkan kebijakan yang Anda buat pada langkah sebelumnya kepada pengguna atau kelompok:
   + [aws iam attach-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html)
   + [aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)

## Memperbarui kebijakan kepercayaan peran (AWS API)
<a name="id_roles-update-trust-policy-api"></a>

Anda dapat menggunakan AWS API untuk mengubah siapa yang dapat mengambil peran.

**Untuk memodifikasi kebijakan kepercayaan peran (AWS API)**

1. (Opsional) Jika Anda tidak tahu nama peran yang ingin Anda ubah, jalankan perintah berikut untuk membuat daftar peran di akun Anda:
   + [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)

1. (Opsional) Untuk melihat kebijakan kepercayaan terkini untuk peran, panggil operasi berikut:
   + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)

1. Untuk mengubah prinsipal terpercaya yang dapat mengakses peran, buat file teks dengan kebijakan kepercayaan yang diperbarui. Anda dapat menggunakan editor teks apa pun untuk menyusun kebijakan.

   Misalnya, kebijakan kepercayaan berikut menunjukkan cara Akun AWS mereferensikan dua `Principal` elemen. Hal ini memungkinkan pengguna dalam dua terpisah Akun AWS untuk mengambil peran ini.

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

****  

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

------

   Jika Anda menetapkan prinsipal di akun lain, menambahkan akun ke kebijakan kepercayaan dari suatu peran hanya setengah dari membangun hubungan kepercayaan lintas akun. Secara default, tidak ada pengguna dalam akun terpercaya yang dapat mengasumsikan peran tersebut. Administrator untuk akun yang baru dipercaya harus memberikan izin kepada pengguna untuk mengasumsikan peran tersebut. Untuk melakukannya, administrator harus membuat atau mengubah kebijakan yang dilampirkan pada pengguna untuk memberikan akses kepada pengguna ke tindakan `sts:AssumeRole`. Untuk informasi selengkapnya, lihat prosedur berikut atau [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

1. Untuk menggunakan file yang baru saja Anda buat untuk memperbarui kebijakan kepercayaan, panggil operasi berikut:
   + [UpdateAssumeRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html)

**Untuk memungkinkan pengguna di akun eksternal tepercaya menggunakan peran (AWS API)**

Untuk informasi dan detail selengkapnya tentang prosedur ini, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).

1. Buat file JSON yang berisi kebijakan izin yang memberikan izin untuk mengasumsikan peran tersebut. Misalnya, kebijakan berikut memuat izin minimum yang diperlukan:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/ROLE-NAME"
       }
   }
   ```

------

   Ganti ARN dalam pernyataan dengan ARN dari peran yang dapat diasumsikan oleh pengguna.

1. Panggil operasi berikut untuk mengunggah file JSON yang berisi kebijakan kepercayaan ke IAM:
   + [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)

   Keluaran operasi ini mencakup ARN kebijakan. Catat ARN ini karena Anda akan memerlukannya di langkah berikutnya. 

1. Tentukan pengguna atau kelompok mana yang akan dilampiri kebijakan ini. Jika Anda tidak tahu nama pengguna atau grup yang dimaksudkan, panggil salah satu operasi berikut untuk membuat daftar pengguna atau kelompok di akun Anda:
   + [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)
   + [ListGroups](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroups.html)

1. Panggil salah satu perintah berikut untuk melampirkan kebijakan yang Anda buat pada langkah sebelumnya kepada pengguna atau kelompok:
   +  API: [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html)
   + [AttachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html)

# Memperbarui izin untuk peran
<a name="id_roles_update-role-permissions"></a>

Gunakan prosedur berikut untuk memperbarui kebijakan izin peran dan batasan izin.

## Prasyarat: Lihat akses peran
<a name="roles-modify_prerequisites"></a>

Sebelum mengubah izin pengguna, Anda harus meninjau aktivitas tingkat-layanan terakhirnya. Ini penting karena Anda tidak ingin menghapus akses dari suatu prinsipal (orang atau aplikasi) yang menggunakannya. Untuk informasi selengkapnya perihal melihat informasi yang terakhir diakses, lihat [Memperbaiki izin dalam AWS menggunakan informasi yang terakhir diakses](access_policies_last-accessed.md).

## Memperbarui kebijakan izin untuk peran
<a name="id_roles_update-role-permissions-policy"></a>

Untuk mengubah izin yang diperbolehkan oleh peran tersebut, ubah kebijakan (atau beberapa kebijakan) izin peran tersebut. Anda tidak dapat mengubah kebijakan kepercayaan untuk *[peran yang terkait dengan layanan](id_roles.md#iam-term-service-linked-role)* dalam IAM. Anda mungkin dapat mengubah kebijakan izin dalam layanan yang bergantung pada peran tersebut. Untuk memeriksa apakah layanan mendukung fitur ini, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **dalam kolom **Peran yang terkait dengan layanan**. Pilih **Ya** dengan tautan untuk melihat dokumentasi peran yang terkait dengan layanan untuk layanan tersebut.

### Memperbarui kebijakan izin peran (konsol)
<a name="id_roles_update-role-permissions-policy-console"></a>

**Untuk mengubah izin yang diperbolehkan oleh peran (konsol)**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi konsol IAM, pilih **Peran**.

1. Pilih nama peran yang ingin Anda ubah, dan kemudian pilih tab**Izin**.

1. Lakukan salah satu langkah berikut:
   + Untuk mengubah kebijakan yang dikelola oleh pelanggan yang sudah ada, pilih nama kebijakan tersebut dan kemudian pilih **Ubah kebijakan**.
**catatan**  
Anda tidak dapat mengedit kebijakan AWS terkelola. AWS kebijakan terkelola muncul dengan AWS ikon (![\[Orange cube icon indicating a policy is managed by AWS.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/policy_icon.png)). Untuk informasi selengkapnya tentang perbedaan antara kebijakan AWS terkelola dan kebijakan yang dikelola pelanggan, lihat[Kebijakan terkelola dan kebijakan inline](access_policies_managed-vs-inline.md). 
   + Untuk melampirkan kebijakan terkelola yang ada ke peran, pilih **Tambahkan izin**, lalu pilih **Lampirkan kebijakan**.
   + Untuk mengedit kebijakan inline yang ada, perluas kebijakan dan pilih **Edit**.
   + Untuk menyematkan kebijakan sebaris baru, pilih **Tambahkan izin**, lalu pilih **Buat** kebijakan sebaris. 
   + Untuk menghapus kebijakan yang ada dari peran, pilih kotak centang di samping nama kebijakan, lalu pilih **Hapus**.

### Memperbarui kebijakan izin peran ()AWS CLI
<a name="id_roles_update_permissions-policy-cli"></a>

Untuk mengubah izin yang diperbolehkan oleh peran tersebut, ubah kebijakan (atau beberapa kebijakan) izin peran tersebut. Anda tidak dapat mengubah kebijakan kepercayaan untuk *[peran yang terkait dengan layanan](id_roles.md#iam-term-service-linked-role)* dalam IAM. Anda mungkin dapat mengubah kebijakan izin dalam layanan yang bergantung pada peran tersebut. Untuk memeriksa apakah layanan mendukung fitur ini, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **dalam kolom **Peran yang terkait dengan layanan**. Pilih **Ya** dengan tautan untuk melihat dokumentasi peran yang terkait dengan layanan untuk layanan tersebut.

**Untuk mengubah izin yang diperbolehkan oleh peran (AWS CLI)**

1. (Opsional) Untuk melihat izin yang saat ini terkait dengan peran, jalankan perintah berikut:

   1. [aws iam list-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html) untuk mencantumkan kebijakan sebaris

   1. [aws iam list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html) untuk membuat daftar kebijakan terkelola

1. Perintah untuk memperbarui izin untuk peran berbeda-beda tergantung pada apakah Anda memperbarui kebijakan terkelola atau kebijakan inline.

   Untuk memperbarui kebijakan terkelola, panggil operasi berikut untuk membuat versi baru kebijakan terkelola:
   + [aws iam create-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy-version.html)

   Untuk memperbarui kebijakan inline, jalankan perintah berikut:
   + [aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

### Memperbarui kebijakan izin peran (AWS API)
<a name="id_roles_update_permissions-policy-api"></a>

Untuk mengubah izin yang diperbolehkan oleh peran tersebut, ubah kebijakan (atau beberapa kebijakan) izin peran tersebut. Anda tidak dapat mengubah kebijakan kepercayaan untuk *[peran yang terkait dengan layanan](id_roles.md#iam-term-service-linked-role)* dalam IAM. Anda mungkin dapat mengubah kebijakan izin dalam layanan yang bergantung pada peran tersebut. Untuk memeriksa apakah layanan mendukung fitur ini, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan cari layanan yang memiliki **Ya **dalam kolom **Peran yang terkait dengan layanan**. Pilih **Ya** dengan tautan untuk melihat dokumentasi peran yang terkait dengan layanan untuk layanan tersebut.

**Untuk mengubah izin yang diizinkan oleh peran (AWS API)**

1. (Opsional) Untuk melihat izin yang saat ini terkait dengan peran, panggil perintah berikut:

   1. [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html) untuk membuat daftar kebijakan inline

   1. [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html) untuk membuat daftar kebijakan terkelola

1. Operasi untuk memperbarui izin untuk peran berbeda-beda tergantung pada apakah Anda memperbarui kebijakan terkelola atau kebijakan inline.

   Untuk memperbarui kebijakan terkelola, panggil operasi berikut untuk membuat versi baru kebijakan terkelola:
   + [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)

   Untuk memperbarui kebijakan inline, panggil operasi berikut:
   + [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)

## Perbarui batas izin untuk peran
<a name="id_roles_update-role-permissions-boundary"></a>

Untuk mengubah izin maksimum yang diperbolehkan untuk peran, ubah [batas izin](access_policies_boundaries.md) peran.

### Memperbarui batas izin peran (konsol)
<a name="id_roles_update-permissions-boundary-console"></a>

**Untuk mengubah kebijakan yang digunakan untuk mengatur batas izin untuk peran**

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, pilih **Peran**.

1. Pilih nama peran dengan [batas izin](access_policies_boundaries.md) yang ingin Anda ubah. 

1. Pilih tab **Izin**. Jika perlu, buka bagian **Batas izin** lalu pilih **Ubah batas**.

1. Pilih kebijakan yang ingin Anda gunakan untuk batasan izin.

1. Pilih **Ubah batas**.

   Perubahan Anda tidak berlaku sampai saat berikutnya seseorang mengasumsikan peran ini.

### Memperbarui batas izin peran ()AWS CLI
<a name="id_roles_update_permissions-boundary-cli"></a>

**Untuk mengubah kebijakan terkelola yang digunakan untuk mengatur batas izin peran (AWS CLI)**

1. (Opsional) Untuk melihat [batas izin](access_policies_boundaries.md) terkini untuk peran, jalankan perintah berikut: 
   + [aws iam mendapatkan peran](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)

1. Untuk menggunakan kebijakan terkelola yang berbeda untuk memperbarui batas izin untuk peran, jalankan perintah berikut: 
   + [aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html)

   Peran hanya dapat memiliki satu kebijakan terkelola yang diatur sebagai batas izin. Jika Anda mengubah batas izin, Anda juga mengubah izin maksimum yang diperbolehkan untuk peran.

### Memperbarui batas izin peran (API)AWS
<a name="id_roles_update-permissions-boundary-api"></a>

**Untuk mengubah kebijakan terkelola yang digunakan untuk menyetel batas izin untuk peran (API)AWS**

1. (Opsional) Untuk melihat [batas izin](access_policies_boundaries.md) terkini untuk peran, panggil operasi berikut: 
   + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)

1. Untuk menggunakan kebijakan terkelola untuk memperbarui batas izin untuk peran, panggil operasi berikut: 
   + [PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html)

   Peran hanya dapat memiliki satu kebijakan terkelola yang diatur sebagai batas izin. Jika Anda mengubah batas izin, Anda juga mengubah izin maksimum yang diperbolehkan untuk peran.

# Perbarui setelan untuk peran
<a name="id_roles_update-role-settings"></a>

Gunakan prosedur berikut untuk memperbarui deskripsi peran atau mengubah durasi sesi maksimum untuk peran.

## Memperbarui deskripsi peran
<a name="id_roles_update-description"></a>

Untuk mengubah deskripsi peran, ubah teks deskripsi.

### Memperbarui deskripsi peran (konsol)
<a name="id_roles_update-description-console"></a>

**Untuk mengubah deskripsi peran (konsol)**

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 **Peran**.

1. Pilih nama peran yang akan diubah.

1. Di bagian **Ringkasan**, pilih **Edit**.

1. Memasukkan Deskripsi baru di kotak, dan memilih **Simpan perubahan**.

### Memperbarui deskripsi peran (AWS CLI)
<a name="id_roles_update-description-cli"></a>

**Untuk mengubah deskripsi peran (AWS CLI)**

1. (Opsional) Untuk melihat deskripsi peran terkini, jalankan perintah berikut:
   + [aws iam mendapatkan peran](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)

1. Untuk memperbarui deskripsi peran, jalankan perintah berikut dengan parameter deskripsi:
   + [peran pembaruan aws iam](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role.html)

### Memperbarui deskripsi peran (AWS API)
<a name="id_roles_update-description-api"></a>

**Untuk mengubah deskripsi peran (AWS API)**

1. (Opsional) Untuk melihat desripsi terkini untuk peran, panggil operasi berikut:
   + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. Untuk memperbarui deskripsi peran, panggil operasi berikut dengan parameter deskripsi:
   + [UpdateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRole.html)

## Memperbarui durasi sesi maksimum untuk peran
<a name="id_roles_update-session-duration"></a>

Untuk menentukan setelan durasi sesi maksimum untuk peran yang diasumsikan menggunakan konsol, API AWS CLI, atau AWS API, ubah nilai setelan durasi sesi maksimum. Pengaturan ini dapat memiliki nilai dari 1 jam hingga 12 jam. Jika Anda tidak menentukan nilai, defaultnya maksimum 1 jam diterapkan. Pengaturan ini tidak membatasi sesi yang diasumsikan oleh AWS layanan.

### Memperbarui durasi sesi peran maksimum (konsol)
<a name="id_roles_update-session-duration-console"></a><a name="id_roles_modify_max-session"></a>

**Untuk mengubah setelan durasi sesi maksimum untuk peran yang diasumsikan menggunakan konsol, AWS CLI, atau AWS API (konsol)**

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 **Peran**.

1. Pilih nama peran yang akan diubah.

1. Di bagian **Ringkasan**, pilih **Edit**.

1. Untuk **Durasi sesi maksimum**, pilih nilai. Atau, pilih **Durasi kustom** dan masukkan nilai (dalam detik).

1. Pilih **Simpan perubahan**.

   Perubahan Anda tidak berlaku sampai saat berikutnya seseorang mengasumsikan peran ini. Untuk mempelajari cara mencabut sesi yang ada untuk peran ini, lihat [Mencabut kredensi keamanan sementara peran IAM](id_roles_use_revoke-sessions.md).

Dalam Konsol Manajemen AWS, sesi pengguna IAM adalah 12 jam secara default. Pengguna IAM yang beralih peran di konsol diberikan durasi sesi maksimum peran, atau sisa waktu dalam sesi pengguna, mana yang lebih sedikit.

Siapa pun yang mengambil peran dari AWS CLI atau AWS API dapat meminta sesi yang lebih lama, hingga maksimum ini. Pengaturan `MaxSessionDuration` menentukan durasi maksimum dari sesi peran yang dapat diminta.
+ Untuk menentukan durasi sesi menggunakan AWS CLI menggunakan `duration-seconds` parameter. Untuk mempelajari selengkapnya, lihat [Beralih ke peran IAM ()AWS CLI](id_roles_use_switch-role-cli.md).
+ Untuk menentukan durasi sesi menggunakan AWS API, gunakan `DurationSeconds` parameter. Untuk mempelajari selengkapnya, lihat [Beralih ke peran IAM (AWS API)](id_roles_use_switch-role-api.md). 

### Memperbarui durasi sesi peran maksimum (AWS CLI)
<a name="id_roles_update-session-duration-cli"></a>

**catatan**  
Siapa pun yang mengambil peran dari AWS CLI atau API dapat menggunakan parameter `duration-seconds` CLI atau parameter API untuk meminta sesi `DurationSeconds` yang lebih lama. Pengaturan `MaxSessionDuration` menentukan durasi maksimum dari sesi peran yang dapat diminta dengan menggunakan parameter `DurationSeconds`. Jika pengguna tidak menentukan nilai untuk parameter `DurationSeconds` tersebut, kredensial keamanan mereka berlaku selama satu jam.

**Untuk mengubah setelan durasi sesi maksimum untuk peran yang diasumsikan menggunakan AWS CLI (AWS CLI)**

1. (Opsional) Untuk melihat durasi sesi maksimum peran untuk peran, jalankan perintah berikut:
   + [aws iam mendapatkan peran](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)

1. Untuk memperbarui pengaturan durasi sesi maksimum peran, jalankan perintah berikut dengan parameter `max-session-duration` CLI atau parameter API `MaxSessionDuration`:
   + [peran pembaruan aws iam](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role.html)

   Perubahan Anda tidak berlaku sampai saat berikutnya seseorang mengasumsikan peran ini. Untuk mempelajari cara mencabut sesi yang ada untuk peran ini, lihat [Mencabut kredensi keamanan sementara peran IAM](id_roles_use_revoke-sessions.md).

### Memperbarui durasi sesi peran maksimum (AWS API)
<a name="id_roles_update-session-duration-api"></a>

**catatan**  
Siapa pun yang mengambil peran dari AWS CLI atau API dapat menggunakan parameter `duration-seconds` CLI atau parameter API untuk meminta sesi `DurationSeconds` yang lebih lama. Pengaturan `MaxSessionDuration` menentukan durasi maksimum dari sesi peran yang dapat diminta dengan menggunakan parameter `DurationSeconds`. Jika pengguna tidak menentukan nilai untuk parameter `DurationSeconds` tersebut, kredensial keamanan mereka berlaku selama satu jam.

**Untuk mengubah setelan durasi sesi maksimum untuk peran yang diasumsikan menggunakan API (AWS API)**

1. (Opsional) Untuk melihat durasi sesi maksimum terkini untuk peran, panggil operasi berikut:
   + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. Untuk memperbarui pengaturan durasi sesi maksimum peran, panggil operasi berikut dengan `max-sessionduration` Parameter CLI atau `MaxSessionDuration` Parameter API:
   + [UpdateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRole.html)

   Perubahan Anda tidak berlaku sampai saat berikutnya seseorang mengasumsikan peran ini. Untuk mempelajari cara mencabut sesi yang ada untuk peran ini, lihat [Mencabut kredensi keamanan sementara peran IAM](id_roles_use_revoke-sessions.md).

# Hapus peran atau profil contoh
<a name="id_roles_manage_delete"></a>

Jika Anda tidak lagi memerlukan peran, kami sarankan Anda untuk menghapus peran tersebut dan izin terkaitnya. Dengan begitu, Anda tidak memiliki entitas yang tidak digunakan yang tidak dipantau atau dipelihara secara aktif. 

Jika peran tersebut dikaitkan dengan instans EC2, Anda juga dapat menghapus peran tersebut dari profil instans dan kemudian menghapus profil instans.

**Awas**  
Pastikan Anda tidak memiliki instans Amazon EC2 yang sedang berjalan dengan peran atau profil instans yang akan Anda hapus. Menghapus peran atau profil instans yang terkait dengan suatu instans yang sedang berjalan akan merusak aplikasi yang sedang berjalan pada instans tersebut.

Jika Anda memilih untuk tidak menghapus peran secara permanen, Anda dapat menonaktifkan peran. Untuk melakukannya, ubah kebijakan peran lalu cabut semua sesi saat ini. Misalnya, Anda dapat menambahkan kebijakan ke peran yang menolak akses ke semua peran AWS. Anda juga dapat mengubah kebijakan kepercayaan untuk menolak akses ke siapa pun yang mencoba untuk mengasumsikan peran tersebut. Untuk informasi lebih lanjut tentang mencabut sesi, lihat [Mencabut kredensi keamanan sementara peran IAM](id_roles_use_revoke-sessions.md).

**Topics**
+ [Melihat akses peran](#roles-delete_prerequisites)
+ [Menghapus peran yang terkait dengan layanan](#id_roles_manage_delete_slr)
+ [Menghapus peran IAM (konsol)](#roles-managingrole-deleting-console)
+ [Menghapus peran IAM ()AWS CLI](#roles-managingrole-deleting-cli)
+ [Menghapus peran IAM (API)AWS](#roles-managingrole-deleting-api)
+ [Informasi Terkait](#roles-managingrole-deleting-related-info)

## Melihat akses peran
<a name="roles-delete_prerequisites"></a>

Sebelum menghapus peran, kami menyarankan agar Anda meninjau kapan peran tersebut terakhir kali digunakan. Anda dapat melakukan ini menggunakan Konsol Manajemen AWS, the AWS CLI, atau AWS API. Anda harus melihat informasi ini karena Anda tidak ingin menghapus akses dari seseorang yang menggunakan peran tersebut. 

Tanggal aktivitas terakhir peran mungkin tidak cocok dengan tanggal terakhir yang dilaporkan di tab **Terakhir Diakses**. Tab [**Terakhir Diakses**](access_policies_last-accessed-view-data.md) melaporkan aktivitas hanya untuk layanan yang diizinkan oleh kebijakan izin peran. Tanggal aktivitas terakhir peran mencakup upaya terakhir untuk mengakses layanan apa pun AWS.

**catatan**  
Periode pelacakan untuk aktivitas terakhir peran dan data Terakhir Diakses adalah selama 400 hari terakhir. Periode ini bisa lebih singkat jika Wilayah Anda mulai mendukung fitur-fitur ini tahun lalu. Peran ini mungkin telah digunakan lebih dari 400 hari yang lalu. Untuk informasi lebih lanjut tentang periode pelacakan ini, lihat [Tempat AWS melacak informasi terakhir yang diakses](access_policies_last-accessed.md#last-accessed_tracking-period).

**Untuk melihat kapan peran terakhir digunakan (konsol)**

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, pilih **Peran**.

1. Cari baris peran dengan aktivitas ingin Anda lihat. Anda dapat menggunakan bidang pencarian untuk mempersempit hasil. Lihat kolom **Aktivitas terakhir** untuk melihat jumlah hari sejak peran terakhir digunakan. Jika peran tersebut belum digunakan dalam periode pelacakan, maka tabel akan menampilkan **Tidak ada**. 

1. Pilih nama peran untuk melihat informasi lebih lanjut. Halaman ** Ringkasan** peran juga mencakup **Aktivitas terakhir**, yang menampilkan tanggal terakhir peran digunakan. Jika peran tersebut tidak digunakan dalam 400 hari terakhir, maka **Aktivitas terakhir** menampilkan **Tidak diakses dalam periode pelacakan**.

**Untuk menampilkan waktu terakhir peran digunakan (AWS CLI)**  
`[aws iam get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)` - Jalankan perintah ini untuk mengembalikan informasi tentang peran, termasuk objek`RoleLastUsed`. Objek ini berisi `LastUsedDate` dan `Region` yang perannya terakhir digunakan. Jika `RoleLastUsed` ada, tetapi tidak berisi nilai, maka peran tersebut belum pernah digunakan dalam periode pelacakan.

**Untuk melihat kapan peran terakhir digunakan (AWS API)**  
`[GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/GetRole.html)` - Panggil operasi ini untuk mengembalikan informasi tentang peran, termasuk objek`RoleLastUsed`. Objek ini berisi `LastUsedDate` dan `Region` yang perannya terakhir digunakan. Jika `RoleLastUsed` ada, tetapi tidak berisi nilai, maka peran tersebut belum pernah digunakan dalam periode pelacakan.

## Menghapus peran yang terkait dengan layanan
<a name="id_roles_manage_delete_slr"></a>

Metode yang Anda gunakan untuk menghapus peran terkait layanan bergantung pada layanan. Dalam beberapa kasus, Anda tidak perlu menghapus peran terkait layanan secara manual. Misalnya, ketika Anda menyelesaikan tindakan tertentu (seperti menghapus sumber daya) dalam layanan, layanan mungkin akan menghapus peran terkait layanan untuk Anda. Dalam kasus lain, layanan mungkin mendukung penghapusan peran terkait layanan secara manual dari konsol layanan, API, atau AWS CLI. 

Tinjau dokumentasi untuk *[peran terkait layanan](id_roles.md#iam-term-service-linked-role)* di layanan tertaut untuk mempelajari cara menghapus peran. Anda dapat melihat peran yang terkait dengan layanan di akun Anda dengan masuk ke **Peran** IAM di konsol. Peran yang terkait dengan layanan muncul dengan **(Peran yang terkait dengan layanan)** dalam kolom **Entitas terpercaya** di tabel. Banner pada halaman **Ringkasan** peran juga menunjukkan bahwa peran tersebut adalah peran yang terkait dengan layanan.

Jika layanan tidak menyertakan dokumentasi untuk menghapus peran terkait layanan, Anda dapat menggunakan konsol IAM AWS CLI, atau API untuk menghapus peran tersebut.

## Menghapus peran IAM (konsol)
<a name="roles-managingrole-deleting-console"></a>

Saat Anda menggunakan Konsol Manajemen AWS untuk menghapus peran, IAM secara otomatis melepaskan kebijakan terkelola yang terkait dengan peran tersebut. Ini juga secara otomatis menghapus kebijakan sebaris apa pun yang terkait dengan peran, dan profil instans Amazon EC2 apa pun yang berisi peran tersebut. 

**penting**  
Dalam beberapa kasus, peran mungkin berkaitan dengan profil instans Amazon EC2, dan peran serta profil instans mungkin memiliki nama yang sama. Dalam hal ini Anda dapat menggunakan Konsol Manajemen AWS untuk menghapus peran dan profil instance. Pertautan ini terjadi secara otomatis untuk peran dan profil instans yang Anda buat di konsol. Jika Anda membuat peran dari AWS CLI, Alat untuk Windows PowerShell, atau AWS API, maka peran dan profil instance mungkin memiliki nama yang berbeda. Jika demikian, Anda tidak dapat menggunakan konsol untuk menghapusnya. Sebagai gantinya, Anda harus menggunakan AWS CLI, Tools for Windows PowerShell, atau AWS API untuk terlebih dahulu menghapus peran dari profil instance. Kemudian, Anda harus melakukan langkah terpisah untuk menghapus peran tersebut.

**Untuk menghapus peran (konsol)**

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, pilih **Peran**, lalu centang kotak di samping nama peran yang ingin Anda hapus. 

1. Pilih **Hapus** di bagian atas halaman.

1. Di kotak dialog konfirmasi, tinjau informasi yang terakhir diakses, yang menunjukkan kapan masing-masing peran yang dipilih terakhir mengakses AWS layanan. Ini membantu Anda mengonfirmasi jika peran tersebut saat ini aktif. Jika Anda ingin melanjutkan, masukkan nama peran di kolom input teks dan pilih **Hapus**. Jika Anda yakin, Anda dapat melanjutkan dengan penghapusan meskipun informasi yang terakhir diakses masih dimuat.

**catatan**  
Anda tidak dapat menggunakan konsol untuk menghapus profil instans kecuali itu memiliki nama yang sama dengan peran. Profil instans dihapus sebagai bagian dari proses penghapusan peran sebagaimana dijelaskan dalam prosedur sebelumnya. Untuk menghapus profil instance tanpa juga menghapus peran, Anda harus menggunakan AWS CLI atau AWS API. Untuk informasi selengkapnya, silakan lihat bagian-bagian berikut ini.

## Menghapus peran IAM ()AWS CLI
<a name="roles-managingrole-deleting-cli"></a>

Saat Anda menggunakan AWS CLI untuk menghapus peran, Anda harus terlebih dahulu menghapus kebijakan sebaris yang terkait dengan peran tersebut. Anda juga harus melepaskan kebijakan terkelola yang terkait dengan peran tersebut. Jika Anda ingin menghapus profil instance terkait yang berisi peran, Anda harus menghapusnya secara terpisah.

**Untuk menghapus peran (AWS CLI)**

1. Jika Anda tidak tahu nama peran yang ingin Anda jalankan, jalankan perintah berikut untuk membuat daftar peran di akun Anda:

   ```
   aws iam list-roles
   ```

   Daftar tersebut mencakup Amazon Resource Name (ARN) dari setiap peran. Gunakan nama peran, bukan ARN, untuk merujuk ke peran dengan perintah CLI. Misalnya, jika peran memiliki ARN berikut: `arn:aws:iam::123456789012:role/myrole`, referensi Anda ke peran sebagai **myrole**.

1. Hapus peran dari semua profil instance yang terkait dengan peran tersebut.

   1. Untuk membuat daftar semua profil instans berkaitan dengan peran tersebut, masukkan perintah berikut:

      ```
      aws iam list-instance-profiles-for-role --role-name role-name
      ```

   1. Untuk menghapus peran dari profil instans, masukkan perintah berikut untuk setiap profil instans:

      ```
      aws iam remove-role-from-instance-profile --instance-profile-name instance-profile-name --role-name role-name
      ```

1. Hapus semua kebijakan yang terkait dengan peran tersebut.

   1. Untuk mencantumkan semua kebijakan inline yang ada dalam peran, masukkan perintah berikut:

      ```
      aws iam list-role-policies --role-name role-name
      ```

   1. Untuk menghapus setiap kebijakan sebaris dari peran, masukkan perintah berikut untuk setiap kebijakan: 

      ```
      aws iam delete-role-policy --role-name role-name --policy-name policy-name
      ```

   1. Untuk mencantumkan semua kebijakan terkelola yang dilampirkan ke peran, masukkan perintah berikut:

      ```
      aws iam list-attached-role-policies --role-name role-name
      ```

   1. Untuk melepaskan setiap kebijakan terkelola dari peran, masukkan perintah berikut untuk setiap kebijakan: 

      ```
      aws iam detach-role-policy --role-name role-name --policy-arn policy-arn
      ```

1. Masukkan perintah berikut untuk menghapus peran:

   ```
   aws iam delete-role --role-name role-name
   ```

1. Jika Anda tidak berencana untuk menggunakan ulang profil instans yang terkait dengan peran tersebut, Anda dapat memasukkan perintah berikut untuk menghapusnya:

   ```
   aws iam delete-instance-profile --instance-profile-name instance-profile-name
   ```

## Menghapus peran IAM (API)AWS
<a name="roles-managingrole-deleting-api"></a>

Saat Anda menggunakan API IAM untuk menghapus peran, Anda harus terlebih dahulu menghapus kebijakan sebaris yang terkait dengan peran tersebut. Anda juga harus melepaskan kebijakan terkelola yang terkait dengan peran tersebut. Jika Anda ingin menghapus profil instance terkait yang berisi peran, Anda harus menghapusnya secara terpisah.

**Untuk menghapus peran (AWS API)**

1. Untuk mencantumkan semua profil instance yang terkait dengan peran, hubungi [ListInstanceProfilesForRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html).

   Untuk menghapus peran dari profil instance, panggil [RemoveRoleFromInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html). Anda harus meneruskan nama peran dan nama profil instans. 

   Jika Anda tidak akan menggunakan ulang profil instans yang terkait dengan peran tersebut, panggil [DeleteInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html) untuk menghapusnya.

1. Untuk mencantumkan semua kebijakan sebaris untuk peran, hubungi [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html).

   Untuk menghapus kebijakan sebaris yang terkait dengan peran, panggil [DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html). Anda harus meneruskan nama peran dan nama kebijakan sebaris. 

1. Untuk mencantumkan semua kebijakan terkelola yang dilampirkan ke peran, hubungi [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html). 

   Untuk melepaskan kebijakan terkelola yang melekat pada peran, hubungi [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html). Anda harus melewati nama peran dan kebijakan terkelola ARN. 

1. Panggil [DeleteRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRole.html) untuk menghapus peran.

## Informasi Terkait
<a name="roles-managingrole-deleting-related-info"></a>

Untuk informasi umum tentang profil instans, lihat [Gunakan profil contoh](id_roles_use_switch-role-ec2_instance-profiles.md).

Untuk informasi umum tentang peran yang terkait dengan layanan, lihat [Buat peran tertaut layanan](id_roles_create-service-linked-role.md).

# Metode untuk mengambil peran
<a name="id_roles_manage-assume"></a>

Sebelum pengguna, aplikasi, atau layanan dapat menggunakan peran yang Anda buat, Anda harus [memberikan izin untuk beralih ke](id_roles_use_permissions-to-switch.md) peran tersebut. Anda dapat menggunakan kebijakan apa pun yang dilampirkan ke grup atau pengguna untuk memberikan izin yang diperlukan. Setelah izin diberikan, pengguna dapat mengambil peran dari Konsol Manajemen AWS, Alat untuk Windows PowerShell, AWS Command Line Interface (AWS CLI) dan [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API.

**penting**  
Saat Anda membuat program peran secara terprogram, alih-alih di konsol IAM, Anda memiliki opsi untuk menambahkan `Path` hingga 512 karakter selain `RoleName`, yang panjangnya dapat mencapai 64 karakter. Namun, jika Anda bermaksud menggunakan peran dengan fitur **Switch Role** di Konsol Manajemen AWS, maka gabungan `Path` dan `RoleName` tidak dapat melebihi 64 karakter.

Metode yang digunakan untuk mengambil peran menentukan siapa yang dapat mengambil peran dan berapa lama sesi peran dapat berlangsung. Saat menggunakan operasi `AssumeRole*` API, peran IAM yang Anda asumsikan adalah sumber daya. Pengguna atau peran yang memanggil operasi `AssumeRole*` API adalah prinsipnya.

Tabel berikut membandingkan metode untuk mengasumsikan peran.


|  Metode untuk mengasumsikan peran |  **Siapa yang bisa mengambil peran**  | **Metode untuk menentukan masa pakai kredensi** |  **Masa pakai kredensi (min \$1 maks \$1 default)**  | 
| --- | --- | --- | --- | 
| Konsol Manajemen AWS | Pengguna atau peran¹ (dengan [beralih](id_roles_use_switch-role-console.md) peran) | Durasi sesi maksimum pada Halaman ringkasan Peran | 15 menit \$1 Pengaturan durasi sesi maksimum² \$1 1 jam | 
| Operasi [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) CLI atau [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API |  Pengguna atau peran¹ | Parameter duration-seconds CLI atau DurationSeconds API | 15 menit \$1 Pengaturan durasi sesi maksimum² \$1 1 jam  | 
| Operasi [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) CLI atau [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) API | Pengguna yang diotentikasi menggunakan SAML | Parameter duration-seconds CLI atau DurationSeconds API | 15 menit \$1 Pengaturan durasi sesi maksimum² \$1 1 jam  | 
| Operasi [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) CLI atau [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) API | Setiap pengguna yang diautentikasi menggunakan penyedia OIDC | Parameter duration-seconds CLI atau DurationSeconds API | 15 menit \$1 Pengaturan durasi sesi maksimum² \$1 1 jam  | 
| [URL Konsol](id_roles_providers_enable-console-custom-url.md) yang dibangun dengan AssumeRole  | Pengguna atau peran | SessionDuration Parameter HTML dalam URL | 15 menit \$1 12 jam \$1 1 jam  | 
| [URL Konsol](id_roles_providers_enable-console-custom-url.md) yang dibangun dengan AssumeRoleWithSAML  | Pengguna yang diotentikasi menggunakan SAML | SessionDuration Parameter HTML dalam URL | 15 menit \$1 12 jam \$1 1 jam | 
| [URL Konsol](id_roles_providers_enable-console-custom-url.md) yang dibangun dengan AssumeRoleWithWebIdentity  | Setiap pengguna yang diautentikasi menggunakan penyedia OIDC | SessionDuration Parameter HTML dalam URL | 15 menit \$1 12 jam \$1 1 jam  | 

¹ Menggunakan kredensi dari satu peran untuk mengambil peran yang berbeda disebut rantai [peran](id_roles.md#iam-term-role-chaining). Saat Anda menggunakan rantai peran, durasi sesi peran dibatasi hingga satu jam. Ini berlaku untuk peralihan Konsol Manajemen AWS peran AWS CLI, dan operasi API. Batasan ini tidak berlaku untuk asumsi awal peran dari kredenal pengguna, atau aplikasi yang berjalan di EC2 instans Amazon yang menggunakan profil instans.

² Pengaturan ini dapat memiliki nilai dari 1 jam hingga 12 jam. Untuk detail tentang pengubahan pengaturan durasi sesi maksimum, lihat [Manajemen peran IAM](id_roles_manage.md). Setelan ini menentukan durasi sesi maksimum yang dapat Anda minta saat Anda mendapatkan kredensial peran. Misalnya, saat Anda menggunakan [AssumeRole\$1](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) Operasi API untuk mengasumsikan peran, Anda dapat menentukan durasi sesi dengan menggunakan parameter `DurationSeconds`. Gunakan parameter ini untuk menentukan panjang durasi sesi peran mulai dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Pengguna IAM yang beralih peran di konsol diberikan durasi sesi maksimum, atau sisa waktu dalam sesi pengguna mereka, mana yang lebih sedikit. Anggaplah Anda menetapkan durasi maksimum 5 jam dalam suatu peran. Pengguna IAM yang telah masuk ke konsol selama 10 jam (dari nilai maksimum standar 12) berganti peran. Durasi sesi peran yang tersedia adalah 2 jam. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat [Memperbarui durasi sesi maksimum untuk peran](id_roles_update-role-settings.md#id_roles_update-session-duration) nanti di halaman ini.

**Catatan**  
Pengaturan durasi sesi maksimum tidak membatasi sesi yang diambil oleh layanan AWS .
Kredensi peran Amazon EC2 IAM tidak tunduk pada durasi sesi maksimum yang dikonfigurasi dalam peran.
Untuk memungkinkan pengguna untuk mengambil peran saat ini lagi dalam sesi peran, tentukan peran ARN atau Akun AWS ARN sebagai prinsipal dalam kebijakan kepercayaan peran. Layanan AWS yang menyediakan sumber daya komputasi seperti Amazon EC2, Amazon ECS, Amazon EKS, dan Lambda memberikan kredensi sementara dan secara otomatis memperbarui kredensional ini. Ini memastikan bahwa Anda selalu memiliki seperangkat kredensional yang valid. Untuk layanan ini, tidak perlu mengambil peran saat ini lagi untuk mendapatkan kredensi sementara. Namun, jika Anda berniat untuk meneruskan [tag sesi](id_session-tags.md) [atau kebijakan sesi](access_policies.md#policies_session), Anda perlu mengambil peran saat ini lagi. Untuk mempelajari cara memodifikasi kebijakan kepercayaan peran untuk menambahkan peran utama ARN atau Akun AWS ARN, lihat. [Memperbarui kebijakan kepercayaan peran](id_roles_update-role-trust-policy.md)

**Topics**
+ [Beralih dari pengguna ke peran IAM (konsol)](id_roles_use_switch-role-console.md)
+ [Beralih ke peran IAM ()AWS CLI](id_roles_use_switch-role-cli.md)
+ [Beralih ke peran IAM (Alat untuk Windows PowerShell)](id_roles_use_switch-role-twp.md)
+ [Beralih ke peran IAM (AWS API)](id_roles_use_switch-role-api.md)
+ [Menggunakan peran IAM untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2](id_roles_use_switch-role-ec2.md)
+ [Gunakan profil contoh](id_roles_use_switch-role-ec2_instance-profiles.md)

# Beralih dari pengguna ke peran IAM (konsol)
<a name="id_roles_use_switch-role-console"></a>

Anda dapat beralih peran saat masuk sebagai pengguna IAM, pengguna di Pusat Identitas IAM, peran federasi SAML, atau peran federasi identitas web. *Peran* menentukan sekumpulan izin yang dapat Anda gunakan untuk mengakses AWS sumber daya yang Anda butuhkan. Namun, Anda tidak masuk ke peran, tetapi setelah masuk sebagai pengguna IAM, Anda dapat beralih ke peran IAM. Sementara waktu ini mengesampingkan izin pengguna awal Anda dan justru memberikan izin yang ditetapkan untuk peran. Perannya bisa di akun Anda sendiri atau lainnya Akun AWS. Untuk informasi lebih lanjut tentang peran, keuntungannya, dan cara membuatnya, lihat [Peran IAM](id_roles.md), dan [Pembuatan peran IAM](id_roles_create.md).

Izin pengguna Anda dan peran apa pun yang Anda alihkan tidak bersifat kumulatif. Hanya satu rangkaian izin yang aktif pada satu waktu. Saat Anda beralih ke suatu peran, sementara Anda meninggalkan izin pengguna dan bekerja dengan izin yang diberikan ke peran tersebut. Saat Anda keluar dari peran, izin pengguna asli Anda dipulihkan secara otomatis.

Saat Anda beralih peran Konsol Manajemen AWS, konsol selalu menggunakan kredenal asli Anda untuk mengotorisasi sakelar. Misalnya, jika Anda beralih ke RoleA, IAM menggunakan kredensi asli Anda untuk menentukan apakah Anda diizinkan untuk mengasumsikan RoleA. Jika Anda kemudian beralih ke *RoleB saat Anda menggunakan RoleA, masih menggunakan kredensi asli **Anda** untuk* mengotorisasi sakelar AWS , bukan kredenal untuk RoleA.

**catatan**  
Saat Anda masuk sebagai pengguna di Pusat Identitas IAM, sebagai peran federasi SAML, atau sebagai peran federasi identitas web, Anda akan mengambil peran IAM saat memulai sesi. Misalnya, ketika pengguna di Pusat Identitas IAM masuk ke portal AWS akses, mereka harus memilih set izin yang berkorelasi dengan peran sebelum mereka dapat mengakses sumber daya. AWS 

## Sesi peran
<a name="id_roles_iam_user-switch-role-sessions"></a>

Saat Anda beralih peran, Konsol Manajemen AWS sesi Anda berlangsung selama 1 jam secara default. Sesi pengguna IAM adalah 12 jam secara default, pengguna lain mungkin memiliki durasi sesi yang berbeda yang ditentukan. Saat Anda beralih peran di konsol, Anda akan diberikan durasi sesi maksimum peran, atau sisa waktu dalam sesi pengguna, mana yang lebih sedikit. Anda tidak dapat memperpanjang durasi sesi dengan mengambil peran.

Misalnya, anggaplah durasi sesi maksimum 10 jam ditetapkan untuk peran. Anda telah masuk ke konsol selama 8 jam ketika Anda memutuskan untuk beralih ke peran. Ada 4 jam tersisa di sesi pengguna Anda, jadi durasi sesi peran yang diizinkan adalah 4 jam, bukan durasi sesi maksimum 10 jam. Tabel berikut menunjukkan cara menentukan durasi sesi untuk pengguna IAM saat berganti peran di dalam konsol.


| Waktu sesi pengguna IAM yang tersisa adalah... | Durasi sesi peran adalah... | 
| --- | --- | 
| Kurang dari durasi sesi maksimum peran | Waktu yang tersisa di sesi pengguna  | 
| Lebih dari durasi sesi maksimum peran | Nilai durasi sesi maksimum | 
| Setara dengan durasi sesi maksimum peran | Nilai durasi sesi maksimum (perkiraan) | 

Menggunakan kredensi dari satu peran untuk mengambil peran yang berbeda disebut rantai [peran](id_roles.md#iam-term-role-chaining). Saat Anda menggunakan rantai peran, durasi sesi dibatasi hingga satu jam, terlepas dari pengaturan durasi sesi maksimum yang dikonfigurasi untuk peran individual. Ini berlaku untuk peralihan Konsol Manajemen AWS peran AWS CLI, dan operasi API.

**catatan**  
Beberapa konsol AWS layanan dapat memperbarui sesi peran Anda secara otomatis ketika berakhir tanpa Anda mengambil tindakan apa pun. Beberapa mungkin akan meminta Anda memuat ulang halaman peramban untuk mengotentikasi ulang sesi Anda.

## Pertimbangan-pertimbangan
<a name="id_roles_iam_user-switch-role-considerations"></a>
+ Anda tidak dapat beralih peran jika Anda masuk sebagai Pengguna root akun AWS. 
+ Pengguna harus diberikan izin untuk beralih peran berdasarkan kebijakan. Untuk petunjuk, lihat [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md).
+ Anda tidak dapat mengganti peran Konsol Manajemen AWS ke peran yang membutuhkan [ExternalId](id_roles_common-scenarios_third-party.md#id_roles_third-party_external-id)nilai. Anda hanya dapat beralih ke peran tersebut dengan memanggil [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API yang mendukung parameter `ExternalId`.

## Untuk beralih ke peran
<a name="id_roles_iam_user-switch-role-console-procedure"></a>

1. Ikuti prosedur masuk yang sesuai dengan tipe pengguna Anda seperti yang dijelaskan [di Masuk ke Konsol Manajemen AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) *Panduan AWS Sign-In Pengguna*.

1. Di Konsol Manajemen AWS, pilih nama pengguna Anda di bilah navigasi di kanan atas. Biasanya terlihat seperti ini: ***username*@ *account\$1ID\$1number\$1or\$1alias***.

1. Pilih salah satu metode berikut untuk beralih peran:
   + Pilih **Beralih peran**.
   + Jika Anda telah memilih untuk mendukung multi-sesi, pilih **Tambah sesi** dan pilih **Beralih** peran.
**catatan**  
Anda dapat masuk hingga lima identitas berbeda secara bersamaan dalam satu browser web di Konsol Manajemen AWS file. Untuk detailnya, lihat [Masuk ke beberapa akun](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/multisession.html) di *Panduan Konsol Manajemen AWS Memulai*.

1. Pada halaman **Ganti Peran**, ketik nomor ID akun atau alias akun dan nama peran yang diberikan oleh administrator Anda.
**catatan**  
Jika administrator Anda membuat peran itu dengan sebuah jalur, seperti `division_abc/subdivision_efg/roleToDoX`, maka Anda harus mengetik jalur dan nama lengkap tersebut di kotak **Peran**. Jika Anda hanya mengetik nama peran, atau jika gabungan `Path` dan `RoleName` lebih dari 64 karakter, pergantian peran gagal. Ini adalah batasan cookie peramban yang menyimpan nama peran tersebut. Jika ini terjadi, hubungi administrator Anda dan minta mereka untuk mengurangi ukuran jalur dan nama peran.

1. (Opsional) Anda dapat memasukkan nama tampilan dan memilih warna tampilan yang akan menyoroti peran di bilah navigasi konsol.
   + Untuk **Nama tampilan**, ketik teks yang ingin Anda tampilkan di bilah navigasi sebagai pengganti nama pengguna Anda saat peran ini aktif. Ada saran nama, berdasarkan informasi akun dan peran, tetapi Anda dapat mengubahnya menjadi apa pun yang berarti bagi Anda. 
   + Untuk **warna Tampilan**, pilih warna untuk menyorot nama tampilan.

   Nama dan warna dapat membantu mengingatkan Anda saat peran ini aktif, yang mengubah izin Anda. Misalnya, untuk peran yang memberi Anda akses ke lingkungan pengujian, Anda dapat menentukan **Nama tampilan** dari **Test** dan pilih **Warna** hijau. Untuk peran yang memberi Anda akses ke produksi, Anda dapat menentukan **Nama tampilan** dari **Production** dan pilih merah sebagai **Warna**.

1. Pilih **Ganti Peran**. Nama tampilan dan warna menggantikan nama pengguna Anda pada bilah navigasi, dan Anda dapat mulai menggunakan izin yang diberikan peran tersebut kepada Anda.

1. Setelah Anda menyelesaikan tugas-tugas yang memerlukan peran IAM Anda dapat beralih kembali ke sesi awal Anda. Ini akan menghapus izin tambahan yang diberikan oleh peran dan mengembalikan Anda ke izin standar Anda.

   1. Di konsol IAM, pilih **Nama tampilan** peran Anda di bilah navigasi di kanan atas.

   1. Pilih **Beralih kembali**.

      Misalnya, anggap Anda masuk ke nomor akun `123456789012` menggunakan nama pengguna `Richard`. Setelah menggunakan peran `admin-role`, Anda ingin berhenti menggunakan peran dan kembali ke izin awal. **Untuk berhenti menggunakan peran, pilih peran **admin @ 123456789012**, lalu pilih Beralih kembali.**  
![\[Grafik menemukan fungsi Switch back untuk berhenti menggunakan peran IAM dan kembali ke pengguna asli.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/role-stop-using.png)

**Tip**  
Beberapa peran terakhir yang Anda gunakan muncul pada menu. Lain kali Anda ingin beralih ke salah satu peran itu, Anda cukup memilih peran yang Anda inginkan. Anda hanya perlu mengetikkan akun dan informasi peran secara manual jika peran tidak ditampilkan di menu.

## Sumber daya tambahan
<a name="id_roles_use_switch-role-console_additional_resources"></a>
+ [Berikan izin pengguna untuk beralih peran](id_roles_use_permissions-to-switch.md)
+ [Berikan izin pengguna untuk meneruskan peran ke layanan AWS](id_roles_use_passrole.md)
+ [Buat peran untuk memberikan izin kepada pengguna IAM](id_roles_create_for-user.md)
+ [Membuat peran untuk mendelegasikan izin ke layanan AWS](id_roles_create_for-service.md)
+ [Memecahkan masalah peran IAM](troubleshoot_roles.md)

# Beralih ke peran IAM ()AWS CLI
<a name="id_roles_use_switch-role-cli"></a>

*Peran* menentukan serangkaian izin yang dapat Anda gunakan untuk mengakses sumber daya AWS yang Anda perlukan. Dalam hal ini, ini mirip dengan [pengguna di AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) (IAM). Saat Anda masuk sebagai pengguna, Anda mendapatkan serangkaian izin tertentu. Namun, Anda tidak masuk ke sebuah peran, tetapi setelah masuk sebagai pengguna, Anda dapat beralih ke sebuah peran. Sementara waktu ini mengesampingkan izin pengguna awal Anda dan justru memberikan izin yang ditetapkan untuk peran. Perannya bisa di akun Anda sendiri atau lainnya Akun AWS. Untuk informasi lebih lanjut tentang peran, keuntungannya, dan cara membuatnya, lihat [Peran IAM](id_roles.md), dan [Pembuatan peran IAM](id_roles_create.md). Untuk mempelajari tentang berbagai metode yang dapat Anda gunakan untuk mengasumsikan peran, lihat [Metode untuk mengambil peran](id_roles_manage-assume.md).

**penting**  
Izin pengguna IAM Anda dan peran apa pun yang Anda asumsikan tidak bersifat kumulatif. Hanya satu rangkaian izin yang aktif pada satu waktu. Saat Anda mengasumsikan suatu peran, sementara waktu Anda meninggalkan izin pengguna dan bekerja dengan izin yang ditetapkan ke peran tersebut. Saat Anda keluar dari peran, izin pengguna asli Anda dipulihkan secara otomatis.

Anda dapat menggunakan peran untuk menjalankan AWS CLI perintah saat Anda masuk sebagai pengguna IAM. Anda juga dapat menggunakan peran untuk menjalankan AWS CLI perintah ketika Anda masuk sebagai [pengguna yang diautentikasi secara eksternal](id_roles_providers.md) ([SALL](id_roles_providers_saml.md) atau [OIDC](id_roles_providers_oidc.md)) yang sudah menggunakan peran. Selain itu, Anda dapat menggunakan peran untuk menjalankan AWS CLI perintah dari dalam instans Amazon EC2 yang dilampirkan ke peran melalui profil instance-nya. Anda tidak dapat mengambil peran saat masuk sebagai Pengguna root akun AWS.

[**Rantai peran**](id_roles.md#iam-term-role-chaining) — Anda juga dapat menggunakan rantai peran, yang menggunakan izin dari peran untuk mengakses peran kedua.

Secara default, sesi peran Anda berlangsung selama satu jam. Saat Anda mengasumsikan peran dengan menggunakan `assume-role*` operasi CLI, Anda dapat menentukan nilai untuk parameter `duration-seconds`. Nilai ini dapat berkisar dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Jika Anda beralih peran di konsol, durasi sesi Anda dibatasi hingga maksimal satu jam. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat [Memperbarui durasi sesi maksimum untuk peran](id_roles_update-role-settings.md#id_roles_update-session-duration). 

Saat Anda menggunakan rantai peran, kredensial baru Anda dibatasi hingga durasi maksimum satu jam. Jika Anda kemudian menggunakan parameter `duration-seconds` untuk memberikan nilai lebih dari satu jam, operasi gagal.

## Skenario contoh: Beralih ke peran produksi
<a name="switch-role-cli-scenario-prod-env"></a>

Bayangkan bahwa Anda adalah pengguna IAM untuk bekerja di lingkungan pengembangan. Dalam skenario ini, Anda terkadang perlu bekerja dengan lingkungan produksi pada baris perintah dengan [AWS CLI](https://aws.amazon.com/cli/). Anda sudah memiliki kredensial access key yang tersedia untuk Anda. Ini dapat berupa key pair akses yang ditetapkan untuk pengguna IAM standar Anda. Atau, jika Anda masuk sebagai prinsipal federasi SAFL atau OIDC, itu bisa menjadi access key pair untuk peran yang awalnya ditugaskan kepada Anda. Jika izin Anda saat ini memberi Anda kemampuan untuk mengambil peran IAM tertentu, maka Anda dapat mengidentifikasi peran tersebut dalam “profil” dalam file AWS CLI konfigurasi. Perintah tersebut kemudian dijalankan atas izin peran IAM yang ditentukan, bukan identitas awal. Perhatikan bahwa ketika Anda menentukan profil itu dalam sebuah AWS CLI perintah, Anda menggunakan peran baru. Dalam situasi ini, Anda tidak dapat menggunakan izin awal dalam akun pengembangan pada saat bersamaan. Alasannya adalah bahwa hanya satu rangkaian izin yang dapat berlaku pada satu waktu.

**catatan**  
Untuk tujuan keamanan, administrator dapat [meninjau AWS CloudTrail log](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) untuk mengetahui siapa yang melakukan tindakan. AWS Administrator Anda mungkin akan meminta Anda menentukan identitas sumber atau nama sesi peran ketika Anda mengambil peran tersebut. Untuk informasi selengkapnya, lihat [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity) dan [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname).

**Untuk beralih ke peran produksi (AWS CLI)**

1. <a name="step-configure-default"></a>Jika Anda belum pernah menggunakan AWS CLI, maka Anda harus terlebih dahulu mengkonfigurasi profil CLI default Anda. Buka prompt perintah dan atur AWS CLI instalasi Anda untuk menggunakan kunci akses dari pengguna IAM Anda atau dari peran federasi Anda. Untuk informasi lebih lanjut, lihat [Mengonfigurasi AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-quick-configuration) di *Panduan Pengguna AWS Command Line Interface *.

   Jalankan perintah [aws configure](https://docs.aws.amazon.com/cli/latest/reference/configure/) sebagai berikut:

   ```
   aws configure
   ```

   Saat diminta, berikan informasi berikut:

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

1. Buat profil baru untuk peran dalam `.aws/config` file dalam Unix atau Linux, atau `C:\Users\USERNAME\.aws\config` file dalam Windows. Contoh berikut membuat sebuah profil bernama `prodaccess` yang beralih ke peran `ProductionAccessRole` dalam akun `123456789012`. Anda mendapatkan peran ARN dari administrator akun yang membuat peran tersebut. Ketika profil ini dipanggil, akan AWS CLI menggunakan kredensil `source_profile` untuk meminta kredensil untuk peran tersebut. Oleh karena itu, identitas direferensikan karena `source_profile` harus memiliki izin `sts:AssumeRole` untuk peran yang ditentukan dalam `role_arn`.

   ```
   [profile prodaccess]
       role_arn = arn:aws:iam::123456789012:role/ProductionAccessRole
       source_profile = default
   ```

1. Setelah Anda membuat profil baru, AWS CLI perintah apa pun yang menentukan parameter `--profile prodaccess` berjalan di bawah izin yang dilampirkan ke peran IAM, `ProductionAccessRole` bukan pengguna default.

   ```
   aws iam list-users --profile prodaccess
   ```

   Perintah ini berfungsi jika izin yang ditetapkan ke `ProductionAccessRole` mengaktifkan pencatuman pengguna di akun AWS saat ini.

1. Untuk kembali ke izin yang diberikan oleh kredensial asli Anda, jalankan perintah tanpa parameter `--profile`. AWS CLI Kembali menggunakan kredensil di profil default Anda, yang Anda konfigurasikan. [Step 1](#step-configure-default)

Untuk informasi selengkapnya, lihat [Mengasumsikan Peran](https://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html) dalam *Panduan AWS Command Line Interface Pengguna*.

## Skenario contoh: Menginzinkan peran profil instans untuk beralih ke peran dalam akun lain
<a name="switch-role-cli-scenario-ec2-instance"></a>

Bayangkan Anda menggunakan dua Akun AWS, dan Anda ingin mengizinkan aplikasi yang berjalan pada instans Amazon EC2 untuk menjalankan [AWS CLI](https://aws.amazon.com/cli/)perintah di kedua akun. Anggap bahwa instans EC2 ada di akun `111111111111`. Instance tersebut menyertakan peran profil `abcd` instance yang memungkinkan aplikasi melakukan tugas Amazon S3 hanya-baca di bucket dalam akun `amzn-s3-demo-bucket1` yang sama. `111111111111` Namun, aplikasi tersebut juga harus diizinkan untuk mengambil peran lintas akun `efgh` untuk melakukan tugas di akun `222222222222`. Untuk melakukannya, peran profil instans EC2 `abcd` harus memiliki kebijakan izin berikut:

***Kebijakan izin peran akun 1111111111 `abcd`***

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccountLevelS3Actions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowListAndReadS3ActionOnMyBucket",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                "arn:aws:s3:::amzn-s3-demo-bucket1"
            ]
        },
        {
            "Sid": "AllowIPToAssumeCrossAccountRole",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::222222222222:role/efgh"
        }
    ]
}
```

------

Anggap bahwa peran lintas akun `efgh` memungkinkan tugas Amazon S3 hanya baca di bucket `amzn-s3-demo-bucket2` dalam akun `222222222222` yang sama. Untuk melakukannya, peran lintas akun `efgh` harus memiliki kebijakan izin berikut:

***Kebijakan izin peran akun 2222222222 `efgh`***

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccountLevelS3Actions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowListAndReadS3ActionOnMyBucket",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket2/*",
                "arn:aws:s3:::amzn-s3-demo-bucket2"
            ]
        }
    ]
}
```

------

Peran `efgh` harus memungkinkan peran profil instans `abcd` untuk mengasumsikannya. Untuk melakukannya, peran `efgh` harus memiliki kebijakan kepercayaan berikut:

***Akun 222222222222 kebijakan kepercayaan peran `efgh`***

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "efghTrustPolicy",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::111111111111:role/abcd"}
        }
    ]
}
```

------

Untuk kemudian menjalankan AWS CLI perintah di akun`222222222222`, Anda harus memperbarui file konfigurasi CLI. Identifikasi peran `efgh` sebagai "profil" dan peran profil instans EC2 `abcd` sebagai "sumber kredensial" dalam file konfigurasi AWS CLI . Kemudian perintah CLI Anda dijalankan dengan izin peran `efgh`, bukan peran `abcd` asli.

**catatan**  
Untuk tujuan keamanan, Anda dapat menggunakan AWS CloudTrail untuk mengaudit penggunaan peran dalam akun. Untuk membedakan sesi peran ketika peran digunakan oleh prinsipal yang berbeda di log CloudTrail , Anda dapat menggunakan nama sesi peran. Ketika AWS CLI mengambil peran atas nama pengguna seperti yang dijelaskan dalam topik ini, nama sesi peran secara otomatis dibuat sebagai`AWS-CLI-session-nnnnnnnn`. Berikut *nnnnnnnn* adalah bilangan bulat yang mewakili waktu dalam waktu [epoch Unix](http://wikipedia.org/wiki/Unix_time) (jumlah detik sejak tengah malam UTC pada 1 Januari 1970). Untuk informasi selengkapnya, lihat [Referensi CloudTrail Acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/eventreference.html) di *Panduan AWS CloudTrail Pengguna*.

**Untuk mengizinkan peran profil instans EC2 beralih ke peran lintas akun (AWS CLI)**

1. Anda tidak perlu mengonfigurasi profil CLI default. Sebagai gantinya, Anda dapat memuat kredensial dari metadata profil instans EC2. Buat profil baru untuk peran dalam file `.aws/config`. Contoh berikut membuat profil `instancecrossaccount` yang beralih ke peran `efgh` dalam akun `222222222222`. Saat profil ini dipanggil, AWS CLI menggunakan kredensial metadata profil instans EC2 untuk meminta kredensial bagi peran tersebut. Karena itu, peran profil instans EC2 harus memiliki izin `sts:AssumeRole` ke peran yang ditentukan dalam `role_arn`.

   ```
   [profile instancecrossaccount]
   role_arn = arn:aws:iam::222222222222:role/efgh
   credential_source = Ec2InstanceMetadata
   ```

1. Setelah Anda membuat profil baru, AWS CLI perintah apa pun yang menentukan parameter `--profile instancecrossaccount` berjalan di bawah izin yang dilampirkan ke `efgh` peran di akun. `222222222222`

   ```
   aws s3 ls amzn-s3-demo-bucket2 --profile instancecrossaccount
   ```

   Perintah ini berfungsi jika izin yang ditetapkan ke `efgh` peran memungkinkan daftar pengguna saat ini Akun AWS.

1. Untuk kembali ke izin profil instans EC2 asli di akun `111111111111`, jalankan perintah CLI tanpa parameter `--profile`.

Untuk informasi selengkapnya, lihat [Mengasumsikan Peran](https://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html) dalam *Panduan AWS Command Line Interface Pengguna*.

# Beralih ke peran IAM (Alat untuk Windows PowerShell)
<a name="id_roles_use_switch-role-twp"></a>

*Peran* menentukan serangkaian izin yang dapat Anda gunakan untuk mengakses sumber daya AWS yang Anda perlukan. Dalam hal ini, ini mirip dengan [pengguna di AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) (IAM). Saat Anda masuk sebagai pengguna, Anda mendapatkan serangkaian izin tertentu. Namun, Anda tidak masuk ke sebuah peran, tetapi setelah masuk, Anda dapat beralih ke sebuah peran. Sementara waktu ini mengesampingkan izin pengguna awal Anda dan justru memberikan izin yang ditetapkan untuk peran. Perannya bisa di akun Anda sendiri atau lainnya Akun AWS. Untuk informasi lebih lanjut tentang peran, keuntungannya, dan cara membuatnya, lihat [Peran IAM](id_roles.md), dan [Pembuatan peran IAM](id_roles_create.md).

**penting**  
Izin pengguna IAM Anda dan peran apa pun yang Anda asumsikan tidak bersifat kumulatif. Hanya satu rangkaian izin yang aktif pada satu waktu. Saat Anda beralih ke suatu peran, sementara Anda meninggalkan izin pengguna dan bekerja dengan izin yang diberikan ke peran tersebut. Saat Anda keluar dari peran, izin pengguna asli Anda dipulihkan secara otomatis.

Bagian ini menjelaskan cara berganti peran ketika Anda bekerja di baris perintah dengan AWS Tools for Windows PowerShell.

Bayangkan Anda memiliki akun di lingkungan pengembangan dan Anda sesekali perlu bekerja dengan lingkungan produksi di baris perintah menggunakan [Alat untuk Windows PowerShell](https://aws.amazon.com/powershell/). Anda sudah memiliki satu set kredensial access key yang tersedia untuk Anda. Ini dapat berupa akses key pair yang ditetapkan untuk pengguna IAM standar Anda. Atau, jika Anda masuk sebagai prinsipal federasi SAFL atau OIDC, mereka bisa menjadi access key pair untuk peran yang awalnya diberikan kepada Anda. Anda dapat menggunakan kredensial ini untuk menjalankan `Use-STSRole` cmdlet yang melewati ARN peran baru sebagai parameter. Perintah tersebut mengembalikan kredensial keamanansementara untuk peran yang diminta. Kemudian, Anda dapat menggunakan kredensial tersebut dalam menurunkan perintah PowerShell dengan izin peran untuk mengakses sumber daya dalam produksi. Saat menggunakan peran tersebut, Anda tidak dapat menggunakan izin pengguna dalam akun Pengembangan karena hanya satu rangkaian izin yang berlaku pada satu waktu.

**catatan**  
Untuk tujuan keamanan, administrator dapat [meninjau AWS CloudTrail log](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) untuk mengetahui siapa yang melakukan tindakan. AWS Administrator Anda mungkin akan meminta Anda menentukan identitas sumber atau nama sesi peran ketika Anda mengambil peran tersebut. Untuk informasi selengkapnya, lihat [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity) dan [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname).

Perhatikan bahwa semua kunci akses dan token hanyalah contoh dan tidak dapat digunakan seperti yang ditunjukkan. Ganti dengan nilai yang sesuai dari lingkungan langsung Anda.

**Untuk beralih ke peran IAM (Alat untuk Windows PowerShell)**

1. Buka prompt PowerShell perintah dan konfigurasikan profil default untuk menggunakan kunci akses dari pengguna IAM Anda saat ini atau dari peran federasi Anda. Jika sebelumnya Anda telah menggunakan Alat untuk Windows PowerShell, maka ini kemungkinan sudah dilakukan. Perhatikan bahwa Anda dapat beralih peran hanya jika Anda masuk sebagai pengguna IAM, bukan. Pengguna root akun AWS

   ```
   PS C:\> Set-AWSCredentials -AccessKey AKIAIOSFODNN7EXAMPLE -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -StoreAs MyMainUserProfile
   PS C:\> Initialize-AWSDefaults -ProfileName MyMainUserProfile -Region us-east-2
   ```

   Untuk informasi selengkapnya, lihat [Menggunakan AWS Kredensial](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html) di *Alat AWS untuk PowerShell Panduan Pengguna*.

1. Untuk mendapatkan kredensial peran baru, jalankan perintah berikut untuk beralih ke peran `RoleName` dalam akun 123456789012. Anda mendapatkan peran ARN dari administrator akun yang membuat peran tersebut. Perintah ini mengharuskan Anda untuk juga memberikan nama sesi. Anda dapat memilih teks apa pun untuk itu. Perintah berikut meminta kredensial dan kemudian menangkap objek properti `Credentials` dari objek hasil yang dikembalikan dan menyimpannya dalam variabel `$Creds`.

   ```
   PS C:\> $Creds = (Use-STSRole -RoleArn "arn:aws:iam::123456789012:role/RoleName" -RoleSessionName "MyRoleSessionName").Credentials
   ```

   `$Creds` adalah objek yang sekarang berisi elemen `AccessKeyId`, `SecretAccessKey`, dan `SessionToken` yang Anda butuhkan dalam langkah-langkah berikut ini. Perintah sampel berikut ini menggambarkan nilai-nilai umum:

   ```
   PS C:\> $Creds.AccessKeyId
   AKIAIOSFODNN7EXAMPLE
   
   PS C:\> $Creds.SecretAccessKey
   wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   
   PS C:\> $Creds.SessionToken
   AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvSRyh0FW7jEXAMPLEW+vE/7s1HRp
   XviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPy
   Oj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UuysgsKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/C
   s8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87eNhyDHq6ikBQ==
   
   PS C:\> $Creds.Expiration
   Thursday, June 18, 2018 2:28:31 PM
   ```

1. Untuk menggunakan kredensial ini untuk perintah berikutnya, sertakan mereka dengan parameter `-Credential`. Misalnya, perintah berikut menggunakan kredensial dari peran dan bekerja hanya jika peran tersebut diberik izin`iam:ListRoles` dan karenanya dapat menjalankan `Get-IAMRoles` cmdlet:

   ```
           PS C:\> get-iamroles -Credential $Creds
   ```

1. Untuk kembali ke kredensi asli Anda, cukup berhenti menggunakan `-Credentials $Creds` parameter dan izinkan PowerShell untuk kembali ke kredensil yang disimpan di profil default.

# Beralih ke peran IAM (AWS API)
<a name="id_roles_use_switch-role-api"></a>

*Peran* menentukan serangkaian izin yang dapat Anda gunakan untuk mengakses sumber daya AWS . Dalam hal itu, ini mirip dengan [Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html). Seorang kepala sekolah (orang atau aplikasi) mengambil peran untuk menerima izin sementara untuk melaksanakan tugas yang diperlukan dan berinteraksi dengan AWS sumber daya. Perannya bisa di akun Anda sendiri atau lainnya Akun AWS. Untuk informasi lebih lanjut tentang peran, keuntungannya, dan cara membuatnya, lihat [Peran IAM](id_roles.md), dan [Pembuatan peran IAM](id_roles_create.md). Untuk mempelajari tentang berbagai metode yang dapat Anda gunakan untuk mengasumsikan peran, lihat [Metode untuk mengambil peran](id_roles_manage-assume.md).

**penting**  
Izin pengguna IAM Anda dan peran apa pun yang Anda asumsikan tidak bersifat kumulatif. Hanya satu rangkaian izin yang aktif pada satu waktu. Saat Anda mengasumsikan suatu peran, sementara waktu Anda meninggalkan izin pengguna dan bekerja dengan izin yang ditetapkan ke peran tersebut. Saat Anda keluar dari peran tersebut, izin asli Anda akan dipulihkan secara otomatis.

Untuk mengambil peran, aplikasi memanggil operasi AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API dan meneruskan ARN peran yang akan digunakan. Operasi membuat sesi baru dengan kredensial sementara. Sesi ini memiliki izin yang sama dengan kebijakan berbasis identitas untuk peran tersebut. 

Saat Anda menelepon [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html), Anda secara opsional dapat meneruskan [kebijakan sesi](access_policies.md#policies_session) inline atau terkelola. Kebijakan sesi adalah kebijakan lanjutan yang Anda teruskan sebagai parameter saat Anda membuat sesi kredensyal sementara secara terprogram untuk peran atau sesi pengguna gabungan. Anda dapat menyampaikan satu dokumen kebijakan sesi inline JSON menggunakan parameter `Policy`. Anda dapat menggunakan parameter `PolicyArns` untuk menentukan hingga 10 kebijakan sesi terkelola. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas entitas dan kebijakan sesi. Kebijakan sesi berguna saat Anda perlu memberikan kredensial sementara kepada orang lain. Anda dapat menggunakan kredensial sementara peran tersebut dalam panggilan API AWS berikutnya untuk mengakses sumber daya di akun yang memiliki peran tersebut. Anda tidak dapat menggunakan kebijakan sesi untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas. Untuk mempelajari selengkapnya tentang cara AWS menentukan izin efektif suatu peran, lihat[Logika evaluasi kebijakan](reference_policies_evaluation-logic.md). 

![\[PermissionsWhenPassingRoles_Diagram\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/role_passed_policy_permissions.png)


Anda dapat memanggil `AssumeRole` saat Anda masuk sebagai pengguna IAM, atau sebagai [pengguna terotentikasi secara eksternal](id_roles_providers.md) ([SAML](id_roles_providers_saml.md) atau [OIDC](id_roles_providers_oidc.md)) yang sudah menggunakan peran. Anda juga dapat menggunakan [*rantai peran*](id_roles.md#iam-term-role-chaining), yang menggunakan peran untuk mengasumsikan peran kedua. Anda tidak dapat mengambil peran saat masuk sebagai Pengguna root akun AWS.

Secara default, sesi peran Anda berlangsung selama satu jam. Saat Anda mengambil peran ini menggunakan operasi AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API, Anda dapat menentukan nilai untuk `DurationSeconds` parameter tersebut. Nilai ini dapat berkisar dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat [Memperbarui durasi sesi maksimum untuk peran](id_roles_update-role-settings.md#id_roles_update-session-duration). 

Jika Anda menggunakan rantai peran, sesi Anda akan dibatasi hingga maksimum satu jam. Jika Anda kemudian menggunakan parameter `DurationSeconds` untuk memberikan nilai lebih dari satu jam, operasi gagal.

**catatan**  
Untuk tujuan keamanan, administrator dapat [meninjau AWS CloudTrail log](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds) untuk mengetahui siapa yang melakukan tindakan. AWS Administrator Anda mungkin akan meminta Anda menentukan identitas sumber atau nama sesi peran ketika Anda mengambil peran tersebut. Untuk informasi selengkapnya, lihat [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity) dan [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname).

Contoh kode berikut menunjukkan cara membuat pengguna dan mengambil peran.

**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).
+ Buat pengguna tanpa izin.
+ Buat peran yang memberikan izin untuk mencantumkan bucket Amazon S3 untuk akun tersebut.
+ Tambahkan kebijakan agar pengguna dapat mengambil peran tersebut.
+ Asumsikan peran dan daftar bucket S3 menggunakan kredensyal sementara, lalu bersihkan sumber daya.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkap dan pelajari cara menyiapkan dan menjalankan di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/IAM#code-examples). 

```
global using Amazon.IdentityManagement;
global using Amazon.S3;
global using Amazon.SecurityToken;
global using IAMActions;
global using IamScenariosCommon;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;
global using Microsoft.Extensions.Logging;
global using Microsoft.Extensions.Logging.Console;
global using Microsoft.Extensions.Logging.Debug;


namespace IAMActions;

public class IAMWrapper
{
    private readonly IAmazonIdentityManagementService _IAMService;

    /// <summary>
    /// Constructor for the IAMWrapper class.
    /// </summary>
    /// <param name="IAMService">An IAM client object.</param>
    public IAMWrapper(IAmazonIdentityManagementService IAMService)
    {
        _IAMService = IAMService;
    }

    /// <summary>
    /// Attach an IAM policy to a role.
    /// </summary>
    /// <param name="policyArn">The policy to attach.</param>
    /// <param name="roleName">The role that the policy will be attached to.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> AttachRolePolicyAsync(string policyArn, string roleName)
    {
        var response = await _IAMService.AttachRolePolicyAsync(new AttachRolePolicyRequest
        {
            PolicyArn = policyArn,
            RoleName = roleName,
        });

        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Create an IAM access key for a user.
    /// </summary>
    /// <param name="userName">The username for which to create the IAM access
    /// key.</param>
    /// <returns>The AccessKey.</returns>
    public async Task<AccessKey> CreateAccessKeyAsync(string userName)
    {
        var response = await _IAMService.CreateAccessKeyAsync(new CreateAccessKeyRequest
        {
            UserName = userName,
        });

        return response.AccessKey;

    }


    /// <summary>
    /// Create an IAM policy.
    /// </summary>
    /// <param name="policyName">The name to give the new IAM policy.</param>
    /// <param name="policyDocument">The policy document for the new policy.</param>
    /// <returns>The new IAM policy object.</returns>
    public async Task<ManagedPolicy> CreatePolicyAsync(string policyName, string policyDocument)
    {
        var response = await _IAMService.CreatePolicyAsync(new CreatePolicyRequest
        {
            PolicyDocument = policyDocument,
            PolicyName = policyName,
        });

        return response.Policy;
    }


    /// <summary>
    /// Create a new IAM role.
    /// </summary>
    /// <param name="roleName">The name of the IAM role.</param>
    /// <param name="rolePolicyDocument">The name of the IAM policy document
    /// for the new role.</param>
    /// <returns>The Amazon Resource Name (ARN) of the role.</returns>
    public async Task<string> CreateRoleAsync(string roleName, string rolePolicyDocument)
    {
        var request = new CreateRoleRequest
        {
            RoleName = roleName,
            AssumeRolePolicyDocument = rolePolicyDocument,
        };

        var response = await _IAMService.CreateRoleAsync(request);
        return response.Role.Arn;
    }


    /// <summary>
    /// Create an IAM service-linked role.
    /// </summary>
    /// <param name="serviceName">The name of the AWS Service.</param>
    /// <param name="description">A description of the IAM service-linked role.</param>
    /// <returns>The IAM role that was created.</returns>
    public async Task<Role> CreateServiceLinkedRoleAsync(string serviceName, string description)
    {
        var request = new CreateServiceLinkedRoleRequest
        {
            AWSServiceName = serviceName,
            Description = description
        };

        var response = await _IAMService.CreateServiceLinkedRoleAsync(request);
        return response.Role;
    }


    /// <summary>
    /// Create an IAM user.
    /// </summary>
    /// <param name="userName">The username for the new IAM user.</param>
    /// <returns>The IAM user that was created.</returns>
    public async Task<User> CreateUserAsync(string userName)
    {
        var response = await _IAMService.CreateUserAsync(new CreateUserRequest { UserName = userName });
        return response.User;
    }


    /// <summary>
    /// Delete an IAM user's access key.
    /// </summary>
    /// <param name="accessKeyId">The Id for the IAM access key.</param>
    /// <param name="userName">The username of the user that owns the IAM
    /// access key.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DeleteAccessKeyAsync(string accessKeyId, string userName)
    {
        var response = await _IAMService.DeleteAccessKeyAsync(new DeleteAccessKeyRequest
        {
            AccessKeyId = accessKeyId,
            UserName = userName,
        });

        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Delete an IAM policy.
    /// </summary>
    /// <param name="policyArn">The Amazon Resource Name (ARN) of the policy to
    /// delete.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DeletePolicyAsync(string policyArn)
    {
        var response = await _IAMService.DeletePolicyAsync(new DeletePolicyRequest { PolicyArn = policyArn });
        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Delete an IAM role.
    /// </summary>
    /// <param name="roleName">The name of the IAM role to delete.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DeleteRoleAsync(string roleName)
    {
        var response = await _IAMService.DeleteRoleAsync(new DeleteRoleRequest { RoleName = roleName });
        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Delete an IAM role policy.
    /// </summary>
    /// <param name="roleName">The name of the IAM role.</param>
    /// <param name="policyName">The name of the IAM role policy to delete.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DeleteRolePolicyAsync(string roleName, string policyName)
    {
        var response = await _IAMService.DeleteRolePolicyAsync(new DeleteRolePolicyRequest
        {
            PolicyName = policyName,
            RoleName = roleName,
        });

        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Delete an IAM user.
    /// </summary>
    /// <param name="userName">The username of the IAM user to delete.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DeleteUserAsync(string userName)
    {
        var response = await _IAMService.DeleteUserAsync(new DeleteUserRequest { UserName = userName });

        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Delete an IAM user policy.
    /// </summary>
    /// <param name="policyName">The name of the IAM policy to delete.</param>
    /// <param name="userName">The username of the IAM user.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DeleteUserPolicyAsync(string policyName, string userName)
    {
        var response = await _IAMService.DeleteUserPolicyAsync(new DeleteUserPolicyRequest { PolicyName = policyName, UserName = userName });

        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Detach an IAM policy from an IAM role.
    /// </summary>
    /// <param name="policyArn">The Amazon Resource Name (ARN) of the IAM policy.</param>
    /// <param name="roleName">The name of the IAM role.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DetachRolePolicyAsync(string policyArn, string roleName)
    {
        var response = await _IAMService.DetachRolePolicyAsync(new DetachRolePolicyRequest
        {
            PolicyArn = policyArn,
            RoleName = roleName,
        });

        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }


    /// <summary>
    /// Gets the IAM password policy for an AWS account.
    /// </summary>
    /// <returns>The PasswordPolicy for the AWS account.</returns>
    public async Task<PasswordPolicy> GetAccountPasswordPolicyAsync()
    {
        var response = await _IAMService.GetAccountPasswordPolicyAsync(new GetAccountPasswordPolicyRequest());
        return response.PasswordPolicy;
    }


    /// <summary>
    /// Get information about an IAM policy.
    /// </summary>
    /// <param name="policyArn">The IAM policy to retrieve information for.</param>
    /// <returns>The IAM policy.</returns>
    public async Task<ManagedPolicy> GetPolicyAsync(string policyArn)
    {

        var response = await _IAMService.GetPolicyAsync(new GetPolicyRequest { PolicyArn = policyArn });
        return response.Policy;
    }


    /// <summary>
    /// Get information about an IAM role.
    /// </summary>
    /// <param name="roleName">The name of the IAM role to retrieve information
    /// for.</param>
    /// <returns>The IAM role that was retrieved.</returns>
    public async Task<Role> GetRoleAsync(string roleName)
    {
        var response = await _IAMService.GetRoleAsync(new GetRoleRequest
        {
            RoleName = roleName,
        });

        return response.Role;
    }


    /// <summary>
    /// Get information about an IAM user.
    /// </summary>
    /// <param name="userName">The username of the user.</param>
    /// <returns>An IAM user object.</returns>
    public async Task<User> GetUserAsync(string userName)
    {
        var response = await _IAMService.GetUserAsync(new GetUserRequest { UserName = userName });
        return response.User;
    }


    /// <summary>
    /// List the IAM role policies that are attached to an IAM role.
    /// </summary>
    /// <param name="roleName">The IAM role to list IAM policies for.</param>
    /// <returns>A list of the IAM policies attached to the IAM role.</returns>
    public async Task<List<AttachedPolicyType>> ListAttachedRolePoliciesAsync(string roleName)
    {
        var attachedPolicies = new List<AttachedPolicyType>();
        var attachedRolePoliciesPaginator = _IAMService.Paginators.ListAttachedRolePolicies(new ListAttachedRolePoliciesRequest { RoleName = roleName });

        await foreach (var response in attachedRolePoliciesPaginator.Responses)
        {
            attachedPolicies.AddRange(response.AttachedPolicies);
        }

        return attachedPolicies;
    }


    /// <summary>
    /// List IAM groups.
    /// </summary>
    /// <returns>A list of IAM groups.</returns>
    public async Task<List<Group>> ListGroupsAsync()
    {
        var groupsPaginator = _IAMService.Paginators.ListGroups(new ListGroupsRequest());
        var groups = new List<Group>();

        await foreach (var response in groupsPaginator.Responses)
        {
            groups.AddRange(response.Groups);
        }

        return groups;
    }


    /// <summary>
    /// List IAM policies.
    /// </summary>
    /// <returns>A list of the IAM policies.</returns>
    public async Task<List<ManagedPolicy>> ListPoliciesAsync()
    {
        var listPoliciesPaginator = _IAMService.Paginators.ListPolicies(new ListPoliciesRequest());
        var policies = new List<ManagedPolicy>();

        await foreach (var response in listPoliciesPaginator.Responses)
        {
            policies.AddRange(response.Policies);
        }

        return policies;
    }


    /// <summary>
    /// List IAM role policies.
    /// </summary>
    /// <param name="roleName">The IAM role for which to list IAM policies.</param>
    /// <returns>A list of IAM policy names.</returns>
    public async Task<List<string>> ListRolePoliciesAsync(string roleName)
    {
        var listRolePoliciesPaginator = _IAMService.Paginators.ListRolePolicies(new ListRolePoliciesRequest { RoleName = roleName });
        var policyNames = new List<string>();

        await foreach (var response in listRolePoliciesPaginator.Responses)
        {
            policyNames.AddRange(response.PolicyNames);
        }

        return policyNames;
    }


    /// <summary>
    /// List IAM roles.
    /// </summary>
    /// <returns>A list of IAM roles.</returns>
    public async Task<List<Role>> ListRolesAsync()
    {
        var listRolesPaginator = _IAMService.Paginators.ListRoles(new ListRolesRequest());
        var roles = new List<Role>();

        await foreach (var response in listRolesPaginator.Responses)
        {
            roles.AddRange(response.Roles);
        }

        return roles;
    }


    /// <summary>
    /// List SAML authentication providers.
    /// </summary>
    /// <returns>A list of SAML providers.</returns>
    public async Task<List<SAMLProviderListEntry>> ListSAMLProvidersAsync()
    {
        var response = await _IAMService.ListSAMLProvidersAsync(new ListSAMLProvidersRequest());
        return response.SAMLProviderList;
    }


    /// <summary>
    /// List IAM users.
    /// </summary>
    /// <returns>A list of IAM users.</returns>
    public async Task<List<User>> ListUsersAsync()
    {
        var listUsersPaginator = _IAMService.Paginators.ListUsers(new ListUsersRequest());
        var users = new List<User>();

        await foreach (var response in listUsersPaginator.Responses)
        {
            users.AddRange(response.Users);
        }

        return users;
    }


    /// <summary>
    /// Update the inline policy document embedded in a role.
    /// </summary>
    /// <param name="policyName">The name of the policy to embed.</param>
    /// <param name="roleName">The name of the role to update.</param>
    /// <param name="policyDocument">The policy document that defines the role.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> PutRolePolicyAsync(string policyName, string roleName, string policyDocument)
    {
        var request = new PutRolePolicyRequest
        {
            PolicyName = policyName,
            RoleName = roleName,
            PolicyDocument = policyDocument
        };

        var response = await _IAMService.PutRolePolicyAsync(request);
        return response.HttpStatusCode == HttpStatusCode.OK;
    }


    /// <summary>
    /// Add or update an inline policy document that is embedded in an IAM user.
    /// </summary>
    /// <param name="userName">The name of the IAM user.</param>
    /// <param name="policyName">The name of the IAM policy.</param>
    /// <param name="policyDocument">The policy document defining the IAM policy.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> PutUserPolicyAsync(string userName, string policyName, string policyDocument)
    {
        var request = new PutUserPolicyRequest
        {
            UserName = userName,
            PolicyName = policyName,
            PolicyDocument = policyDocument
        };

        var response = await _IAMService.PutUserPolicyAsync(request);
        return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
    }

    /// <summary>
    /// Wait for a new access key to be ready to use.
    /// </summary>
    /// <param name="accessKeyId">The Id of the access key.</param>
    /// <returns>A boolean value indicating the success of the action.</returns>
    public async Task<bool> WaitUntilAccessKeyIsReady(string accessKeyId)
    {
        var keyReady = false;

        do
        {
            try
            {
                var response = await _IAMService.GetAccessKeyLastUsedAsync(
                    new GetAccessKeyLastUsedRequest { AccessKeyId = accessKeyId });
                if (response.UserName is not null)
                {
                    keyReady = true;
                }
            }
            catch (NoSuchEntityException)
            {
                keyReady = false;
            }
        } while (!keyReady);

        return keyReady;
    }
}



using Microsoft.Extensions.Configuration;

namespace IAMBasics;

public class IAMBasics
{
    private static ILogger logger = null!;

    static async Task Main(string[] args)
    {
        // Set up dependency injection for the AWS service.
        using var host = Host.CreateDefaultBuilder(args)
            .ConfigureLogging(logging =>
                logging.AddFilter("System", LogLevel.Debug)
                    .AddFilter<DebugLoggerProvider>("Microsoft", LogLevel.Information)
                    .AddFilter<ConsoleLoggerProvider>("Microsoft", LogLevel.Trace))
            .ConfigureServices((_, services) =>
            services.AddAWSService<IAmazonIdentityManagementService>()
            .AddTransient<IAMWrapper>()
            .AddTransient<UIWrapper>()
            )
            .Build();

        logger = LoggerFactory.Create(builder => { builder.AddConsole(); })
            .CreateLogger<IAMBasics>();


        IConfiguration configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("settings.json") // Load test settings from .json file.
            .AddJsonFile("settings.local.json",
                true) // Optionally load local settings.
            .Build();

        // Values needed for user, role, and policies.
        string userName = configuration["UserName"]!;
        string s3PolicyName = configuration["S3PolicyName"]!;
        string roleName = configuration["RoleName"]!;


        var iamWrapper = host.Services.GetRequiredService<IAMWrapper>();
        var uiWrapper = host.Services.GetRequiredService<UIWrapper>();

        uiWrapper.DisplayBasicsOverview();
        uiWrapper.PressEnter();

        // First create a user. By default, the new user has
        // no permissions.
        uiWrapper.DisplayTitle("Create User");
        Console.WriteLine($"Creating a new user with user name: {userName}.");
        var user = await iamWrapper.CreateUserAsync(userName);
        var userArn = user.Arn;

        Console.WriteLine($"Successfully created user: {userName} with ARN: {userArn}.");
        uiWrapper.WaitABit(15, "Now let's wait for the user to be ready for use.");

        // Define a role policy document that allows the new user
        // to assume the role.
        string assumeRolePolicyDocument = "{" +
          "\"Version\": \"2012-10-17\"," +
          "\"Statement\": [{" +
              "\"Effect\": \"Allow\"," +
              "\"Principal\": {" +
              $"	\"AWS\": \"{userArn}\"" +
              "}," +
              "\"Action\": \"sts:AssumeRole\"" +
          "}]" +
        "}";

        // Permissions to list all buckets.
        string policyDocument = "{" +
            "\"Version\": \"2012-10-17\"," +
            "	\"Statement\" : [{" +
                "	\"Action\" : [\"s3:ListAllMyBuckets\"]," +
                "	\"Effect\" : \"Allow\"," +
                "	\"Resource\" : \"*\"" +
            "}]" +
        "}";

        // Create an AccessKey for the user.
        uiWrapper.DisplayTitle("Create access key");
        Console.WriteLine("Now let's create an access key for the new user.");
        var accessKey = await iamWrapper.CreateAccessKeyAsync(userName);

        var accessKeyId = accessKey.AccessKeyId;
        var secretAccessKey = accessKey.SecretAccessKey;

        Console.WriteLine($"We have created the access key with Access key id: {accessKeyId}.");

        Console.WriteLine("Now let's wait until the IAM access key is ready to use.");
        var keyReady = await iamWrapper.WaitUntilAccessKeyIsReady(accessKeyId);

        // Now try listing the Amazon Simple Storage Service (Amazon S3)
        // buckets. This should fail at this point because the user doesn't
        // have permissions to perform this task.
        uiWrapper.DisplayTitle("Try to display Amazon S3 buckets");
        Console.WriteLine("Now let's try to display a list of the user's Amazon S3 buckets.");
        var s3Client1 = new AmazonS3Client(accessKeyId, secretAccessKey);
        var stsClient1 = new AmazonSecurityTokenServiceClient(accessKeyId, secretAccessKey);

        var s3Wrapper = new S3Wrapper(s3Client1, stsClient1);
        var buckets = await s3Wrapper.ListMyBucketsAsync();

        Console.WriteLine(buckets is null
            ? "As expected, the call to list the buckets has returned a null list."
            : "Something went wrong. This shouldn't have worked.");

        uiWrapper.PressEnter();

        uiWrapper.DisplayTitle("Create IAM role");
        Console.WriteLine($"Creating the role: {roleName}");

        // Creating an IAM role to allow listing the S3 buckets. A role name
        // is not case sensitive and must be unique to the account for which it
        // is created.
        var roleArn = await iamWrapper.CreateRoleAsync(roleName, assumeRolePolicyDocument);

        uiWrapper.PressEnter();

        // Create a policy with permissions to list S3 buckets.
        uiWrapper.DisplayTitle("Create IAM policy");
        Console.WriteLine($"Creating the policy: {s3PolicyName}");
        Console.WriteLine("with permissions to list the Amazon S3 buckets for the account.");
        var policy = await iamWrapper.CreatePolicyAsync(s3PolicyName, policyDocument);

        // Wait 15 seconds for the IAM policy to be available.
        uiWrapper.WaitABit(15, "Waiting for the policy to be available.");

        // Attach the policy to the role you created earlier.
        uiWrapper.DisplayTitle("Attach new IAM policy");
        Console.WriteLine("Now let's attach the policy to the role.");
        await iamWrapper.AttachRolePolicyAsync(policy.Arn, roleName);

        // Wait 15 seconds for the role to be updated.
        Console.WriteLine();
        uiWrapper.WaitABit(15, "Waiting for the policy to be attached.");

        // Use the AWS Security Token Service (AWS STS) to have the user
        // assume the role we created.
        var stsClient2 = new AmazonSecurityTokenServiceClient(accessKeyId, secretAccessKey);

        // Wait for the new credentials to become valid.
        uiWrapper.WaitABit(10, "Waiting for the credentials to be valid.");

        var assumedRoleCredentials = await s3Wrapper.AssumeS3RoleAsync("temporary-session", roleArn);

        // Try again to list the buckets using the client created with
        // the new user's credentials. This time, it should work.
        var s3Client2 = new AmazonS3Client(assumedRoleCredentials);

        s3Wrapper.UpdateClients(s3Client2, stsClient2);

        buckets = await s3Wrapper.ListMyBucketsAsync();

        uiWrapper.DisplayTitle("List Amazon S3 buckets");
        Console.WriteLine("This time we should have buckets to list.");
        if (buckets is not null)
        {
            buckets.ForEach(bucket =>
            {
                Console.WriteLine($"{bucket.BucketName} created: {bucket.CreationDate}");
            });
        }

        uiWrapper.PressEnter();

        // Now clean up all the resources used in the example.
        uiWrapper.DisplayTitle("Clean up resources");
        Console.WriteLine("Thank you for watching. The IAM Basics demo is complete.");
        Console.WriteLine("Please wait while we clean up the resources we created.");

        await iamWrapper.DetachRolePolicyAsync(policy.Arn, roleName);

        await iamWrapper.DeletePolicyAsync(policy.Arn);

        await iamWrapper.DeleteRoleAsync(roleName);

        await iamWrapper.DeleteAccessKeyAsync(accessKeyId, userName);

        await iamWrapper.DeleteUserAsync(userName);

        uiWrapper.PressEnter();

        Console.WriteLine("All done cleaning up our resources. Thank you for your patience.");
    }
}


namespace IamScenariosCommon;

using System.Net;

/// <summary>
/// A class to perform Amazon Simple Storage Service (Amazon S3) actions for
/// the IAM Basics scenario.
/// </summary>
public class S3Wrapper
{
    private IAmazonS3 _s3Service;
    private IAmazonSecurityTokenService _stsService;

    /// <summary>
    /// Constructor for the S3Wrapper class.
    /// </summary>
    /// <param name="s3Service">An Amazon S3 client object.</param>
    /// <param name="stsService">An AWS Security Token Service (AWS STS)
    /// client object.</param>
    public S3Wrapper(IAmazonS3 s3Service, IAmazonSecurityTokenService stsService)
    {
        _s3Service = s3Service;
        _stsService = stsService;
    }

    /// <summary>
    /// Assumes an AWS Identity and Access Management (IAM) role that allows
    /// Amazon S3 access for the current session.
    /// </summary>
    /// <param name="roleSession">A string representing the current session.</param>
    /// <param name="roleToAssume">The name of the IAM role to assume.</param>
    /// <returns>Credentials for the newly assumed IAM role.</returns>
    public async Task<Credentials> AssumeS3RoleAsync(string roleSession, string roleToAssume)
    {
        // Create the request to use with the AssumeRoleAsync call.
        var request = new AssumeRoleRequest()
        {
            RoleSessionName = roleSession,
            RoleArn = roleToAssume,
        };

        var response = await _stsService.AssumeRoleAsync(request);

        return response.Credentials;
    }


    /// <summary>
    /// Delete an S3 bucket.
    /// </summary>
    /// <param name="bucketName">Name of the S3 bucket to delete.</param>
    /// <returns>A Boolean value indicating the success of the action.</returns>
    public async Task<bool> DeleteBucketAsync(string bucketName)
    {
        var result = await _s3Service.DeleteBucketAsync(new DeleteBucketRequest { BucketName = bucketName });
        return result.HttpStatusCode == HttpStatusCode.OK;
    }

    /// <summary>
    /// List the buckets that are owned by the user's account.
    /// </summary>
    /// <returns>Async Task.</returns>
    public async Task<List<S3Bucket>?> ListMyBucketsAsync()
    {
        try
        {
            // Get the list of buckets accessible by the new user.
            var response = await _s3Service.ListBucketsAsync();

            return response.Buckets;
        }
        catch (AmazonS3Exception ex)
        {
            // Something else went wrong. Display the error message.
            Console.WriteLine($"Error: {ex.Message}");
            return null;
        }
    }

    /// <summary>
    /// Create a new S3 bucket.
    /// </summary>
    /// <param name="bucketName">The name for the new bucket.</param>
    /// <returns>A Boolean value indicating whether the action completed
    /// successfully.</returns>
    public async Task<bool> PutBucketAsync(string bucketName)
    {
        var response = await _s3Service.PutBucketAsync(new PutBucketRequest { BucketName = bucketName });
        return response.HttpStatusCode == HttpStatusCode.OK;
    }

    /// <summary>
    /// Update the client objects with new client objects. This is available
    /// because the scenario uses the methods of this class without and then
    /// with the proper permissions to list S3 buckets.
    /// </summary>
    /// <param name="s3Service">The Amazon S3 client object.</param>
    /// <param name="stsService">The AWS STS client object.</param>
    public void UpdateClients(IAmazonS3 s3Service, IAmazonSecurityTokenService stsService)
    {
        _s3Service = s3Service;
        _stsService = stsService;
    }
}


namespace IamScenariosCommon;

public class UIWrapper
{
    public readonly string SepBar = new('-', Console.WindowWidth);

    /// <summary>
    /// Show information about the IAM Groups scenario.
    /// </summary>
    public void DisplayGroupsOverview()
    {
        Console.Clear();

        DisplayTitle("Welcome to the IAM Groups Demo");
        Console.WriteLine("This example application does the following:");
        Console.WriteLine("\t1. Creates an Amazon Identity and Access Management (IAM) group.");
        Console.WriteLine("\t2. Adds an IAM policy to the IAM group giving it full access to Amazon S3.");
        Console.WriteLine("\t3. Creates a new IAM user.");
        Console.WriteLine("\t4. Creates an IAM access key for the user.");
        Console.WriteLine("\t5. Adds the user to the IAM group.");
        Console.WriteLine("\t6. Lists the buckets on the account.");
        Console.WriteLine("\t7. Proves that the user has full Amazon S3 access by creating a bucket.");
        Console.WriteLine("\t8. List the buckets again to show the new bucket.");
        Console.WriteLine("\t9. Cleans up all the resources created.");
    }

    /// <summary>
    /// Show information about the IAM Basics scenario.
    /// </summary>
    public void DisplayBasicsOverview()
    {
        Console.Clear();

        DisplayTitle("Welcome to IAM Basics");
        Console.WriteLine("This example application does the following:");
        Console.WriteLine("\t1. Creates a user with no permissions.");
        Console.WriteLine("\t2. Creates a role and policy that grant s3:ListAllMyBuckets permission.");
        Console.WriteLine("\t3. Grants the user permission to assume the role.");
        Console.WriteLine("\t4. Creates an S3 client object as the user and tries to list buckets (this will fail).");
        Console.WriteLine("\t5. Gets temporary credentials by assuming the role.");
        Console.WriteLine("\t6. Creates a new S3 client object with the temporary credentials and lists the buckets (this will succeed).");
        Console.WriteLine("\t7. Deletes all the resources.");
    }

    /// <summary>
    /// Display a message and wait until the user presses enter.
    /// </summary>
    public void PressEnter()
    {
        Console.Write("\nPress <Enter> to continue. ");
        _ = Console.ReadLine();
        Console.WriteLine();
    }

    /// <summary>
    /// Pad a string with spaces to center it on the console display.
    /// </summary>
    /// <param name="strToCenter">The string to be centered.</param>
    /// <returns>The padded string.</returns>
    public string CenterString(string strToCenter)
    {
        var padAmount = (Console.WindowWidth - strToCenter.Length) / 2;
        var leftPad = new string(' ', padAmount);
        return $"{leftPad}{strToCenter}";
    }

    /// <summary>
    /// Display a line of hyphens, the centered text of the title, and another
    /// line of hyphens.
    /// </summary>
    /// <param name="strTitle">The string to be displayed.</param>
    public void DisplayTitle(string strTitle)
    {
        Console.WriteLine(SepBar);
        Console.WriteLine(CenterString(strTitle));
        Console.WriteLine(SepBar);
    }

    /// <summary>
    /// Display a countdown and wait for a number of seconds.
    /// </summary>
    /// <param name="numSeconds">The number of seconds to wait.</param>
    public void WaitABit(int numSeconds, string msg)
    {
        Console.WriteLine(msg);

        // Wait for the requested number of seconds.
        for (int i = numSeconds; i > 0; i--)
        {
            System.Threading.Thread.Sleep(1000);
            Console.Write($"{i}...");
        }

        PressEnter();
    }
}
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk .NET *.
  + [AttachRolePolicy](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/AttachRolePolicy)
  + [CreateAccessKey](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/CreateAccessKey)
  + [CreatePolicy](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/CreatePolicy)
  + [CreateRole](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/CreateRole)
  + [CreateUser](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/CreateUser)
  + [DeleteAccessKey](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/DeleteAccessKey)
  + [DeletePolicy](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/DeletePolicy)
  + [DeleteRole](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/DeleteRole)
  + [DeleteUser](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/DeleteUser)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/DeleteUserPolicy)
  + [DetachRolePolicy](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/DetachRolePolicy)
  + [PutUserPolicy](https://docs.aws.amazon.com/goto/DotNetSDKV3/iam-2010-05-08/PutUserPolicy)

------
#### [ Bash ]

**AWS CLI dengan skrip Bash**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/iam#code-examples). 

```
###############################################################################
# function iam_create_user_assume_role
#
# Scenario to create an IAM user, create an IAM role, and apply the role to the user.
#
#     "IAM access" permissions are needed to run this code.
#     "STS assume role" permissions are needed to run this code. (Note: It might be necessary to
#           create a custom policy).
#
# Returns:
#       0 - If successful.
#       1 - If an error occurred.
###############################################################################
function iam_create_user_assume_role() {
  {
    if [ "$IAM_OPERATIONS_SOURCED" != "True" ]; then

      source ./iam_operations.sh
    fi
  }

  echo_repeat "*" 88
  echo "Welcome to the IAM create user and assume role demo."
  echo
  echo "This demo will create an IAM user, create an IAM role, and apply the role to the user."
  echo_repeat "*" 88
  echo

  echo -n "Enter a name for a new IAM user: "
  get_input
  user_name=$get_input_result

  local user_arn
  user_arn=$(iam_create_user -u "$user_name")

  # shellcheck disable=SC2181
  if [[ ${?} == 0 ]]; then
    echo "Created demo IAM user named $user_name"
  else
    errecho "$user_arn"
    errecho "The user failed to create. This demo will exit."
    return 1
  fi

  local access_key_response
  access_key_response=$(iam_create_user_access_key -u "$user_name")
  # shellcheck disable=SC2181
  if [[ ${?} != 0 ]]; then
    errecho "The access key failed to create. This demo will exit."
    clean_up "$user_name"
    return 1
  fi

  IFS=$'\t ' read -r -a access_key_values <<<"$access_key_response"
  local key_name=${access_key_values[0]}
  local key_secret=${access_key_values[1]}

  echo "Created access key named $key_name"

  echo "Wait 10 seconds for the user to be ready."
  sleep 10
  echo_repeat "*" 88
  echo

  local iam_role_name
  iam_role_name=$(generate_random_name "test-role")
  echo "Creating a role named $iam_role_name with user $user_name as the principal."

  local assume_role_policy_document="{
    \"Version\": \"2012-10-17\",
    \"Statement\": [{
        \"Effect\": \"Allow\",
        \"Principal\": {\"AWS\": \"$user_arn\"},
        \"Action\": \"sts:AssumeRole\"
        }]
    }"

  local role_arn
  role_arn=$(iam_create_role -n "$iam_role_name" -p "$assume_role_policy_document")

  # shellcheck disable=SC2181
  if [ ${?} == 0 ]; then
    echo "Created IAM role named $iam_role_name"
  else
    errecho "The role failed to create. This demo will exit."
    clean_up "$user_name" "$key_name"
    return 1
  fi

  local policy_name
  policy_name=$(generate_random_name "test-policy")
  local policy_document="{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Action\": \"s3:ListAllMyBuckets\",
                    \"Resource\": \"arn:aws:s3:::*\"}]}"

  local policy_arn
  policy_arn=$(iam_create_policy -n "$policy_name" -p "$policy_document")
  # shellcheck disable=SC2181
  if [[ ${?} == 0 ]]; then
    echo "Created  IAM policy named $policy_name"
  else
    errecho "The policy failed to create."
    clean_up "$user_name" "$key_name" "$iam_role_name"
    return 1
  fi

  if (iam_attach_role_policy -n "$iam_role_name" -p "$policy_arn"); then
    echo "Attached policy $policy_arn to role $iam_role_name"
  else
    errecho "The policy failed to attach."
    clean_up "$user_name" "$key_name" "$iam_role_name" "$policy_arn"
    return 1
  fi

  local assume_role_policy_document="{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Action\": \"sts:AssumeRole\",
                    \"Resource\": \"$role_arn\"}]}"

  local assume_role_policy_name
  assume_role_policy_name=$(generate_random_name "test-assume-role-")

  # shellcheck disable=SC2181
  local assume_role_policy_arn
  assume_role_policy_arn=$(iam_create_policy -n "$assume_role_policy_name" -p "$assume_role_policy_document")
  # shellcheck disable=SC2181
  if [ ${?} == 0 ]; then
    echo "Created  IAM policy named $assume_role_policy_name for sts assume role"
  else
    errecho "The policy failed to create."
    clean_up "$user_name" "$key_name" "$iam_role_name" "$policy_arn" "$policy_arn"
    return 1
  fi

  echo "Wait 10 seconds to give AWS time to propagate these new resources and connections."
  sleep 10
  echo_repeat "*" 88
  echo

  echo "Try to list buckets without the new user assuming the role."
  echo_repeat "*" 88
  echo

  # Set the environment variables for the created user.
  # bashsupport disable=BP2001
  export AWS_ACCESS_KEY_ID=$key_name
  # bashsupport disable=BP2001
  export AWS_SECRET_ACCESS_KEY=$key_secret

  local buckets
  buckets=$(s3_list_buckets)

  # shellcheck disable=SC2181
  if [ ${?} == 0 ]; then
    local bucket_count
    bucket_count=$(echo "$buckets" | wc -w | xargs)
    echo "There are $bucket_count buckets in the account. This should not have happened."
  else
    errecho "Because the role with permissions has not been assumed, listing buckets failed."
  fi

  echo
  echo_repeat "*" 88
  echo "Now assume the role $iam_role_name and list the buckets."
  echo_repeat "*" 88
  echo

  local credentials

  credentials=$(sts_assume_role -r "$role_arn" -n "AssumeRoleDemoSession")
  # shellcheck disable=SC2181
  if [ ${?} == 0 ]; then
    echo "Assumed role $iam_role_name"
  else
    errecho "Failed to assume role."
    export AWS_ACCESS_KEY_ID=""
    export AWS_SECRET_ACCESS_KEY=""
    clean_up "$user_name" "$key_name" "$iam_role_name" "$policy_arn" "$policy_arn" "$assume_role_policy_arn"
    return 1
  fi

  IFS=$'\t ' read -r -a credentials <<<"$credentials"

  export AWS_ACCESS_KEY_ID=${credentials[0]}
  export AWS_SECRET_ACCESS_KEY=${credentials[1]}
  # bashsupport disable=BP2001
  export AWS_SESSION_TOKEN=${credentials[2]}

  buckets=$(s3_list_buckets)

  # shellcheck disable=SC2181
  if [ ${?} == 0 ]; then
    local bucket_count
    bucket_count=$(echo "$buckets" | wc -w | xargs)
    echo "There are $bucket_count buckets in the account. Listing buckets succeeded because of "
    echo "the assumed role."
  else
    errecho "Failed to list buckets. This should not happen."
    export AWS_ACCESS_KEY_ID=""
    export AWS_SECRET_ACCESS_KEY=""
    export AWS_SESSION_TOKEN=""
    clean_up "$user_name" "$key_name" "$iam_role_name" "$policy_arn" "$policy_arn" "$assume_role_policy_arn"
    return 1
  fi

  local result=0
  export AWS_ACCESS_KEY_ID=""
  export AWS_SECRET_ACCESS_KEY=""

  echo
  echo_repeat "*" 88
  echo "The created resources will now be deleted."
  echo_repeat "*" 88
  echo

  clean_up "$user_name" "$key_name" "$iam_role_name" "$policy_arn" "$policy_arn" "$assume_role_policy_arn"

  # shellcheck disable=SC2181
  if [[ ${?} -ne 0 ]]; then
    result=1
  fi

  return $result
}
```
Fungsi IAM yang digunakan dalam skenario ini.  

```
###############################################################################
# function iam_user_exists
#
# This function checks to see if the specified AWS Identity and Access Management (IAM) user already exists.
#
# Parameters:
#       $1 - The name of the IAM user to check.
#
# Returns:
#       0 - If the user already exists.
#       1 - If the user doesn't exist.
###############################################################################
function iam_user_exists() {
  local user_name
  user_name=$1

  # Check whether the IAM user already exists.
  # We suppress all output - we're interested only in the return code.

  local errors
  errors=$(aws iam get-user \
    --user-name "$user_name" 2>&1 >/dev/null)

  local error_code=${?}

  if [[ $error_code -eq 0 ]]; then
    return 0 # 0 in Bash script means true.
  else
    if [[ $errors != *"error"*"(NoSuchEntity)"* ]]; then
      aws_cli_error_log $error_code
      errecho "Error calling iam get-user $errors"
    fi

    return 1 # 1 in Bash script means false.
  fi
}

###############################################################################
# function iam_create_user
#
# This function creates the specified IAM user, unless
# it already exists.
#
# Parameters:
#       -u user_name  -- The name of the user to create.
#
# Returns:
#       The ARN of the user.
#     And:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_create_user() {
  local user_name response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_create_user"
    echo "Creates an AWS Identity and Access Management (IAM) user. You must supply a username:"
    echo "  -u user_name    The name of the user. It must be unique within the account."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "u:h" option; do
    case "${option}" in
      u) user_name="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$user_name" ]]; then
    errecho "ERROR: You must provide a username with the -u parameter."
    usage
    return 1
  fi

  iecho "Parameters:\n"
  iecho "    User name:   $user_name"
  iecho ""

  # If the user already exists, we don't want to try to create it.
  if (iam_user_exists "$user_name"); then
    errecho "ERROR: A user with that name already exists in the account."
    return 1
  fi

  response=$(aws iam create-user --user-name "$user_name" \
    --output text \
    --query 'User.Arn')

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-user operation failed.$response"
    return 1
  fi

  echo "$response"

  return 0
}

###############################################################################
# function iam_create_user_access_key
#
# This function creates an IAM access key for the specified user.
#
# Parameters:
#       -u user_name -- The name of the IAM user.
#       [-f file_name] -- The optional file name for the access key output.
#
# Returns:
#       [access_key_id access_key_secret]
#     And:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_create_user_access_key() {
  local user_name file_name response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_create_user_access_key"
    echo "Creates an AWS Identity and Access Management (IAM) key pair."
    echo "  -u user_name   The name of the IAM user."
    echo "  [-f file_name]   Optional file name for the access key output."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "u:f:h" option; do
    case "${option}" in
      u) user_name="${OPTARG}" ;;
      f) file_name="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$user_name" ]]; then
    errecho "ERROR: You must provide a username with the -u parameter."
    usage
    return 1
  fi

  response=$(aws iam create-access-key \
    --user-name "$user_name" \
    --output text)

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-access-key operation failed.$response"
    return 1
  fi

  if [[ -n "$file_name" ]]; then
    echo "$response" >"$file_name"
  fi

  local key_id key_secret
  # shellcheck disable=SC2086
  key_id=$(echo $response | cut -f 2 -d ' ')
  # shellcheck disable=SC2086
  key_secret=$(echo $response | cut -f 4 -d ' ')

  echo "$key_id $key_secret"

  return 0
}

###############################################################################
# function iam_create_role
#
# This function creates an IAM role.
#
# Parameters:
#       -n role_name -- The name of the IAM role.
#       -p policy_json -- The assume role policy document.
#
# Returns:
#       The ARN of the role.
#     And:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_create_role() {
  local role_name policy_document response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_create_user_access_key"
    echo "Creates an AWS Identity and Access Management (IAM) role."
    echo "  -n role_name   The name of the IAM role."
    echo "  -p policy_json -- The assume role policy document."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "n:p:h" option; do
    case "${option}" in
      n) role_name="${OPTARG}" ;;
      p) policy_document="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$role_name" ]]; then
    errecho "ERROR: You must provide a role name with the -n parameter."
    usage
    return 1
  fi

  if [[ -z "$policy_document" ]]; then
    errecho "ERROR: You must provide a policy document with the -p parameter."
    usage
    return 1
  fi

  response=$(aws iam create-role \
    --role-name "$role_name" \
    --assume-role-policy-document "$policy_document" \
    --output text \
    --query Role.Arn)

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-role operation failed.\n$response"
    return 1
  fi

  echo "$response"

  return 0
}

###############################################################################
# function iam_create_policy
#
# This function creates an IAM policy.
#
# Parameters:
#       -n policy_name -- The name of the IAM policy.
#       -p policy_json -- The policy document.
#
# Returns:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_create_policy() {
  local policy_name policy_document response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_create_policy"
    echo "Creates an AWS Identity and Access Management (IAM) policy."
    echo "  -n policy_name   The name of the IAM policy."
    echo "  -p policy_json -- The policy document."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "n:p:h" option; do
    case "${option}" in
      n) policy_name="${OPTARG}" ;;
      p) policy_document="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$policy_name" ]]; then
    errecho "ERROR: You must provide a policy name with the -n parameter."
    usage
    return 1
  fi

  if [[ -z "$policy_document" ]]; then
    errecho "ERROR: You must provide a policy document with the -p parameter."
    usage
    return 1
  fi

  response=$(aws iam create-policy \
    --policy-name "$policy_name" \
    --policy-document "$policy_document" \
    --output text \
    --query Policy.Arn)

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports create-policy operation failed.\n$response"
    return 1
  fi

  echo "$response"
}

###############################################################################
# function iam_attach_role_policy
#
# This function attaches an IAM policy to a tole.
#
# Parameters:
#       -n role_name -- The name of the IAM role.
#       -p policy_ARN -- The IAM policy document ARN..
#
# Returns:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_attach_role_policy() {
  local role_name policy_arn response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_attach_role_policy"
    echo "Attaches an AWS Identity and Access Management (IAM) policy to an IAM role."
    echo "  -n role_name   The name of the IAM role."
    echo "  -p policy_ARN -- The IAM policy document ARN."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "n:p:h" option; do
    case "${option}" in
      n) role_name="${OPTARG}" ;;
      p) policy_arn="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$role_name" ]]; then
    errecho "ERROR: You must provide a role name with the -n parameter."
    usage
    return 1
  fi

  if [[ -z "$policy_arn" ]]; then
    errecho "ERROR: You must provide a policy ARN with the -p parameter."
    usage
    return 1
  fi

  response=$(aws iam attach-role-policy \
    --role-name "$role_name" \
    --policy-arn "$policy_arn")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports attach-role-policy operation failed.\n$response"
    return 1
  fi

  echo "$response"

  return 0
}

###############################################################################
# function iam_detach_role_policy
#
# This function detaches an IAM policy to a tole.
#
# Parameters:
#       -n role_name -- The name of the IAM role.
#       -p policy_ARN -- The IAM policy document ARN..
#
# Returns:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_detach_role_policy() {
  local role_name policy_arn response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_detach_role_policy"
    echo "Detaches an AWS Identity and Access Management (IAM) policy to an IAM role."
    echo "  -n role_name   The name of the IAM role."
    echo "  -p policy_ARN -- The IAM policy document ARN."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "n:p:h" option; do
    case "${option}" in
      n) role_name="${OPTARG}" ;;
      p) policy_arn="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$role_name" ]]; then
    errecho "ERROR: You must provide a role name with the -n parameter."
    usage
    return 1
  fi

  if [[ -z "$policy_arn" ]]; then
    errecho "ERROR: You must provide a policy ARN with the -p parameter."
    usage
    return 1
  fi

  response=$(aws iam detach-role-policy \
    --role-name "$role_name" \
    --policy-arn "$policy_arn")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports detach-role-policy operation failed.\n$response"
    return 1
  fi

  echo "$response"

  return 0
}

###############################################################################
# function iam_delete_policy
#
# This function deletes an IAM policy.
#
# Parameters:
#       -n policy_arn -- The name of the IAM policy arn.
#
# Returns:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_delete_policy() {
  local policy_arn response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_delete_policy"
    echo "Deletes an AWS Identity and Access Management (IAM) policy"
    echo "  -n policy_arn -- The name of the IAM policy arn."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "n:h" option; do
    case "${option}" in
      n) policy_arn="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$policy_arn" ]]; then
    errecho "ERROR: You must provide a policy arn with the -n parameter."
    usage
    return 1
  fi

  iecho "Parameters:\n"
  iecho "    Policy arn:  $policy_arn"
  iecho ""

  response=$(aws iam delete-policy \
    --policy-arn "$policy_arn")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports delete-policy operation failed.\n$response"
    return 1
  fi

  iecho "delete-policy response:$response"
  iecho

  return 0
}

###############################################################################
# function iam_delete_role
#
# This function deletes an IAM role.
#
# Parameters:
#       -n role_name -- The name of the IAM role.
#
# Returns:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_delete_role() {
  local role_name response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_delete_role"
    echo "Deletes an AWS Identity and Access Management (IAM) role"
    echo "  -n role_name -- The name of the IAM role."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "n:h" option; do
    case "${option}" in
      n) role_name="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  echo "role_name:$role_name"
  if [[ -z "$role_name" ]]; then
    errecho "ERROR: You must provide a role name with the -n parameter."
    usage
    return 1
  fi

  iecho "Parameters:\n"
  iecho "    Role name:  $role_name"
  iecho ""

  response=$(aws iam delete-role \
    --role-name "$role_name")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports delete-role operation failed.\n$response"
    return 1
  fi

  iecho "delete-role response:$response"
  iecho

  return 0
}

###############################################################################
# function iam_delete_access_key
#
# This function deletes an IAM access key for the specified IAM user.
#
# Parameters:
#       -u user_name  -- The name of the user.
#       -k access_key -- The access key to delete.
#
# Returns:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_delete_access_key() {
  local user_name access_key response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_delete_access_key"
    echo "Deletes an AWS Identity and Access Management (IAM) access key for the specified IAM user"
    echo "  -u user_name    The name of the user."
    echo "  -k access_key   The access key to delete."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "u:k:h" option; do
    case "${option}" in
      u) user_name="${OPTARG}" ;;
      k) access_key="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$user_name" ]]; then
    errecho "ERROR: You must provide a username with the -u parameter."
    usage
    return 1
  fi

  if [[ -z "$access_key" ]]; then
    errecho "ERROR: You must provide an access key with the -k parameter."
    usage
    return 1
  fi

  iecho "Parameters:\n"
  iecho "    Username:   $user_name"
  iecho "    Access key:   $access_key"
  iecho ""

  response=$(aws iam delete-access-key \
    --user-name "$user_name" \
    --access-key-id "$access_key")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports delete-access-key operation failed.\n$response"
    return 1
  fi

  iecho "delete-access-key response:$response"
  iecho

  return 0
}

###############################################################################
# function iam_delete_user
#
# This function deletes the specified IAM user.
#
# Parameters:
#       -u user_name  -- The name of the user to create.
#
# Returns:
#       0 - If successful.
#       1 - If it fails.
###############################################################################
function iam_delete_user() {
  local user_name response
  local option OPTARG # Required to use getopts command in a function.

  # bashsupport disable=BP5008
  function usage() {
    echo "function iam_delete_user"
    echo "Deletes an AWS Identity and Access Management (IAM) user. You must supply a username:"
    echo "  -u user_name    The name of the user."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "u:h" option; do
    case "${option}" in
      u) user_name="${OPTARG}" ;;
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  if [[ -z "$user_name" ]]; then
    errecho "ERROR: You must provide a username with the -u parameter."
    usage
    return 1
  fi

  iecho "Parameters:\n"
  iecho "    User name:   $user_name"
  iecho ""

  # If the user does not exist, we don't want to try to delete it.
  if (! iam_user_exists "$user_name"); then
    errecho "ERROR: A user with that name does not exist in the account."
    return 1
  fi

  response=$(aws iam delete-user \
    --user-name "$user_name")

  local error_code=${?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports delete-user operation failed.$response"
    return 1
  fi

  iecho "delete-user response:$response"
  iecho

  return 0
}
```
+ Untuk detail API, lihat topik berikut di *Referensi Perintah AWS CLI *.
  + [AttachRolePolicy](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/AttachRolePolicy)
  + [CreateAccessKey](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/CreateAccessKey)
  + [CreatePolicy](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/CreatePolicy)
  + [CreateRole](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/CreateRole)
  + [CreateUser](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/CreateUser)
  + [DeleteAccessKey](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/DeleteAccessKey)
  + [DeletePolicy](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/DeletePolicy)
  + [DeleteRole](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/DeleteRole)
  + [DeleteUser](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/DeleteUser)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/DeleteUserPolicy)
  + [DetachRolePolicy](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/DetachRolePolicy)
  + [PutUserPolicy](https://docs.aws.amazon.com/goto/aws-cli/iam-2010-05-08/PutUserPolicy)

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkap dan pelajari cara menyiapkan dan menjalankan di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/iam#code-examples). 

```
namespace AwsDoc {
    namespace IAM {
  
        //! Cleanup by deleting created entities.
        /*!
          \sa DeleteCreatedEntities
          \param client: IAM client.
          \param role: IAM role.
          \param user: IAM user.
          \param policy: IAM policy.
        */
        static bool DeleteCreatedEntities(const Aws::IAM::IAMClient &client,
                                          const Aws::IAM::Model::Role &role,
                                          const Aws::IAM::Model::User &user,
                                          const Aws::IAM::Model::Policy &policy);
    }

    static const int LIST_BUCKETS_WAIT_SEC = 20;

    static const char ALLOCATION_TAG[] = "example_code";
}

//! Scenario to create an IAM user, create an IAM role, and apply the role to the user.
// "IAM access" permissions are needed to run this code.
// "STS assume role" permissions are needed to run this code. (Note: It might be necessary to
//    create a custom policy).
/*!
  \sa iamCreateUserAssumeRoleScenario
  \param clientConfig: Aws client configuration.
  \return bool: Successful completion.
*/
bool AwsDoc::IAM::iamCreateUserAssumeRoleScenario(
        const Aws::Client::ClientConfiguration &clientConfig) {

    Aws::IAM::IAMClient client(clientConfig);
    Aws::IAM::Model::User user;
    Aws::IAM::Model::Role role;
    Aws::IAM::Model::Policy policy;

    // 1. Create a user.
    {
        Aws::IAM::Model::CreateUserRequest request;
        Aws::String uuid = Aws::Utils::UUID::RandomUUID();
        Aws::String userName = "iam-demo-user-" +
                               Aws::Utils::StringUtils::ToLower(uuid.c_str());
        request.SetUserName(userName);

        Aws::IAM::Model::CreateUserOutcome outcome = client.CreateUser(request);
        if (!outcome.IsSuccess()) {
            std::cout << "Error creating IAM user " << userName << ":" <<
                      outcome.GetError().GetMessage() << std::endl;
            return false;
        }
        else {
            std::cout << "Successfully created IAM user " << userName << std::endl;
        }

        user = outcome.GetResult().GetUser();
    }

    // 2. Create a role.
    {
        // Get the IAM user for the current client in order to access its ARN.
        Aws::String iamUserArn;
        {
            Aws::IAM::Model::GetUserRequest request;
            Aws::IAM::Model::GetUserOutcome outcome = client.GetUser(request);
            if (!outcome.IsSuccess()) {
                std::cerr << "Error getting Iam user. " <<
                          outcome.GetError().GetMessage() << std::endl;

                DeleteCreatedEntities(client, role, user, policy);
                return false;
            }
            else {
                std::cout << "Successfully retrieved Iam user "
                          << outcome.GetResult().GetUser().GetUserName()
                          << std::endl;
            }

            iamUserArn = outcome.GetResult().GetUser().GetArn();
        }

        Aws::IAM::Model::CreateRoleRequest request;

        Aws::String uuid = Aws::Utils::UUID::RandomUUID();
        Aws::String roleName = "iam-demo-role-" +
                               Aws::Utils::StringUtils::ToLower(uuid.c_str());
        request.SetRoleName(roleName);

        // Build policy document for role.
        Aws::Utils::Document jsonStatement;
        jsonStatement.WithString("Effect", "Allow");

        Aws::Utils::Document jsonPrincipal;
        jsonPrincipal.WithString("AWS", iamUserArn);
        jsonStatement.WithObject("Principal", jsonPrincipal);
        jsonStatement.WithString("Action", "sts:AssumeRole");
        jsonStatement.WithObject("Condition", Aws::Utils::Document());

        Aws::Utils::Document policyDocument;
        policyDocument.WithString("Version", "2012-10-17");

        Aws::Utils::Array<Aws::Utils::Document> statements(1);
        statements[0] = jsonStatement;
        policyDocument.WithArray("Statement", statements);

        std::cout << "Setting policy for role\n   "
                  << policyDocument.View().WriteCompact() << std::endl;

        // Set role policy document as JSON string.
        request.SetAssumeRolePolicyDocument(policyDocument.View().WriteCompact());

        Aws::IAM::Model::CreateRoleOutcome outcome = client.CreateRole(request);
        if (!outcome.IsSuccess()) {
            std::cerr << "Error creating role. " <<
                      outcome.GetError().GetMessage() << std::endl;

            DeleteCreatedEntities(client, role, user, policy);
            return false;
        }
        else {
            std::cout << "Successfully created a role with name " << roleName
                      << std::endl;
        }

        role = outcome.GetResult().GetRole();
    }

    // 3. Create an IAM policy.
    {
        Aws::IAM::Model::CreatePolicyRequest request;
        Aws::String uuid = Aws::Utils::UUID::RandomUUID();
        Aws::String policyName = "iam-demo-policy-" +
                                 Aws::Utils::StringUtils::ToLower(uuid.c_str());
        request.SetPolicyName(policyName);

        // Build IAM policy document.
        Aws::Utils::Document jsonStatement;
        jsonStatement.WithString("Effect", "Allow");
        jsonStatement.WithString("Action", "s3:ListAllMyBuckets");
        jsonStatement.WithString("Resource", "arn:aws:s3:::*");

        Aws::Utils::Document policyDocument;
        policyDocument.WithString("Version", "2012-10-17");

        Aws::Utils::Array<Aws::Utils::Document> statements(1);
        statements[0] = jsonStatement;
        policyDocument.WithArray("Statement", statements);

        std::cout << "Creating a policy.\n   " << policyDocument.View().WriteCompact()
                  << std::endl;

        // Set IAM policy document as JSON string.
        request.SetPolicyDocument(policyDocument.View().WriteCompact());

        Aws::IAM::Model::CreatePolicyOutcome outcome = client.CreatePolicy(request);
        if (!outcome.IsSuccess()) {
            std::cerr << "Error creating policy. " <<
                      outcome.GetError().GetMessage() << std::endl;

            DeleteCreatedEntities(client, role, user, policy);
            return false;
        }
        else {
            std::cout << "Successfully created a policy with name, " << policyName <<
                      "." << std::endl;
        }

        policy = outcome.GetResult().GetPolicy();
    }

    // 4. Assume the new role using the AWS Security Token Service (STS).
    Aws::STS::Model::Credentials credentials;
    {
        Aws::STS::STSClient stsClient(clientConfig);

        Aws::STS::Model::AssumeRoleRequest request;
        request.SetRoleArn(role.GetArn());
        Aws::String uuid = Aws::Utils::UUID::RandomUUID();
        Aws::String roleSessionName = "iam-demo-role-session-" +
                                      Aws::Utils::StringUtils::ToLower(uuid.c_str());
        request.SetRoleSessionName(roleSessionName);

        Aws::STS::Model::AssumeRoleOutcome assumeRoleOutcome;

        // Repeatedly call AssumeRole, because there is often a delay
        // before the role is available to be assumed.
        // Repeat at most 20 times when access is denied.
        int count = 0;
        while (true) {
            assumeRoleOutcome = stsClient.AssumeRole(request);
            if (!assumeRoleOutcome.IsSuccess()) {
                if (count > 20 ||
                    assumeRoleOutcome.GetError().GetErrorType() !=
                    Aws::STS::STSErrors::ACCESS_DENIED) {
                    std::cerr << "Error assuming role after 20 tries. " <<
                              assumeRoleOutcome.GetError().GetMessage() << std::endl;

                    DeleteCreatedEntities(client, role, user, policy);
                    return false;
                }
                std::this_thread::sleep_for(std::chrono::seconds(1));
            }
            else {
                std::cout << "Successfully assumed the role after " << count
                          << " seconds." << std::endl;
                break;
            }
            count++;
        }

        credentials = assumeRoleOutcome.GetResult().GetCredentials();
    }


    // 5. List objects in the bucket (This should fail).
    {
        Aws::S3::S3Client s3Client(
                Aws::Auth::AWSCredentials(credentials.GetAccessKeyId(),
                                          credentials.GetSecretAccessKey(),
                                          credentials.GetSessionToken()),
                Aws::MakeShared<Aws::S3::S3EndpointProvider>(ALLOCATION_TAG),
                clientConfig);
        Aws::S3::Model::ListBucketsOutcome listBucketsOutcome = s3Client.ListBuckets();
        if (!listBucketsOutcome.IsSuccess()) {
            if (listBucketsOutcome.GetError().GetErrorType() !=
                Aws::S3::S3Errors::ACCESS_DENIED) {
                std::cerr << "Could not lists buckets. " <<
                          listBucketsOutcome.GetError().GetMessage() << std::endl;
            }
            else {
                std::cout
                        << "Access to list buckets denied because privileges have not been applied."
                        << std::endl;
            }
        }
        else {
            std::cerr
                    << "Successfully retrieved bucket lists when this should not happen."
                    << std::endl;
        }
    }

    // 6. Attach the policy to the role.
    {
        Aws::IAM::Model::AttachRolePolicyRequest request;
        request.SetRoleName(role.GetRoleName());
        request.WithPolicyArn(policy.GetArn());

        Aws::IAM::Model::AttachRolePolicyOutcome outcome = client.AttachRolePolicy(
                request);
        if (!outcome.IsSuccess()) {
            std::cerr << "Error creating policy. " <<
                      outcome.GetError().GetMessage() << std::endl;

            DeleteCreatedEntities(client, role, user, policy);
            return false;
        }
        else {
            std::cout << "Successfully attached the policy with name, "
                      << policy.GetPolicyName() <<
                      ", to the role, " << role.GetRoleName() << "." << std::endl;
        }
    }

    int count = 0;
    // 7. List objects in the bucket (this should succeed).
    // Repeatedly call ListBuckets, because there is often a delay
    // before the policy with ListBucket permissions has been applied to the role.
    // Repeat at most LIST_BUCKETS_WAIT_SEC times when access is denied.
    while (true) {
        Aws::S3::S3Client s3Client(
                Aws::Auth::AWSCredentials(credentials.GetAccessKeyId(),
                                          credentials.GetSecretAccessKey(),
                                          credentials.GetSessionToken()),
                Aws::MakeShared<Aws::S3::S3EndpointProvider>(ALLOCATION_TAG),
                clientConfig);
        Aws::S3::Model::ListBucketsOutcome listBucketsOutcome = s3Client.ListBuckets();
        if (!listBucketsOutcome.IsSuccess()) {
            if ((count > LIST_BUCKETS_WAIT_SEC) ||
                listBucketsOutcome.GetError().GetErrorType() !=
                Aws::S3::S3Errors::ACCESS_DENIED) {
                std::cerr << "Could not lists buckets after " << LIST_BUCKETS_WAIT_SEC << " seconds. " <<
                          listBucketsOutcome.GetError().GetMessage() << std::endl;
                DeleteCreatedEntities(client, role, user, policy);
                return false;
            }

            std::this_thread::sleep_for(std::chrono::seconds(1));
        }
        else {

            std::cout << "Successfully retrieved bucket lists after " << count
                      << " seconds." << std::endl;
            break;
        }
        count++;
    }

    // 8. Delete all the created resources.
    return DeleteCreatedEntities(client, role, user, policy);
}

bool AwsDoc::IAM::DeleteCreatedEntities(const Aws::IAM::IAMClient &client,
                                        const Aws::IAM::Model::Role &role,
                                        const Aws::IAM::Model::User &user,
                                        const Aws::IAM::Model::Policy &policy) {
    bool result = true;
    if (policy.ArnHasBeenSet()) {
        // Detach the policy from the role.
        {
            Aws::IAM::Model::DetachRolePolicyRequest request;
            request.SetPolicyArn(policy.GetArn());
            request.SetRoleName(role.GetRoleName());

            Aws::IAM::Model::DetachRolePolicyOutcome outcome = client.DetachRolePolicy(
                    request);
            if (!outcome.IsSuccess()) {
                std::cerr << "Error Detaching policy from roles. " <<
                          outcome.GetError().GetMessage() << std::endl;
                result = false;
            }
            else {
                std::cout << "Successfully detached the policy with arn "
                          << policy.GetArn()
                          << " from role " << role.GetRoleName() << "." << std::endl;
            }
        }

        // Delete the policy.
        {
            Aws::IAM::Model::DeletePolicyRequest request;
            request.WithPolicyArn(policy.GetArn());

            Aws::IAM::Model::DeletePolicyOutcome outcome = client.DeletePolicy(request);
            if (!outcome.IsSuccess()) {
                std::cerr << "Error deleting policy. " <<
                          outcome.GetError().GetMessage() << std::endl;
                result = false;
            }
            else {
                std::cout << "Successfully deleted the policy with arn "
                          << policy.GetArn() << std::endl;
            }
        }

    }

    if (role.RoleIdHasBeenSet()) {
        // Delete the role.
        Aws::IAM::Model::DeleteRoleRequest request;
        request.SetRoleName(role.GetRoleName());

        Aws::IAM::Model::DeleteRoleOutcome outcome = client.DeleteRole(request);
        if (!outcome.IsSuccess()) {
            std::cerr << "Error deleting role. " <<
                      outcome.GetError().GetMessage() << std::endl;
            result = false;
        }
        else {
            std::cout << "Successfully deleted the role with name "
                      << role.GetRoleName() << std::endl;
        }
    }

    if (user.ArnHasBeenSet()) {
        // Delete the user.
        Aws::IAM::Model::DeleteUserRequest request;
        request.WithUserName(user.GetUserName());

        Aws::IAM::Model::DeleteUserOutcome outcome = client.DeleteUser(request);
        if (!outcome.IsSuccess()) {
            std::cerr << "Error deleting user. " <<
                      outcome.GetError().GetMessage() << std::endl;
            result = false;
        }
        else {
            std::cout << "Successfully deleted the user with name "
                      << user.GetUserName() << std::endl;
        }
    }

    return result;
}
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk C\$1\$1 *.
  + [AttachRolePolicy](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/AttachRolePolicy)
  + [CreateAccessKey](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/CreateAccessKey)
  + [CreatePolicy](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/CreatePolicy)
  + [CreateRole](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/CreateRole)
  + [CreateUser](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/CreateUser)
  + [DeleteAccessKey](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/DeleteAccessKey)
  + [DeletePolicy](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/DeletePolicy)
  + [DeleteRole](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/DeleteRole)
  + [DeleteUser](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/DeleteUser)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/DeleteUserPolicy)
  + [DetachRolePolicy](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/DetachRolePolicy)
  + [PutUserPolicy](https://docs.aws.amazon.com/goto/SdkForCpp/iam-2010-05-08/PutUserPolicy)

------
#### [ Go ]

**SDK untuk Go V2**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkap dan pelajari cara menyiapkan dan menjalankan di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/iam#code-examples). 
Jalankan skenario interaktif di penggugah/prompt perintah.  

```
import (
	"context"
	"errors"
	"fmt"
	"log"
	"math/rand"
	"strings"
	"time"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/config"
	"github.com/aws/aws-sdk-go-v2/credentials"
	"github.com/aws/aws-sdk-go-v2/service/iam"
	"github.com/aws/aws-sdk-go-v2/service/iam/types"
	"github.com/aws/aws-sdk-go-v2/service/s3"
	"github.com/aws/aws-sdk-go-v2/service/sts"
	"github.com/aws/smithy-go"
	"github.com/awsdocs/aws-doc-sdk-examples/gov2/demotools"
	"github.com/awsdocs/aws-doc-sdk-examples/gov2/iam/actions"
)

// AssumeRoleScenario shows you how to use the AWS Identity and Access Management (IAM)
// service to perform the following actions:
//
//  1. Create a user who has no permissions.
//  2. Create a role that grants permission to list Amazon Simple Storage Service
//     (Amazon S3) buckets for the account.
//  3. Add a policy to let the user assume the role.
//  4. Try and fail to list buckets without permissions.
//  5. Assume the role and list S3 buckets using temporary credentials.
//  6. Delete the policy, role, and user.
type AssumeRoleScenario struct {
	sdkConfig      aws.Config
	accountWrapper actions.AccountWrapper
	policyWrapper  actions.PolicyWrapper
	roleWrapper    actions.RoleWrapper
	userWrapper    actions.UserWrapper
	questioner     demotools.IQuestioner
	helper         IScenarioHelper
	isTestRun      bool
}

// NewAssumeRoleScenario constructs an AssumeRoleScenario instance from a configuration.
// It uses the specified config to get an IAM client and create wrappers for the actions
// used in the scenario.
func NewAssumeRoleScenario(sdkConfig aws.Config, questioner demotools.IQuestioner,
	helper IScenarioHelper) AssumeRoleScenario {
	iamClient := iam.NewFromConfig(sdkConfig)
	return AssumeRoleScenario{
		sdkConfig:      sdkConfig,
		accountWrapper: actions.AccountWrapper{IamClient: iamClient},
		policyWrapper:  actions.PolicyWrapper{IamClient: iamClient},
		roleWrapper:    actions.RoleWrapper{IamClient: iamClient},
		userWrapper:    actions.UserWrapper{IamClient: iamClient},
		questioner:     questioner,
		helper:         helper,
	}
}

// addTestOptions appends the API options specified in the original configuration to
// another configuration. This is used to attach the middleware stubber to clients
// that are constructed during the scenario, which is needed for unit testing.
func (scenario AssumeRoleScenario) addTestOptions(scenarioConfig *aws.Config) {
	if scenario.isTestRun {
		scenarioConfig.APIOptions = append(scenarioConfig.APIOptions, scenario.sdkConfig.APIOptions...)
	}
}

// Run runs the interactive scenario.
func (scenario AssumeRoleScenario) Run(ctx context.Context) {
	defer func() {
		if r := recover(); r != nil {
			log.Printf("Something went wrong with the demo.\n")
			log.Println(r)
		}
	}()

	log.Println(strings.Repeat("-", 88))
	log.Println("Welcome to the AWS Identity and Access Management (IAM) assume role demo.")
	log.Println(strings.Repeat("-", 88))

	user := scenario.CreateUser(ctx)
	accessKey := scenario.CreateAccessKey(ctx, user)
	role := scenario.CreateRoleAndPolicies(ctx, user)
	noPermsConfig := scenario.ListBucketsWithoutPermissions(ctx, accessKey)
	scenario.ListBucketsWithAssumedRole(ctx, noPermsConfig, role)
	scenario.Cleanup(ctx, user, role)

	log.Println(strings.Repeat("-", 88))
	log.Println("Thanks for watching!")
	log.Println(strings.Repeat("-", 88))
}

// CreateUser creates a new IAM user. This user has no permissions.
func (scenario AssumeRoleScenario) CreateUser(ctx context.Context) *types.User {
	log.Println("Let's create an example user with no permissions.")
	userName := scenario.questioner.Ask("Enter a name for the example user:", demotools.NotEmpty{})
	user, err := scenario.userWrapper.GetUser(ctx, userName)
	if err != nil {
		panic(err)
	}
	if user == nil {
		user, err = scenario.userWrapper.CreateUser(ctx, userName)
		if err != nil {
			panic(err)
		}
		log.Printf("Created user %v.\n", *user.UserName)
	} else {
		log.Printf("User %v already exists.\n", *user.UserName)
	}
	log.Println(strings.Repeat("-", 88))
	return user
}

// CreateAccessKey creates an access key for the user.
func (scenario AssumeRoleScenario) CreateAccessKey(ctx context.Context, user *types.User) *types.AccessKey {
	accessKey, err := scenario.userWrapper.CreateAccessKeyPair(ctx, *user.UserName)
	if err != nil {
		panic(err)
	}
	log.Printf("Created access key %v for your user.", *accessKey.AccessKeyId)
	log.Println("Waiting a few seconds for your user to be ready...")
	scenario.helper.Pause(10)
	log.Println(strings.Repeat("-", 88))
	return accessKey
}

// CreateRoleAndPolicies creates a policy that grants permission to list S3 buckets for
// the current account and attaches the policy to a newly created role. It also adds an
// inline policy to the specified user that grants the user permission to assume the role.
func (scenario AssumeRoleScenario) CreateRoleAndPolicies(ctx context.Context, user *types.User) *types.Role {
	log.Println("Let's create a role and policy that grant permission to list S3 buckets.")
	scenario.questioner.Ask("Press Enter when you're ready.")
	listBucketsRole, err := scenario.roleWrapper.CreateRole(ctx, scenario.helper.GetName(), *user.Arn)
	if err != nil {
		panic(err)
	}
	log.Printf("Created role %v.\n", *listBucketsRole.RoleName)
	listBucketsPolicy, err := scenario.policyWrapper.CreatePolicy(
		ctx, scenario.helper.GetName(), []string{"s3:ListAllMyBuckets"}, "arn:aws:s3:::*")
	if err != nil {
		panic(err)
	}
	log.Printf("Created policy %v.\n", *listBucketsPolicy.PolicyName)
	err = scenario.roleWrapper.AttachRolePolicy(ctx, *listBucketsPolicy.Arn, *listBucketsRole.RoleName)
	if err != nil {
		panic(err)
	}
	log.Printf("Attached policy %v to role %v.\n", *listBucketsPolicy.PolicyName,
		*listBucketsRole.RoleName)
	err = scenario.userWrapper.CreateUserPolicy(ctx, *user.UserName, scenario.helper.GetName(),
		[]string{"sts:AssumeRole"}, *listBucketsRole.Arn)
	if err != nil {
		panic(err)
	}
	log.Printf("Created an inline policy for user %v that lets the user assume the role.\n",
		*user.UserName)
	log.Println("Let's give AWS a few seconds to propagate these new resources and connections...")
	scenario.helper.Pause(10)
	log.Println(strings.Repeat("-", 88))
	return listBucketsRole
}

// ListBucketsWithoutPermissions creates an Amazon S3 client from the user's access key
// credentials and tries to list buckets for the account. Because the user does not have
// permission to perform this action, the action fails.
func (scenario AssumeRoleScenario) ListBucketsWithoutPermissions(ctx context.Context, accessKey *types.AccessKey) *aws.Config {
	log.Println("Let's try to list buckets without permissions. This should return an AccessDenied error.")
	scenario.questioner.Ask("Press Enter when you're ready.")
	noPermsConfig, err := config.LoadDefaultConfig(ctx,
		config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(
			*accessKey.AccessKeyId, *accessKey.SecretAccessKey, ""),
		))
	if err != nil {
		panic(err)
	}

	// Add test options if this is a test run. This is needed only for testing purposes.
	scenario.addTestOptions(&noPermsConfig)

	s3Client := s3.NewFromConfig(noPermsConfig)
	_, err = s3Client.ListBuckets(ctx, &s3.ListBucketsInput{})
	if err != nil {
		// The SDK for Go does not model the AccessDenied error, so check ErrorCode directly.
		var ae smithy.APIError
		if errors.As(err, &ae) {
			switch ae.ErrorCode() {
			case "AccessDenied":
				log.Println("Got AccessDenied error, which is the expected result because\n" +
					"the ListBuckets call was made without permissions.")
			default:
				log.Println("Expected AccessDenied, got something else.")
				panic(err)
			}
		}
	} else {
		log.Println("Expected AccessDenied error when calling ListBuckets without permissions,\n" +
			"but the call succeeded. Continuing the example anyway...")
	}
	log.Println(strings.Repeat("-", 88))
	return &noPermsConfig
}

// ListBucketsWithAssumedRole performs the following actions:
//
//  1. Creates an AWS Security Token Service (AWS STS) client from the config created from
//     the user's access key credentials.
//  2. Gets temporary credentials by assuming the role that grants permission to list the
//     buckets.
//  3. Creates an Amazon S3 client from the temporary credentials.
//  4. Lists buckets for the account. Because the temporary credentials are generated by
//     assuming the role that grants permission, the action succeeds.
func (scenario AssumeRoleScenario) ListBucketsWithAssumedRole(ctx context.Context, noPermsConfig *aws.Config, role *types.Role) {
	log.Println("Let's assume the role that grants permission to list buckets and try again.")
	scenario.questioner.Ask("Press Enter when you're ready.")
	stsClient := sts.NewFromConfig(*noPermsConfig)
	tempCredentials, err := stsClient.AssumeRole(ctx, &sts.AssumeRoleInput{
		RoleArn:         role.Arn,
		RoleSessionName: aws.String("AssumeRoleExampleSession"),
		DurationSeconds: aws.Int32(900),
	})
	if err != nil {
		log.Printf("Couldn't assume role %v.\n", *role.RoleName)
		panic(err)
	}
	log.Printf("Assumed role %v, got temporary credentials.\n", *role.RoleName)
	assumeRoleConfig, err := config.LoadDefaultConfig(ctx,
		config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(
			*tempCredentials.Credentials.AccessKeyId,
			*tempCredentials.Credentials.SecretAccessKey,
			*tempCredentials.Credentials.SessionToken),
		),
	)
	if err != nil {
		panic(err)
	}

	// Add test options if this is a test run. This is needed only for testing purposes.
	scenario.addTestOptions(&assumeRoleConfig)

	s3Client := s3.NewFromConfig(assumeRoleConfig)
	result, err := s3Client.ListBuckets(ctx, &s3.ListBucketsInput{})
	if err != nil {
		log.Println("Couldn't list buckets with assumed role credentials.")
		panic(err)
	}
	log.Println("Successfully called ListBuckets with assumed role credentials, \n" +
		"here are some of them:")
	for i := 0; i < len(result.Buckets) && i < 5; i++ {
		log.Printf("\t%v\n", *result.Buckets[i].Name)
	}
	log.Println(strings.Repeat("-", 88))
}

// Cleanup deletes all resources created for the scenario.
func (scenario AssumeRoleScenario) Cleanup(ctx context.Context, user *types.User, role *types.Role) {
	if scenario.questioner.AskBool(
		"Do you want to delete the resources created for this example? (y/n)", "y",
	) {
		policies, err := scenario.roleWrapper.ListAttachedRolePolicies(ctx, *role.RoleName)
		if err != nil {
			panic(err)
		}
		for _, policy := range policies {
			err = scenario.roleWrapper.DetachRolePolicy(ctx, *role.RoleName, *policy.PolicyArn)
			if err != nil {
				panic(err)
			}
			err = scenario.policyWrapper.DeletePolicy(ctx, *policy.PolicyArn)
			if err != nil {
				panic(err)
			}
			log.Printf("Detached policy %v from role %v and deleted the policy.\n",
				*policy.PolicyName, *role.RoleName)
		}
		err = scenario.roleWrapper.DeleteRole(ctx, *role.RoleName)
		if err != nil {
			panic(err)
		}
		log.Printf("Deleted role %v.\n", *role.RoleName)

		userPols, err := scenario.userWrapper.ListUserPolicies(ctx, *user.UserName)
		if err != nil {
			panic(err)
		}
		for _, userPol := range userPols {
			err = scenario.userWrapper.DeleteUserPolicy(ctx, *user.UserName, userPol)
			if err != nil {
				panic(err)
			}
			log.Printf("Deleted policy %v from user %v.\n", userPol, *user.UserName)
		}
		keys, err := scenario.userWrapper.ListAccessKeys(ctx, *user.UserName)
		if err != nil {
			panic(err)
		}
		for _, key := range keys {
			err = scenario.userWrapper.DeleteAccessKey(ctx, *user.UserName, *key.AccessKeyId)
			if err != nil {
				panic(err)
			}
			log.Printf("Deleted access key %v from user %v.\n", *key.AccessKeyId, *user.UserName)
		}
		err = scenario.userWrapper.DeleteUser(ctx, *user.UserName)
		if err != nil {
			panic(err)
		}
		log.Printf("Deleted user %v.\n", *user.UserName)
		log.Println(strings.Repeat("-", 88))
	}

}

// IScenarioHelper abstracts input and wait functions from a scenario so that they
// can be mocked for unit testing.
type IScenarioHelper interface {
	GetName() string
	Pause(secs int)
}

const rMax = 100000

type ScenarioHelper struct {
	Prefix string
	Random *rand.Rand
}

// GetName returns a unique name formed of a prefix and a random number.
func (helper *ScenarioHelper) GetName() string {
	return fmt.Sprintf("%v%v", helper.Prefix, helper.Random.Intn(rMax))
}

// Pause waits for the specified number of seconds.
func (helper ScenarioHelper) Pause(secs int) {
	time.Sleep(time.Duration(secs) * time.Second)
}
```
Tentukan struct yang membungkus tindakan akun.  

```
import (
	"context"
	"log"

	"github.com/aws/aws-sdk-go-v2/service/iam"
	"github.com/aws/aws-sdk-go-v2/service/iam/types"
)

// AccountWrapper encapsulates AWS Identity and Access Management (IAM) account actions
// used in the examples.
// It contains an IAM service client that is used to perform account actions.
type AccountWrapper struct {
	IamClient *iam.Client
}



// GetAccountPasswordPolicy gets the account password policy for the current account.
// If no policy has been set, a NoSuchEntityException is error is returned.
func (wrapper AccountWrapper) GetAccountPasswordPolicy(ctx context.Context) (*types.PasswordPolicy, error) {
	var pwPolicy *types.PasswordPolicy
	result, err := wrapper.IamClient.GetAccountPasswordPolicy(ctx,
		&iam.GetAccountPasswordPolicyInput{})
	if err != nil {
		log.Printf("Couldn't get account password policy. Here's why: %v\n", err)
	} else {
		pwPolicy = result.PasswordPolicy
	}
	return pwPolicy, err
}



// ListSAMLProviders gets the SAML providers for the account.
func (wrapper AccountWrapper) ListSAMLProviders(ctx context.Context) ([]types.SAMLProviderListEntry, error) {
	var providers []types.SAMLProviderListEntry
	result, err := wrapper.IamClient.ListSAMLProviders(ctx, &iam.ListSAMLProvidersInput{})
	if err != nil {
		log.Printf("Couldn't list SAML providers. Here's why: %v\n", err)
	} else {
		providers = result.SAMLProviderList
	}
	return providers, err
}
```
Tentukan struct yang membungkus tindakan kebijakan.  

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/iam"
	"github.com/aws/aws-sdk-go-v2/service/iam/types"
)

// PolicyWrapper encapsulates AWS Identity and Access Management (IAM) policy actions
// used in the examples.
// It contains an IAM service client that is used to perform policy actions.
type PolicyWrapper struct {
	IamClient *iam.Client
}



// ListPolicies gets up to maxPolicies policies.
func (wrapper PolicyWrapper) ListPolicies(ctx context.Context, maxPolicies int32) ([]types.Policy, error) {
	var policies []types.Policy
	result, err := wrapper.IamClient.ListPolicies(ctx, &iam.ListPoliciesInput{
		MaxItems: aws.Int32(maxPolicies),
	})
	if err != nil {
		log.Printf("Couldn't list policies. Here's why: %v\n", err)
	} else {
		policies = result.Policies
	}
	return policies, err
}



// PolicyDocument defines a policy document as a Go struct that can be serialized
// to JSON.
type PolicyDocument struct {
	Version   string
	Statement []PolicyStatement
}

// PolicyStatement defines a statement in a policy document.
type PolicyStatement struct {
	Effect    string
	Action    []string
	Principal map[string]string `json:",omitempty"`
	Resource  *string           `json:",omitempty"`
}

// CreatePolicy creates a policy that grants a list of actions to the specified resource.
// PolicyDocument shows how to work with a policy document as a data structure and
// serialize it to JSON by using Go's JSON marshaler.
func (wrapper PolicyWrapper) CreatePolicy(ctx context.Context, policyName string, actions []string,
	resourceArn string) (*types.Policy, error) {
	var policy *types.Policy
	policyDoc := PolicyDocument{
		Version: "2012-10-17",
		Statement: []PolicyStatement{{
			Effect:   "Allow",
			Action:   actions,
			Resource: aws.String(resourceArn),
		}},
	}
	policyBytes, err := json.Marshal(policyDoc)
	if err != nil {
		log.Printf("Couldn't create policy document for %v. Here's why: %v\n", resourceArn, err)
		return nil, err
	}
	result, err := wrapper.IamClient.CreatePolicy(ctx, &iam.CreatePolicyInput{
		PolicyDocument: aws.String(string(policyBytes)),
		PolicyName:     aws.String(policyName),
	})
	if err != nil {
		log.Printf("Couldn't create policy %v. Here's why: %v\n", policyName, err)
	} else {
		policy = result.Policy
	}
	return policy, err
}



// GetPolicy gets data about a policy.
func (wrapper PolicyWrapper) GetPolicy(ctx context.Context, policyArn string) (*types.Policy, error) {
	var policy *types.Policy
	result, err := wrapper.IamClient.GetPolicy(ctx, &iam.GetPolicyInput{
		PolicyArn: aws.String(policyArn),
	})
	if err != nil {
		log.Printf("Couldn't get policy %v. Here's why: %v\n", policyArn, err)
	} else {
		policy = result.Policy
	}
	return policy, err
}



// DeletePolicy deletes a policy.
func (wrapper PolicyWrapper) DeletePolicy(ctx context.Context, policyArn string) error {
	_, err := wrapper.IamClient.DeletePolicy(ctx, &iam.DeletePolicyInput{
		PolicyArn: aws.String(policyArn),
	})
	if err != nil {
		log.Printf("Couldn't delete policy %v. Here's why: %v\n", policyArn, err)
	}
	return err
}
```
Tentukan struct yang membungkus tindakan peran.  

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/iam"
	"github.com/aws/aws-sdk-go-v2/service/iam/types"
)

// RoleWrapper encapsulates AWS Identity and Access Management (IAM) role actions
// used in the examples.
// It contains an IAM service client that is used to perform role actions.
type RoleWrapper struct {
	IamClient *iam.Client
}



// ListRoles gets up to maxRoles roles.
func (wrapper RoleWrapper) ListRoles(ctx context.Context, maxRoles int32) ([]types.Role, error) {
	var roles []types.Role
	result, err := wrapper.IamClient.ListRoles(ctx,
		&iam.ListRolesInput{MaxItems: aws.Int32(maxRoles)},
	)
	if err != nil {
		log.Printf("Couldn't list roles. Here's why: %v\n", err)
	} else {
		roles = result.Roles
	}
	return roles, err
}



// CreateRole creates a role that trusts a specified user. The trusted user can assume
// the role to acquire its permissions.
// PolicyDocument shows how to work with a policy document as a data structure and
// serialize it to JSON by using Go's JSON marshaler.
func (wrapper RoleWrapper) CreateRole(ctx context.Context, roleName string, trustedUserArn string) (*types.Role, error) {
	var role *types.Role
	trustPolicy := PolicyDocument{
		Version: "2012-10-17",
		Statement: []PolicyStatement{{
			Effect:    "Allow",
			Principal: map[string]string{"AWS": trustedUserArn},
			Action:    []string{"sts:AssumeRole"},
		}},
	}
	policyBytes, err := json.Marshal(trustPolicy)
	if err != nil {
		log.Printf("Couldn't create trust policy for %v. Here's why: %v\n", trustedUserArn, err)
		return nil, err
	}
	result, err := wrapper.IamClient.CreateRole(ctx, &iam.CreateRoleInput{
		AssumeRolePolicyDocument: aws.String(string(policyBytes)),
		RoleName:                 aws.String(roleName),
	})
	if err != nil {
		log.Printf("Couldn't create role %v. Here's why: %v\n", roleName, err)
	} else {
		role = result.Role
	}
	return role, err
}



// GetRole gets data about a role.
func (wrapper RoleWrapper) GetRole(ctx context.Context, roleName string) (*types.Role, error) {
	var role *types.Role
	result, err := wrapper.IamClient.GetRole(ctx,
		&iam.GetRoleInput{RoleName: aws.String(roleName)})
	if err != nil {
		log.Printf("Couldn't get role %v. Here's why: %v\n", roleName, err)
	} else {
		role = result.Role
	}
	return role, err
}



// CreateServiceLinkedRole creates a service-linked role that is owned by the specified service.
func (wrapper RoleWrapper) CreateServiceLinkedRole(ctx context.Context, serviceName string, description string) (
	*types.Role, error) {
	var role *types.Role
	result, err := wrapper.IamClient.CreateServiceLinkedRole(ctx, &iam.CreateServiceLinkedRoleInput{
		AWSServiceName: aws.String(serviceName),
		Description:    aws.String(description),
	})
	if err != nil {
		log.Printf("Couldn't create service-linked role %v. Here's why: %v\n", serviceName, err)
	} else {
		role = result.Role
	}
	return role, err
}



// DeleteServiceLinkedRole deletes a service-linked role.
func (wrapper RoleWrapper) DeleteServiceLinkedRole(ctx context.Context, roleName string) error {
	_, err := wrapper.IamClient.DeleteServiceLinkedRole(ctx, &iam.DeleteServiceLinkedRoleInput{
		RoleName: aws.String(roleName)},
	)
	if err != nil {
		log.Printf("Couldn't delete service-linked role %v. Here's why: %v\n", roleName, err)
	}
	return err
}



// AttachRolePolicy attaches a policy to a role.
func (wrapper RoleWrapper) AttachRolePolicy(ctx context.Context, policyArn string, roleName string) error {
	_, err := wrapper.IamClient.AttachRolePolicy(ctx, &iam.AttachRolePolicyInput{
		PolicyArn: aws.String(policyArn),
		RoleName:  aws.String(roleName),
	})
	if err != nil {
		log.Printf("Couldn't attach policy %v to role %v. Here's why: %v\n", policyArn, roleName, err)
	}
	return err
}



// ListAttachedRolePolicies lists the policies that are attached to the specified role.
func (wrapper RoleWrapper) ListAttachedRolePolicies(ctx context.Context, roleName string) ([]types.AttachedPolicy, error) {
	var policies []types.AttachedPolicy
	result, err := wrapper.IamClient.ListAttachedRolePolicies(ctx, &iam.ListAttachedRolePoliciesInput{
		RoleName: aws.String(roleName),
	})
	if err != nil {
		log.Printf("Couldn't list attached policies for role %v. Here's why: %v\n", roleName, err)
	} else {
		policies = result.AttachedPolicies
	}
	return policies, err
}



// DetachRolePolicy detaches a policy from a role.
func (wrapper RoleWrapper) DetachRolePolicy(ctx context.Context, roleName string, policyArn string) error {
	_, err := wrapper.IamClient.DetachRolePolicy(ctx, &iam.DetachRolePolicyInput{
		PolicyArn: aws.String(policyArn),
		RoleName:  aws.String(roleName),
	})
	if err != nil {
		log.Printf("Couldn't detach policy from role %v. Here's why: %v\n", roleName, err)
	}
	return err
}



// ListRolePolicies lists the inline policies for a role.
func (wrapper RoleWrapper) ListRolePolicies(ctx context.Context, roleName string) ([]string, error) {
	var policies []string
	result, err := wrapper.IamClient.ListRolePolicies(ctx, &iam.ListRolePoliciesInput{
		RoleName: aws.String(roleName),
	})
	if err != nil {
		log.Printf("Couldn't list policies for role %v. Here's why: %v\n", roleName, err)
	} else {
		policies = result.PolicyNames
	}
	return policies, err
}



// DeleteRole deletes a role. All attached policies must be detached before a
// role can be deleted.
func (wrapper RoleWrapper) DeleteRole(ctx context.Context, roleName string) error {
	_, err := wrapper.IamClient.DeleteRole(ctx, &iam.DeleteRoleInput{
		RoleName: aws.String(roleName),
	})
	if err != nil {
		log.Printf("Couldn't delete role %v. Here's why: %v\n", roleName, err)
	}
	return err
}
```
Tentukan struct yang membungkus tindakan pengguna.  

```
import (
	"context"
	"encoding/json"
	"errors"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/iam"
	"github.com/aws/aws-sdk-go-v2/service/iam/types"
	"github.com/aws/smithy-go"
)

// UserWrapper encapsulates user actions used in the examples.
// It contains an IAM service client that is used to perform user actions.
type UserWrapper struct {
	IamClient *iam.Client
}



// ListUsers gets up to maxUsers number of users.
func (wrapper UserWrapper) ListUsers(ctx context.Context, maxUsers int32) ([]types.User, error) {
	var users []types.User
	result, err := wrapper.IamClient.ListUsers(ctx, &iam.ListUsersInput{
		MaxItems: aws.Int32(maxUsers),
	})
	if err != nil {
		log.Printf("Couldn't list users. Here's why: %v\n", err)
	} else {
		users = result.Users
	}
	return users, err
}



// GetUser gets data about a user.
func (wrapper UserWrapper) GetUser(ctx context.Context, userName string) (*types.User, error) {
	var user *types.User
	result, err := wrapper.IamClient.GetUser(ctx, &iam.GetUserInput{
		UserName: aws.String(userName),
	})
	if err != nil {
		var apiError smithy.APIError
		if errors.As(err, &apiError) {
			switch apiError.(type) {
			case *types.NoSuchEntityException:
				log.Printf("User %v does not exist.\n", userName)
				err = nil
			default:
				log.Printf("Couldn't get user %v. Here's why: %v\n", userName, err)
			}
		}
	} else {
		user = result.User
	}
	return user, err
}



// CreateUser creates a new user with the specified name.
func (wrapper UserWrapper) CreateUser(ctx context.Context, userName string) (*types.User, error) {
	var user *types.User
	result, err := wrapper.IamClient.CreateUser(ctx, &iam.CreateUserInput{
		UserName: aws.String(userName),
	})
	if err != nil {
		log.Printf("Couldn't create user %v. Here's why: %v\n", userName, err)
	} else {
		user = result.User
	}
	return user, err
}



// CreateUserPolicy adds an inline policy to a user. This example creates a policy that
// grants a list of actions on a specified role.
// PolicyDocument shows how to work with a policy document as a data structure and
// serialize it to JSON by using Go's JSON marshaler.
func (wrapper UserWrapper) CreateUserPolicy(ctx context.Context, userName string, policyName string, actions []string,
	roleArn string) error {
	policyDoc := PolicyDocument{
		Version: "2012-10-17",
		Statement: []PolicyStatement{{
			Effect:   "Allow",
			Action:   actions,
			Resource: aws.String(roleArn),
		}},
	}
	policyBytes, err := json.Marshal(policyDoc)
	if err != nil {
		log.Printf("Couldn't create policy document for %v. Here's why: %v\n", roleArn, err)
		return err
	}
	_, err = wrapper.IamClient.PutUserPolicy(ctx, &iam.PutUserPolicyInput{
		PolicyDocument: aws.String(string(policyBytes)),
		PolicyName:     aws.String(policyName),
		UserName:       aws.String(userName),
	})
	if err != nil {
		log.Printf("Couldn't create policy for user %v. Here's why: %v\n", userName, err)
	}
	return err
}



// ListUserPolicies lists the inline policies for the specified user.
func (wrapper UserWrapper) ListUserPolicies(ctx context.Context, userName string) ([]string, error) {
	var policies []string
	result, err := wrapper.IamClient.ListUserPolicies(ctx, &iam.ListUserPoliciesInput{
		UserName: aws.String(userName),
	})
	if err != nil {
		log.Printf("Couldn't list policies for user %v. Here's why: %v\n", userName, err)
	} else {
		policies = result.PolicyNames
	}
	return policies, err
}



// DeleteUserPolicy deletes an inline policy from a user.
func (wrapper UserWrapper) DeleteUserPolicy(ctx context.Context, userName string, policyName string) error {
	_, err := wrapper.IamClient.DeleteUserPolicy(ctx, &iam.DeleteUserPolicyInput{
		PolicyName: aws.String(policyName),
		UserName:   aws.String(userName),
	})
	if err != nil {
		log.Printf("Couldn't delete policy from user %v. Here's why: %v\n", userName, err)
	}
	return err
}



// DeleteUser deletes a user.
func (wrapper UserWrapper) DeleteUser(ctx context.Context, userName string) error {
	_, err := wrapper.IamClient.DeleteUser(ctx, &iam.DeleteUserInput{
		UserName: aws.String(userName),
	})
	if err != nil {
		log.Printf("Couldn't delete user %v. Here's why: %v\n", userName, err)
	}
	return err
}



// CreateAccessKeyPair creates an access key for a user. The returned access key contains
// the ID and secret credentials needed to use the key.
func (wrapper UserWrapper) CreateAccessKeyPair(ctx context.Context, userName string) (*types.AccessKey, error) {
	var key *types.AccessKey
	result, err := wrapper.IamClient.CreateAccessKey(ctx, &iam.CreateAccessKeyInput{
		UserName: aws.String(userName)})
	if err != nil {
		log.Printf("Couldn't create access key pair for user %v. Here's why: %v\n", userName, err)
	} else {
		key = result.AccessKey
	}
	return key, err
}



// DeleteAccessKey deletes an access key from a user.
func (wrapper UserWrapper) DeleteAccessKey(ctx context.Context, userName string, keyId string) error {
	_, err := wrapper.IamClient.DeleteAccessKey(ctx, &iam.DeleteAccessKeyInput{
		AccessKeyId: aws.String(keyId),
		UserName:    aws.String(userName),
	})
	if err != nil {
		log.Printf("Couldn't delete access key %v. Here's why: %v\n", keyId, err)
	}
	return err
}



// ListAccessKeys lists the access keys for the specified user.
func (wrapper UserWrapper) ListAccessKeys(ctx context.Context, userName string) ([]types.AccessKeyMetadata, error) {
	var keys []types.AccessKeyMetadata
	result, err := wrapper.IamClient.ListAccessKeys(ctx, &iam.ListAccessKeysInput{
		UserName: aws.String(userName),
	})
	if err != nil {
		log.Printf("Couldn't list access keys for user %v. Here's why: %v\n", userName, err)
	} else {
		keys = result.AccessKeyMetadata
	}
	return keys, err
}
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk Go *.
  + [AttachRolePolicy](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.AttachRolePolicy)
  + [CreateAccessKey](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.CreateAccessKey)
  + [CreatePolicy](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.CreatePolicy)
  + [CreateRole](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.CreateRole)
  + [CreateUser](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.CreateUser)
  + [DeleteAccessKey](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.DeleteAccessKey)
  + [DeletePolicy](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.DeletePolicy)
  + [DeleteRole](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.DeleteRole)
  + [DeleteUser](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.DeleteUser)
  + [DeleteUserPolicy](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.DeleteUserPolicy)
  + [DetachRolePolicy](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.DetachRolePolicy)
  + [PutUserPolicy](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iam#Client.PutUserPolicy)

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/iam#code-examples). 
Buat fungsi yang membungkus tindakan pengguna IAM.  

```
/*
  To run this Java V2 code example, set up your development environment, including your credentials.

  For information, see this documentation topic:

  https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html

  This example performs these operations:

  1. Creates a user that has no permissions.
  2. Creates a role and policy that grants Amazon S3 permissions.
  3. Creates a role.
  4. Grants the user permissions.
  5. Gets temporary credentials by assuming the role.  Creates an Amazon S3 Service client object with the temporary credentials.
  6. Deletes the resources.
 */

public class IAMScenario {
    public static final String DASHES = new String(new char[80]).replace("\0", "-");
    public static final String PolicyDocument = "{" +
            "  \"Version\": \"2012-10-17\"," +
            "  \"Statement\": [" +
            "    {" +
            "        \"Effect\": \"Allow\"," +
            "        \"Action\": [" +
            "            \"s3:*\"" +
            "       ]," +
            "       \"Resource\": \"*\"" +
            "    }" +
            "   ]" +
            "}";

    public static String userArn;

    public static void main(String[] args) throws Exception {

        final String usage = """

                Usage:
                    <username> <policyName> <roleName> <roleSessionName> <bucketName>\s

                Where:
                    username - The name of the IAM user to create.\s
                    policyName - The name of the policy to create.\s
                    roleName - The name of the role to create.\s
                    roleSessionName - The name of the session required for the assumeRole operation.\s
                    bucketName - The name of the Amazon S3 bucket from which objects are read.\s
                """;

        if (args.length != 5) {
            System.out.println(usage);
            System.exit(1);
        }

        String userName = args[0];
        String policyName = args[1];
        String roleName = args[2];
        String roleSessionName = args[3];
        String bucketName = args[4];

        Region region = Region.AWS_GLOBAL;
        IamClient iam = IamClient.builder()
                .region(region)
                .build();

        System.out.println(DASHES);
        System.out.println("Welcome to the AWS IAM example scenario.");
        System.out.println(DASHES);

        System.out.println(DASHES);
        System.out.println(" 1. Create the IAM user.");
        User createUser = createIAMUser(iam, userName);

        System.out.println(DASHES);
        userArn = createUser.arn();

        AccessKey myKey = createIAMAccessKey(iam, userName);
        String accessKey = myKey.accessKeyId();
        String secretKey = myKey.secretAccessKey();
        String assumeRolePolicyDocument = "{" +
                "\"Version\": \"2012-10-17\"," +
                "\"Statement\": [{" +
                "\"Effect\": \"Allow\"," +
                "\"Principal\": {" +
                "	\"AWS\": \"" + userArn + "\"" +
                "}," +
                "\"Action\": \"sts:AssumeRole\"" +
                "}]" +
                "}";

        System.out.println(assumeRolePolicyDocument);
        System.out.println(userName + " was successfully created.");
        System.out.println(DASHES);
        System.out.println("2. Creates a policy.");
        String polArn = createIAMPolicy(iam, policyName);
        System.out.println("The policy " + polArn + " was successfully created.");
        System.out.println(DASHES);

        System.out.println(DASHES);
        System.out.println("3. Creates a role.");
        TimeUnit.SECONDS.sleep(30);
        String roleArn = createIAMRole(iam, roleName, assumeRolePolicyDocument);
        System.out.println(roleArn + " was successfully created.");
        System.out.println(DASHES);

        System.out.println(DASHES);
        System.out.println("4. Grants the user permissions.");
        attachIAMRolePolicy(iam, roleName, polArn);
        System.out.println(DASHES);

        System.out.println(DASHES);
        System.out.println("*** Wait for 30 secs so the resource is available");
        TimeUnit.SECONDS.sleep(30);
        System.out.println("5. Gets temporary credentials by assuming the role.");
        System.out.println("Perform an Amazon S3 Service operation using the temporary credentials.");
        assumeRole(roleArn, roleSessionName, bucketName, accessKey, secretKey);
        System.out.println(DASHES);

        System.out.println(DASHES);
        System.out.println("6 Getting ready to delete the AWS resources");
        deleteKey(iam, userName, accessKey);
        deleteRole(iam, roleName, polArn);
        deleteIAMUser(iam, userName);
        System.out.println(DASHES);

        System.out.println(DASHES);
        System.out.println("This IAM Scenario has successfully completed");
        System.out.println(DASHES);
    }

    public static AccessKey createIAMAccessKey(IamClient iam, String user) {
        try {
            CreateAccessKeyRequest request = CreateAccessKeyRequest.builder()
                    .userName(user)
                    .build();

            CreateAccessKeyResponse response = iam.createAccessKey(request);
            return response.accessKey();

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return null;
    }

    public static User createIAMUser(IamClient iam, String username) {
        try {
            // Create an IamWaiter object
            IamWaiter iamWaiter = iam.waiter();
            CreateUserRequest request = CreateUserRequest.builder()
                    .userName(username)
                    .build();

            // Wait until the user is created.
            CreateUserResponse response = iam.createUser(request);
            GetUserRequest userRequest = GetUserRequest.builder()
                    .userName(response.user().userName())
                    .build();

            WaiterResponse<GetUserResponse> waitUntilUserExists = iamWaiter.waitUntilUserExists(userRequest);
            waitUntilUserExists.matched().response().ifPresent(System.out::println);
            return response.user();

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return null;
    }

    public static String createIAMRole(IamClient iam, String rolename, String json) {

        try {
            CreateRoleRequest request = CreateRoleRequest.builder()
                    .roleName(rolename)
                    .assumeRolePolicyDocument(json)
                    .description("Created using the AWS SDK for Java")
                    .build();

            CreateRoleResponse response = iam.createRole(request);
            System.out.println("The ARN of the role is " + response.role().arn());
            return response.role().arn();

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }

    public static String createIAMPolicy(IamClient iam, String policyName) {
        try {
            // Create an IamWaiter object.
            IamWaiter iamWaiter = iam.waiter();
            CreatePolicyRequest request = CreatePolicyRequest.builder()
                    .policyName(policyName)
                    .policyDocument(PolicyDocument).build();

            CreatePolicyResponse response = iam.createPolicy(request);
            GetPolicyRequest polRequest = GetPolicyRequest.builder()
                    .policyArn(response.policy().arn())
                    .build();

            WaiterResponse<GetPolicyResponse> waitUntilPolicyExists = iamWaiter.waitUntilPolicyExists(polRequest);
            waitUntilPolicyExists.matched().response().ifPresent(System.out::println);
            return response.policy().arn();

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }

    public static void attachIAMRolePolicy(IamClient iam, String roleName, String policyArn) {
        try {
            ListAttachedRolePoliciesRequest request = ListAttachedRolePoliciesRequest.builder()
                    .roleName(roleName)
                    .build();

            ListAttachedRolePoliciesResponse response = iam.listAttachedRolePolicies(request);
            List<AttachedPolicy> attachedPolicies = response.attachedPolicies();
            String polArn;
            for (AttachedPolicy policy : attachedPolicies) {
                polArn = policy.policyArn();
                if (polArn.compareTo(policyArn) == 0) {
                    System.out.println(roleName + " policy is already attached to this role.");
                    return;
                }
            }

            AttachRolePolicyRequest attachRequest = AttachRolePolicyRequest.builder()
                    .roleName(roleName)
                    .policyArn(policyArn)
                    .build();

            iam.attachRolePolicy(attachRequest);
            System.out.println("Successfully attached policy " + policyArn + " to role " + roleName);

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }

    // Invoke an Amazon S3 operation using the Assumed Role.
    public static void assumeRole(String roleArn, String roleSessionName, String bucketName, String keyVal,
            String keySecret) {

        // Use the creds of the new IAM user that was created in this code example.
        AwsBasicCredentials credentials = AwsBasicCredentials.create(keyVal, keySecret);
        StsClient stsClient = StsClient.builder()
                .region(Region.US_EAST_1)
                .credentialsProvider(StaticCredentialsProvider.create(credentials))
                .build();

        try {
            AssumeRoleRequest roleRequest = AssumeRoleRequest.builder()
                    .roleArn(roleArn)
                    .roleSessionName(roleSessionName)
                    .build();

            AssumeRoleResponse roleResponse = stsClient.assumeRole(roleRequest);
            Credentials myCreds = roleResponse.credentials();
            String key = myCreds.accessKeyId();
            String secKey = myCreds.secretAccessKey();
            String secToken = myCreds.sessionToken();

            // List all objects in an Amazon S3 bucket using the temp creds retrieved by
            // invoking assumeRole.
            Region region = Region.US_EAST_1;
            S3Client s3 = S3Client.builder()
                    .credentialsProvider(
                            StaticCredentialsProvider.create(AwsSessionCredentials.create(key, secKey, secToken)))
                    .region(region)
                    .build();

            System.out.println("Created a S3Client using temp credentials.");
            System.out.println("Listing objects in " + bucketName);
            ListObjectsRequest listObjects = ListObjectsRequest.builder()
                    .bucket(bucketName)
                    .build();

            ListObjectsResponse res = s3.listObjects(listObjects);
            List<S3Object> objects = res.contents();
            for (S3Object myValue : objects) {
                System.out.println("The name of the key is " + myValue.key());
                System.out.println("The owner is " + myValue.owner());
            }

        } catch (StsException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }
    }

    public static void deleteRole(IamClient iam, String roleName, String polArn) {

        try {
            // First the policy needs to be detached.
            DetachRolePolicyRequest rolePolicyRequest = DetachRolePolicyRequest.builder()
                    .policyArn(polArn)
                    .roleName(roleName)
                    .build();

            iam.detachRolePolicy(rolePolicyRequest);

            // Delete the policy.
            DeletePolicyRequest request = DeletePolicyRequest.builder()
                    .policyArn(polArn)
                    .build();

            iam.deletePolicy(request);
            System.out.println("*** Successfully deleted " + polArn);

            // Delete the role.
            DeleteRoleRequest roleRequest = DeleteRoleRequest.builder()
                    .roleName(roleName)
                    .build();

            iam.deleteRole(roleRequest);
            System.out.println("*** Successfully deleted " + roleName);

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }

    public static void deleteKey(IamClient iam, String username, String accessKey) {
        try {
            DeleteAccessKeyRequest request = DeleteAccessKeyRequest.builder()
                    .accessKeyId(accessKey)
                    .userName(username)
                    .build();

            iam.deleteAccessKey(request);
            System.out.println("Successfully deleted access key " + accessKey +
                    " from user " + username);

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }

    public static void deleteIAMUser(IamClient iam, String userName) {
        try {
            DeleteUserRequest request = DeleteUserRequest.builder()
                    .userName(userName)
                    .build();

            iam.deleteUser(request);
            System.out.println("*** Successfully deleted " + userName);

        } catch (IamException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK for Java 2.x *.
  + [AttachRolePolicy](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/AttachRolePolicy)
  + [CreateAccessKey](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/CreateAccessKey)
  + [CreatePolicy](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/CreatePolicy)
  + [CreateRole](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/CreateRole)
  + [CreateUser](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/CreateUser)
  + [DeleteAccessKey](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/DeleteAccessKey)
  + [DeletePolicy](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/DeletePolicy)
  + [DeleteRole](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/DeleteRole)
  + [DeleteUser](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/DeleteUser)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/DeleteUserPolicy)
  + [DetachRolePolicy](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/DetachRolePolicy)
  + [PutUserPolicy](https://docs.aws.amazon.com/goto/SdkForJavaV2/iam-2010-05-08/PutUserPolicy)

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/iam#code-examples). 
Buat pengguna IAM dan peran yang memberikan izin untuk mencantumkan bucket Amazon S3. Pengguna hanya memiliki hak untuk mengambil peran. Setelah mengambil peran, gunakan kredensyal sementara untuk membuat daftar bucket untuk akun.  

```
import {
  CreateUserCommand,
  GetUserCommand,
  CreateAccessKeyCommand,
  CreatePolicyCommand,
  CreateRoleCommand,
  AttachRolePolicyCommand,
  DeleteAccessKeyCommand,
  DeleteUserCommand,
  DeleteRoleCommand,
  DeletePolicyCommand,
  DetachRolePolicyCommand,
  IAMClient,
} from "@aws-sdk/client-iam";
import { ListBucketsCommand, S3Client } from "@aws-sdk/client-s3";
import { AssumeRoleCommand, STSClient } from "@aws-sdk/client-sts";
import { retry } from "@aws-doc-sdk-examples/lib/utils/util-timers.js";
import { ScenarioInput } from "@aws-doc-sdk-examples/lib/scenario/index.js";

// Set the parameters.
const iamClient = new IAMClient({});
const userName = "iam_basic_test_username";
const policyName = "iam_basic_test_policy";
const roleName = "iam_basic_test_role";

/**
 * Create a new IAM user. If the user already exists, give
 * the option to delete and re-create it.
 * @param {string} name
 */
export const createUser = async (name, confirmAll = false) => {
  try {
    const { User } = await iamClient.send(
      new GetUserCommand({ UserName: name }),
    );
    const input = new ScenarioInput(
      "deleteUser",
      "Do you want to delete and remake this user?",
      { type: "confirm" },
    );
    const deleteUser = await input.handle({}, { confirmAll });
    // If the user exists, and you want to delete it, delete the user
    // and then create it again.
    if (deleteUser) {
      await iamClient.send(new DeleteUserCommand({ UserName: User.UserName }));
      await iamClient.send(new CreateUserCommand({ UserName: name }));
    } else {
      console.warn(
        `${name} already exists. The scenario may not work as expected.`,
      );
      return User;
    }
  } catch (caught) {
    // If there is no user by that name, create one.
    if (caught instanceof Error && caught.name === "NoSuchEntityException") {
      const { User } = await iamClient.send(
        new CreateUserCommand({ UserName: name }),
      );
      return User;
    }
    throw caught;
  }
};

export const main = async (confirmAll = false) => {
  // Create a user. The user has no permissions by default.
  const User = await createUser(userName, confirmAll);

  if (!User) {
    throw new Error("User not created");
  }

  // Create an access key. This key is used to authenticate the new user to
  // Amazon Simple Storage Service (Amazon S3) and AWS Security Token Service (AWS STS).
  // It's not best practice to use access keys. For more information, see https://aws.amazon.com/iam/resources/best-practices/.
  const createAccessKeyResponse = await iamClient.send(
    new CreateAccessKeyCommand({ UserName: userName }),
  );

  if (
    !createAccessKeyResponse.AccessKey?.AccessKeyId ||
    !createAccessKeyResponse.AccessKey?.SecretAccessKey
  ) {
    throw new Error("Access key not created");
  }

  const {
    AccessKey: { AccessKeyId, SecretAccessKey },
  } = createAccessKeyResponse;

  let s3Client = new S3Client({
    credentials: {
      accessKeyId: AccessKeyId,
      secretAccessKey: SecretAccessKey,
    },
  });

  // Retry the list buckets operation until it succeeds. InvalidAccessKeyId is
  // thrown while the user and access keys are still stabilizing.
  await retry({ intervalInMs: 1000, maxRetries: 300 }, async () => {
    try {
      return await listBuckets(s3Client);
    } catch (err) {
      if (err instanceof Error && err.name === "InvalidAccessKeyId") {
        throw err;
      }
    }
  });

  // Retry the create role operation until it succeeds. A MalformedPolicyDocument error
  // is thrown while the user and access keys are still stabilizing.
  const { Role } = await retry(
    {
      intervalInMs: 2000,
      maxRetries: 60,
    },
    () =>
      iamClient.send(
        new CreateRoleCommand({
          AssumeRolePolicyDocument: JSON.stringify({
            Version: "2012-10-17",
            Statement: [
              {
                Effect: "Allow",
                Principal: {
                  // Allow the previously created user to assume this role.
                  AWS: User.Arn,
                },
                Action: "sts:AssumeRole",
              },
            ],
          }),
          RoleName: roleName,
        }),
      ),
  );

  if (!Role) {
    throw new Error("Role not created");
  }

  // Create a policy that allows the user to list S3 buckets.
  const { Policy: listBucketPolicy } = await iamClient.send(
    new CreatePolicyCommand({
      PolicyDocument: JSON.stringify({
        Version: "2012-10-17",
        Statement: [
          {
            Effect: "Allow",
            Action: ["s3:ListAllMyBuckets"],
            Resource: "*",
          },
        ],
      }),
      PolicyName: policyName,
    }),
  );

  if (!listBucketPolicy) {
    throw new Error("Policy not created");
  }

  // Attach the policy granting the 's3:ListAllMyBuckets' action to the role.
  await iamClient.send(
    new AttachRolePolicyCommand({
      PolicyArn: listBucketPolicy.Arn,
      RoleName: Role.RoleName,
    }),
  );

  // Assume the role.
  const stsClient = new STSClient({
    credentials: {
      accessKeyId: AccessKeyId,
      secretAccessKey: SecretAccessKey,
    },
  });

  // Retry the assume role operation until it succeeds.
  const { Credentials } = await retry(
    { intervalInMs: 2000, maxRetries: 60 },
    () =>
      stsClient.send(
        new AssumeRoleCommand({
          RoleArn: Role.Arn,
          RoleSessionName: `iamBasicScenarioSession-${Math.floor(
            Math.random() * 1000000,
          )}`,
          DurationSeconds: 900,
        }),
      ),
  );

  if (!Credentials?.AccessKeyId || !Credentials?.SecretAccessKey) {
    throw new Error("Credentials not created");
  }

  s3Client = new S3Client({
    credentials: {
      accessKeyId: Credentials.AccessKeyId,
      secretAccessKey: Credentials.SecretAccessKey,
      sessionToken: Credentials.SessionToken,
    },
  });

  // List the S3 buckets again.
  // Retry the list buckets operation until it succeeds. AccessDenied might
  // be thrown while the role policy is still stabilizing.
  await retry({ intervalInMs: 2000, maxRetries: 120 }, () =>
    listBuckets(s3Client),
  );

  // Clean up.
  await iamClient.send(
    new DetachRolePolicyCommand({
      PolicyArn: listBucketPolicy.Arn,
      RoleName: Role.RoleName,
    }),
  );

  await iamClient.send(
    new DeletePolicyCommand({
      PolicyArn: listBucketPolicy.Arn,
    }),
  );

  await iamClient.send(
    new DeleteRoleCommand({
      RoleName: Role.RoleName,
    }),
  );

  await iamClient.send(
    new DeleteAccessKeyCommand({
      UserName: userName,
      AccessKeyId,
    }),
  );

  await iamClient.send(
    new DeleteUserCommand({
      UserName: userName,
    }),
  );
};

/**
 *
 * @param {S3Client} s3Client
 */
const listBuckets = async (s3Client) => {
  const { Buckets } = await s3Client.send(new ListBucketsCommand({}));

  if (!Buckets) {
    throw new Error("Buckets not listed");
  }

  console.log(Buckets.map((bucket) => bucket.Name).join("\n"));
};
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk JavaScript *.
  + [AttachRolePolicy](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/AttachRolePolicyCommand)
  + [CreateAccessKey](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/CreateAccessKeyCommand)
  + [CreatePolicy](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/CreatePolicyCommand)
  + [CreateRole](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/CreateRoleCommand)
  + [CreateUser](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/CreateUserCommand)
  + [DeleteAccessKey](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/DeleteAccessKeyCommand)
  + [DeletePolicy](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/DeletePolicyCommand)
  + [DeleteRole](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/DeleteRoleCommand)
  + [DeleteUser](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/DeleteUserCommand)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/DeleteUserPolicyCommand)
  + [DetachRolePolicy](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/DetachRolePolicyCommand)
  + [PutUserPolicy](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/iam/command/PutUserPolicyCommand)

------
#### [ Kotlin ]

**SDK untuk Kotlin**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/iam#code-examples). 
Buat fungsi yang membungkus tindakan pengguna IAM.  

```
suspend fun main(args: Array<String>) {
    val usage = """
    Usage:
        <username> <policyName> <roleName> <roleSessionName> <fileLocation> <bucketName> 

    Where:
        username - The name of the IAM user to create. 
        policyName - The name of the policy to create. 
        roleName - The name of the role to create. 
        roleSessionName - The name of the session required for the assumeRole operation. 
        fileLocation - The file location to the JSON required to create the role (see Readme). 
        bucketName - The name of the Amazon S3 bucket from which objects are read. 
    """

    if (args.size != 6) {
        println(usage)
        exitProcess(1)
    }

    val userName = args[0]
    val policyName = args[1]
    val roleName = args[2]
    val roleSessionName = args[3]
    val fileLocation = args[4]
    val bucketName = args[5]

    createUser(userName)
    println("$userName was successfully created.")

    val polArn = createPolicy(policyName)
    println("The policy $polArn was successfully created.")

    val roleArn = createRole(roleName, fileLocation)
    println("$roleArn was successfully created.")
    attachRolePolicy(roleName, polArn)

    println("*** Wait for 1 MIN so the resource is available.")
    delay(60000)
    assumeGivenRole(roleArn, roleSessionName, bucketName)

    println("*** Getting ready to delete the AWS resources.")
    deleteRole(roleName, polArn)
    deleteUser(userName)
    println("This IAM Scenario has successfully completed.")
}

suspend fun createUser(usernameVal: String?): String? {
    val request =
        CreateUserRequest {
            userName = usernameVal
        }

    IamClient { region = "AWS_GLOBAL" }.use { iamClient ->
        val response = iamClient.createUser(request)
        return response.user?.userName
    }
}

suspend fun createPolicy(policyNameVal: String?): String {
    val policyDocumentValue = """
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:*"
                ],
                "Resource": "*"
            }
        ]
    }
    """.trimIndent()

    val request =
        CreatePolicyRequest {
            policyName = policyNameVal
            policyDocument = policyDocumentValue
        }

    IamClient.fromEnvironment { region = "AWS_GLOBAL" }.use { iamClient ->
        val response = iamClient.createPolicy(request)
        return response.policy?.arn.toString()
    }
}

suspend fun createRole(
    rolenameVal: String?,
    fileLocation: String?,
): String? {
    val jsonObject = fileLocation?.let { readJsonSimpleDemo(it) } as JSONObject

    val request =
        CreateRoleRequest {
            roleName = rolenameVal
            assumeRolePolicyDocument = jsonObject.toJSONString()
            description = "Created using the AWS SDK for Kotlin"
        }

    IamClient { region = "AWS_GLOBAL" }.use { iamClient ->
        val response = iamClient.createRole(request)
        return response.role?.arn
    }
}

suspend fun attachRolePolicy(
    roleNameVal: String,
    policyArnVal: String,
) {
    val request =
        ListAttachedRolePoliciesRequest {
            roleName = roleNameVal
        }

    IamClient.fromEnvironment { region = "AWS_GLOBAL" }.use { iamClient ->
        val response = iamClient.listAttachedRolePolicies(request)
        val attachedPolicies = response.attachedPolicies

        // Ensure that the policy is not attached to this role.
        val checkStatus: Int
        if (attachedPolicies != null) {
            checkStatus = checkMyList(attachedPolicies, policyArnVal)
            if (checkStatus == -1) {
                return
            }
        }

        val policyRequest =
            AttachRolePolicyRequest {
                roleName = roleNameVal
                policyArn = policyArnVal
            }
        iamClient.attachRolePolicy(policyRequest)
        println("Successfully attached policy $policyArnVal to role $roleNameVal")
    }
}

fun checkMyList(
    attachedPolicies: List<AttachedPolicy>,
    policyArnVal: String,
): Int {
    for (policy in attachedPolicies) {
        val polArn = policy.policyArn.toString()

        if (polArn.compareTo(policyArnVal) == 0) {
            println("The policy is already attached to this role.")
            return -1
        }
    }
    return 0
}

suspend fun assumeGivenRole(
    roleArnVal: String?,
    roleSessionNameVal: String?,
    bucketName: String,
) {
    val stsClient = StsClient.fromEnvironment { region = "us-east-1" }
    val roleRequest =
        AssumeRoleRequest {
            roleArn = roleArnVal
            roleSessionName = roleSessionNameVal
        }

    val roleResponse = stsClient.assumeRole(roleRequest)
    val myCreds = roleResponse.credentials
    val key = myCreds?.accessKeyId
    val secKey = myCreds?.secretAccessKey
    val secToken = myCreds?.sessionToken

    val staticCredentials = StaticCredentialsProvider {
        accessKeyId = key
        secretAccessKey = secKey
        sessionToken = secToken
    }

    // List all objects in an Amazon S3 bucket using the temp creds.
    val s3 = S3Client.fromEnvironment {
        region = "us-east-1"
        credentialsProvider = staticCredentials
    }

    println("Created a S3Client using temp credentials.")
    println("Listing objects in $bucketName")

    val listObjects =
        ListObjectsRequest {
            bucket = bucketName
        }

    val response = s3.listObjects(listObjects)
    response.contents?.forEach { myObject ->
        println("The name of the key is ${myObject.key}")
        println("The owner is ${myObject.owner}")
    }
}

suspend fun deleteRole(
    roleNameVal: String,
    polArn: String,
) {
    val iam = IamClient.fromEnvironment { region = "AWS_GLOBAL" }

    // First the policy needs to be detached.
    val rolePolicyRequest =
        DetachRolePolicyRequest {
            policyArn = polArn
            roleName = roleNameVal
        }

    iam.detachRolePolicy(rolePolicyRequest)

    // Delete the policy.
    val request =
        DeletePolicyRequest {
            policyArn = polArn
        }

    iam.deletePolicy(request)
    println("*** Successfully deleted $polArn")

    // Delete the role.
    val roleRequest =
        DeleteRoleRequest {
            roleName = roleNameVal
        }

    iam.deleteRole(roleRequest)
    println("*** Successfully deleted $roleNameVal")
}

suspend fun deleteUser(userNameVal: String) {
    val iam = IamClient.fromEnvironment { region = "AWS_GLOBAL" }
    val request =
        DeleteUserRequest {
            userName = userNameVal
        }

    iam.deleteUser(request)
    println("*** Successfully deleted $userNameVal")
}

@Throws(java.lang.Exception::class)
fun readJsonSimpleDemo(filename: String): Any? {
    val reader = FileReader(filename)
    val jsonParser = JSONParser()
    return jsonParser.parse(reader)
}
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk Kotlin*.
  + [AttachRolePolicy](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [CreateAccessKey](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [CreatePolicy](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [CreateRole](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [CreateUser](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [DeleteAccessKey](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [DeletePolicy](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [DeleteRole](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [DeleteUser](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [DeleteUserPolicy](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [DetachRolePolicy](https://sdk.amazonaws.com/kotlin/api/latest/index.html)
  + [PutUserPolicy](https://sdk.amazonaws.com/kotlin/api/latest/index.html)

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkap dan pelajari cara menyiapkan dan menjalankan di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/iam#code-examples). 

```
namespace Iam\Basics;

require 'vendor/autoload.php';

use Aws\Credentials\Credentials;
use Aws\S3\Exception\S3Exception;
use Aws\S3\S3Client;
use Aws\Sts\StsClient;
use Iam\IAMService;

echo("\n");
echo("--------------------------------------\n");
print("Welcome to the IAM getting started demo using PHP!\n");
echo("--------------------------------------\n");

$uuid = uniqid();
$service = new IAMService();

$user = $service->createUser("iam_demo_user_$uuid");
echo "Created user with the arn: {$user['Arn']}\n";

$key = $service->createAccessKey($user['UserName']);
$assumeRolePolicyDocument = "{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Principal\": {\"AWS\": \"{$user['Arn']}\"},
                    \"Action\": \"sts:AssumeRole\"
                }]
            }";
$assumeRoleRole = $service->createRole("iam_demo_role_$uuid", $assumeRolePolicyDocument);
echo "Created role: {$assumeRoleRole['RoleName']}\n";

$listAllBucketsPolicyDocument = "{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Action\": \"s3:ListAllMyBuckets\",
                    \"Resource\": \"arn:aws:s3:::*\"}]
}";
$listAllBucketsPolicy = $service->createPolicy("iam_demo_policy_$uuid", $listAllBucketsPolicyDocument);
echo "Created policy: {$listAllBucketsPolicy['PolicyName']}\n";

$service->attachRolePolicy($assumeRoleRole['RoleName'], $listAllBucketsPolicy['Arn']);

$inlinePolicyDocument = "{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Action\": \"sts:AssumeRole\",
                    \"Resource\": \"{$assumeRoleRole['Arn']}\"}]
}";
$inlinePolicy = $service->createUserPolicy("iam_demo_inline_policy_$uuid", $inlinePolicyDocument, $user['UserName']);
//First, fail to list the buckets with the user
$credentials = new Credentials($key['AccessKeyId'], $key['SecretAccessKey']);
$s3Client = new S3Client(['region' => 'us-west-2', 'version' => 'latest', 'credentials' => $credentials]);
try {
    $s3Client->listBuckets([
    ]);
    echo "this should not run";
} catch (S3Exception $exception) {
    echo "successfully failed!\n";
}

$stsClient = new StsClient(['region' => 'us-west-2', 'version' => 'latest', 'credentials' => $credentials]);
sleep(10);
$assumedRole = $stsClient->assumeRole([
    'RoleArn' => $assumeRoleRole['Arn'],
    'RoleSessionName' => "DemoAssumeRoleSession_$uuid",
]);
$assumedCredentials = [
    'key' => $assumedRole['Credentials']['AccessKeyId'],
    'secret' => $assumedRole['Credentials']['SecretAccessKey'],
    'token' => $assumedRole['Credentials']['SessionToken'],
];
$s3Client = new S3Client(['region' => 'us-west-2', 'version' => 'latest', 'credentials' => $assumedCredentials]);
try {
    $s3Client->listBuckets([]);
    echo "this should now run!\n";
} catch (S3Exception $exception) {
    echo "this should now not fail\n";
}

$service->detachRolePolicy($assumeRoleRole['RoleName'], $listAllBucketsPolicy['Arn']);
$deletePolicy = $service->deletePolicy($listAllBucketsPolicy['Arn']);
echo "Delete policy: {$listAllBucketsPolicy['PolicyName']}\n";
$deletedRole = $service->deleteRole($assumeRoleRole['Arn']);
echo "Deleted role: {$assumeRoleRole['RoleName']}\n";
$deletedKey = $service->deleteAccessKey($key['AccessKeyId'], $user['UserName']);
$deletedUser = $service->deleteUser($user['UserName']);
echo "Delete user: {$user['UserName']}\n";
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk PHP *.
  + [AttachRolePolicy](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/AttachRolePolicy)
  + [CreateAccessKey](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/CreateAccessKey)
  + [CreatePolicy](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/CreatePolicy)
  + [CreateRole](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/CreateRole)
  + [CreateUser](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/CreateUser)
  + [DeleteAccessKey](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/DeleteAccessKey)
  + [DeletePolicy](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/DeletePolicy)
  + [DeleteRole](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/DeleteRole)
  + [DeleteUser](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/DeleteUser)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/DeleteUserPolicy)
  + [DetachRolePolicy](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/DetachRolePolicy)
  + [PutUserPolicy](https://docs.aws.amazon.com/goto/SdkForPHPV3/iam-2010-05-08/PutUserPolicy)

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/iam#code-examples). 
Buat pengguna IAM dan peran yang memberikan izin untuk mencantumkan bucket Amazon S3. Pengguna hanya memiliki hak untuk mengambil peran. Setelah mengambil peran, gunakan kredensyal sementara untuk membuat daftar bucket untuk akun.  

```
import json
import sys
import time
from uuid import uuid4

import boto3
from botocore.exceptions import ClientError


def progress_bar(seconds):
    """Shows a simple progress bar in the command window."""
    for _ in range(seconds):
        time.sleep(1)
        print(".", end="")
        sys.stdout.flush()
    print()


def setup(iam_resource):
    """
    Creates a new user with no permissions.
    Creates an access key pair for the user.
    Creates a role with a policy that lets the user assume the role.
    Creates a policy that allows listing Amazon S3 buckets.
    Attaches the policy to the role.
    Creates an inline policy for the user that lets the user assume the role.

    :param iam_resource: A Boto3 AWS Identity and Access Management (IAM) resource
                         that has permissions to create users, roles, and policies
                         in the account.
    :return: The newly created user, user key, and role.
    """
    try:
        user = iam_resource.create_user(UserName=f"demo-user-{uuid4()}")
        print(f"Created user {user.name}.")
    except ClientError as error:
        print(
            f"Couldn't create a user for the demo. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise

    try:
        user_key = user.create_access_key_pair()
        print(f"Created access key pair for user.")
    except ClientError as error:
        print(
            f"Couldn't create access keys for user {user.name}. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise

    print(f"Wait for user to be ready.", end="")
    progress_bar(10)

    try:
        role = iam_resource.create_role(
            RoleName=f"demo-role-{uuid4()}",
            AssumeRolePolicyDocument=json.dumps(
                {
                    "Version":"2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Principal": {"AWS": user.arn},
                            "Action": "sts:AssumeRole",
                        }
                    ],
                }
            ),
        )
        print(f"Created role {role.name}.")
    except ClientError as error:
        print(
            f"Couldn't create a role for the demo. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise

    try:
        policy = iam_resource.create_policy(
            PolicyName=f"demo-policy-{uuid4()}",
            PolicyDocument=json.dumps(
                {
                    "Version":"2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Action": "s3:ListAllMyBuckets",
                            "Resource": "arn:aws:s3:::*",
                        }
                    ],
                }
            ),
        )
        role.attach_policy(PolicyArn=policy.arn)
        print(f"Created policy {policy.policy_name} and attached it to the role.")
    except ClientError as error:
        print(
            f"Couldn't create a policy and attach it to role {role.name}. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise

    try:
        user.create_policy(
            PolicyName=f"demo-user-policy-{uuid4()}",
            PolicyDocument=json.dumps(
                {
                    "Version":"2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Action": "sts:AssumeRole",
                            "Resource": role.arn,
                        }
                    ],
                }
            ),
        )
        print(
            f"Created an inline policy for {user.name} that lets the user assume "
            f"the role."
        )
    except ClientError as error:
        print(
            f"Couldn't create an inline policy for user {user.name}. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise

    print("Give AWS time to propagate these new resources and connections.", end="")
    progress_bar(10)

    return user, user_key, role


def show_access_denied_without_role(user_key):
    """
    Shows that listing buckets without first assuming the role is not allowed.

    :param user_key: The key of the user created during setup. This user does not
                     have permission to list buckets in the account.
    """
    print(f"Try to list buckets without first assuming the role.")
    s3_denied_resource = boto3.resource(
        "s3", aws_access_key_id=user_key.id, aws_secret_access_key=user_key.secret
    )
    try:
        for bucket in s3_denied_resource.buckets.all():
            print(bucket.name)
        raise RuntimeError("Expected to get AccessDenied error when listing buckets!")
    except ClientError as error:
        if error.response["Error"]["Code"] == "AccessDenied":
            print("Attempt to list buckets with no permissions: AccessDenied.")
        else:
            raise


def list_buckets_from_assumed_role(user_key, assume_role_arn, session_name):
    """
    Assumes a role that grants permission to list the Amazon S3 buckets in the account.
    Uses the temporary credentials from the role to list the buckets that are owned
    by the assumed role's account.

    :param user_key: The access key of a user that has permission to assume the role.
    :param assume_role_arn: The Amazon Resource Name (ARN) of the role that
                            grants access to list the other account's buckets.
    :param session_name: The name of the STS session.
    """
    sts_client = boto3.client(
        "sts", aws_access_key_id=user_key.id, aws_secret_access_key=user_key.secret
    )
    try:
        response = sts_client.assume_role(
            RoleArn=assume_role_arn, RoleSessionName=session_name
        )
        temp_credentials = response["Credentials"]
        print(f"Assumed role {assume_role_arn} and got temporary credentials.")
    except ClientError as error:
        print(
            f"Couldn't assume role {assume_role_arn}. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise

    # Create an S3 resource that can access the account with the temporary credentials.
    s3_resource = boto3.resource(
        "s3",
        aws_access_key_id=temp_credentials["AccessKeyId"],
        aws_secret_access_key=temp_credentials["SecretAccessKey"],
        aws_session_token=temp_credentials["SessionToken"],
    )
    print(f"Listing buckets for the assumed role's account:")
    try:
        for bucket in s3_resource.buckets.all():
            print(bucket.name)
    except ClientError as error:
        print(
            f"Couldn't list buckets for the account. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise




def teardown(user, role):
    """
    Removes all resources created during setup.

    :param user: The demo user.
    :param role: The demo role.
    """
    try:
        for attached in role.attached_policies.all():
            policy_name = attached.policy_name
            role.detach_policy(PolicyArn=attached.arn)
            attached.delete()
            print(f"Detached and deleted {policy_name}.")
        role.delete()
        print(f"Deleted {role.name}.")
    except ClientError as error:
        print(
            "Couldn't detach policy, delete policy, or delete role. Here's why: "
            f"{error.response['Error']['Message']}"
        )
        raise

    try:
        for user_pol in user.policies.all():
            user_pol.delete()
            print("Deleted inline user policy.")
        for key in user.access_keys.all():
            key.delete()
            print("Deleted user's access key.")
        user.delete()
        print(f"Deleted {user.name}.")
    except ClientError as error:
        print(
            "Couldn't delete user policy or delete user. Here's why: "
            f"{error.response['Error']['Message']}"
        )


def usage_demo():
    """Drives the demonstration."""
    print("-" * 88)
    print(f"Welcome to the IAM create user and assume role demo.")
    print("-" * 88)
    iam_resource = boto3.resource("iam")
    user = None
    role = None
    try:
        user, user_key, role = setup(iam_resource)
        print(f"Created {user.name} and {role.name}.")
        show_access_denied_without_role(user_key)
        list_buckets_from_assumed_role(user_key, role.arn, "AssumeRoleDemoSession")
    except Exception:
        print("Something went wrong!")
    finally:
        if user is not None and role is not None:
            teardown(user, role)
        print("Thanks for watching!")


if __name__ == "__main__":
    usage_demo()
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk Python (Boto3)*.
  + [AttachRolePolicy](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/AttachRolePolicy)
  + [CreateAccessKey](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/CreateAccessKey)
  + [CreatePolicy](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/CreatePolicy)
  + [CreateRole](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/CreateRole)
  + [CreateUser](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/CreateUser)
  + [DeleteAccessKey](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/DeleteAccessKey)
  + [DeletePolicy](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/DeletePolicy)
  + [DeleteRole](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/DeleteRole)
  + [DeleteUser](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/DeleteUser)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/DeleteUserPolicy)
  + [DetachRolePolicy](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/DetachRolePolicy)
  + [PutUserPolicy](https://docs.aws.amazon.com/goto/boto3/iam-2010-05-08/PutUserPolicy)

------
#### [ Ruby ]

**SDK untuk Ruby**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby/example_code/iam#code-examples). 
Buat pengguna IAM dan peran yang memberikan izin untuk mencantumkan bucket Amazon S3. Pengguna hanya memiliki hak untuk mengambil peran. Setelah mengambil peran, gunakan kredensyal sementara untuk membuat daftar bucket untuk akun.  

```
# Wraps the scenario actions.
class ScenarioCreateUserAssumeRole
  attr_reader :iam_client

  # @param [Aws::IAM::Client] iam_client: The AWS IAM client.
  def initialize(iam_client, logger: Logger.new($stdout))
    @iam_client = iam_client
    @logger = logger
  end

  # Waits for the specified number of seconds.
  #
  # @param duration [Integer] The number of seconds to wait.
  def wait(duration)
    puts('Give AWS time to propagate resources...')
    sleep(duration)
  end

  # Creates a user.
  #
  # @param user_name [String] The name to give the user.
  # @return [Aws::IAM::User] The newly created user.
  def create_user(user_name)
    user = @iam_client.create_user(user_name: user_name).user
    @logger.info("Created demo user named #{user.user_name}.")
  rescue Aws::Errors::ServiceError => e
    @logger.info('Tried and failed to create demo user.')
    @logger.info("\t#{e.code}: #{e.message}")
    @logger.info("\nCan't continue the demo without a user!")
    raise
  else
    user
  end

  # Creates an access key for a user.
  #
  # @param user [Aws::IAM::User] The user that owns the key.
  # @return [Aws::IAM::AccessKeyPair] The newly created access key.
  def create_access_key_pair(user)
    user_key = @iam_client.create_access_key(user_name: user.user_name).access_key
    @logger.info("Created accesskey pair for user #{user.user_name}.")
  rescue Aws::Errors::ServiceError => e
    @logger.info("Couldn't create access keys for user #{user.user_name}.")
    @logger.info("\t#{e.code}: #{e.message}")
    raise
  else
    user_key
  end

  # Creates a role that can be assumed by a user.
  #
  # @param role_name [String] The name to give the role.
  # @param user [Aws::IAM::User] The user who is granted permission to assume the role.
  # @return [Aws::IAM::Role] The newly created role.
  def create_role(role_name, user)
    trust_policy = {
      Version: '2012-10-17',
      Statement: [{
        Effect: 'Allow',
        Principal: { 'AWS': user.arn },
        Action: 'sts:AssumeRole'
      }]
    }.to_json
    role = @iam_client.create_role(
      role_name: role_name,
      assume_role_policy_document: trust_policy
    ).role
    @logger.info("Created role #{role.role_name}.")
  rescue Aws::Errors::ServiceError => e
    @logger.info("Couldn't create a role for the demo. Here's why: ")
    @logger.info("\t#{e.code}: #{e.message}")
    raise
  else
    role
  end

  # Creates a policy that grants permission to list S3 buckets in the account, and
  # then attaches the policy to a role.
  #
  # @param policy_name [String] The name to give the policy.
  # @param role [Aws::IAM::Role] The role that the policy is attached to.
  # @return [Aws::IAM::Policy] The newly created policy.
  def create_and_attach_role_policy(policy_name, role)
    policy_document = {
      Version: '2012-10-17',
      Statement: [{
        Effect: 'Allow',
        Action: 's3:ListAllMyBuckets',
        Resource: 'arn:aws:s3:::*'
      }]
    }.to_json
    policy = @iam_client.create_policy(
      policy_name: policy_name,
      policy_document: policy_document
    ).policy
    @iam_client.attach_role_policy(
      role_name: role.role_name,
      policy_arn: policy.arn
    )
    @logger.info("Created policy #{policy.policy_name} and attached it to role #{role.role_name}.")
  rescue Aws::Errors::ServiceError => e
    @logger.info("Couldn't create a policy and attach it to role #{role.role_name}. Here's why: ")
    @logger.info("\t#{e.code}: #{e.message}")
    raise
  end

  # Creates an inline policy for a user that lets the user assume a role.
  #
  # @param policy_name [String] The name to give the policy.
  # @param user [Aws::IAM::User] The user that owns the policy.
  # @param role [Aws::IAM::Role] The role that can be assumed.
  # @return [Aws::IAM::UserPolicy] The newly created policy.
  def create_user_policy(policy_name, user, role)
    policy_document = {
      Version: '2012-10-17',
      Statement: [{
        Effect: 'Allow',
        Action: 'sts:AssumeRole',
        Resource: role.arn
      }]
    }.to_json
    @iam_client.put_user_policy(
      user_name: user.user_name,
      policy_name: policy_name,
      policy_document: policy_document
    )
    puts("Created an inline policy for #{user.user_name} that lets the user assume role #{role.role_name}.")
  rescue Aws::Errors::ServiceError => e
    @logger.info("Couldn't create an inline policy for user #{user.user_name}. Here's why: ")
    @logger.info("\t#{e.code}: #{e.message}")
    raise
  end

  # Creates an Amazon S3 resource with specified credentials. This is separated into a
  # factory function so that it can be mocked for unit testing.
  #
  # @param credentials [Aws::Credentials] The credentials used by the Amazon S3 resource.
  def create_s3_resource(credentials)
    Aws::S3::Resource.new(client: Aws::S3::Client.new(credentials: credentials))
  end

  # Lists the S3 buckets for the account, using the specified Amazon S3 resource.
  # Because the resource uses credentials with limited access, it may not be able to
  # list the S3 buckets.
  #
  # @param s3_resource [Aws::S3::Resource] An Amazon S3 resource.
  def list_buckets(s3_resource)
    count = 10
    s3_resource.buckets.each do |bucket|
      @logger.info "\t#{bucket.name}"
      count -= 1
      break if count.zero?
    end
  rescue Aws::Errors::ServiceError => e
    if e.code == 'AccessDenied'
      puts('Attempt to list buckets with no permissions: AccessDenied.')
    else
      @logger.info("Couldn't list buckets for the account. Here's why: ")
      @logger.info("\t#{e.code}: #{e.message}")
      raise
    end
  end

  # Creates an AWS Security Token Service (AWS STS) client with specified credentials.
  # This is separated into a factory function so that it can be mocked for unit testing.
  #
  # @param key_id [String] The ID of the access key used by the STS client.
  # @param key_secret [String] The secret part of the access key used by the STS client.
  def create_sts_client(key_id, key_secret)
    Aws::STS::Client.new(access_key_id: key_id, secret_access_key: key_secret)
  end

  # Gets temporary credentials that can be used to assume a role.
  #
  # @param role_arn [String] The ARN of the role that is assumed when these credentials
  #                          are used.
  # @param sts_client [AWS::STS::Client] An AWS STS client.
  # @return [Aws::AssumeRoleCredentials] The credentials that can be used to assume the role.
  def assume_role(role_arn, sts_client)
    credentials = Aws::AssumeRoleCredentials.new(
      client: sts_client,
      role_arn: role_arn,
      role_session_name: 'create-use-assume-role-scenario'
    )
    @logger.info("Assumed role '#{role_arn}', got temporary credentials.")
    credentials
  end

  # Deletes a role. If the role has policies attached, they are detached and
  # deleted before the role is deleted.
  #
  # @param role_name [String] The name of the role to delete.
  def delete_role(role_name)
    @iam_client.list_attached_role_policies(role_name: role_name).attached_policies.each do |policy|
      @iam_client.detach_role_policy(role_name: role_name, policy_arn: policy.policy_arn)
      @iam_client.delete_policy(policy_arn: policy.policy_arn)
      @logger.info("Detached and deleted policy #{policy.policy_name}.")
    end
    @iam_client.delete_role({ role_name: role_name })
    @logger.info("Role deleted: #{role_name}.")
  rescue Aws::Errors::ServiceError => e
    @logger.info("Couldn't detach policies and delete role #{role.name}. Here's why:")
    @logger.info("\t#{e.code}: #{e.message}")
    raise
  end

  # Deletes a user. If the user has inline policies or access keys, they are deleted
  # before the user is deleted.
  #
  # @param user [Aws::IAM::User] The user to delete.
  def delete_user(user_name)
    user = @iam_client.list_access_keys(user_name: user_name).access_key_metadata
    user.each do |key|
      @iam_client.delete_access_key({ access_key_id: key.access_key_id, user_name: user_name })
      @logger.info("Deleted access key #{key.access_key_id} for user '#{user_name}'.")
    end

    @iam_client.delete_user(user_name: user_name)
    @logger.info("Deleted user '#{user_name}'.")
  rescue Aws::IAM::Errors::ServiceError => e
    @logger.error("Error deleting user '#{user_name}': #{e.message}")
  end
end

# Runs the IAM create a user and assume a role scenario.
def run_scenario(scenario)
  puts('-' * 88)
  puts('Welcome to the IAM create a user and assume a role demo!')
  puts('-' * 88)
  user = scenario.create_user("doc-example-user-#{Random.uuid}")
  user_key = scenario.create_access_key_pair(user)
  scenario.wait(10)
  role = scenario.create_role("doc-example-role-#{Random.uuid}", user)
  scenario.create_and_attach_role_policy("doc-example-role-policy-#{Random.uuid}", role)
  scenario.create_user_policy("doc-example-user-policy-#{Random.uuid}", user, role)
  scenario.wait(10)
  puts('Try to list buckets with credentials for a user who has no permissions.')
  puts('Expect AccessDenied from this call.')
  scenario.list_buckets(
    scenario.create_s3_resource(Aws::Credentials.new(user_key.access_key_id, user_key.secret_access_key))
  )
  puts('Now, assume the role that grants permission.')
  temp_credentials = scenario.assume_role(
    role.arn, scenario.create_sts_client(user_key.access_key_id, user_key.secret_access_key)
  )
  puts('Here are your buckets:')
  scenario.list_buckets(scenario.create_s3_resource(temp_credentials))
  puts("Deleting role '#{role.role_name}' and attached policies.")
  scenario.delete_role(role.role_name)
  puts("Deleting user '#{user.user_name}', policies, and keys.")
  scenario.delete_user(user.user_name)
  puts('Thanks for watching!')
  puts('-' * 88)
rescue Aws::Errors::ServiceError => e
  puts('Something went wrong with the demo.')
  puts("\t#{e.code}: #{e.message}")
end

run_scenario(ScenarioCreateUserAssumeRole.new(Aws::IAM::Client.new)) if $PROGRAM_NAME == __FILE__
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK untuk Ruby *.
  + [AttachRolePolicy](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/AttachRolePolicy)
  + [CreateAccessKey](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/CreateAccessKey)
  + [CreatePolicy](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/CreatePolicy)
  + [CreateRole](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/CreateRole)
  + [CreateUser](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/CreateUser)
  + [DeleteAccessKey](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/DeleteAccessKey)
  + [DeletePolicy](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/DeletePolicy)
  + [DeleteRole](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/DeleteRole)
  + [DeleteUser](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/DeleteUser)
  + [DeleteUserPolicy](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/DeleteUserPolicy)
  + [DetachRolePolicy](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/DetachRolePolicy)
  + [PutUserPolicy](https://docs.aws.amazon.com/goto/SdkForRubyV3/iam-2010-05-08/PutUserPolicy)

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/iam#code-examples). 

```
use aws_config::meta::region::RegionProviderChain;
use aws_sdk_iam::Error as iamError;
use aws_sdk_iam::{config::Credentials as iamCredentials, config::Region, Client as iamClient};
use aws_sdk_s3::Client as s3Client;
use aws_sdk_sts::Client as stsClient;
use tokio::time::{sleep, Duration};
use uuid::Uuid;

#[tokio::main]
async fn main() -> Result<(), iamError> {
    let (client, uuid, list_all_buckets_policy_document, inline_policy_document) =
        initialize_variables().await;

    if let Err(e) = run_iam_operations(
        client,
        uuid,
        list_all_buckets_policy_document,
        inline_policy_document,
    )
    .await
    {
        println!("{:?}", e);
    };

    Ok(())
}

async fn initialize_variables() -> (iamClient, String, String, String) {
    let region_provider = RegionProviderChain::first_try(Region::new("us-west-2"));

    let shared_config = aws_config::from_env().region(region_provider).load().await;
    let client = iamClient::new(&shared_config);
    let uuid = Uuid::new_v4().to_string();

    let list_all_buckets_policy_document = "{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Action\": \"s3:ListAllMyBuckets\",
                    \"Resource\": \"arn:aws:s3:::*\"}]
    }"
    .to_string();
    let inline_policy_document = "{
                \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Action\": \"sts:AssumeRole\",
                    \"Resource\": \"{}\"}]
    }"
    .to_string();

    (
        client,
        uuid,
        list_all_buckets_policy_document,
        inline_policy_document,
    )
}

async fn run_iam_operations(
    client: iamClient,
    uuid: String,
    list_all_buckets_policy_document: String,
    inline_policy_document: String,
) -> Result<(), iamError> {
    let user = iam_service::create_user(&client, &format!("{}{}", "iam_demo_user_", uuid)).await?;
    println!("Created the user with the name: {}", user.user_name());
    let key = iam_service::create_access_key(&client, user.user_name()).await?;

    let assume_role_policy_document = "{
        \"Version\": \"2012-10-17\",
                \"Statement\": [{
                    \"Effect\": \"Allow\",
                    \"Principal\": {\"AWS\": \"{}\"},
                    \"Action\": \"sts:AssumeRole\"
                }]
            }"
    .to_string()
    .replace("{}", user.arn());

    let assume_role_role = iam_service::create_role(
        &client,
        &format!("{}{}", "iam_demo_role_", uuid),
        &assume_role_policy_document,
    )
    .await?;
    println!("Created the role with the ARN: {}", assume_role_role.arn());

    let list_all_buckets_policy = iam_service::create_policy(
        &client,
        &format!("{}{}", "iam_demo_policy_", uuid),
        &list_all_buckets_policy_document,
    )
    .await?;
    println!(
        "Created policy: {}",
        list_all_buckets_policy.policy_name.as_ref().unwrap()
    );

    let attach_role_policy_result =
        iam_service::attach_role_policy(&client, &assume_role_role, &list_all_buckets_policy)
            .await?;
    println!(
        "Attached the policy to the role: {:?}",
        attach_role_policy_result
    );

    let inline_policy_name = format!("{}{}", "iam_demo_inline_policy_", uuid);
    let inline_policy_document = inline_policy_document.replace("{}", assume_role_role.arn());
    iam_service::create_user_policy(&client, &user, &inline_policy_name, &inline_policy_document)
        .await?;
    println!("Created inline policy.");

    //First, fail to list the buckets with the user.
    let creds = iamCredentials::from_keys(key.access_key_id(), key.secret_access_key(), None);
    let fail_config = aws_config::from_env()
        .credentials_provider(creds.clone())
        .load()
        .await;
    println!("Fail config: {:?}", fail_config);
    let fail_client: s3Client = s3Client::new(&fail_config);
    match fail_client.list_buckets().send().await {
        Ok(e) => {
            println!("This should not run. {:?}", e);
        }
        Err(e) => {
            println!("Successfully failed with error: {:?}", e)
        }
    }

    let sts_config = aws_config::from_env()
        .credentials_provider(creds.clone())
        .load()
        .await;
    let sts_client: stsClient = stsClient::new(&sts_config);
    sleep(Duration::from_secs(10)).await;
    let assumed_role = sts_client
        .assume_role()
        .role_arn(assume_role_role.arn())
        .role_session_name(format!("iam_demo_assumerole_session_{uuid}"))
        .send()
        .await;
    println!("Assumed role: {:?}", assumed_role);
    sleep(Duration::from_secs(10)).await;

    let assumed_credentials = iamCredentials::from_keys(
        assumed_role
            .as_ref()
            .unwrap()
            .credentials
            .as_ref()
            .unwrap()
            .access_key_id(),
        assumed_role
            .as_ref()
            .unwrap()
            .credentials
            .as_ref()
            .unwrap()
            .secret_access_key(),
        Some(
            assumed_role
                .as_ref()
                .unwrap()
                .credentials
                .as_ref()
                .unwrap()
                .session_token
                .clone(),
        ),
    );

    let succeed_config = aws_config::from_env()
        .credentials_provider(assumed_credentials)
        .load()
        .await;
    println!("succeed config: {:?}", succeed_config);
    let succeed_client: s3Client = s3Client::new(&succeed_config);
    sleep(Duration::from_secs(10)).await;
    match succeed_client.list_buckets().send().await {
        Ok(_) => {
            println!("This should now run successfully.")
        }
        Err(e) => {
            println!("This should not run. {:?}", e);
            panic!()
        }
    }

    //Clean up.
    iam_service::detach_role_policy(
        &client,
        assume_role_role.role_name(),
        list_all_buckets_policy.arn().unwrap_or_default(),
    )
    .await?;
    iam_service::delete_policy(&client, list_all_buckets_policy).await?;
    iam_service::delete_role(&client, &assume_role_role).await?;
    println!("Deleted role {}", assume_role_role.role_name());
    iam_service::delete_access_key(&client, &user, &key).await?;
    println!("Deleted key for {}", key.user_name());
    iam_service::delete_user_policy(&client, &user, &inline_policy_name).await?;
    println!("Deleted inline user policy: {}", inline_policy_name);
    iam_service::delete_user(&client, &user).await?;
    println!("Deleted user {}", user.user_name());

    Ok(())
}
```
+ Untuk detail API, lihat topik berikut di *Referensi API AWS SDK for Rust*.
  + [AttachRolePolicy](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.attach_role_policy)
  + [CreateAccessKey](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.create_access_key)
  + [CreatePolicy](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.create_policy)
  + [CreateRole](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.create_role)
  + [CreateUser](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.create_user)
  + [DeleteAccessKey](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.delete_access_key)
  + [DeletePolicy](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.delete_policy)
  + [DeleteRole](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.delete_role)
  + [DeleteUser](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.delete_user)
  + [DeleteUserPolicy](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.delete_user_policy)
  + [DetachRolePolicy](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.detach_role_policy)
  + [PutUserPolicy](https://docs.rs/aws-sdk-iam/latest/aws_sdk_iam/client/struct.Client.html#method.put_user_policy)

------

# Menggunakan peran IAM untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2
<a name="id_roles_use_switch-role-ec2"></a>

Aplikasi yang berjalan pada instans Amazon EC2 harus menyertakan AWS kredensional dalam permintaan API. AWS Anda dapat meminta pengembang menyimpan AWS kredensitas langsung dalam instans Amazon EC2 dan mengizinkan aplikasi dalam hal itu untuk menggunakan kredenal tersebut. Tetapi pengembang kemudian harus mengelola kredensil dan memastikan bahwa mereka meneruskan kredensil dengan aman ke setiap instance dan memperbarui setiap instans Amazon EC2 ketika saatnya untuk memperbarui kredensialnya. Banyak pekerjaan tambahan.

Sebagai gantinya, Anda dapat dan harus menggunakan peran IAM untuk mengelola kredenal *sementara* untuk aplikasi yang berjalan pada instans Amazon EC2. Bila Anda menggunakan peran, Anda tidak perlu mendistribusikan kredenal jangka panjang (seperti kredenal masuk atau kunci akses) ke instans Amazon EC2. Sebagai gantinya, peran menyediakan izin sementara yang dapat digunakan aplikasi saat mereka melakukan panggilan ke AWS sumber daya lain. Saat meluncurkan instans Amazon EC2, Anda menentukan peran IAM untuk diasosiasikan dengan instans. Aplikasi yang berjalan pada instans kemudian dapat menggunakan kredensial sementara yang diberikan oleh peran untuk menandatangani permintaan API.

Menggunakan peran untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2 memerlukan sedikit konfigurasi tambahan. Aplikasi yang berjalan pada instans Amazon EC2 diabstraksikan AWS oleh sistem operasi tervirtualisasi. Karena pemisahan ekstra ini, Anda memerlukan langkah tambahan untuk menetapkan AWS peran dan izin terkait ke instans Amazon EC2 dan membuatnya tersedia untuk aplikasinya. Langkah ekstra ini adalah pembuatan *[profil instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)* yang dilampirkan ke instance. Profil instans berisi peran dan dapat memberikan kredensial sementara peran ke aplikasi yang berjalan pada instans. Kredensial sementara tersebut kemudian dapat digunakan dalam panggilan API aplikasi untuk mengakses sumber daya dan membatasi akses ke sumber daya yang ditentukan oleh peran tersebut saja.

**catatan**  
Hanya satu peran yang dapat ditetapkan ke instans Amazon EC2 sekaligus, dan semua aplikasi pada instans memiliki peran dan izin yang sama. Saat memanfaatkan Amazon ECS untuk mengelola instans Amazon EC2, Anda dapat menetapkan peran ke tugas Amazon ECS yang dapat dibedakan dari peran instans Amazon EC2 yang dijalankannya. Menetapkan setiap tugas peran selaras dengan prinsip akses yang paling tidak memiliki hak istimewa dan memungkinkan kontrol terperinci yang lebih besar atas tindakan dan sumber daya.  
Untuk informasi selengkapnya, lihat [Menggunakan peran IAM dengan tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/security-iam-roles.html) di Panduan *Praktik Terbaik Amazon Elastic Container Service*.

Penggunaan peran dengan cara ini memiliki beberapa keuntungan. Karena kredensi peran bersifat sementara dan diperbarui secara otomatis, Anda tidak perlu mengelola kredensi, dan Anda tidak perlu khawatir tentang risiko keamanan jangka panjang. Selain itu, jika Anda menggunakan satu peran untuk beberapa instance, Anda dapat membuat perubahan pada satu peran tersebut dan perubahan tersebut menyebar secara otomatis ke semua instance. 

**catatan**  
Meskipun peran biasanya ditetapkan ke instans Amazon EC2 saat Anda meluncurkannya, peran juga dapat dilampirkan ke instans Amazon EC2 yang sedang berjalan. Untuk mempelajar cara melampirkan peran pada instans yang sedang berjalan, lihat [Peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role).

**Topics**
+ [Bagaimana cara kerja peran untuk instans Amazon EC2?](#roles-usingrole-ec2instance-roles)
+ [Izin yang diperlukan untuk menggunakan peran dengan Amazon EC2](#roles-usingrole-ec2instance-permissions)
+ [Bagaimana saya memulainya?](#roles-usingrole-ec2instance-get-started)
+ [Informasi Terkait](#roles-usingrole-ec2instance-related-info)

## Bagaimana cara kerja peran untuk instans Amazon EC2?
<a name="roles-usingrole-ec2instance-roles"></a>

Pada gambar berikut, pengembang menjalankan aplikasi pada instans Amazon EC2 yang memerlukan akses ke bucket S3 bernama. `amzn-s3-demo-bucket-photos` Administrator membuat peran `Get-pics` layanan dan melampirkan peran tersebut ke instans Amazon EC2. Peran ini mencakup kebijakan izin yang memberikan akses hanya-baca ke bucket S3 tertentu. Ini juga mencakup kebijakan kepercayaan yang memungkinkan instans Amazon EC2 untuk mengambil peran dan mengambil kredensi sementara. Saat aplikasi berjalan pada instans, itu menggunakan kredensial sementara peran untuk mengakses bucket foto. Administrator tidak perlu memberikan izin kepada developer untuk mengakses bucket foto, dan developer tidak perlu membagikan atau mengelola kredensial.

![\[Aplikasi pada instans Amazon EC2 yang mengakses sumber daya AWS\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/roles-usingrole-ec2roleinstance.png)


1. Administrator menggunakan IAM untuk membuat peran **Get-pics**. Dalam kebijakan kepercayaan peran, administrator menetapkan bahwa hanya instans Amazon EC2 yang dapat mengambil peran tersebut. Dalam kebijakan izin peran, administrator menentukan izin hanya-baca untuk bucket `amzn-s3-demo-bucket-photos`.

1. Pengembang meluncurkan instans Amazon EC2 dan menetapkan peran `Get-pics` tersebut ke instance tersebut.
**catatan**  
Jika Anda menggunakan konsol IAM, profil instans dikelola untuk Anda dan sebagian besar transparan bagi Anda. Namun, jika Anda menggunakan API AWS CLI atau untuk membuat dan mengelola peran dan instans Amazon EC2, Anda harus membuat profil instans dan menetapkan peran tersebut sebagai langkah terpisah. Kemudian, saat Anda meluncurkan instans, Anda harus menentukan nama profil instans dan bukan nama peran.

1. Saat aplikasi berjalan, itu mendapatkan kredensial keamanan sementara dari [metadata instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) Amazon EC2, sebagaimana dijelaskan dalam [Mengambil Kredensial Keamanan dari Metadata Instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#instance-metadata-security-credentials). Ini adalah [kredensial keamanan sementara](id_credentials_temp.md) yang mewakili peran tersebut dan berlaku untuk periode waktu yang terbatas. 

   Dengan beberapa [AWS SDKs](https://aws.amazon.com/tools/), pengembang dapat menggunakan penyedia yang mengelola kredenal keamanan sementara secara transparan. (Dokumentasi untuk individu AWS SDKs menjelaskan fitur yang didukung oleh SDK tersebut untuk mengelola kredensional.)

   Atau, aplikasi bisa mendapatkan kredensi sementara langsung dari metadata instance instans Amazon EC2. Kredensial dan nilai terkait tersedia dari kategori `iam/security-credentials/role-name` (dalam hal ini, `iam/security-credentials/Get-pics`) metadata. Jika aplikasi mendapatkan kredensial dari metadata instans, itu dapat menyimpan kredensial tersebut.

1. Dengan menggunakan kredensial sementara yang diambil, aplikasi mengakses bucket foto. Karena kebijakan terlampir pada peran **Get-pics**, aplikasi memiliki izin hanya-baca. 

   Kredensi keamanan sementara yang tersedia pada instans secara otomatis diperbarui sebelum kedaluwarsa sehingga set yang valid selalu tersedia. Aplikasi hanya perlu memastikan bahwa itu mendapatkan serangkaian kredensial baru dari metadata instans sebelum metadata yang sedang digunakan kedaluwarsa. Dimungkinkan untuk menggunakan AWS SDK untuk mengelola kredensional sehingga aplikasi tidak perlu menyertakan logika tambahan untuk menyegarkan kredensialnya. Misalnya, membuat instan klien dengan Penyedia Kredensial Profil Instans. Namun, jika aplikasi mendapatkan kredensial keamanan sementara dari metadata instans dan sudah menyimpannya, itu akan mendapatkan rangkaian kredensial yang diperbarui setiap jam, atau setidaknya 15 menit sebelum rangkaian yang sedang digunakan kedaluwarsa. Waktu kedaluwarsa termasuk dalam informasi yang dikembalikan dalam kategori. `iam/security-credentials/role-name` 

## Izin yang diperlukan untuk menggunakan peran dengan Amazon EC2
<a name="roles-usingrole-ec2instance-permissions"></a>

Untuk meluncurkan instance dengan peran, pengembang harus memiliki izin untuk meluncurkan instans Amazon EC2 dan izin untuk meneruskan peran IAM.

Kebijakan contoh berikut memungkinkan pengguna untuk menggunakan Konsol Manajemen AWS untuk meluncurkan instance dengan peran. Kebijakan ini mencakup wildcard (`*`) untuk memungkinkan pengguna meneruskan peran apa pun dan melakukan tindakan Amazon EC2 yang terdaftar. `ListInstanceProfiles`Tindakan ini memungkinkan pengguna untuk melihat semua peran yang tersedia di Akun AWS.

**Example Contoh kebijakan yang memberikan izin kepada pengguna untuk menggunakan konsol Amazon EC2 untuk meluncurkan instans dengan peran.**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ec2.amazonaws.com"
                }
            }
        },
        {
            "Sid": "ListEc2AndListInstanceProfiles",
            "Effect": "Allow",
            "Action": [
                "iam:ListInstanceProfiles",
                "ec2:Describe*",
                "ec2:Search*",
                "ec2:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

### Membatasi peran mana yang dapat diteruskan ke instans Amazon EC2 (menggunakan) PassRole
<a name="roles-usingrole-ec2instance-passrole"></a>

Anda dapat menggunakan `PassRole` izin untuk membatasi peran mana yang dapat diteruskan pengguna ke instans Amazon EC2 saat pengguna meluncurkan instance. Ini membantu mencegah pengguna menjalankan aplikasi yang memiliki izin lebih dari yang diberikan kepada pengguna—yaitu, agar dapat memperoleh hak istimewa yang ditingkatkan. Misalnya, bayangkan pengguna Alice hanya memiliki izin untuk meluncurkan instans Amazon EC2 dan bekerja dengan bucket Amazon S3, tetapi peran yang diteruskannya ke instans Amazon EC2 memiliki izin untuk bekerja dengan IAM dan Amazon DynamoDB. Dalam hal ini, Alice mungkin dapat meluncurkan instance, masuk ke dalamnya, mendapatkan kredensi keamanan sementara, dan kemudian melakukan tindakan IAM atau DynamoDB yang tidak dia otorisasi.

Untuk membatasi peran mana yang dapat diteruskan pengguna ke instans Amazon EC2, Anda membuat kebijakan yang mengizinkan `PassRole` tindakan tersebut. Anda kemudian melampirkan kebijakan ke pengguna (atau ke grup IAM milik pengguna) yang akan meluncurkan instans Amazon EC2. Di `Resource` elemen kebijakan, Anda mencantumkan peran atau peran yang diizinkan diteruskan pengguna ke instans Amazon EC2. Saat pengguna meluncurkan suatu instans dan mengaitkan peran dengannya, Amazon EC2 akan memeriksa apakah pengguna diizinkan untuk meneruskan peran tersebut. Tentu saja, Anda juga harus memastikan bahwa peran yang dapat diteruskan oleh pengguna tidak mencakup lebih banyak izin dari yang seharusnya dimiliki oleh pengguna.

**catatan**  
`PassRole` bukan merupakan tindakan API dengan cara yang sama seperti `RunInstances` atau `ListInstanceProfiles`. Sebagai gantinya, ini adalah izin yang AWS memeriksa setiap kali peran ARN diteruskan sebagai parameter ke API (atau konsol melakukan ini atas nama pengguna). Itu membantu administrator untuk mengontrol peran mana yang dapat diteruskan oleh pengguna yang mana. Dalam kasus ini, itu memastikan bahwa pengguna diizinkan untuk melampirkan peran tertentu ke instans Amazon EC2.

**Example Contoh kebijakan yang memberikan izin kepada pengguna untuk meluncurkan instans Amazon EC2 dengan peran tertentu**  
Kebijakan sampel berikut memungkinkan pengguna untuk menggunakan Amazon EC2 API untuk meluncurkan instans dengan peran. Elemen `Resource` menentukan Amazon Resource Name (ARN) dari peran. Dengan menentukan ARN, kebijakan memberi izin kepada pengguna untuk hanya meneruskan peran `Get-pics`. Jika pengguna mencoba menentukan peran yang berbeda saat meluncurkan suatu instans, tindakan tersebut gagal. Pengguna memang memiliki izin untuk menjalankan setiap instans, terlepas dari apakah mereka meneruskan suatu peran.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/Get-pics"
        }
    ]
}
```

### Memungkinkan peran profil instans untuk beralih ke peran dalam akun lain
<a name="switch-role-ec2-another-account"></a>

Anda dapat mengizinkan aplikasi yang berjalan di instans Amazon EC2 untuk menjalankan perintah di akun lain. Untuk melakukan ini, Anda harus mengizinkan peran instans Amazon EC2 di akun pertama untuk beralih ke peran di akun kedua.

Bayangkan Anda menggunakan dua Akun AWS dan Anda ingin mengizinkan aplikasi yang berjalan pada instans Amazon EC2 untuk menjalankan [AWS CLI](https://aws.amazon.com/cli/)perintah di kedua akun. Asumsikan bahwa instans Amazon EC2 ada di akun. `111111111111` Instance tersebut menyertakan peran profil `abcd` instance yang memungkinkan aplikasi melakukan tugas Amazon S3 hanya-baca di bucket dalam akun `amzn-s3-demo-bucket1` yang sama. `111111111111` Namun demikian, aplikasi tersebut juga harus diizinkan untuk menjalankan `efgh` peran lintas akun untuk mengakses `amzn-s3-demo-bucket2` bucket Amazon S3 dalam akun `222222222222`.

![\[Diagram menunjukkan bagaimana pengembang meluncurkan instans Amazon EC2 dengan peran untuk mendapatkan akses ke foto di bucket Amazon S3.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/roles-instance-profile-cross-account.png)


Peran profil instans `abcd` Amazon EC2 harus memiliki kebijakan izin berikut untuk mengizinkan aplikasi mengakses bucket Amazon S3`amzn-s3-demo-bucket1`:

***Akun 111111111111 Kebijakan `abcd` Izin Peran***

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccountLevelS3Actions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowListAndReadS3ActionOnMyBucket",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                "arn:aws:s3:::amzn-s3-demo-bucket1"
            ]
        },
        {
            "Sid": "AllowIPToAssumeCrossAccountRole",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::222222222222:role/efgh"
        }
    ]
}
```

------

Peran `abcd` harus mempercayai layanan Amazon EC2 untuk menjalankan peran tersebut. Untuk melakukannya, peran `abcd` harus memiliki kebijakan kepercayaan berikut:

***Akun 111111111111 Kebijakan `abcd` Kepercayaan Peran***

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "abcdTrustPolicy",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"Service": "ec2.amazonaws.com"}
        }
    ]
}
```

------

Anggap bahwa peran lintas akun `efgh` memungkinkan tugas Amazon S3 hanya baca di bucket `amzn-s3-demo-bucket2` dalam akun `222222222222` yang sama. Untuk melakukannya, peran lintas akun `efgh` harus memiliki kebijakan izin berikut:

***Akun 222222222222 Kebijakan `efgh` Izin Peran***

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccountLevelS3Actions",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowListAndReadS3ActionOnMyBucket",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket2/*",
                "arn:aws:s3:::amzn-s3-demo-bucket2"
            ]
        }
    ]
}
```

------

Peran `efgh` harus mempercayai profil instans `abcd` untuk menjalankannya. Untuk melakukannya, peran `efgh` harus memiliki kebijakan kepercayaan berikut:

***Akun 222222222222 Kebijakan `efgh` Kepercayaan Peran***

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "efghTrustPolicy",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::111111111111:role/abcd"}
        }
    ]
}
```

------

## Bagaimana saya memulainya?
<a name="roles-usingrole-ec2instance-get-started"></a>

Untuk memahami cara kerja peran dengan instans Amazon EC2, Anda perlu menggunakan konsol IAM untuk membuat peran, meluncurkan instans Amazon EC2 yang menggunakan peran tersebut, lalu memeriksa instance yang sedang berjalan. Anda dapat menguji [metadata instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) untuk melihat bagaimana kredensial sementara peran tersedia untuk sebuah instans. Anda juga dapat melihat bagaimana aplikasi yang berjalan pada suatu instans dapat menggunakan peran tersebut. Gunakan sumber daya berikut ini untuk mempelajari lebih banyak. 
+ [Peran IAM di Tutorial Instans Amazon EC2](https://www.youtube.com/watch?v=TlCuOjviOhk). Video tertaut menunjukkan cara menggunakan peran IAM dengan instans Amazon EC2 untuk mengontrol apa yang dapat dilakukan aplikasi saat dijalankan pada instance. Video menunjukkan bagaimana aplikasi (ditulis dalam AWS SDK) bisa mendapatkan kredensi keamanan sementara melalui peran. 
+ Penelusuran SDK. Dokumentasi AWS SDK menyertakan penelusuran yang menunjukkan aplikasi yang berjalan pada instans Amazon EC2 yang menggunakan kredensi sementara untuk peran guna membaca bucket Amazon S3. Setiap penelusuran berikut menyajikan langkah serupa dengan bahasa pemrograman yang berbeda:
  + [Konfigurasikan Peran IAM untuk Amazon EC2 dengan SDK for Java di](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html) *Panduan Pengembang AWS SDK untuk Java * 
  + [Luncurkan Instans Amazon EC2 menggunakan SDK for .NET di](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/run-instance.html) *Panduan Pengembang AWS SDK untuk .NET *
  + [Membuat Instans Amazon EC2 dengan SDK for Ruby di](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/ec2-example-create-instance.html) *Panduan Pengembang AWS SDK untuk Ruby *

## Informasi Terkait
<a name="roles-usingrole-ec2instance-related-info"></a>

Untuk informasi selengkapnya tentang membuat peran atau peran untuk instans Amazon EC2, lihat informasi berikut:
+ Untuk informasi selengkapnya tentang [penggunaan peran IAM dengan instans Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html), buka Panduan Pengguna Amazon *EC2*.
+ Untuk membuat peran, lihat [Pembuatan peran IAM](id_roles_create.md)
+ Untuk informasi lebih lanjut tentang membuat kredensial keamanan sementara, lihat [Kredensial keamanan sementara di IAM](id_credentials_temp.md).
+ Jika Anda bekerja dengan IAM API atau CLI, Anda harus membuat dan mengelola profil instans IAM. Untuk informasi selengkapnya tentang profil instans, lihat [Gunakan profil contoh](id_roles_use_switch-role-ec2_instance-profiles.md).
+ *Untuk informasi selengkapnya tentang kredensil keamanan sementara untuk peran dalam metadata instans, lihat [Mengambil Kredensil Keamanan dari Metadata Instans di Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#instance-metadata-security-credentials).*

# Gunakan profil contoh
<a name="id_roles_use_switch-role-ec2_instance-profiles"></a>

Gunakan profil instans untuk meneruskan peran IAM ke instans 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*.

## Mengelola profil instans (konsol)
<a name="instance-profiles-manage-console"></a>

Jika Anda menggunakan Konsol Manajemen AWS untuk membuat peran Amazon EC2, konsol akan secara otomatis membuat profil instans dan memberinya nama yang sama dengan peran tersebut. Ketika Anda kemudian menggunakan konsol Amazon EC2 untuk meluncurkan suatu instans dengan peran IAM, Anda dapat memilih peran untuk dikaitkan dengan isntans. Dalam konsol, daftar yang ditampilkan sebenarnya adalah daftar nama profil instance. Konsol tidak membuat profil instans untuk peran yang tidak terkait dengan Amazon EC2.

Anda dapat menggunakan Konsol Manajemen AWS untuk menghapus peran IAM dan profil instans untuk Amazon EC2 jika peran dan profil instans memiliki nama yang sama. Untuk mempelajari selengkapnya tentang menghapus profil instans, lihat [Hapus peran atau profil contoh](id_roles_manage_delete.md).

**catatan**  
Untuk memperbarui izin untuk sebuah instance, ganti profil instance-nya. Kami tidak menyarankan untuk menghapus peran dari profil instance, karena ada penundaan hingga satu jam sebelum perubahan ini berlaku.

## Mengelola profil instans (AWS CLI atau AWS API)
<a name="instance-profiles-manage-cli-api"></a>

Jika Anda mengelola peran Anda dari AWS CLI atau AWS API, Anda membuat peran dan profil instance sebagai tindakan terpisah. Karena peran dan profil instans dapat memiliki nama yang berbeda, Anda harus mengetahui nama profil instans Anda serta nama peran yang dimuat olehnya. Dengan begitu Anda dapat memilih profil instans yang benar saat Anda meluncurkan instans EC2. 

Anda dapat melampirkan tag ke sumber daya IAM Anda, termasuk profil instans, untuk mengidentifikasi, mengatur, dan mengontrol akses ke mereka. Anda dapat menandai profil instance hanya ketika Anda menggunakan AWS CLI atau AWS API. 

**catatan**  
Profil instans hanya dapat berisi satu peran IAM, meskipun peran dapat dimasukkan dalam beberapa profil instans. Batasan satu peran per profil instans ini tidak dapat ditingkatkan. Anda dapat menghapus peran yang ada dan kemudian menambahkan peran yang berbeda ke profil instans. Anda kemudian harus menunggu perubahan muncul di semua AWS karena [konsistensi akhirnya](https://en.wikipedia.org/wiki/Eventual_consistency). Untuk memaksa perubahan, Anda harus [memisahkan profil instans](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html) dan kemudian [mengaitkan profil instans](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), atau Anda dapat menghentikan instance Anda lalu memulainya ulang.

### Mengelola profil instans (AWS CLI)
<a name="instance-profiles-manage-cli"></a>

Anda dapat menggunakan AWS CLI perintah berikut untuk bekerja dengan profil instans di AWS akun. 
+ Buat profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html)
+ Tandai profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/tag-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-instance-profile.html)
+ Cantumkan tanda untuk profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profile-tags.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profile-tags.html)
+ Hapus tanda profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/untag-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-instance-profile.html)
+ Tambahkan peran ke profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/add-role-to-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iam/add-role-to-instance-profile.html) 
+ Buat daftar profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profiles.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profiles.html), [https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profiles-for-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profiles-for-role.html) 
+ Dapatkan informasi tentang profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-instance-profile.html) 
+ Hapus peran dari profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/remove-role-from-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iam/remove-role-from-instance-profile.html)
+ Hapus profil instans: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-instance-profile.html) 

Anda juga dapat melampirkan peran ke instans EC2 yang sudah berjalan dengan menggunakan perintah berikut. Untuk informasi lebih lanjut, lihat [Peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role).
+ Lampirkan profil instans dengan peran ke instans EC2 yang dihentikan atau sedang berjalan: [https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-iam-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-iam-instance-profile.html) 
+ Dapatkan informasi tentang profil instans yang terlampir pada instans EC2: [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) 
+ Lepas profil instans dengan peran dari instans EC2 yang dihentikan atau sedang berjalan: [https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-iam-instance-profile.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-iam-instance-profile.html) 

### Mengelola profil instance (AWS API)
<a name="instance-profiles-manage-api"></a>

Anda dapat memanggil operasi AWS API berikut untuk bekerja dengan profil instance di file Akun AWS.
+ Buat profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateInstanceProfile.html) 
+ Tandai profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagInstanceProfile.html) 
+ Cantumkan tanda di profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagInstanceProfile.html) 
+ Hapus tanda profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagInstanceProfile.html) 
+ Tambahkan peran ke profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html) 
+ Buat daftar profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfiles.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfiles.html), [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html) 
+ Dapatkan informasi tentang profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html) 
+ Hapus peran dari profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html) 
+ Hapus profil instans: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html) 

Anda juga dapat melampirkan peran ke instans EC2 yang sudah berjalan dengan memanggil operasi berikut ini. Untuk informasi lebih lanjut, lihat [Peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role).
+ Lampirkan profil instans dengan peran ke instans EC2 yang dihentikan atau sedang berjalan: [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html) 
+ Dapatkan informasi tentang profil instans yang terlampir pada instans EC2: [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeIamInstanceProfileAssociations.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeIamInstanceProfileAssociations.html) 
+ Lepas profil instans dengan peran dari instans EC2 yang dihentikan atau sedang berjalan: [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html) 

# Penyedia identitas dan federasi ke AWS
<a name="id_roles_providers"></a>

Sebagai praktik terbaik, kami menyarankan Anda meminta pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS sumber daya alih-alih membuat pengguna IAM individu di Anda Akun AWS. Dengan penyedia identitas (iDP), Anda dapat mengelola identitas pengguna di luar AWS dan memberikan izin identitas pengguna eksternal ini untuk menggunakan AWS sumber daya di akun Anda. Ini berguna jika organisasi Anda sudah memiliki sistem identitas sendiri, seperti direktori pengguna korporat. Ini juga berguna jika Anda membuat aplikasi seluler atau aplikasi web yang membutuhkan akses ke AWS sumber daya.

**catatan**  
Anda juga dapat mengelola pengguna manusia di [IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/what-is.html) dengan penyedia identitas SAMP eksternal alih-alih menggunakan federasi SAMP di IAM. Federasi IAM Identity Center dengan penyedia identitas menyediakan kemampuan bagi Anda untuk memberi orang akses ke beberapa AWS akun di organisasi Anda dan ke beberapa AWS aplikasi. Untuk informasi tentang situasi tertentu di mana pengguna IAM diperlukan, lihat [Kapan membuat pengguna IAM (bukan peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose)).

Jika Anda lebih suka menggunakan satu AWS akun tanpa mengaktifkan IAM Identity Center, Anda dapat menggunakan IAM dengan IDP eksternal yang menyediakan informasi identitas untuk menggunakan AWS OpenID [Connect (OIDC) atau [SAMP](https://wiki.oasis-open.org/security) 2.0 (Security Assertion Markup Language 2.0)](http://openid.net/connect/). OIDC menghubungkan aplikasi, seperti GitHub Actions, yang tidak berjalan AWS ke AWS sumber daya. Contoh penyedia identitas SAMP yang terkenal adalah Shibboleth dan Layanan Federasi Direktori Aktif.

Saat Anda menggunakan penyedia identitas , Anda tidak perlu membuat kode masuk khusus atau mengelola identitas pengguna Anda sendiri. IdP menyediakannya untuk Anda. Pengguna eksternal Anda masuk melalui iDP, dan Anda dapat memberikan izin identitas eksternal tersebut untuk menggunakan AWS sumber daya di akun Anda. Penyedia identitas membantu menjaga Akun AWS keamanan Anda karena Anda tidak perlu mendistribusikan atau menanamkan kredensil keamanan jangka panjang, seperti kunci akses, dalam aplikasi Anda.

Tinjau tabel berikut untuk membantu menentukan jenis federasi IAM mana yang terbaik untuk kasus penggunaan Anda; IAM, Pusat Identitas IAM, atau Amazon Cognito. Ringkasan dan tabel berikut memberikan gambaran umum tentang metode yang dapat digunakan pengguna Anda untuk mendapatkan akses gabungan ke sumber daya. AWS 


| Jenis federasi IAM | Jenis akun | Manajemen akses.. | Sumber identitas yang didukung | 
| --- | --- | --- | --- | 
|  Federasi dengan Pusat Identitas IAM  |  Beberapa akun yang dikelola oleh AWS Organizations  |  Pengguna manusia tenaga kerja Anda  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/id_roles_providers.html)  | 
|  Federasi dengan IAM  |  Akun tunggal dan mandiri  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/id_roles_providers.html)  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/id_roles_providers.html)  | 
|  Federasi dengan kumpulan identitas Amazon Cognito  |  Setiap  |  Pengguna aplikasi yang memerlukan otorisasi IAM untuk mengakses sumber daya  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/id_roles_providers.html)  | 

## Federasi dengan Pusat Identitas IAM
<a name="id_roles_providers_identity-center"></a>

Untuk manajemen akses terpusat pengguna manusia, kami menyarankan Anda menggunakan [IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) untuk mengelola akses ke akun dan izin Anda dalam akun tersebut. Pengguna di Pusat Identitas IAM diberikan kredensil jangka pendek ke sumber daya Anda. AWS Anda dapat menggunakan Active Directory, penyedia identitas eksternal (iDP), atau direktori IAM Identity Center sebagai sumber identitas bagi pengguna dan grup untuk menetapkan akses ke sumber daya Anda. AWS 

IAM Identity Center mendukung federasi identitas dengan SAMP (Security Assertion Markup Language) 2.0 untuk menyediakan akses masuk tunggal federasi bagi pengguna yang berwenang untuk menggunakan aplikasi dalam portal akses. AWS Pengguna kemudian dapat masuk tunggal ke layanan yang mendukung SAMP, termasuk aplikasi pihak ketiga, seperti Microsoft 365, SAP Concur, Konsol Manajemen AWS dan Salesforce.

## Federasi dengan IAM
<a name="id_roles_providers_iam"></a>

Meskipun kami sangat menyarankan untuk mengelola pengguna manusia di IAM Identity Center, Anda dapat mengaktifkan akses utama federasi dengan IAM untuk pengguna manusia dalam penerapan skala kecil jangka pendek. IAM memungkinkan Anda untuk menggunakan SAMP 2.0 dan Open ID Connect (OIDC) yang terpisah IdPs dan menggunakan atribut utama federasi untuk kontrol akses. Dengan IAM, Anda dapat meneruskan atribut pengguna, seperti pusat biaya, judul, atau lokal, dari IdPs ke Anda AWS, dan menerapkan izin akses berbutir halus berdasarkan atribut ini.

*Beban kerja* adalah kumpulan sumber daya dan kode yang memberikan nilai bisnis, seperti aplikasi atau proses backend. Beban kerja Anda dapat memerlukan identitas IAM untuk membuat permintaan ke AWS layanan, aplikasi, alat operasional, dan komponen. Identitas ini mencakup mesin yang berjalan di AWS lingkungan Anda, seperti EC2 instans atau AWS Lambda fungsi Amazon.

Anda juga dapat mengelola identitas mesin untuk pihak eksternal yang membutuhkan akses. Untuk memberikan akses ke identitas mesin, Anda dapat menggunakan peran IAM. Peran IAM memiliki izin khusus dan menyediakan cara untuk mengakses AWS dengan mengandalkan kredensil keamanan sementara dengan sesi peran. Selain itu, Anda mungkin memiliki mesin di luar AWS yang membutuhkan akses ke AWS lingkungan Anda. Untuk mesin yang berjalan di luar AWS Anda dapat menggunakan [IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html). Untuk informasi lebih lanjut tentang peran, lihat [Peran IAM](id_roles.md). Untuk detail tentang cara menggunakan peran untuk mendelegasikan akses di seluruh Akun AWS, lihat[Tutorial IAM: Delegasikan akses di seluruh AWS akun menggunakan peran IAM](tutorial_cross-account-with-roles.md).

Untuk menautkan IDP langsung ke IAM, Anda membuat entitas penyedia identitas untuk membangun hubungan kepercayaan antara Anda Akun AWS dan iDP. Dukungan IAM IdPs yang kompatibel dengan [OpenID Connect (OIDC) atau SAMP 2.0 (](http://openid.net/connect/)[Security Assertion Markup Language 2.0)](https://wiki.oasis-open.org/security). Untuk informasi selengkapnya tentang menggunakan salah satu dari ini IdPs dengan AWS, lihat bagian berikut:
+ [Federasi OIDC](id_roles_providers_oidc.md)
+ [Federasi SAMP 2.0](id_roles_providers_saml.md)

## Federasi dengan kumpulan identitas Amazon Cognito
<a name="id_roles_providers_cognito"></a>

Amazon Cognito dirancang untuk pengembang yang ingin mengautentikasi dan mengotorisasi pengguna di aplikasi seluler dan web mereka. Kumpulan pengguna Amazon Cognito menambahkan fitur masuk dan pendaftaran ke aplikasi Anda, dan kumpulan identitas memberikan kredensil IAM yang memberi pengguna akses ke sumber daya terlindungi yang Anda kelola. AWS Identity pool memperoleh kredensi untuk sesi sementara melalui operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API.

Amazon Cognito bekerja dengan penyedia identitas eksternal yang mendukung SAMP dan OpenID Connect, dan dengan penyedia identitas sosial seperti Facebook, Google, dan Amazon. Aplikasi Anda dapat masuk ke pengguna dengan kumpulan pengguna atau iDP eksternal, lalu mengambil sumber daya atas nama mereka dengan sesi sementara yang disesuaikan dalam peran IAM.

## Sumber daya tambahan
<a name="id_roles_providers_additional_resources"></a>
+ Untuk demonstrasi tentang cara membuat proxy federasi kustom yang memungkinkan sistem masuk tunggal (SSO) ke dalam Konsol Manajemen AWS menggunakan sistem autentikasi organisasi Anda, lihat. [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md)

# Skenario umum
<a name="id_federation_common_scenarios"></a>

**catatan**  
Kami menyarankan Anda meminta pengguna manusia Anda untuk menggunakan kredensil sementara saat mengakses. AWS Sudahkah Anda mempertimbangkan untuk menggunakan AWS IAM Identity Center? Anda dapat menggunakan Pusat Identitas IAM untuk mengelola akses ke beberapa secara terpusat Akun AWS dan memberi pengguna akses masuk tunggal yang dilindungi MFA ke semua akun yang ditetapkan dari satu tempat. Dengan IAM Identity Center, Anda dapat membuat dan mengelola identitas pengguna di IAM Identity Center atau dengan mudah terhubung ke penyedia identitas kompatibel SAMP 2.0 yang ada. Untuk informasi selengkapnya, lihat [Apa itu Pusat Identitas IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) dalam *Panduan Pengguna AWS IAM Identity Center *.

Anda dapat menggunakan penyedia identitas eksternal (iDP) untuk mengelola identitas pengguna di luar AWS dan iDP eksternal. IdP eksternal dapat memberikan informasi identitas untuk AWS menggunakan OpenID Connect (OIDC) atau Security Assertion Markup Language (SAMP). OIDC umumnya digunakan ketika aplikasi yang tidak berjalan AWS membutuhkan akses ke AWS sumber daya.

Bila Anda ingin mengonfigurasi federasi dengan iDP eksternal, Anda membuat *penyedia identitas* IAM untuk menginformasikan AWS tentang iDP eksternal dan konfigurasinya. Ini membangun kepercayaan antara IDP Anda Akun AWS dan eksternal. Topik berikut menyediakan skenario umum untuk menggunakan penyedia identitas IAM.

**Topics**
+ [Amazon Cognito untuk aplikasi seluler](#id_roles_providers_oidc_cognito)
+ [Federasi OIDC untuk aplikasi seluler](#id_roles_providers_oidc_manual)

## Amazon Cognito untuk aplikasi seluler
<a name="id_roles_providers_oidc_cognito"></a>

Cara yang lebih disukai untuk menggunakan federasi OIDC adalah dengan menggunakan Amazon [Cognito](https://aws.amazon.com/cognito/). Misalnya, Adele pengembang sedang membangun game untuk perangkat seluler di mana data pengguna seperti skor dan profil disimpan di Amazon S3 dan Amazon DynamoDB. Adele juga dapat menyimpan data ini secara lokal di perangkat dan menggunakan Amazon Cognito untuk tetap disinkronkan di seluruh perangkat. Ia tahu bahwa untuk alasan keamanan dan pemeliharaan, kredensial keamanan jangka panjang AWS tidak boleh didistribusikan bersama dengan game. Dia juga tahu bahwa game akan memiliki banyak sekali pengguna. Untuk semua alasan ini, dia tidak ingin membuat identitas pengguna baru di IAM untuk setiap pemain. Alih-alih, dia membangun game agar pengguna dapat masuk menggunakan identitas yang sudah mereka tetapkan dengan penyedia identitas eksternal (IdP) yang terkenal, seperti **Login with Amazon**, **Facebook**, **Google**, atau IdP yang kompatibel dengan **OpenID Connect** (OIDC). Game ini bisa memanfaatkan mekanisme autentikasi dari salah satu penyedia ini untuk memvalidasi identitas pengguna. 

Untuk mengaktifkan aplikasi seluler mengakses AWS sumber dayanya, Adele pertama-tama mendaftar untuk ID pengembang dengan pilihannya. IdPs Dia juga mengonfigurasi aplikasi dengan setiap penyedia ini. Dalam dirinya Akun AWS yang berisi bucket Amazon S3 dan tabel DynamoDB untuk game, Adele menggunakan Amazon Cognito untuk membuat peran IAM yang secara tepat menentukan izin yang dibutuhkan game. [Jika dia menggunakan OIDC iDP, dia juga menciptakan entitas penyedia identitas IAM OIDC untuk membangun kepercayaan antara kumpulan identitas Amazon Cognito dalam dirinya dan iDP.](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) Akun AWS 

Dalam kode aplikasi, Adele memanggil antarmuka masuk untuk IdP yang sudah dikonfigurasi sebelumnya. IDP menangani semua detail membiarkan pengguna masuk, dan aplikasi mendapatkan token OAuth akses atau token ID OIDC dari penyedia. Aplikasi Adele dapat menukar informasi otentikasi ini dengan serangkaian kredensil keamanan sementara yang terdiri dari ID kunci AWS akses, kunci akses rahasia, dan token sesi. Aplikasi kemudian dapat menggunakan kredensil ini untuk mengakses layanan web yang ditawarkan oleh. AWS Aplikasi ini terbatas dengan izin yang ditentukan dalam peran yang sudah diasumsikan.

Gambar berikut menunjukkan alur cara kerja yang disederhanakan, menggunakan Login with Amazon sebagai IdP. Untuk Langkah 2, aplikasi juga dapat menggunakan Facebook, Google, atau IdP apa pun yang kompatibel dengan OIDC, tetapi itu tidak ditampilkan di sini.

![\[Contoh alur kerja menggunakan Amazon Cognito untuk pengguna federasi untuk aplikasi seluler\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/mobile-app-web-identity-federation.diagram.png)


 

1. Seorang pelanggan memulai aplikasi Anda di perangkat seluler. Aplikasi meminta pengguna untuk masuk.

1. Aplikasi menggunakan sumber daya Login with Amazon untuk menerima kredensial pengguna.

1. Aplikasi ini menggunakan operasi API Amazon Cognito `GetId` dan `GetCredentialsForIdentity` untuk menukar token Login with Amazon ID dengan token Amazon Cognito. Amazon Cognito, yang telah dikonfigurasi untuk mempercayai proyek Login with Amazon Anda, menghasilkan token yang ditukar dengan kredensi sesi sementara. AWS STS

1. Aplikasi ini menerima kredensil keamanan sementara dari Amazon Cognito. Aplikasi Anda juga dapat menggunakan alur kerja Dasar (Klasik) di Amazon Cognito untuk mengambil token dari penggunaan. AWS STS `AssumeRoleWithWebIdentity` Untuk informasi selengkapnya, lihat [Alur autentikasi kumpulan identitas (identitas gabungan)](https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html) di Panduan Pengembang Amazon Cognito.

1. Kredensial keamanan sementara dapat digunakan oleh aplikasi untuk mengakses setiap sumber daya AWS yang diperlukan oleh aplikasi untuk beroperasi. Peran yang terkait dengan kredensil keamanan sementara dan kebijakan yang ditetapkan menentukan apa yang dapat diakses.

Gunakan proses berikut untuk mengonfigurasi aplikasi agar menggunakan Amazon Cognito guna mengautentikasi pengguna dan memberikan akses aplikasi ke resource. AWS Untuk langkah-langkah khusus untuk menyelesaikan skenario ini, lihat dokumentasi untuk Amazon Cognito.

1. (Opsional) Daftar sebagai pengembang dengan Login with Amazon, Facebook, Google, atau OpenID Connect (OIDC) lainnya yang kompatibel dengan IDP dan konfigurasikan satu atau beberapa aplikasi dengan penyedia. Langkah ini bersifat opsional karena Amazon Cognito juga mendukung akses tidak terotentikasi (tamu) untuk pengguna Anda.

1. Pergi ke [Amazon Cognito di](https://console.aws.amazon.com/cognito/home). Konsol Manajemen AWS Gunakan wizard Amazon Cognito untuk membuat kumpulan identitas, yang merupakan wadah yang digunakan Amazon Cognito untuk menjaga identitas pengguna akhir tetap tertata untuk aplikasi Anda. Anda dapat berbagi kolam identitas di antara aplikasi. Saat Anda menyiapkan kolam identitas, Amazon Cognito membuat satu atau dua peran IAM (satu untuk identitas terotentikasi, dan satu untuk identitas “tamu” tidak terotentikasi) yang menentukan izin bagi pengguna Amazon Cognito. 

1. Integrasikan [AWS](https://docs.amplify.aws)Amplify dengan aplikasi Anda, dan impor file yang diperlukan untuk menggunakan Amazon Cognito.

1. Buat instance penyedia kredensi Amazon Cognito, meneruskan ID kumpulan identitas, Akun AWS nomor Anda, dan Nama Sumber Daya Amazon (ARN) peran yang Anda kaitkan dengan kumpulan identitas. Wizard Amazon Cognito di Konsol Manajemen AWS menyediakan kode contoh untuk membantu Anda memulai.

1. Saat aplikasi Anda mengakses AWS resource, teruskan instance penyedia kredensial ke objek klien, yang meneruskan kredensil keamanan sementara ke klien. Izin untuk kredensial didasarkan pada peran atau peran-peran yang Anda tetapkan sebelumnya.

Untuk informasi selengkapnya, lihat berikut ini:
+ [Masuk (Android)](https://docs.amplify.aws/lib/auth/signin/q/platform/android/) di Dokumentasi AWS Amplify Kerangka. 
+ [Masuk (iOS)](https://docs.amplify.aws/lib/auth/signin/q/platform/ios/) di Dokumentasi AWS Amplify Kerangka.

## Federasi OIDC untuk aplikasi seluler
<a name="id_roles_providers_oidc_manual"></a>

Untuk hasil terbaik, gunakan Amazon Cognito sebagai broker identitas Anda untuk hampir semua skenario federasi OIDC. Amazon Cognito mudah digunakan dan menyediakan kemampuan tambahan seperti akses anonim (tidak terotentikasi), dan sinkronisasi data pengguna di seluruh perangkat dan penyedia. Namun, jika Anda telah membuat aplikasi yang menggunakan federasi OIDC dengan memanggil `AssumeRoleWithWebIdentity` API secara manual, Anda dapat terus menggunakannya dan aplikasi Anda akan tetap berfungsi dengan baik. 

Proses untuk menggunakan federasi OIDC ***tanpa*** Amazon Cognito mengikuti garis besar umum ini: 

1. Daftarkan diri Anda sebagai developer dengan penyedia identitas eksternal (IdP) dan konfigurasi aplikasi Anda dengan IdP, yang memberikan ID unik untuk aplikasi Anda. (Berbeda IdPs menggunakan terminologi yang berbeda untuk proses ini. Garis besar ini menggunakan istilah *konfigurasi* untuk proses identifikasi aplikasi Anda dengan iDP.) Setiap iDP memberi Anda ID aplikasi yang unik untuk IDP tersebut, jadi jika Anda mengonfigurasi aplikasi yang sama dengan beberapa aplikasi IdPs, aplikasi Anda akan memiliki beberapa aplikasi. IDs Anda dapat mengonfigurasi beberapa aplikasi dengan setiap penyedia. 

   Tautan eksternal berikut memberikan informasi tentang penggunaan beberapa penyedia identitas yang umum digunakan (IdPs): 
   + [Login dengan Amazon Developer Center](https://login.amazon.com/) 
   + [Tambahkan Login Facebook ke Aplikasi atau Website Anda](https://developers.facebook.com/docs/facebook-login/v2.1) di situs pengembang Facebook. 
   + [Menggunakan OAuth 2.0 untuk Login (OpenID Connect)](https://developers.google.com/accounts/docs/OAuth2Login) di situs pengembang Google.
**penting**  
Jika Anda menggunakan penyedia identitas OIDC dari Google, Facebook, atau Amazon Cognito, jangan membuat penyedia identitas IAM terpisah di. Konsol Manajemen AWS AWS memiliki penyedia identitas OIDC ini bawaan dan tersedia untuk Anda gunakan. Lewati langkah ini dan langsung buat peran baru menggunakan penyedia identitas Anda.

1. Jika Anda menggunakan iDP selain Google, Facebook, atau Amazon Cognito yang kompatibel dengan OIDC, buat entitas penyedia identitas IAM untuknya.

1. Di dalam IAM, [buat satu atau beberapa peran](id_roles_create_for-idp.md). Untuk setiap peran, tentukan siapa yang dapat mengambil peran (kebijakan kepercayaan) dan izin apa yang dimiliki pengguna aplikasi (kebijakan izin). Biasanya, Anda membuat satu peran untuk setiap IdP yang mendukung aplikasi. Misalnya, Anda dapat membuat peran yang diambil oleh aplikasi jika pengguna masuk melalui Login with Amazon, peran kedua untuk aplikasi yang sama jika pengguna masuk melalui Facebook, dan peran ketiga untuk aplikasi jika pengguna masuk melalui Google. Untuk hubungan kepercayaan, tentukan IdP (seperti Amazon.com) sebagai `Principal` (entitas tepercaya), dan sertakan `Condition` yang sesuai dengan ID aplikasi yang ditetapkan IdP. Contoh peran untuk penyedia yang berbeda dijelaskan dalam [Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md). 

1. Dalam aplikasi, autentikasi pengguna Anda dengan IdP. Spesifikasi tentang cara melakukan ini bervariasi baik menurut IDP yang Anda gunakan (Login with Amazon, Facebook, atau Google) dan di platform mana aplikasi Anda berjalan. Misalnya, metode otentikasi aplikasi Android dapat berbeda dari metode aplikasi iOS atau aplikasi web JavaScript berbasis.

   Biasanya, jika pengguna belum masuk, IdP menampilkan halaman masuk. Setelah IdP mengautentikasi pengguna, IdP mengembalikan informasi dengan token autentikasi tentang pengguna ke aplikasi Anda. Informasi yang disertakan tergantung pada apa yang diekspos IdP dan informasi apa yang ingin dibagikan oleh pengguna. Anda dapat menggunakan informasi ini di aplikasi Anda.

1. Di aplikasi Anda, buatlah panggilan *berhenti menandatangani* ke `AssumeRoleWithWebIdentity` tindakan untuk meminta kredensial keamanan sementara. Dalam permintaan, Anda meneruskan token autentikasi IDP dan menentukan Amazon Resource Name (ARN) untuk peran IAM yang Anda buat untuk IDP tersebut. AWS memverifikasi bahwa token tepercaya dan valid dan jika demikian, mengembalikan kredensil keamanan sementara ke aplikasi Anda yang memiliki izin untuk peran yang Anda beri nama dalam permintaan. Jawaban juga mencakup metadata tentang pengguna dari IdP, seperti ID pengguna unik yang dikaitkan IdP dengan pengguna.

1. Menggunakan kredensil keamanan sementara dari `AssumeRoleWithWebIdentity` respons, aplikasi Anda membuat permintaan yang ditandatangani ke operasi AWS API. Informasi ID pengguna dari iDP dapat membedakan pengguna di aplikasi Anda. Misalnya, Anda dapat memasukkan objek ke folder Amazon S3 yang menyertakan ID pengguna sebagai awalan atau sufiks. Hal ini memungkinkan Anda membuat kebijakan kontrol akses yang mengunci folder sehingga hanya pengguna dengan ID tersebut yang tidak dapat mengaksesnya. Untuk informasi selengkapnya, lihat [AWS STS prinsip pengguna federasi](reference_policies_elements_principal.md#sts-session-principals).

1. Aplikasi Anda harus menyimpan kredensial keamanan sementara sehingga Anda tidak perlu mendapatkan kredensial baru setiap kali aplikasi perlu membuat permintaan ke AWS. Secara default, kredensial akan berlaku selama satu jam. Saat kredensial kedaluwarsa (atau sebelum itu), Anda melakukan panggilan lain ke `AssumeRoleWithWebIdentity` untuk mendapatkan satu set kredensial keamanan sementara baru. Tergantung pada IdP dan cara mereka mengelola token, Anda mungkin harus menyegarkan token IdP sebelum melakukan panggilan baru ke`AssumeRoleWithWebIdentity` , karena token IdP juga biasanya kedaluwarsa setelah waktu tetap. Jika Anda menggunakan AWS SDK for iOS atau AWS SDK for Android, Anda dapat menggunakan tindakan Penyedia [STSCredentialsAmazon](https://aws.amazon.com/blogs/mobile/using-the-amazoncredentialsprovider-protocol-in-the-aws-sdk-for-ios), yang mengelola kredenal sementara IAM, termasuk menyegarkannya sesuai kebutuhan.

# Federasi OIDC
<a name="id_roles_providers_oidc"></a>

Bayangkan Anda membuat aplikasi yang mengakses AWS sumber daya, seperti GitHub Tindakan yang menggunakan alur kerja untuk mengakses Amazon S3 dan DynamoDB. 

Saat Anda menggunakan alur kerja ini, Anda membuat permintaan ke AWS layanan yang harus ditandatangani dengan kunci AWS akses. Namun, kami **sangat** menyarankan agar Anda **tidak** menyimpan AWS kredensi jangka panjang dalam aplikasi di luar. AWS*Sebagai gantinya, konfigurasikan aplikasi Anda untuk meminta kredensi AWS keamanan sementara secara dinamis saat diperlukan menggunakan federasi OIDC.* Kredensi sementara yang disediakan memetakan ke AWS peran yang hanya memiliki izin yang diperlukan untuk melakukan tugas yang diperlukan oleh aplikasi.

Dengan federasi OIDC, Anda tidak perlu membuat kode masuk khusus atau mengelola identitas pengguna Anda sendiri. Sebagai gantinya, Anda dapat menggunakan OIDC dalam aplikasi, seperti GitHub Actions atau IdP yang kompatibel dengan OpenID [Connect (OIDC) lainnya, untuk mengautentikasi](http://openid.net/connect/). AWS Mereka menerima token otentikasi, yang dikenal sebagai JSON Web Token (JWT), dan kemudian menukar token itu untuk kredensi keamanan sementara di peta AWS itu ke peran IAM dengan izin untuk menggunakan sumber daya tertentu di Anda. Akun AWS Menggunakan IDP membantu Anda menjaga Akun AWS keamanan karena Anda tidak perlu menanamkan dan mendistribusikan kredensi keamanan jangka panjang dengan aplikasi Anda.

Federasi OIDC mendukung machine-to-machine otentikasi (seperti CI/CD saluran pipa, skrip otomatis, dan aplikasi tanpa server) dan otentikasi pengguna manusia. Untuk skenario otentikasi pengguna manusia di mana Anda perlu mengelola pendaftaran pengguna, masuk, dan profil pengguna, pertimbangkan untuk menggunakan [Amazon Cognito sebagai pialang identitas](https://aws.amazon.com/cognito/). Untuk detail tentang penggunaan Amazon Cognito dengan OIDC, lihat. [Amazon Cognito untuk aplikasi seluler](id_federation_common_scenarios.md#id_roles_providers_oidc_cognito)

**catatan**  
JSON Web Tokens (JWTs) yang dikeluarkan oleh penyedia identitas OpenID Connect (OIDC) berisi waktu kedaluwarsa dalam klaim yang menentukan kapan token `exp` kedaluwarsa. IAM menyediakan jendela lima menit di luar waktu kedaluwarsa yang ditentukan dalam JWT untuk memperhitungkan kemiringan jam, seperti yang diizinkan oleh standar OpenID Connect ([OIDC](https://openid.net/specs/openid-connect-core-1_0.html)) Core 1.0. Ini berarti OIDC JWTs diterima oleh IAM setelah waktu kedaluwarsa tetapi dalam jendela lima menit ini diterima untuk evaluasi dan pemrosesan lebih lanjut.

**Topics**
+ [Sumber daya tambahan untuk federasi OIDC](#id_roles_providers_oidc_resources)
+ [Buat penyedia identitas OpenID Connect (OIDC) di IAM](id_roles_providers_create_oidc.md)
+ [Dapatkan cap jempol untuk penyedia identitas OpenID Connect](id_roles_providers_create_oidc_verify-thumbprint.md)
+ [Kontrol penyedia identitas untuk penyedia OIDC bersama](id_roles_providers_oidc_secure-by-default.md)

## Sumber daya tambahan untuk federasi OIDC
<a name="id_roles_providers_oidc_resources"></a>

Sumber daya berikut dapat membantu Anda mempelajari lebih lanjut tentang federasi OIDC:
+ Menggunakan OpenID Connect dalam GitHub alur kerja Anda dengan Mengonfigurasi [OpenID](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) Connect di Amazon Web Services
+ [Identitas Amazon Cognito](https://docs.amplify.aws/lib/auth/advanced/q/platform/android/) *di *Amplify Libraries for Android Guide dan Amazon* [Cognito Identity di](https://docs.amplify.aws/lib/auth/advanced/q/platform/ios/) Amplify Libraries for Swift Guide.*
+ [Cara menggunakan ID eksternal saat memberikan akses ke AWS sumber daya Anda](https://aws.amazon.com/blogs/security/how-to-use-external-id-when-granting-access-to-your-aws-resources/) di *Blog AWS Keamanan* memberikan panduan tentang mengonfigurasi akses lintas akun dan federasi identitas eksternal dengan aman.

# Buat penyedia identitas OpenID Connect (OIDC) di IAM
<a name="id_roles_providers_create_oidc"></a>

*Penyedia identitas IAM OIDC* adalah entitas dalam IAM yang menggambarkan layanan penyedia identitas eksternal (iDP) yang mendukung standar OpenID [Connect](http://openid.net/connect/) (OIDC), seperti Google atau Salesforce. Anda menggunakan penyedia identitas IAM OIDC ketika Anda ingin membangun kepercayaan antara IDP yang kompatibel dengan OIDC dan Anda. Akun AWS Ini berguna saat membuat aplikasi seluler atau aplikasi web yang memerlukan akses ke AWS sumber daya, tetapi Anda tidak ingin membuat kode masuk khusus atau mengelola identitas pengguna Anda sendiri. Untuk informasi selengkapnya tentang skenario ini, lihat [Federasi OIDC](id_roles_providers_oidc.md).

Anda dapat membuat dan mengelola penyedia identitas IAM OIDC menggunakan Konsol Manajemen AWS, Tools for Windows AWS Command Line Interface PowerShell, atau IAM API.

Setelah Anda membuat penyedia identitas IAM OIDC, Anda harus membuat satu atau lebih peran IAM. Peran adalah identitas AWS yang tidak memiliki kredensialnya sendiri (seperti yang dilakukan pengguna). Namun dalam konteks ini, peran secara dinamis ditetapkan ke prinsipal federasi OIDC yang diautentikasi oleh IDP organisasi Anda. Peran mengizinkan IdP organisasi Anda meminta kredensial keamanan sementara untuk akses ke AWS. Kebijakan yang ditetapkan untuk peran menentukan apa yang diizinkan dilakukan pengguna AWS. Untuk membuat peran bagi penyedia identitas pihak ketiga, lihat [Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md).

**penting**  
Saat Anda mengonfigurasi kebijakan berbasis identitas untuk tindakan yang mendukung `oidc-provider` sumber daya, IAM mengevaluasi URL penyedia identitas OIDC lengkap, termasuk jalur yang ditentukan. Jika URL penyedia identitas OIDC Anda memiliki jalur, Anda harus menyertakan jalur itu di `oidc-provider` ARN sebagai nilai elemen. `Resource` Anda juga memiliki opsi untuk menambahkan garis miring ke depan dan wildcard (`/*`) ke domain URL atau menggunakan karakter wildcard (`*`dan`?`) di titik mana pun di jalur URL. Jika URL penyedia identitas OIDC dalam permintaan tidak cocok dengan nilai yang ditetapkan dalam `Resource` elemen kebijakan, permintaan gagal.

Untuk memecahkan masalah umum dengan federasi IAM OIDC, lihat [Mengatasi kesalahan yang terkait](https://repost.aws/knowledge-center/iam-oidc-idp-federation) dengan OIDC di re:Post. AWS 

**Topics**
+ [Prasyarat: Validasi konfigurasi penyedia identitas Anda](#manage-oidc-provider-prerequisites)
+ [Membuat dan mengelola penyedia OIDC (konsol)](#manage-oidc-provider-console)
+ [Membuat dan mengelola penyedia identitas IAM OIDC ()AWS CLI](#manage-oidc-provider-cli)
+ [Membuat dan mengelola Penyedia Identitas OIDC (API)AWS](#manage-oidc-provider-api)

## Prasyarat: Validasi konfigurasi penyedia identitas Anda
<a name="manage-oidc-provider-prerequisites"></a>

Sebelum Anda dapat membuat penyedia identitas IAM OIDC, Anda harus memiliki informasi berikut dari IDP Anda. Untuk informasi selengkapnya tentang mendapatkan Informasi konfigurasi penyedia OIDC, lihat dokumentasi untuk IDP Anda.

1. Tentukan URL penyedia identitas OIDC Anda yang tersedia untuk umum. URL harus dimulai dengan https://. Per the OIDC standard, path com ponent diperbolehkan tetapi parameter kueri tidak. Biasanya, URL hanya terdiri dari nama host, seperti https://server.example.org or https://example.com. URL tidak boleh berisi nomor port.

1. Tambahkan **/.well-known/openid-configuration** ke akhir URL penyedia identitas OIDC Anda untuk melihat dokumen konfigurasi dan metadata penyedia yang tersedia untuk umum. Anda harus memiliki dokumen penemuan dalam format JSON dengan dokumen konfigurasi penyedia dan metadata yang dapat diambil dari URL titik akhir penemuan penyedia OpenID [Connect](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig).

1. Konfirmasikan bahwa nilai berikut disertakan dalam informasi konfigurasi penyedia Anda. Jika konfigurasi terbuka Anda tidak memiliki salah satu bidang ini, Anda harus memperbarui dokumen penemuan Anda. Proses ini dapat bervariasi berdasarkan penyedia identitas Anda, jadi ikuti dokumentasi IDP Anda untuk menyelesaikan tugas ini.
   + issuer: URL untuk domain Anda.
   + jwks\$1uri: Titik akhir JSON Web Key Set (JWKS) tempat IAM mendapatkan kunci publik Anda. Penyedia identitas Anda harus menyertakan titik akhir JSON Web Key Set (JWKS) dalam konfigurasi terbuka. URI ini menentukan tempat mendapatkan kunci publik yang digunakan untuk memverifikasi token yang ditandatangani dari penyedia identitas Anda.
**catatan**  
JSON Web Key Set (JWKS) harus berisi setidaknya satu kunci dan dapat memiliki maksimum 100 kunci RSA dan 100 kunci EC. Jika JWKS penyedia identitas OIDC Anda berisi lebih dari 100 kunci RSA atau 100 kunci EC, `InvalidIdentityToken` pengecualian akan dikembalikan saat menggunakan operasi [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API dengan JWT yang ditandatangani oleh tipe kunci yang melebihi batas 100 kunci. Misalnya, jika JWT ditandatangani dengan algoritma RSA dan ada lebih dari 100 kunci RSA di JWKS penyedia Anda, pengecualian akan dikembalikan. `InvalidIdentityToken`
   + claims\$1supported: Informasi tentang pengguna yang membantu Anda memastikan tanggapan otentikasi OIDC dari IDP Anda berisi AWS atribut yang diperlukan yang digunakan dalam kebijakan IAM untuk memeriksa izin untuk prinsipal federasi OIDC. Untuk daftar kunci kondisi IAM yang dapat digunakan untuk klaim, lihat[Kunci yang tersedia untuk AWS federasi OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif).
     + aud: Anda harus menentukan nilai klaim audiens masalah IDP Anda di JSON Web Tokens (). JWTs Klaim audiens (aud) adalah aplikasi khusus dan mengidentifikasi penerima token yang dituju. Saat Anda mendaftarkan aplikasi seluler atau web dengan penyedia OpenID Connect, mereka membuat ID klien yang mengidentifikasi aplikasi. ID klien adalah pengenal unik untuk aplikasi Anda yang diteruskan dalam klaim aud untuk autentikasi. Klaim aud harus sesuai dengan nilai Audiens saat membuat penyedia identitas IAM OIDC Anda.
     + iat: Klaim harus menyertakan nilai untuk `iat` yang mewakili waktu token ID dikeluarkan.
     + iss: URL penyedia identitas. URL harus dimulai dengan https:// and should correspond to the Provider URL provided to IAM. Per the OIDC standard, path com ponent diperbolehkan tetapi parameter kueri tidak. Biasanya, URL hanya terdiri dari nama host, seperti https://server.example.org or https://example.com. URL tidak boleh berisi nomor port.
   + response\$1types\$1supported: id\$1token
   + subject\$1types\$1supported: publik
   + id\$1token\$1signing\$1alg\$1values\$1supported:,,,,, RS256 RS384 RS512 ES256 ES384 ES512
**catatan**  
Anda dapat menyertakan klaim tambahan seperti `my_custom_claim` pada contoh di bawah ini; namun, AWS STS akan mengabaikan klaim tersebut.  

   ```
   {
     "issuer": "https://example-domain.com",
     "jwks_uri": "https://example-domain.com/jwks/keys",
     "claims_supported": [
       "aud",
       "iat",
       "iss",
       "name",
       "sub",
       "my_custom_claim"
     ],
     "response_types_supported": [
       "id_token"
     ],
     "id_token_signing_alg_values_supported": [
       "RS256",
       "RS384",
       "RS512",
       "ES256",
       "ES384",
       "ES512"
     ],
     "subject_types_supported": [
       "public"
     ]
   }
   ```

## Membuat dan mengelola penyedia OIDC (konsol)
<a name="manage-oidc-provider-console"></a>

Ikuti petunjuk ini untuk membuat dan mengelola penyedia identitas IAM OIDC di. Konsol Manajemen AWS

**penting**  
Jika Anda menggunakan penyedia identitas OIDC dari Google, Facebook, atau Amazon Cognito, jangan membuat penyedia identitas IAM terpisah menggunakan prosedur ini. Penyedia identitas OIDC ini sudah terpasang AWS dan tersedia untuk Anda gunakan. Alih-alih, ikuti langkah-langkah untuk membuat peran baru bagi penyedia identitas Anda, lihat [Buat peran untuk federasi OpenID Connect (konsol)](id_roles_create_for-idp_oidc.md).

**Untuk membuat penyedia identitas IAM OIDC (konsol)**

1. <a name="idpoidcstep1"></a>*Sebelum Anda membuat penyedia identitas IAM OIDC, Anda harus mendaftarkan aplikasi Anda dengan IDP untuk menerima ID klien.* ID klien (juga dikenal sebagai *audiens*) adalah pengenal unik untuk aplikasi yang diberikan kepada Anda saat mendaftarkan aplikasi dengan IdP. Untuk informasi lebih lanjut tentang mendapatkan ID klien, lihat dokumentasi untuk IdP. 
**catatan**  
AWS mengamankan komunikasi dengan penyedia identitas OIDC (IdPs) menggunakan perpustakaan otoritas sertifikat root tepercaya (CAs) kami untuk memverifikasi sertifikat TLS titik akhir JSON Web Key Set (JWKS). Jika IDP OIDC Anda bergantung pada sertifikat yang tidak ditandatangani oleh salah satu dari tepercaya ini CAs, hanya dengan itu kami mengamankan komunikasi menggunakan cap jempol yang diatur dalam konfigurasi iDP. AWS akan kembali ke verifikasi sidik jari jika kami tidak dapat mengambil sertifikat TLS atau jika TLS v1.3 diperlukan.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Penyedia identitas**, lalu pilih **Tambahkan penyedia**.

1. Untuk **Konfigurasi penyedia**, pilih **OpenID Connect**. 

1. Untuk **URL Penyedia**, ketik URL IdP. URL harus mematuhi pembatasan ini:
   + URL peka terhadap huruf besar-kecil.
   + URL harus dimulai dengan **https://**.
   + URL tidak boleh berisi nomor port. 
   + Di dalam Anda Akun AWS, setiap penyedia identitas IAM OIDC harus menggunakan URL unik. Jika Anda mencoba mengirimkan URL yang telah digunakan untuk penyedia OpenID Connect di Akun AWS, Anda akan mendapatkan kesalahan.

1. Untuk **Audiens**, ketikkan ID klien dari aplikasi yang Anda daftarkan dengan IDP dan terima[Step 1](#idpoidcstep1), dan yang membuat permintaan. AWS Jika Anda memiliki klien tambahan IDs (juga dikenal sebagai *audiens*) untuk IDP ini, Anda dapat menambahkannya nanti di halaman detail penyedia.
**catatan**  
Jika token IDP JWT Anda menyertakan `azp` klaim, masukkan nilai ini sebagai nilai Audiens.  
Jika penyedia identitas OIDC Anda menetapkan keduanya `aud` dan `azp` klaim dalam token, AWS STS akan menggunakan nilai dalam `azp` klaim sebagai klaim. `aud`

1. (Opsional) Untuk **Menambahkan tag**, Anda dapat menambahkan pasangan kunci-nilai untuk membantu Anda mengidentifikasi dan mengatur. IdPs Anda juga dapat menggunakan tanda untuk mengontrol akses ke sumber daya AWS . Untuk mempelajari lebih lanjut tentang menandai penyedia identitas IAM OIDC, lihat. [Tandai penyedia identitas OpenID Connect (OIDC)](id_tags_oidc.md) Pilih **Tambahkan tanda**. Masukkan nilai untuk setiap pasangan nilai-kunci tanda. 

1. Verifikasi informasi yang telah Anda berikan. Setelah selesai, pilih **Tambahkan penyedia**. IAM akan mencoba untuk mengambil dan menggunakan cap jempol CA menengah atas dari sertifikat server OIDC iDP untuk membuat penyedia identitas IAM OIDC.
**catatan**  
Rantai sertifikat penyedia identitas OIDC harus dimulai dengan domain atau URL penerbit, kemudian sertifikat perantara, dan diakhiri dengan sertifikat root. Jika urutan rantai sertifikat berbeda atau menyertakan duplikat atau sertifikat tambahan, maka Anda menerima kesalahan ketidakcocokan tanda tangan dan STS gagal memvalidasi JSON Web Token (JWT). Perbaiki urutan sertifikat dalam rantai yang dikembalikan dari server untuk menyelesaikan kesalahan. Untuk informasi selengkapnya tentang standar rantai sertifikat, lihat [certificate\$1list di RFC 5246 di situs web Seri RFC](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.2).

1. Tetapkan peran IAM ke penyedia identitas Anda untuk memberikan identitas pengguna eksternal yang dikelola oleh izin penyedia identitas Anda untuk mengakses AWS sumber daya di akun Anda. Untuk mempelajari lebih lanjut tentang menciptakan peran untuk federasi identitas, lihat [Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md).
**catatan**  
OIDC yang IdPs digunakan dalam kebijakan kepercayaan peran harus dalam akun yang sama dengan peran yang mempercayainya.

**Untuk menambahkan atau menghapus sidik jari untuk penyedia identitas IAM OIDC (konsol)**
**catatan**  
AWS mengamankan komunikasi dengan penyedia identitas OIDC (IdPs) menggunakan perpustakaan otoritas sertifikat root tepercaya (CAs) kami untuk memverifikasi sertifikat TLS titik akhir JSON Web Key Set (JWKS). Jika IDP OIDC Anda bergantung pada sertifikat yang tidak ditandatangani oleh salah satu dari tepercaya ini CAs, hanya dengan itu kami mengamankan komunikasi menggunakan cap jempol yang diatur dalam konfigurasi iDP. AWS akan kembali ke verifikasi sidik jari jika kami tidak dapat mengambil sertifikat TLS atau jika TLS v1.3 diperlukan.

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Penyedia identitas**. Kemudian pilih nama penyedia identitas IAM yang ingin Anda perbarui.

1. **Pilih tab **Verifikasi titik akhir**, lalu di bagian **Cetak Jempol**, pilih Kelola.** Untuk memasukkan nilai sidik jari baru, pilih **Tambahkan sidik jari**. Untuk menghapus sidik jari, pilih **Hapus** di samping sidik jari yang ingin Anda hapus.
**catatan**  
Seorang penyedia identitas IAM OIDC harus memiliki setidaknya satu dan dapat memiliki maksimal lima sidik jari.

    Setelah selesai, pilih **Simpan perubahan**.

**Untuk menambahkan audiens untuk penyedia identitas IAM OIDC (konsol)**

1. Di panel navigasi, pilih **Penyedia identitas**, kemudian pilih nama penyedia identitas IAM yang ingin Anda perbarui.

1. Di bagian **Audiens**, pilih **Tindakan** dan pilih **Tambahkan audiens**. 

1. Ketik ID klien dari aplikasi yang Anda daftarkan dengan IDP dan diterima[Step 1](#idpoidcstep1), dan itu akan membuat permintaan untuk. AWS Lalu, pilih **Tambahkan audiens**.
**catatan**  
Seorang penyedia identitas IAM OIDC harus memiliki setidaknya satu dan dapat memiliki maksimal 100 audiens.

**Untuk menghapus audiens untuk penyedia identitas IAM OIDC (konsol)**

1. Di panel navigasi, pilih **Penyedia identitas**, kemudian pilih nama penyedia identitas IAM yang ingin Anda perbarui.

1. Di bagian **Audiens**, pilih tombol radio di samping audiens yang ingin Anda hapus, lalu pilih **Tindakan**.

1.  Pilih **Hapus audiens**. Jendela baru terbuka.

1. Jika Anda menghapus audiens, identitas yang bergabung dengan audiens tidak dapat mengambil peran yang terkait dengan audiens. Di jendela, baca peringatan dan konfirmasikan bahwa Anda ingin menghapus audiens dengan mengetikkan kata `remove` di bidangnya.

1. Pilih **Hapus** untuk menghapus audiens.

**Untuk menghapus penyedia identitas IAM OIDC (konsol)**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi, silakan pilih **Penyedia identitas**. 

1. Pilih kotak centang di sebelah penyedia identitas IAM yang ingin Anda hapus. Jendela baru terbuka.

1. Konfirmasikan bahwa Anda ingin menghapus penyedia dengan mengetik kata `delete` di bidangnya. Lalu, pilih **Hapus**.

## Membuat dan mengelola penyedia identitas IAM OIDC ()AWS CLI
<a name="manage-oidc-provider-cli"></a>

Anda dapat menggunakan AWS CLI perintah berikut untuk membuat dan mengelola penyedia identitas IAM OIDC.

**Untuk membuat penyedia identitas IAM OIDC ()AWS CLI**

1. (Opsional) Untuk mendapatkan daftar semua penyedia identitas IAM OIDC di AWS akun Anda, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-providers.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-providers.html)

1. Untuk membuat penyedia identitas OIDC IAM baru, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/create-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-open-id-connect-provider.html)

**Untuk memperbarui daftar sidik jari sertifikat server untuk penyedia identitas IAM OIDC yang ada ()AWS CLI**
+ Untuk memperbarui daftar sidik jari sertifikat server untuk penyedia identitas IAM OIDC, jalankan perintah berikut:
  + [https://docs.aws.amazon.com/cli/latest/reference/iam/update-open-id-connect-provider-thumbprint.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-open-id-connect-provider-thumbprint.html)

**Untuk menandai penyedia identitas IAM OIDC yang ada ()AWS CLI**
+ Untuk menandai penyedia identitas IAM OIDC yang ada, jalankan perintah berikut:
  + [https://docs.aws.amazon.com/cli/latest/reference/iam/tag-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-open-id-connect-provider.html)

**Untuk mencantumkan tag untuk penyedia identitas IAM OIDC yang ada ()AWS CLI**
+ Untuk mencantumkan tag untuk penyedia identitas IAM OIDC yang ada, jalankan perintah berikut:
  + [https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-provider-tags.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-provider-tags.html)

**Untuk menghapus tag pada penyedia identitas IAM OIDC ()AWS CLI**
+ Untuk menghapus tag pada penyedia identitas IAM OIDC yang ada, jalankan perintah berikut:
  + [https://docs.aws.amazon.com/cli/latest/reference/iam/untag-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-open-id-connect-provider.html)

**Untuk menambah atau menghapus ID klien dari penyedia identitas IAM OIDC yang ada ()AWS CLI**

1. (Opsional) Untuk mendapatkan daftar semua penyedia identitas IAM OIDC di AWS akun Anda, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-providers.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-providers.html)

1. (Opsional) Untuk mendapatkan informasi terperinci tentang penyedia identitas IAM OIDC, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/get-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-open-id-connect-provider.html)

1. Untuk menambahkan ID klien baru ke penyedia identitas IAM OIDC yang ada, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/add-client-id-to-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/add-client-id-to-open-id-connect-provider.html)

1. Untuk menghapus klien dari penyedia identitas IAM OIDC yang ada, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/remove-client-id-from-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/remove-client-id-from-open-id-connect-provider.html)

**Untuk menghapus penyedia identitas IAM OIDC ()AWS CLI**

1. (Opsional) Untuk mendapatkan daftar semua penyedia identitas IAM OIDC di AWS akun Anda, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-providers.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-providers.html)

1. (Opsional) Untuk mendapatkan informasi terperinci tentang penyedia identitas IAM OIDC, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/get-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-open-id-connect-provider.html)

1. Untuk menghapus penyedia identitas IAM OIDC, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-open-id-connect-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-open-id-connect-provider.html)

## Membuat dan mengelola Penyedia Identitas OIDC (API)AWS
<a name="manage-oidc-provider-api"></a>

Anda dapat menggunakan perintah IAM API berikut untuk membuat dan mengelola penyedia OIDC.

**Untuk membuat penyedia identitas IAM OIDC (API)AWS**

1. (Opsional) Untuk mendapatkan daftar semua penyedia identitas IAM OIDC di AWS akun Anda, hubungi operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html)

1. Untuk membuat penyedia identitas IAM OIDC baru, panggil operasi berikut: 
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)

**Untuk memperbarui daftar sidik jari sertifikat server untuk penyedia identitas (API) IAM OIDC yang ada AWS**
+ Untuk memperbarui daftar sidik jari sertifikat server untuk penyedia identitas IAM OIDC, panggil operasi berikut:
  + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateOpenIDConnectProviderThumbprint.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateOpenIDConnectProviderThumbprint.html)

**Untuk menandai penyedia identitas (API) IAM OIDC yang ada AWS**
+ Untuk menandai penyedia identitas IAM OIDC yang ada, hubungi operasi berikut:
  + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagOpenIDConnectProvider.html)

**Untuk mencantumkan tag untuk penyedia identitas (API) IAM OIDC yang ada AWS**
+ Untuk mencantumkan tag untuk penyedia identitas IAM OIDC yang ada, panggil operasi berikut:
  + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviderTags.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviderTags.html)

**Untuk menghapus tag pada penyedia identitas (API) IAM OIDC yang ada AWS**
+ Untuk menghapus tag pada penyedia identitas IAM OIDC yang ada, hubungi operasi berikut:
  + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagOpenIDConnectProvider.html)

**Untuk menambah atau menghapus ID klien dari penyedia identitas (API) IAM OIDC yang ada AWS**

1. (Opsional) Untuk mendapatkan daftar semua penyedia identitas IAM OIDC di AWS akun Anda, hubungi operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html)

1. (Opsional) Untuk mendapatkan informasi terperinci tentang penyedia identitas IAM OIDC, panggil operasi berikut: 
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html)

1. Untuk menambahkan ID klien baru ke penyedia identitas IAM OIDC yang ada, panggil operasi berikut: 
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddClientIDToOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AddClientIDToOpenIDConnectProvider.html)

1. Untuk menghapus ID klien ke penyedia identitas IAM OIDC yang ada, panggil operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveClientIDFromOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveClientIDFromOpenIDConnectProvider.html)

**Untuk menghapus penyedia identitas (API) IAM OIDC AWS**

1. (Opsional) Untuk mendapatkan daftar semua penyedia identitas IAM OIDC di AWS akun Anda, hubungi operasi berikut: 
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviders.html)

1. (Opsional) Untuk mendapatkan informasi terperinci tentang penyedia identitas IAM OIDC, panggil operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOpenIDConnectProvider.html)

1. Untuk menghapus penyedia identitas IAM OIDC, hubungi operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteOpenIDConnectProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteOpenIDConnectProvider.html)

# Dapatkan cap jempol untuk penyedia identitas OpenID Connect
<a name="id_roles_providers_create_oidc_verify-thumbprint"></a>

Saat Anda [membuat penyedia identitas OpenID Connect (OIDC)](id_roles_providers_create_oidc.md) di IAM, IAM memerlukan cap jempol untuk otoritas sertifikat perantara (CA) teratas yang menandatangani sertifikat yang digunakan oleh penyedia identitas eksternal (iDP). Sidik jari adalah tanda tangan untuk sertifikat CA yang digunakan untuk menerbitkan sertifikat bagi IdP yang kompatibel dengan OIDC. Saat Anda membuat penyedia identitas IAM OIDC, Anda mempercayai identitas yang diautentikasi oleh IDP tersebut untuk memiliki akses ke identitas Anda. Akun AWS Dengan menggunakan cap jempol sertifikat CA, Anda mempercayai sertifikat apa pun yang dikeluarkan oleh CA tersebut dengan nama DNS yang sama dengan yang terdaftar. Ini menghilangkan perlunya memperbarui kepercayaan di setiap akun ketika Anda memperpanjang sertifikat tanda tangan IdP.

**penting**  
Dalam kebanyakan kasus, server federasi menggunakan dua sertifikat yang berbeda:  
Yang pertama membuat koneksi HTTPS antara AWS dan IDP Anda. Ini harus dikeluarkan oleh CA akar publik yang terkenal, seperti AWS Certificate Manager. Hal ini memungkinkan klien untuk memeriksa keandalan dan status sertifikat.
Yang kedua digunakan untuk mengenkripsi token, dan harus ditandatangani oleh CA *root* pribadi atau publik.

Anda dapat membuat penyedia identitas IAM OIDC dengan, [Tools for Windows AWS Command Line Interface PowerShell, atau](id_roles_providers_create_oidc.md#manage-oidc-provider-cli) IAM API. Saat Anda menggunakan metode ini, Anda memiliki opsi untuk memberikan sidik jari secara manual. Jika Anda memilih untuk tidak menyertakan sidik jari, IAM akan mengambil cap jempol CA menengah atas dari sertifikat server OIDC iDP. Jika Anda memilih untuk menyertakan sidik jari, Anda harus mendapatkan sidik jari secara manual dan menyediakannya. AWS

Saat Anda membuat penyedia identitas OIDC dengan [konsol IAM, IAM](id_roles_providers_create_oidc.md) mencoba mengambil cap jempol CA perantara teratas dari sertifikat server OIDC iDP untuk Anda. 

Kami menyarankan Anda juga mendapatkan sidik jari untuk OIDC iDP Anda secara manual dan memverifikasi bahwa IAM mengambil sidik jari yang benar. Untuk informasi selengkapnya tentang mendapatkan cap jempol sertifikat, lihat bagian berikut.

**catatan**  
AWS mengamankan komunikasi dengan penyedia identitas OIDC (IdPs) menggunakan perpustakaan otoritas sertifikat root tepercaya (CAs) kami untuk memverifikasi sertifikat TLS titik akhir JSON Web Key Set (JWKS). Jika IDP OIDC Anda bergantung pada sertifikat yang tidak ditandatangani oleh salah satu dari tepercaya ini CAs, hanya dengan itu kami mengamankan komunikasi menggunakan cap jempol yang diatur dalam konfigurasi iDP. AWS akan kembali ke verifikasi sidik jari jika kami tidak dapat mengambil sertifikat TLS atau jika TLS v1.3 diperlukan.

## Dapatkan cap jempol sertifikat
<a name="oidc-obtain-thumbprint"></a>

Anda menggunakan browser web dan alat baris perintah OpenSSL untuk mendapatkan cap jempol sertifikat untuk penyedia OIDC. Namun, Anda tidak perlu mendapatkan cap jempol sertifikat secara manual untuk membuat penyedia identitas IAM OIDC. Anda dapat menggunakan prosedur berikut untuk mendapatkan cap jempol sertifikat dari penyedia OIDC Anda.

**Untuk mendapatkan sidik jari untuk IdP OIDC**

1. Sebelum mendapatkan sidik jari untuk IdP OIDC, Anda harus mendapatkan alat baris perintah OpenSSL. Anda menggunakan alat ini untuk mengunduh rantai sertifikat IdP OIDC dan menghasilkan sidik jari untuk sertifikat akhir dalam rantai sertifikat. Jika Anda perlu menginstal dan mengonfigurasi OpenSSL, ikuti petunjuk di [Instal OpenSSL](#oidc-install-openssl) dan [Konfigurasi OpenSSL](#oidc-configure-openssl).

1. Mulailah dengan URL IdP OIDC (misalnya, `https://server.example.com`), lalu tambahkan `/.well-known/openid-configuration` untuk membentuk URL bagi dokumen konfigurasi IdP, seperti berikut:

   **https://*server.example.com*/.well-known/openid-configuration**

   Buka URL ini di browser web, ganti *server.example.com* dengan nama server iDP Anda. 

1. <a name="thumbstep2"></a>Pada dokumen yang ditampilkan, gunakan fitur **Cari** pada browser web untuk menemukan teks `"jwks_uri"`. Setelah teks `"jwks_uri"`, terdapat tanda titik dua (:) diikuti oleh URL. Salin nama domain yang sepenuhnya memenuhi syarat dari URL. Jangan sertakan `https://` atau jalur apa pun yang mengikuti domain tingkat atas. 

   ```
   {
    "issuer": "https://accounts.example.com",
    "authorization_endpoint": "https://accounts.example.com/o/oauth2/v2/auth",
    "device_authorization_endpoint": "https://oauth2.exampleapis.com/device/code",
    "token_endpoint": "https://oauth2.exampleapis.com/token",
    "userinfo_endpoint": "https://openidconnect.exampleapis.com/v1/userinfo",
    "revocation_endpoint": "https://oauth2.exampleapis.com/revoke",
    "jwks_uri": "https://www.exampleapis.com/oauth2/v3/certs",
   ...
   ```

1. Gunakan alat baris perintah OpenSSL untuk menjalankan perintah berikut. Ganti *keys.example.com* dengan nama domain yang Anda dapatkan[Step 3](#thumbstep2).

   ```
   openssl s_client -servername keys.example.com -showcerts -connect keys.example.com:443
   ```

1. Di jendela perintah Anda, gulir ke atas hingga Anda melihat sertifikat yang serupa dengan contoh berikut. Jika Anda melihat lebih dari satu sertifikat, cari sertifikat terakhir yang ditampilkan (di bagian akhir output perintah). Ini berisi sertifikat CA menengah teratas dalam rantai otoritas sertifikat.

   ```
   -----BEGIN CERTIFICATE-----
    MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC
    VVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6
    b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd
    BgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcN
    MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYD
    VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25z
    b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFt
    YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ
    21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
    rDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
    Ibb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4
    nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
    FFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTb
    NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=
    -----END CERTIFICATE-----
   ```

   Menyalin sertifikat (termasuk baris `-----BEGIN CERTIFICATE-----` dan `-----END CERTIFICATE-----`) dan tempel ke dalam file teks. Lalu simpan file dengan nama file **certificate.crt**.
**catatan**  
Rantai sertifikat penyedia identitas OIDC harus dimulai dengan domain atau URL penerbit, menyertakan sertifikat perantara (jika ada), dan diakhiri dengan sertifikat root. Jika urutan rantai sertifikat berbeda atau menyertakan duplikat atau sertifikat tambahan, Anda akan menerima kesalahan ketidakcocokan tanda tangan dan STS gagal memvalidasi JSON Web Token (JWT). Perbaiki urutan sertifikat dalam rantai yang dikembalikan dari server untuk menyelesaikan kesalahan. Untuk informasi selengkapnya tentang standar rantai sertifikat, lihat [certificate\$1list di RFC 5246 di situs web Seri RFC](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.2).

1. Gunakan alat baris perintah OpenSSL untuk menjalankan perintah berikut.

   ```
   openssl x509 -in certificate.crt -fingerprint -sha1 -noout
   ```

   Jendela perintah Anda menampilkan sidik jari sertifikat, yang terlihat mirip dengan contoh berikut:

   ```
   SHA1 Fingerprint=99:0F:41:93:97:2F:2B:EC:F1:2D:DE:DA:52:37:F9:C9:52:F2:0D:9E
   ```

   Hapus karakter titik dua (:) dari string ini untuk membuat sidik jari akhir, seperti ini:

   ```
   990F4193972F2BECF12DDEDA5237F9C952F20D9E
   ```

1. Jika Anda membuat penyedia identitas IAM OIDC dengan AWS CLI, Tools for Windows, atau IAM API PowerShell, memberikan cap jempol adalah opsional. Jika Anda memilih untuk tidak menyertakan sidik jari selama pembuatan, IAM akan mengambil cap jempol CA menengah atas dari sertifikat server OIDC iDP. Setelah penyedia identitas IAM OIDC dibuat, Anda dapat membandingkan sidik jari ini dengan sidik jari yang diambil oleh IAM.

   Jika Anda membuat penyedia identitas IAM OIDC di konsol IAM, konsol mencoba mengambil cap jempol CA perantara teratas dari sertifikat server OIDC iDP untuk Anda. Anda dapat membandingkan sidik jari ini dengan sidik jari yang diambil oleh IAM. **Setelah penyedia identitas IAM OIDC dibuat, Anda dapat melihat sidik jari untuk penyedia identitas IAM OIDC di tab **Verifikasi titik akhir** pada halaman konsol Ringkasan penyedia OIDC.**
**penting**  
Jika sidik jari yang Anda peroleh tidak cocok dengan yang Anda lihat di detail cap jempol penyedia identitas IAM OIDC, Anda sebaiknya tidak menggunakan penyedia OIDC. Sebagai gantinya, Anda harus menghapus penyedia OIDC yang dibuat dan kemudian mencoba lagi untuk membuat penyedia OIDC setelah beberapa waktu berlalu. Verifikasi bahwa cap jempol cocok sebelum Anda menggunakan penyedia. Jika sidik jari masih belum sama setelah percobaan kedua, gunakan [Forum IAM](https://forums.aws.amazon.com/forum.jspa?forumID=76) untuk menghubungi AWS.

## Instal OpenSSL
<a name="oidc-install-openssl"></a>

Jika Anda belum menginstal OpenSSL, ikuti petunjuk di bagian ini.

**Untuk menginstal OpenSSL di Linux atau Unix**

1. Pergi ke [OpenSSL: Sumber,](https://openssl.org/source/) Tarballs (https://openssl.org/source/).

1. Unduh sumber terbaru dan buat paketnya.

**Untuk menginstal OpenSSL di Windows**

1. Pergi ke [OpenSSL: Distribusi Biner](https://wiki.openssl.org/index.php/Binaries) (https://wiki.openssl. org/index.php/Binaries) untuk daftar situs tempat Anda dapat menginstal versi Windows.

1. Ikuti petunjuk di situs yang Anda pilih untuk memulai pemasangan.

1. Jika Anda diminta memasang **Microsoft Visual C\$1\$1 2008 Redistributables ** dan itu belum diinstal di sistem Anda, pilih tautan unduhan yang sesuai dengan lingkungan Anda. Ikuti petunjuk yang diberikan oleh **Microsoft Visual C\$1\$1 2008 Redistributable Setup Wizard**.
**catatan**  
Jika Anda tidak yakin apakah Microsoft Visual C \$1\$1 2008 Redistributables sudah diinstal pada sistem Anda, Anda dapat mencoba menginstal OpenSSL terlebih dahulu. Installer OpenSSL menampilkan peringatan jika Microsoft Visual C \$1\$1 2008 Redistributables belum diinstal. Pastikan Anda menginstal arsitektur (32-bit atau 64-bit) yang cocok dengan versi OpenSSL yang Anda instal.

1. Setelah Anda menginstal Microsoft Visual C \$1\$1 2008 Redistributables, pilih versi binari OpenSSL yang sesuai untuk lingkungan Anda dan simpan file secara lokal. Mulai **OpenSSL** Setup Wizard.

1. Ikuti petunjuk yang dijelaskan dalam **OpenSSL** Setup Wizard.

## Konfigurasi OpenSSL
<a name="oidc-configure-openssl"></a>

Sebelum Anda menggunakan perintah OpenSSL, Anda harus mengkonfigurasi sistem operasi sehingga memiliki informasi tentang lokasi di mana OpenSSL diinstal.

**Untuk mengkonfigurasi OpenSSL di Linux atau Unix**

1. Pada baris perintah, atur `OpenSSL_HOME` variabel ke lokasi instalasi OpenSSL:

   ```
   $ export OpenSSL_HOME=path_to_your_OpenSSL_installation
   ```

1. Atur jalur untuk menyertakan instalasi OpenSSL:

   ```
   $ export PATH=$PATH:$OpenSSL_HOME/bin
   ```
**catatan**  
Perubahan apa pun yang Anda lakukan terhadap variabel dengan perintah `export` hanya berlaku untuk sesi saat ini. Anda dapat membuat perubahan terus-menerus pada variabel lingkungan dengan menyetelnya di file konfigurasi shell Anda. Untuk informasi lebih lanjut, lihat dokumentasi untuk sistem operasi Anda.

**Untuk mengkonfigurasi OpenSSL pada Windows**

1. Buka jendela **Prompt Perintah**.

1. Mengatur `OpenSSL_HOME` variabel ke lokasi instalasi OpenSSL:

   ```
   C:\> set OpenSSL_HOME=path_to_your_OpenSSL_installation
   ```

1. Atur `OpenSSL_CONF` variabel ke lokasi file konfigurasi di instalasi OpenSSL Anda:

   ```
   C:\> set OpenSSL_CONF=path_to_your_OpenSSL_installation\bin\openssl.cfg
   ```

1. Atur jalur untuk menyertakan instalasi OpenSSL:

   ```
   C:\> set Path=%Path%;%OpenSSL_HOME%\bin
   ```
**catatan**  
Perubahan apa pun yang Anda lakukan terhadap variabel lingkungan Windows dalam jendela **Prompt Perintah** hanya valid untuk sesi baris perintah saat ini. Anda dapat membuat perubahan persisten pada variabel lingkungan dengan mengaturnya sebagai properti sistem. Prosedur yang tepat tergantung pada versi Windows yang Anda gunakan. (Misalnya, di Windows 7, buka **Panel Kontrol**, **Sistem dan Keamanan**, **Sistem**. Kemudian pilih **Pengaturan sistem lanjutan**, tab **Lanjutan**, **Variabel Lingkungan**.) Untuk informasi selengkapnya, lihat dokumentasi Windows.

# Kontrol penyedia identitas untuk penyedia OIDC bersama
<a name="id_roles_providers_oidc_secure-by-default"></a>

Untuk penyedia identitas OpenID Connect (OIDC) bersama yang diakui (IdPs), IAM memerlukan evaluasi eksplisit atas klaim spesifik dalam kebijakan kepercayaan peran. Klaim yang diperlukan ini, yang disebut *kontrol penyedia identitas*, dievaluasi oleh IAM selama pembuatan peran dan pembaruan kebijakan kepercayaan. Jika kebijakan kepercayaan peran tidak mengevaluasi kontrol yang diperlukan oleh iDP OIDC bersama, pembuatan atau pembaruan peran akan gagal. Ini memastikan bahwa hanya identitas resmi dari organisasi yang dituju yang dapat mengambil peran dan mengakses AWS sumber daya. Kontrol keamanan ini sangat penting ketika penyedia OIDC dibagi di beberapa AWS pelanggan.



Kontrol penyedia identitas tidak akan dievaluasi oleh IAM untuk kebijakan kepercayaan peran OIDC yang ada. Untuk setiap modifikasi kebijakan kepercayaan peran untuk peran OIDC yang ada, IAM akan mengharuskan kontrol penyedia identitas dimasukkan dalam kebijakan kepercayaan peran.

## Jenis penyedia OIDC
<a name="id_roles_providers_oidc_idp_types"></a>

****IAM mengkategorikan penyedia identitas OIDC menjadi dua jenis yang berbeda: pribadi dan bersama.**** IdP OIDC pribadi dapat dimiliki dan dikelola oleh satu organisasi atau dapat menjadi penyewa penyedia SaaS, dengan URL Penerbit OIDC-nya berfungsi sebagai pengidentifikasi unik khusus untuk organisasi itu. Sebaliknya, iDP OIDC bersama digunakan di beberapa organisasi, di mana URL Penerbit OIDC mungkin identik untuk semua organisasi yang menggunakan penyedia identitas bersama tersebut.

Tabel di bawah ini menguraikan perbedaan utama antara penyedia OIDC pribadi dan bersama:


| Karakteristik | Penyedia OIDC Pribadi | Penyedia OIDC Bersama | 
| --- | --- | --- | 
|  Penerbit  |  Unik untuk organisasi  |  Dibagikan di berbagai organisasi  | 
|  Informasi Sewa  |  Dikomunikasikan melalui Emiten yang unik  |  Dikomunikasikan melalui klaim di JWT  | 
|  Persyaratan Kebijakan Kepercayaan  |  Tidak diperlukan evaluasi klaim khusus  |  Evaluasi klaim spesifik yang diperlukan  | 

## Penyedia identitas OIDC bersama dengan kontrol penyedia identitas
<a name="id_roles_providers_oidc_idp_shared_oidc_secure_support"></a>

Saat Anda membuat atau memodifikasi penyedia OIDC di IAM, sistem secara otomatis mengidentifikasi dan mengevaluasi klaim yang diperlukan untuk penyedia OIDC bersama yang diakui. Jika kontrol penyedia identitas tidak dikonfigurasi dalam kebijakan kepercayaan peran, pembuatan atau pembaruan peran akan gagal karena kesalahan. MalformedPolicyDocument 

Tabel berikut mencantumkan penyedia OIDC bersama yang memerlukan kontrol penyedia identitas dalam kebijakan kepercayaan peran dan informasi tambahan untuk membantu Anda mengonfigurasi kontrol penyedia identitas.


| IdP OIDC | URL OIDC | Klaim Sewa | Klaim yang Diperlukan | 
| --- | --- | --- | --- | 
| [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html) |  `cognito-identity.amazonaws.com`  | aud |  `cognito-identity.amazonaws.com:aud`  | 
| [Sentinel Azure](https://learn.microsoft.com/en-us/azure/defender-for-cloud/sentinel-connected-aws) |  https://sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d  |  sts:RoleSessionName  |  sts:RoleSessionName  | 
| [Buildkite](https://buildkite.com/docs/pipelines/security/oidc/aws) |  https://agent.buildkite.com  |  sub  |  agent.buildkite.com:sub  | 
| [SaaS Codefresh](https://codefresh.io/docs/docs/integrations/oidc-pipelines/) | https://oidc.codefresh.io | sub |  oidc.codefresh.io:sub  | 
| [Studio DVC](https://dvc.org/doc/studio/user-guide/openid-connect) | https://studio.datachain.ai/api | sub |  studio.datachain.ai/api:sub  | 
| [GitHub tindakan](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) | https://token.actions.githubusercontent.com | sub |  token.actions.githubusercontent.com:sub  | 
| [GitHub streaming log audit](https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise) | https://oidc-configuration.audit-log.githubusercontent.com | sub |  oidc-configuration.audit-log.githubusercontent.com:sub  | 
| [GitHub vstoken](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) | https://vstoken.actions.githubusercontent.com | sub |  vstoken.actions.githubusercontent.com:sub  | 
| [GitLab](https://docs.gitlab.com/ci/cloud_services/aws/) | https://gitlab.com | sub |  gitlab.com:sub  | 
| [IBM Turbonomik SaaS\$1](https://www.ibm.com/docs/en/tarm/8.16.x?topic=turbonomic-setting-up-aws-iam-role-saas-deployments) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/id_roles_providers_oidc_secure-by-default.html)  | sub |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/id_roles_providers_oidc_secure-by-default.html)  | 
| [Awan Pulumi](https://www.pulumi.com/docs/pulumi-cloud/deployments/oidc/aws/) | https://api.pulumi.com/oidc | aud |  api.pulumi.com/oidc:aud  | 
| [sandboxes.cloud](https://docs.sandboxes.cloud/docs/cloud-resources-setup) | https://sandboxes.cloud | aud |  sandboxes.cloud:aud  | 
| [Scalr](https://docs.scalr.io/docs/aws) | https://scalr.io | sub |  scalr.io:sub  | 
| [Awan Shisho](https://shisho.dev/docs/g/getting-started/integrate-apps/aws/) | https://tokens.cloud.shisho.dev | sub |  tokens.cloud.shisho.dev:sub  | 
| [Awan Terraform](https://developer.hashicorp.com/terraform/cloud-docs/workspaces/dynamic-provider-credentials/aws-configuration) | https://app.terraform.io | sub |  app.terraform.io:sub  | 
| [Naik](https://docs.upbound.io/providers/provider-aws/authentication/) | https://proidc.upbound.io | sub |  proidc.upbound.io:sub  | 
| [Titik akhir global Vercel](https://vercel.com/docs/oidc/reference) | https://oidc.vercel.com | aud |  oidc.vercel.com:aud  | 

\$1 IBM Turbonomic secara berkala memperbarui URL Penerbit OIDC mereka dengan versi platform baru. Kami akan menambahkan emiten Turbonomic OIDC tambahan dalam cakupan sebagai penyedia bersama sesuai kebutuhan.

Untuk setiap OIDC baru IdPs yang diidentifikasi IAM sebagai bersama, kontrol penyedia identitas yang diperlukan untuk kebijakan kepercayaan peran akan didokumentasikan dan ditegakkan dengan cara yang sama.

## Sumber daya tambahan
<a name="concept_additional_resources"></a>

Sumber daya tambahan:
+ Untuk informasi selengkapnya tentang membuat peran IAM untuk federasi OIDC, lihat. [Buat peran untuk federasi OpenID Connect (konsol)](id_roles_create_for-idp_oidc.md)
+ Untuk daftar kunci kondisi IAM yang dapat digunakan untuk klaim, lihat[Kunci yang tersedia untuk AWS federasi OIDC](reference_policies_iam-condition-keys.md#condition-keys-wif).

# Federasi SAMP 2.0
<a name="id_roles_providers_saml"></a>

AWS mendukung federasi identitas dengan [SAMP 2.0 (Security Assertion Markup Language 2.0)](https://wiki.oasis-open.org/security), standar terbuka yang digunakan oleh banyak penyedia identitas (). IdPs Fitur ini memungkinkan sistem masuk tunggal (SSO) federasi, sehingga pengguna dapat masuk ke Konsol Manajemen AWS atau memanggil operasi AWS API tanpa Anda harus membuat pengguna IAM untuk semua orang di organisasi Anda. Dengan menggunakan SAMP, Anda dapat menyederhanakan proses konfigurasi federasi dengan AWS, karena Anda dapat menggunakan layanan IDP alih-alih [menulis kode proxy identitas kustom](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingFedTokens.html).

**catatan**  
Federasi identitas SAMP IAM mendukung tanggapan SAMP terenkripsi dari penyedia identitas federasi berbasis SAMP (). IdPs Pusat Identitas IAM dan Amazon Cognito tidak mendukung pernyataan SAMP terenkripsi dari penyedia identitas IAM SAMP.  
Anda dapat secara tidak langsung menambahkan dukungan untuk pernyataan SAMP terenkripsi ke federasi kumpulan identitas Amazon Cognito dengan kumpulan pengguna Amazon Cognito. Kumpulan pengguna memiliki federasi SAMP yang independen dari federasi IAM SAMP dan mendukung penandatanganan dan enkripsi [SAMP](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html). Meskipun fitur ini tidak meluas langsung ke kumpulan identitas, kumpulan pengguna dapat berupa IdPs kumpulan identitas. Untuk menggunakan enkripsi SAMP dengan kumpulan identitas, tambahkan penyedia SAMP dengan enkripsi ke kumpulan pengguna yang merupakan idP ke kumpulan identitas.  
Penyedia SALL Anda harus dapat mengenkripsi pernyataan SAMP dengan kunci yang disediakan oleh kumpulan pengguna Anda. Kumpulan pengguna tidak akan menerima pernyataan yang dienkripsi dengan sertifikat yang telah disediakan IAM.

Federasi IAM mendukung penggunaan kasus ini: 
+ [**Akses gabungan untuk memungkinkan pengguna atau aplikasi di organisasi Anda memanggil operasi AWS API**](#CreatingSAML-configuring). Kasus penggunaan ini dibahas di bagian berikut. Anda menggunakan pernyataan SAML (sebagai bagian dari tanggapan autentikasi) yang dibuat dalam organisasi Anda untuk mendapatkan kredensial keamanan sementara. Skenario ini serupa dengan skenario federasi lain yang mendukung IAM, seperti yang dijelaskan dalam [Minta kredensil keamanan sementara](id_credentials_temp_request.md) dan [Federasi OIDC](id_roles_providers_oidc.md). Namun, SAMP 2.0 yang berbasis IdPs di organisasi Anda menangani banyak detail saat dijalankan untuk melakukan pemeriksaan autentikasi dan otorisasi.
+ [**Single sign-on (SSO) berbasis web ke dari Konsol Manajemen AWS **](id_roles_providers_enable-console-saml.md) organisasi Anda. Pengguna dapat masuk ke portal di organisasi Anda yang dihosting oleh IDP yang kompatibel dengan SAMP 2.0, memilih opsi untuk pergi ke, dan diarahkan AWS ke konsol tanpa harus memberikan informasi login tambahan. Anda dapat menggunakan IdP SAML pihak ketiga untuk menetapkan akses SSO ke konsol atau Anda dapat membuat IdP kustom untuk mengaktifkan akses konsol bagi pengguna eksternal Anda. Untuk informasi selengkapnya tentang membangun IdP kustom, lihat [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md).

**Topics**
+ [Menggunakan federasi berbasis SAMP untuk akses API AWS](#CreatingSAML-configuring)
+ [Ikhtisar pengkonfigurasian federasi berbasis SAML 2.0](#CreatingSAML-configuring-IdP)
+ [Ikhtisar peran untuk memungkinkan akses federasi SAML ke sumber daya Anda AWS](#CreatingSAML-configuring-role)
+ [Mengidentifikasi pengguna secara unik dalam federasi berbasis SAML](#CreatingSAML-userid)
+ [Buat penyedia identitas SAMP di IAM](id_roles_providers_create_saml.md)
+ [Konfigurasikan IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak dan menambahkan klaim](id_roles_providers_create_saml_relying-party.md)
+ [Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS](id_roles_providers_saml_3rd-party.md)
+ [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md)
+ [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md)
+ [Lihat respons SAMP di browser Anda](troubleshoot_saml_view-saml-response.md)

## Menggunakan federasi berbasis SAMP untuk akses API AWS
<a name="CreatingSAML-configuring"></a>

Asumsikan bahwa Anda ingin menyediakan cara bagi karyawan untuk menyalin data dari komputer mereka ke folder cadangan. Anda membuat aplikasi yang dapat dijalankan pengguna di komputer mereka. Di bagian belakang, aplikasi membaca dan menulis objek dalam ember Amazon S3. Pengguna tidak memiliki akses langsung ke AWS Alih-alih, proses berikut ini digunakan:

![\[Mendapatkan kredensial keamanan sementara berdasarkan pernyataan SAML\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/saml-based-federation-diagram.png)


1. Pengguna dalam organisasi Anda menggunakan aplikasi klien untuk meminta autentikasi dari IdP organisasi Anda.

1. IdP mengautentikasi pengguna menggunakan penyimpanan identitas organisasi Anda.

1. IdP menyusun pernyataan SAML dengan informasi tentang pengguna dan mengirimkan pertanyaan ke aplikasi klien. Saat Anda mengaktifkan enkripsi SAMP untuk IDP SAMP IAM Anda, pernyataan ini dienkripsi oleh iDP eksternal Anda.

1. Aplikasi klien memanggil AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)API, meneruskan ARN dari penyedia SAMP, ARN dari peran yang akan diambil, dan pernyataan SAMP dari iDP. Jika enkripsi diaktifkan, pernyataan yang diteruskan melalui aplikasi klien tetap dienkripsi saat transit.

1. (Opsional) AWS STS menggunakan kunci pribadi yang Anda unggah dari iDP eksternal Anda untuk mendekripsi pernyataan SAMP terenkripsi.

1. Tanggapan API ke aplikasi klien meliputi kredensial keamanan sementara.

1. Aplikasi klien menggunakan kredensial keamanan sementara untuk menghubungi operasi API Amazon S3. 

## Ikhtisar pengkonfigurasian federasi berbasis SAML 2.0
<a name="CreatingSAML-configuring-IdP"></a>

Sebelum Anda dapat menggunakan federasi berbasis SAMP 2.0 seperti yang dijelaskan dalam skenario dan diagram sebelumnya, Anda harus mengonfigurasi IDP organisasi Anda dan Anda untuk saling mempercayai. Akun AWS Proses umum untuk mengonfigurasikan kepercayaan ini dijelaskan dalam langkah-langkah berikut. Di dalam organisasi, Anda harus memiliki [IdP yang mendukung SAML 2.0](id_roles_providers_saml_3rd-party.md), seperti Microsoft Active Directory Federation Service (AD FS, bagian dari Windows Server), Shibboleth, atau penyedia SAML 2.0 lain yang kompatibel. 

**catatan**  
Untuk meningkatkan ketahanan federasi, kami menyarankan Anda mengonfigurasi IDP dan AWS federasi Anda untuk mendukung beberapa titik akhir masuk SAMP. Untuk detailnya, lihat artikel Blog AWS Keamanan [Cara menggunakan endpoint SAMP regional untuk](https://aws.amazon.com/blogs//security/how-to-use-regional-saml-endpoints-for-failover) failover.

**Konfigurasikan IDP organisasi Anda dan AWS saling percaya**

1. Daftar AWS sebagai penyedia layanan (SP) dengan IDP organisasi Anda. Gunakan dokumen metadata SAMP dari `https://region-code.signin.aws.amazon.com/static/saml-metadata.xml` 

   Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html).

   Anda dapat secara opsional menggunakan dokumen metadata SAMP dari. `https://signin.aws.amazon.com/static/saml-metadata.xml` 

1. <a name="createxml"></a>Menggunakan iDP organisasi Anda, Anda menghasilkan file XHTML metadata SAMP setara yang dapat menggambarkan IDP Anda sebagai penyedia identitas IAM di. AWS Ini harus menyertakan nama penerbit, tanggal pembuatan, tanggal kedaluwarsa, dan kunci yang AWS dapat digunakan untuk memvalidasi tanggapan otentikasi (pernyataan) dari organisasi Anda. 

   Jika Anda mengizinkan pernyataan SAMP terenkripsi dikirim dari iDP eksternal, Anda harus membuat file kunci pribadi menggunakan iDP organisasi Anda, dan mengunggah file ini ke konfigurasi IAM SAMP Anda dalam format file.pem. AWS STS membutuhkan kunci pribadi ini untuk mendekripsi tanggapan SAMP yang sesuai dengan kunci publik yang diunggah ke IDP Anda.
**catatan**  
Seperti yang didefinisikan oleh [SAMP V2.0 Metadata Interoperability Profile Versi 1.0](https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.html), IAM tidak mengevaluasi atau mengambil tindakan pada berakhirnya sertifikat X.509 dalam dokumen metadata SAMP. Jika Anda khawatir tentang sertifikat X.509 yang kedaluwarsa, kami sarankan untuk memantau tanggal kedaluwarsa sertifikat dan sertifikat berputar sesuai dengan kebijakan tata kelola dan keamanan organisasi Anda.

1. <a name="samlovrcreateentity"></a>Di konsol IAM, Anda membuat penyedia identitas SAMP. Sebagai bagian dari proses ini, Anda mengunggah dokumen metadata SAMP dan kunci dekripsi pribadi yang dihasilkan oleh iDP di organisasi Anda. [Step 2](#createxml) Untuk informasi selengkapnya, lihat [Buat penyedia identitas SAMP di IAM](id_roles_providers_create_saml.md).

1. <a name="samlovrcreaterole"></a>Di IAM, Anda membuat satu atau lebih peran IAM. Dalam kebijakan kepercayaan peran, Anda menetapkan penyedia SAMP sebagai prinsipal, yang membangun hubungan kepercayaan antara organisasi Anda dan. AWS Kebijakan izin peran menetapkan hal yang diizinkan oleh pengguna organisasi Anda di AWS. Untuk informasi selengkapnya, lihat [Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md).
**catatan**  
SAMP yang IDPs digunakan dalam kebijakan kepercayaan peran harus berada dalam akun yang sama dengan peran tersebut.

1. Di iDP organisasi Anda, Anda menentukan pernyataan yang memetakan pengguna atau grup di organisasi Anda ke peran IAM. Perhatikan bahwa pengguna dan grup yang berbeda pada organisasi Anda mungkin memetakan IAM role yang berbeda. Langkah yang tepat untuk melakukan pemetaan bergantung pada IdP apa yang Anda gunakan. Di [skenario sebelumnya](#CreatingSAML-configuring) dari folder Amazon S3 untuk pengguna, mungkin semua pengguna akan memetakan peran yang sama yang memberikan izin Amazon S3. Untuk informasi selengkapnya, lihat [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md).

   Jika iDP Anda mengaktifkan SSO ke AWS konsol, maka Anda dapat mengonfigurasi durasi maksimum sesi konsol. Untuk informasi selengkapnya, lihat [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md).

1. Dalam aplikasi yang Anda buat, Anda memanggil AWS Security Token Service `AssumeRoleWithSAML` API, meneruskannya ARN dari penyedia SAMP yang Anda buat, ARN peran untuk berasumsi bahwa Anda membuat[Step 4](#samlovrcreaterole), dan pernyataan SAMP tentang pengguna saat ini yang Anda dapatkan dari idP Anda. [Step 3](#samlovrcreateentity) AWS memastikan bahwa permintaan untuk mengambil peran berasal dari iDP yang direferensikan di penyedia SAMP. 

   Untuk informasi selengkapnya, lihat [AssumeRoleWithSAMP](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) di *Referensi AWS Security Token Service API*. 

1. Jika permintaan berhasil, API mengembalikan serangkaian kredensial keamanan sementara, yang dapat digunakan aplikasi Anda untuk membuat permintaan yang ditandatangani ke AWS. Aplikasi Anda memiliki informasi tentang pengguna saat ini dan dapat mengakses folder khusus pengguna di Amazon S3, seperti yang dijelaskan dalam skenario sebelumnya. 

## Ikhtisar peran untuk memungkinkan akses federasi SAML ke sumber daya Anda AWS
<a name="CreatingSAML-configuring-role"></a>

Peran yang Anda buat di IAM menentukan apa yang boleh dilakukan oleh prinsipal federasi SAMP dari organisasi Anda. AWS Saat membuat kebijakan kepercayaan untuk peran, Anda menentukan penyedia SAML yang dibuat sebelumnya sebagai `Principal`. Anda juga dapat mencakup kebijakan kepercayaan dengan `Condition` untuk hanya mengizinkan pengguna yang cocok dengan atribut SAML tertentu untuk mengakses peran. Misalnya, Anda dapat menyebutkan bahwa hanya pengguna yang afiliasi SAML-nya `staff` (sebagaimana dinyatakan oleh https://openidp.feide.no) diizinkan untuk mengakses peran tersebut, sebagaimana digambarkan oleh kebijakan sampel berikut:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Allow",
    "Principal": {"Federated": "arn:aws:iam::111122223333:saml-provider/ExampleOrgSSOProvider"},
    "Action": "sts:AssumeRoleWithSAML",
    "Condition": {
      "StringEquals": {
        "saml:aud": "https://us-east-1.signin.aws.amazon.com/saml",
        "saml:iss": "https://openidp.feide.no"
      },
      "ForAllValues:StringLike": {"saml:edupersonaffiliation": ["staff"]}
    }
  }]
}
```

------

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws-cn:iam::111122223333:saml-provider/ExampleOrgSSOProvider"
            },
            "Action": "sts:AssumeRoleWithSAML",
            "Condition": {
                "StringEquals": {
                    "saml:aud": "https://ap-east-1.signin.amazonaws.cn/saml",
                    "saml:iss": "https://openidp.feide.no"
                },
                "ForAllValues:StringLike": {
                    "saml:edupersonaffiliation": [
                        "staff"
                    ]
                }
            }
        }
    ]
}
```

------

**catatan**  
SAMP yang IDPs digunakan dalam kebijakan kepercayaan peran harus berada dalam akun yang sama dengan peran tersebut.

Kunci `saml:aud` konteks dalam kebijakan menentukan URL yang ditampilkan browser Anda saat masuk ke konsol. URL titik akhir masuk ini harus sesuai dengan atribut penerima penyedia identitas Anda. Anda dapat menyertakan login URLs dalam wilayah tertentu. AWS merekomendasikan penggunaan titik akhir Regional alih-alih titik akhir global untuk meningkatkan ketahanan federasi. Jika Anda hanya memiliki satu titik akhir yang dikonfigurasi, Anda tidak akan dapat bergabung jika titik akhir menjadi AWS tidak tersedia. Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html).

Contoh berikut menunjukkan format URL login dengan opsional`region-code`.

`https://region-code.signin.aws.amazon.com/saml`

Jika enkripsi SAMP diperlukan, URL masuk harus menyertakan pengenal unik yang ditetapkan ke penyedia AWS SAMP Anda, yang dapat Anda temukan di halaman detail penyedia Identitas. Dalam contoh berikut, URL login menyertakan pengenal unik IDP, yang memerlukan /acs/ ditambahkan ke jalur masuk.

`https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID`

Untuk kebijakan izin dalam peran tersebut, Anda menentukan izin seperti yang Anda inginkan untuk peran apa pun. **Misalnya, jika pengguna dari organisasi Anda diizinkan untuk mengelola instans Amazon Elastic Compute Cloud, Anda harus secara eksplisit mengizinkan tindakan Amazon EC2 dalam kebijakan izin, seperti yang ada dalam kebijakan terkelola Amazon. EC2 FullAccess** 

Untuk informasi selengkapnya tentang kunci SAML yang dapat Anda periksa di kebijakan, lihat [Kunci yang tersedia untuk federasi berbasis SAMP AWS STS](reference_policies_iam-condition-keys.md#condition-keys-saml).

## Mengidentifikasi pengguna secara unik dalam federasi berbasis SAML
<a name="CreatingSAML-userid"></a>

Saat Anda membuat kebijakan akses di IAM, seringkali berguna untuk dapat menentukan izin berdasarkan identitas pengguna. Misalnya, bagi pengguna yang telah difederasikan menggunakan SAML, aplikasi mungkin ingin menyimpan informasi di Amazon S3 menggunakan struktur seperti ini: 

```
amzn-s3-demo-bucket/app1/user1
amzn-s3-demo-bucket/app1/user2
amzn-s3-demo-bucket/app1/user3
```

Anda dapat membuat bucket (`amzn-s3-demo-bucket`) dan folder (`app1`) melalui konsol Amazon S3 atau AWS CLI, karena itu adalah nilai statis. Namun, folder khusus pengguna (*user1*,*user2*,*user3*, dll.) harus dibuat pada waktu berjalan menggunakan kode, karena nilai yang mengidentifikasi pengguna tidak diketahui sampai pertama kali pengguna masuk melalui proses federasi. 

Untuk menulis kebijakan yang merujuk detail spesifik pengguna sebagai bagian dari nama sumber daya, Identitas pengguna harus tersedia dalam kunci SAML yang dapat digunakan dalam ketentuan kebijakan. Kunci-kunci berikut tersedia untuk federasi berbasis SAML 2.0 untuk digunakan dalam kebijakan IAM. Anda dapat menggunakan nilai yang dikembalikan oleh kunci berikut untuk membuat pengidentifikasi pengguna unik untuk sumber daya seperti folder Amazon S3. 
+ `saml:namequalifier`. Nilai hash berdasarkan konkasi dari `Issuer` nilai tanggapan (`saml:iss`) dan string dengan ID akun `AWS` dan nama ramah (bagian terakhir ARN) penyedia SAML di IAM. Gabungan ID akun dan nama ramah penyedia SAMP tersedia untuk kebijakan IAM sebagai kuncinya. `saml:doc` ID akun dan nama penyedia harus dipisahkan dengan '/' seperti pada “123456789012/provider\$1name”. Untuk informasi lebih lanjut, lihat kunci `saml:doc` di [Kunci yang tersedia untuk federasi berbasis SAMP AWS STS](reference_policies_iam-condition-keys.md#condition-keys-saml).

  Kombinasi `NameQualifier` dan `Subject` dapat digunakan untuk secara unik mengidentifikasi prinsipal federasi SAMP. Kode pseudo berikut menunjukkan bagaimana nilai ini dihitung. Dalam kode pseudo ini `+` menunjukkan kontegasi, `SHA1` mewakili fungsi yang menghasilkan rangkuman pesan menggunakan SHA-1, dan `Base64` mewakili fungsi yang menghasilkan versi yang dienkodekan Base-64 dari output hash.

   `Base64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )` 

   Untuk informasi lebih lanjut tentang kunci kebijakan yang tersedia untuk federasi SAML, lihat [Kunci yang tersedia untuk federasi berbasis SAMP AWS STS](reference_policies_iam-condition-keys.md#condition-keys-saml).
+ `saml:sub` (string). Ini adalah subjek klaim, yang mencakup nilai yang secara unik mengidentifikasi pengguna secara individu dalam organisasi (misalnya, `_cbb88bf52c2510eabe00c1642d4643f41430fe25e3`). 
+ `saml:sub_type` (string). Kunci ini dapat berupa `persistent`, `transient`, atau `Format` URI penuh dari `Subject` dan elemen `NameID` yang digunakan dalam pernyataan SAML Anda. Nilai dari `persistent` menunjukkan bahwa nilai dalam `saml:sub` sama untuk pengguna di semua sesi. Jika nilainya `transient`, pengguna memiliki nilai `saml:sub` untuk setiap sesi. Untuk informasi tentang elemen `NameID` `Format` atribut, lihat [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md). 

Contoh berikut menunjukkan kebijakan izin yang menggunakan kunci sebelumnya untuk memberikan izin ke folder khusus pengguna di Amazon S3. Kebijakan ini mengasumsikan bahwa objek Amazon S3 diidentifikasi menggunakan awalan yang menyertakan keduanya dan. `saml:namequalifier` `saml:sub` Perhatikan bahwa elemen `Condition` mencakup pengujian untuk memastikan bahwa `saml:sub_type` diatur ke `persistent`. Jika diatur ke `transient`, nilai `saml:sub` untuk pengguna dapat berbeda untuk setiap sesi, dan kombinasi nilai tidak boleh digunakan untuk mengidentifikasi folder khusus pengguna. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "s3:GetObject",
      "s3:PutObject",
      "s3:DeleteObject"
    ],
    "Resource": [
      "arn:aws:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}",
      "arn:aws:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}/*"
    ],
    "Condition": {"StringEquals": {"saml:sub_type": "persistent"}}
  }
}
```

------

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "s3:GetObject",
      "s3:PutObject",
      "s3:DeleteObject"
    ],
    "Resource": [
      "arn:aws-cn:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}",
      "arn:aws-cn:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}/*"
    ],
    "Condition": {"StringEquals": {"saml:sub_type": "persistent"}}
  }
}
```

------

Untuk informasi selengkapnya tentang pernyataan pemetaan dari IdP ke kunci kebijakan, lihat [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md). 

# Buat penyedia identitas SAMP di IAM
<a name="id_roles_providers_create_saml"></a>

Penyedia identitas IAM SAML 2.0 adalah entitas di IAM yang menggambarkan layanan penyedia identitas eksternal (IdP) yang mendukung standar [SAML 2.0 (Security Assertion Markup Language 2.0)](https://wiki.oasis-open.org/security). Anda menggunakan penyedia identitas IAM ketika Anda ingin membangun kepercayaan antara IDP yang kompatibel dengan SAMP seperti Shibboleth atau Layanan Federasi Direktori Aktif AWS dan, sehingga pengguna Anda dapat mengakses sumber daya. AWS Penyedia identitas IAM SAML digunakan sebagai prinsipal dalam kebijakan kepercayaan IAM. 

Untuk informasi selengkapnya tentang skenario ini, lihat [Federasi SAMP 2.0](id_roles_providers_saml.md).

Anda dapat membuat dan mengelola penyedia identitas IAM di Konsol Manajemen AWS atau dengan AWS CLI, Alat untuk Windows PowerShell, atau panggilan AWS API. 

Setelah Anda membuat penyedia identitas SAML, Anda harus membuat satu atau lebih peran IAM. Peran adalah identitas AWS yang tidak memiliki kredensialnya sendiri (seperti yang dilakukan pengguna). Tetapi dalam konteks ini, peran secara dinamis ditugaskan ke prinsipal federasi SAMP yang diautentikasi oleh IDP Anda. Peran ini memungkinkan IDP Anda untuk meminta kredenal keamanan sementara untuk akses ke. AWS Kebijakan yang ditetapkan untuk peran menentukan apa yang diizinkan dilakukan pengguna AWS. Untuk menciptakan peran bagi federasi SAML, lihat [Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md). 

Akhirnya, setelah Anda membuat peran, Anda menyelesaikan kepercayaan SAMP dengan mengonfigurasi IDP Anda dengan informasi tentang AWS dan peran yang Anda inginkan untuk digunakan oleh prinsipal federasi SAMP Anda. Ini disebut sebagai mengonfigurasi kepercayaan pihak pengandal antara IdP dan AWS. Untuk mengkonfigurasi kepercayaan pihak yang bergantung, lihat [Konfigurasikan IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak dan menambahkan klaim](id_roles_providers_create_saml_relying-party.md). 

**Topics**
+ [Prasyarat](#idp-manage-identityprovider-prerequisites)
+ [Membuat dan mengelola penyedia identitas SAMP IAM (konsol)](#idp-manage-identityprovider-console)
+ [Kelola kunci enkripsi SAMP](#id_federation_manage-saml-encryption)
+ [Membuat dan mengelola Penyedia Identitas SAMP IAM ()AWS CLI](#idp-create-identityprovider-CLI)
+ [Membuat dan mengelola penyedia identitas SAMP IAM (API)AWS](#idp-create-identityprovider-API)
+ [Langkah selanjutnya](#id_roles_create-for-saml-next-steps)

## Prasyarat
<a name="idp-manage-identityprovider-prerequisites"></a>

Sebelum Anda dapat membuat penyedia identitas SAMP, Anda harus memiliki informasi berikut dari IDP Anda.
+ Dapatkan dokumen metadata SAMP dari IDP Anda. Dokumen ini mencakup nama penerbit, informasi kedaluwarsa, dan kunci yang dapat digunakan untuk memvalidasi respons autentikasi SAML (penegasan) yang diterima dari IdP. Untuk menghasilkan dokumen metadata, gunakan perangkat lunak manajemen identitas yang disediakan oleh iDP eksternal Anda.
**penting**  
File metadata ini mencakup nama penerbit, informasi kedaluwarsa, dan kunci yang dapat digunakan untuk memvalidasi respons otentikasi SAMP (pernyataan) yang diterima dari iDP. File metadata harus dienkode dalam format UTF-8 tanpa tanda urutan byte (BOM). Untuk menghapus BOM, Anda dapat mengkode file sebagai UTF-8 menggunakan alat bantu edit teks, seperti Notepad\$1\$1.  
Sertifikat X.509 yang disertakan sebagai bagian dari dokumen metadata SAMP harus menggunakan ukuran kunci minimal 1024 bit. Selain itu, sertifikat X.509 juga harus bebas dari ekstensi berulang. Anda dapat menggunakan ekstensi, tetapi ekstensi hanya dapat muncul sekali dalam sertifikat. Jika sertifikat X.509 tidak memenuhi salah satu kondisi, pembuatan IDP gagal dan mengembalikan kesalahan “Tidak dapat mengurai metadata”.  
Seperti yang didefinisikan oleh [SAMP V2.0 Metadata Interoperability Profile Versi 1.0](https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.html), IAM tidak mengevaluasi atau mengambil tindakan pada berakhirnya sertifikat X.509 dalam dokumen metadata SAMP. Jika Anda khawatir tentang sertifikat X.509 yang kedaluwarsa, kami sarankan untuk memantau tanggal kedaluwarsa sertifikat dan sertifikat berputar sesuai dengan kebijakan tata kelola dan keamanan organisasi Anda.
+ Ketika Anda memilih untuk mengaktifkan enkripsi SAMP, Anda harus membuat file kunci pribadi menggunakan IDP Anda, dan mengunggah file ini ke konfigurasi IAM SAMP Anda dalam format file.pem. AWS STS membutuhkan kunci pribadi ini untuk mendekripsi tanggapan SAMP yang sesuai dengan kunci publik yang diunggah ke IDP Anda. Algoritma berikut didukung:
  + Algoritme enkripsi
    + AES-128
    + AES-256
    + RSA-OAEP
  + Algoritma transportasi utama
    + AES-CBC
    + AES-GCM

  Lihat dokumentasi penyedia identitas Anda untuk mengetahui langkah-langkah untuk membuat kunci pribadi.
**catatan**  
Pusat Identitas IAM dan Amazon Cognito tidak mendukung pernyataan SAMP terenkripsi dari penyedia identitas IAM SAMP. Anda dapat secara tidak langsung menambahkan dukungan untuk pernyataan SAMP terenkripsi ke federasi kumpulan identitas Amazon Cognito dengan kumpulan pengguna Amazon Cognito. Kumpulan pengguna memiliki federasi SAMP yang independen dari federasi IAM SAMP dan mendukung penandatanganan dan enkripsi [SAMP](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-SAML-signing-encryption.html). Meskipun fitur ini tidak meluas langsung ke kumpulan identitas, kumpulan pengguna dapat berupa IdPs kumpulan identitas. Untuk menggunakan enkripsi SAMP dengan kumpulan identitas, tambahkan penyedia SAMP dengan enkripsi ke kumpulan pengguna yang merupakan idP ke kumpulan identitas.  
Penyedia SALL Anda harus dapat mengenkripsi pernyataan SAMP dengan kunci yang disediakan oleh kumpulan pengguna Anda. Kumpulan pengguna tidak akan menerima pernyataan yang dienkripsi dengan sertifikat yang telah disediakan IAM.

Untuk petunjuk tentang cara mengonfigurasi banyak yang tersedia IdPs untuk dikerjakan AWS, termasuk cara membuat dokumen metadata SAMP yang diperlukan, lihat. [Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS](id_roles_providers_saml_3rd-party.md)

Untuk bantuan dengan federasi SAMP, lihat [Memecahkan masalah](troubleshoot_saml.md) federasi SAMP.

## Membuat dan mengelola penyedia identitas SAMP IAM (konsol)
<a name="idp-manage-identityprovider-console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk membuat, memperbarui, dan menghapus penyedia identitas IAM SAMP. Untuk bantuan dengan federasi SAMP, lihat [Memecahkan masalah](troubleshoot_saml.md) federasi SAMP.

**Untuk membuat penyedia identitas IAM SAML (konsol)**

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, pilih **Penyedia identitas** lalu pilih **Tambahkan penyedia**. 

1. Untuk **Konfigurasi penyedia**, pilih **SAML**. 

1. Ketikkan nama untuk penyedia identitas.

1. Untuk **Dokumen metadata**, pilih **Pilih file**, tentukan dokumen metadata SAML yang Anda unduh di [Prasyarat](#idp-manage-identityprovider-prerequisites).
**catatan**  
`cacheDuration`Atribut `validUntil` or dalam dokumen metadata SAMP Anda mendefinisikan **Valid hingga** tanggal untuk penyedia identitas. Jika dokumen metadata SAMP Anda tidak menyertakan atribut periode validitas, **Valid hingga** tanggal tidak akan cocok dengan tanggal kedaluwarsa sertifikat X.509 Anda.  
IAM tidak mengevaluasi atau mengambil tindakan pada berakhirnya sertifikat X.509 dalam dokumen metadata SAMP. Jika Anda khawatir tentang sertifikat X.509 yang kedaluwarsa, kami sarankan untuk memantau tanggal kedaluwarsa sertifikat dan sertifikat berputar sesuai dengan kebijakan tata kelola dan keamanan organisasi Anda.

1. (Opsional) Untuk **enkripsi SAMP**, **pilih Pilih file** dan pilih file kunci pribadi yang Anda buat. [Prasyarat](#idp-manage-identityprovider-prerequisites) Pilih **Memerlukan enkripsi** untuk hanya menerima permintaan terenkripsi dari IDP Anda.

1. (Opsional) Untuk **Menambahkan tag**, Anda dapat menambahkan pasangan kunci-nilai untuk membantu Anda mengidentifikasi dan mengatur. IdPs Anda juga dapat menggunakan tanda untuk mengontrol akses ke sumber daya AWS . Untuk mempelajari selengkapnya tentang penandaan penyedia identitas, lihat [Menandai penyedia identitas SALL IAM](id_tags_saml.md).

   Pilih **Tambahkan tanda**. Masukkan nilai untuk setiap pasangan nilai-kunci tanda. 

1. Verifikasi informasi yang telah Anda berikan. Setelah selesai, pilih **Tambahkan penyedia**. 

1. Tetapkan peran IAM ke penyedia identitas Anda. Peran ini memberikan identitas pengguna eksternal yang dikelola oleh izin penyedia identitas Anda untuk mengakses AWS sumber daya di akun Anda. Untuk mempelajari lebih lanjut tentang menciptakan peran untuk federasi identitas, lihat [Membuat peran untuk penyedia identitas pihak ketiga](id_roles_create_for-idp.md).
**catatan**  
SAMP yang IDPs digunakan dalam kebijakan kepercayaan peran harus berada dalam akun yang sama dengan peran tersebut.

**Untuk menghapus penyedia SAML (konsol)**

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, pilih **Penyedia identitas**.

1. Pilih tombol radio di samping penyedia identitas yang ingin Anda hapus.

1. Pilih **Hapus**. Jendela baru terbuka.

1. Konfirmasikan bahwa Anda ingin menghapus penyedia dengan mengetik kata `delete` di bidangnya. Lalu, pilih **Hapus**.

## Kelola kunci enkripsi SAMP
<a name="id_federation_manage-saml-encryption"></a>

Anda dapat mengonfigurasi penyedia IAM SAMP untuk menerima pernyataan terenkripsi dalam respons SAMP dari iDP eksternal Anda. Pengguna dapat berperan dengan pernyataan SAMP terenkripsi AWS dengan menelepon. `[sts:AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)`

Enkripsi SAMP memastikan bahwa pernyataan aman ketika melewati perantara atau pihak ketiga. Selain itu, fitur ini membantu Anda memenuhi FedRAMP atau persyaratan kebijakan kepatuhan internal apa pun yang mengamanatkan pernyataan SAMP untuk dienkripsi.

Untuk mengonfigurasi penyedia identitas SAMP IAM, lihat. [Buat penyedia identitas SAMP di IAM](#id_roles_providers_create_saml) Untuk bantuan dengan federasi SAMP, lihat [Memecahkan masalah](troubleshoot_saml.md) federasi SAMP.

### Putar kunci enkripsi SAMP
<a name="id_federation_manage-saml-keys-rotate"></a>

IAM menggunakan kunci pribadi yang Anda unggah ke penyedia IAM SAMP untuk mendekripsi pernyataan SAMP terenkripsi dari IDP Anda. Anda dapat menyimpan hingga dua file kunci pribadi untuk setiap penyedia identitas, memungkinkan Anda untuk memutar kunci pribadi seperlunya. **Ketika dua file disimpan, setiap permintaan pertama-tama akan mencoba untuk mendekripsi dengan yang terbaru **Ditambahkan pada** tanggal, kemudian IAM mencoba untuk mendekripsi permintaan dengan yang tertua Ditambahkan pada tanggal.**

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, pilih **Penyedia identitas** lalu pilih penyedia Anda dari daftar. 

1. Pilih tab **enkripsi SAMP** dan pilih **Tambahkan kunci baru**.

1. **Pilih **Pilih file** dan unggah kunci pribadi yang Anda unduh dari idP Anda sebagai file.pem. Kemudian, pilih Tambah kunci.**

1. **Di bagian **Kunci pribadi untuk dekripsi SAMP**, pilih file kunci pribadi yang kedaluwarsa dan pilih Hapus.** Kami menyarankan Anda menghapus kunci pribadi yang kedaluwarsa setelah menambahkan kunci pribadi baru untuk memastikan upaya pertama untuk mendekripsi pernyataan Anda berhasil.

## Membuat dan mengelola Penyedia Identitas SAMP IAM ()AWS CLI
<a name="idp-create-identityprovider-CLI"></a>

Anda dapat menggunakan AWS CLI untuk membuat, memperbarui, dan menghapus penyedia SAMP. Untuk bantuan dengan federasi SAMP, lihat [Memecahkan masalah](troubleshoot_saml.md) federasi SAMP.

**Untuk membuat penyedia identitas IAM dan mengunggah dokumen metadata ()AWS CLI**
+ Jalankan perintah ini: [https://docs.aws.amazon.com/cli/latest/reference/iam/create-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-saml-provider.html) 

**Untuk memperbarui penyedia identitas SAMP IAM ()AWS CLI**

Anda dapat memperbarui file metadata, pengaturan enkripsi SAMP, dan memutar file dekripsi kunci pribadi untuk penyedia IAM SAMP Anda. Untuk memutar kunci pribadi, tambahkan kunci pribadi baru Anda dan kemudian hapus kunci lama dalam permintaan terpisah. Untuk informasi selengkapnya tentang memutar kunci pribadi, lihat[Kelola kunci enkripsi SAMP](#id_federation_manage-saml-encryption).
+ Jalankan perintah ini:[https://docs.aws.amazon.com/cli/latest/reference/iam/update-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-saml-provider.html) 

**Untuk menandai penyedia identitas IAM yang ada ()AWS CLI**
+ Jalankan perintah ini:[https://docs.aws.amazon.com/cli/latest/reference/iam/tag-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-saml-provider.html) 

**Untuk mencantumkan tag untuk penyedia identitas IAM yang ada ()AWS CLI**
+ Jalankan perintah ini:[https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-provider-tags.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-provider-tags.html) 

**Untuk menghapus tag pada penyedia identitas IAM yang ada ()AWS CLI**
+ Jalankan perintah ini:[https://docs.aws.amazon.com/cli/latest/reference/iam/untag-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-saml-provider.html) 

**Untuk menghapus penyedia identitas SAMP IAM ()AWS CLI**

1. (Opsional) Untuk mencantumkan informasi untuk semua penyedia, seperti ARN, tanggal pembuatan, dan kedaluwarsa, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-providers.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-providers.html)

1. (Opsional) Untuk mendapatkan informasi tentang penyedia tertentu, seperti ARN, tanggal pembuatan, tanggal kedaluwarsa, pengaturan enkripsi, dan informasi kunci pribadi, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/get-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-saml-provider.html)

1. Untuk menghapus penyedia identitas IAM, jalankan perintah berikut:
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-saml-provider.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-saml-provider.html)

## Membuat dan mengelola penyedia identitas SAMP IAM (API)AWS
<a name="idp-create-identityprovider-API"></a>

Anda dapat menggunakan AWS API untuk membuat, memperbarui, dan menghapus penyedia SAMP. Untuk bantuan dengan federasi SAMP, lihat [Memecahkan masalah](troubleshoot_saml.md) federasi SAMP.

**Untuk membuat penyedia identitas IAM dan mengunggah dokumen metadata (API)AWS**
+ Hubungi operasi ini: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateSAMLProvider.html)

**Untuk memperbarui penyedia identitas SAMP IAM (API)AWS**

Anda dapat memperbarui file metadata, pengaturan enkripsi SAMP, dan memutar file dekripsi kunci pribadi untuk penyedia IAM SAMP Anda. Untuk memutar kunci pribadi, tambahkan kunci pribadi baru Anda dan kemudian hapus kunci lama dalam permintaan terpisah. Untuk informasi selengkapnya tentang memutar kunci pribadi, lihat[Kelola kunci enkripsi SAMP](#id_federation_manage-saml-encryption).
+ Hubungi operasi ini: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html)

**Untuk menandai penyedia identitas IAM (AWS API) yang ada**
+ Hubungi operasi ini: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagSAMLProvider.html)

**Untuk mencantumkan tag untuk penyedia identitas IAM (AWS API) yang ada**
+ Hubungi operasi ini: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviderTags.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviderTags.html)

**Untuk menghapus tag pada penyedia identitas IAM (AWS API) yang ada**
+ Hubungi operasi ini: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagSAMLProvider.html)

**Untuk menghapus penyedia identitas IAM (AWS API)**

1. (Opsional) Untuk mencantumkan informasi untuk semua IdPs, seperti ARN, tanggal pembuatan, dan kedaluwarsa, hubungi operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviders.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviders.html)

1. (Opsional) Untuk mendapatkan informasi tentang penyedia tertentu, seperti ARN, tanggal pembuatan, tanggal kedaluwarsa, pengaturan enkripsi, dan informasi kunci pribadi, hubungi operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html)

1. Untuk menghapus IdP, panggil operasi berikut:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSAMLProvider.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSAMLProvider.html)

## Langkah selanjutnya
<a name="id_roles_create-for-saml-next-steps"></a>

Setelah Anda membuat penyedia identitas SAMP, siapkan kepercayaan pihak yang mengandalkan dengan IDP Anda. Anda juga dapat menggunakan klaim dari respons autentikasi IDP Anda dalam kebijakan untuk mengontrol akses ke peran.
+ Anda harus memberi tahu IDP tentang AWS sebagai penyedia layanan. Ini disebut menambahkan kepercayaan pihak yang mengandalkan antara AWS IDP Anda dan. Proses yang tepat untuk menambahkan kepercayaan pihak yang bergantung tergantung pada IdP yang Anda gunakan. Lihat perinciannya di [Konfigurasikan IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak dan menambahkan klaim](id_roles_providers_create_saml_relying-party.md).
+ Ketika IDP mengirimkan respons yang berisi klaim AWS, banyak klaim yang masuk memetakan ke AWS kunci konteks. Anda dapat menggunakan kunci konteks ini dalam kebijakan IAM menggunakan elemen Kondisi untuk mengontrol akses ke peran. Untuk detailnya, lihat [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md)

# Konfigurasikan IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak dan menambahkan klaim
<a name="id_roles_providers_create_saml_relying-party"></a>

Saat Anda membuat penyedia identitas IAM dan peran untuk akses SAMP, Anda memberi tahu AWS tentang penyedia identitas eksternal (iDP) dan apa yang boleh dilakukan penggunanya. Langkah Anda selanjutnya adalah memberi tahu IDP tentang AWS sebagai penyedia layanan. Ini disebut menambahkan *kepercayaan pihak yang bergantung* antara IdP dan AWS. Proses yang tepat untuk menambahkan kepercayaan pihak yang bergantung tergantung pada IdP yang Anda gunakan. Untuk detailnya, lihat dokumentasi untuk perangkat lunak manajemen identitas Anda. 

Banyak yang IdPs memungkinkan Anda untuk menentukan URL dari mana IDP dapat membaca dokumen XMLyang berisi informasi dan sertifikat pihak yang bergantung. Untuk AWS, gunakan URL titik akhir masuk. Contoh berikut menunjukkan format URL dengan opsional`region-code`.

`https://region-code.signin.aws.amazon.com/static/saml-metadata.xml`

Jika enkripsi SAMP diperlukan, URL harus menyertakan pengenal unik yang diberikan ke penyedia AWS SAMP Anda, yang dapat Anda temukan di halaman detail penyedia Identitas. Contoh berikut menunjukkan URL login regional yang menyertakan pengenal unik.

`https://region-code.signin.aws.amazon.com/static/saml/IdP-ID/saml-metadata.xml`

Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html). Untuk AWS nilainya, Anda juga dapat menggunakan `https://signin.aws.amazon.com/saml` endpoint non-regional.

Jika Anda tidak dapat menentukan URL secara langsung, unduh dokumen XML dari URL sebelumnya dan impor ke perangkat lunak IdP Anda. 

Anda juga perlu membuat aturan klaim yang sesuai di IDP Anda yang ditentukan AWS sebagai pihak yang mengandalkan. *Ketika IDP mengirimkan respons SAMP ke AWS titik akhir, itu termasuk pernyataan SAMP yang berisi satu atau lebih *klaim.** Klaim adalah informasi tentang pengguna dan grupnya. Aturan klaim memetakan informasi tersebut ke dalam atribut SAML. Ini memungkinkan Anda memastikan bahwa respons otentikasi SAMP dari IDP Anda berisi atribut yang diperlukan yang AWS digunakan dalam kebijakan IAM untuk memeriksa izin untuk prinsipal federasi SAMP. Untuk informasi selengkapnya, lihat topik berikut:
+  [Ikhtisar peran untuk memungkinkan akses federasi SAML ke sumber daya Anda AWS](id_roles_providers_saml.md#CreatingSAML-configuring-role). Topik ini membahas penggunaan kunci khusus SAMP dalam kebijakan IAM dan cara menggunakannya untuk membatasi izin untuk prinsipal federasi SAMP.
+ [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md). Topik ini membahas cara mengonfigurasi klaim SAML yang mencakup informasi tentang pengguna. Klaim dikemas menjadi pernyataan SAML dan disertakan dalam respons SAML yang dikirimkan ke AWS. Anda harus memastikan bahwa informasi yang dibutuhkan oleh AWS kebijakan termasuk dalam pernyataan SAMP dalam bentuk yang AWS dapat mengenali dan menggunakan.
+  [Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS](id_roles_providers_saml_3rd-party.md). Topik ini menyediakan tautan ke dokumentasi yang disediakan oleh organisasi pihak ketiga tentang cara mengintegrasikan solusi identitas AWS. 

**catatan**  
Untuk meningkatkan ketahanan federasi, kami menyarankan Anda mengonfigurasi IDP dan AWS federasi Anda untuk mendukung beberapa titik akhir masuk SAMP. Untuk detailnya, lihat artikel Blog AWS Keamanan [Cara menggunakan endpoint SAMP regional untuk](https://aws.amazon.com/blogs//security/how-to-use-regional-saml-endpoints-for-failover) failover.

# Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS
<a name="id_roles_providers_saml_3rd-party"></a>

**catatan**  
Kami menyarankan Anda meminta pengguna manusia Anda untuk menggunakan kredensil sementara saat mengakses. AWS Sudahkah Anda mempertimbangkan untuk menggunakan AWS IAM Identity Center? Anda dapat menggunakan Pusat Identitas IAM untuk mengelola akses ke beberapa secara terpusat Akun AWS dan memberi pengguna akses masuk tunggal yang dilindungi MFA ke semua akun yang ditetapkan dari satu tempat. Dengan IAM Identity Center, Anda dapat membuat dan mengelola identitas pengguna di IAM Identity Center atau dengan mudah terhubung ke penyedia identitas kompatibel SAMP 2.0 yang ada. Untuk informasi selengkapnya, lihat [Apa itu Pusat Identitas IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) dalam *Panduan Pengguna AWS IAM Identity Center *.

Tautan berikut membantu Anda mengonfigurasi solusi penyedia identitas SAMP 2.0 (IDP) pihak ketiga untuk bekerja AWS dengan federasi. Periksa dengan penyedia identitas Anda untuk menentukan apakah mereka mendukung enkripsi token SAMP. Untuk persyaratan enkripsi SAMP, lihat[Kelola kunci enkripsi SAMP](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

**Tip**  
AWS Support engineer dapat membantu pelanggan yang memiliki rencana dukungan bisnis dan perusahaan dengan beberapa tugas integrasi yang melibatkan perangkat lunak pihak ketiga. Untuk daftar platform dan aplikasi yang didukung saat ini, lihat [Perangkat lunak pihak ketiga apa yang didukung?](https://aws.amazon.com/premiumsupport/faqs/#what3rdParty) dalam *AWS Support FAQs*.


****  

| Solusi | Informasi lebih lanjut | 
| --- | --- | 
| Auth0 |  [Integrasikan dengan Amazon Web Services](https://auth0.com/docs/integrations/aws) — Halaman di situs web dokumentasi Auth0 ini memiliki tautan ke sumber daya yang menjelaskan cara mengatur sistem masuk tunggal (SSO) dengan Konsol Manajemen AWS dan menyertakan contoh. JavaScript Anda dapat mengonfigurasikan Auth0 untuk meneruskan [tag sesi](id_session-tags.md). Untuk informasi selengkapnya, lihat [Auth0 Mengumumkan Kemitraan dengan Tag AWS Sesi IAM](https://auth0.com/blog/auth0-partners-with-aws-for-iam-session-tags/). | 
| Microsoft Entra |  [Tutorial: Integrasi Microsoft Entra SSO dengan AWS Single-Account Access](https://learn.microsoft.com/en-us/azure/active-directory/saas-apps/amazon-web-service-tutorial) - Tutorial ini di situs web Microsoft menjelaskan cara mengatur Microsoft Entra (sebelumnya dikenal sebagai Azure AD) sebagai penyedia identitas (iDP) menggunakan federasi SAMP. | 
| Centrify | [Konfigurasikan Centrify dan Gunakan SAMP untuk SSO AWS](https://docs.centrify.com/Content/Applications/AppsWeb/AmazonSAML.htm) - Halaman ini di situs web Centrify menjelaskan cara mengonfigurasi Centrify untuk menggunakan SAMP untuk SSO. AWS | 
| CyberArk | Konfigurasikan [CyberArk](https://docs.cyberark.com/Product-Doc/OnlineHelp/Idaptive/Latest/en/Content/Applications/AppsWeb/AmazonSAML.htm)untuk menyediakan Amazon Web Services (AWS) akses ke pengguna yang masuk melalui SAMP single sign-on (SSO) dari User Portal. CyberArk  | 
| ForgeRock | [Platform ForgeRock Identitas](https://backstage.forgerock.com/docs/am/6.5/saml2-guide/#saml2-create-hosted-idp) terintegrasi dengan AWS. Anda dapat mengonfigurasikan ForgeRock untuk meneruskan [tag sesi](id_session-tags.md). Untuk informasi lebih lanjut, lihat [Kontrol Akses Berbasis Atribut untuk Amazon Web Services](https://www.forgerock.com/blog/attribute-based-access-control-amazon-web-services). | 
| Google Workspace | [Aplikasi cloud Amazon Web Services](https://support.google.com/a/answer/6194963) — Artikel di situs Bantuan Admin Google Workspace ini menjelaskan cara mengonfigurasi Google Workspace sebagai IDP SAMP 2.0 sebagai penyedia layanan. AWS  | 
| IBM | Anda dapat mengonfigurasikan IBM untuk meneruskan [tag sesi](id_session-tags.md). Untuk informasi selengkapnya, lihat [IBM Cloud Identity IDaa S salah satu yang pertama mendukung tag AWS sesi](https://community.ibm.com/community/user/security/blogs/adam-case/2019/11/25/ibm-cloud-identity-idaas-one-of-first-to-support-aws-session-tags). | 
| JumpCloud |  [Memberikan Akses melalui Peran IAM untuk Single Sign On (SSO) dengan Amazon AWS](https://support.jumpcloud.com/support/s/article/Granting-Access-via-IAM-Roles-for-Single-Sign-On-SSO-with-Amazon-AWS) - Artikel ini di JumpCloud situs web menjelaskan cara mengatur dan mengaktifkan SSO berdasarkan peran IAM untuk. AWS | 
| Matrix42 | [MyWorkspace Panduan Memulai](https://myworkspace.matrix42.com/documents/MyWorkspace-Getting-Started-with-AWS.pdf) — Panduan ini menjelaskan cara mengintegrasikan layanan AWS identitas dengan Matrix42 MyWorkspace. | 
| Microsoft Active Directory Federation Services (AD FS) |  [Catatan Lapangan: Mengintegrasikan Layanan Federasi Direktori Aktif dengan AWS IAM Identity Center](https://aws.amazon.com/blogs/architecture/field-notes-integrating-active-directory-federation-service-with-aws-single-sign-on/) - Posting ini di Blog AWS Arsitektur menjelaskan aliran otentikasi antara AD FS dan AWS IAM Identity Center (IAM Identity Center). IAM Identity Center mendukung federasi identitas dengan SAMP 2.0, memungkinkan integrasi dengan solusi AD FS. Pengguna dapat masuk ke portal Pusat Identitas IAM dengan kredensi perusahaan mereka mengurangi overhead admin untuk mempertahankan kredensil terpisah di IAM Identity Center. Anda juga dapat mengonfigurasi AD FS untuk meneruskan [tag sesi](id_session-tags.md). Untuk informasi lebih lanjut, lihat [Gunakan kontrol akses berbasis atribut dengan AD FS untuk menyederhanakan manajemen izin IAM](https://aws.amazon.com/blogs/security/attribute-based-access-control-ad-fs-simplify-iam-permissions-management/).  | 
| miniOrange | [SSO untuk AWS](http://miniorange.com/amazon-web-services-%28aws%29-single-sign-on-%28sso%29) — Halaman ini di situs web MiniOrange menjelaskan cara membangun akses aman AWS untuk perusahaan dan kontrol penuh atas akses AWS aplikasi.  | 
| Okta |  [Mengintegrasikan Antarmuka Baris Perintah Amazon Web Services Menggunakan Okta](https://support.okta.com/help/Documentation/Knowledge_Article/Integrating-the-Amazon-Web-Services-Command-Line-Interface-Using-Okta) - Dari halaman ini di situs dukungan Okta Anda dapat mempelajari cara mengonfigurasi Okta untuk digunakan. AWS Anda dapat mengonfigurasikan Okta untuk meneruskan [tag sesi](id_session-tags.md). Untuk informasi selengkapnya, lihat [Okta dan AWS Mitra untuk Menyederhanakan Akses Melalui Tag Sesi](https://www.okta.com/blog/2019/11/okta-and-aws-partner-to-simplify-access-via-session-tags/). | 
| Okta | [AWS Federasi Akun](https://help.okta.com/oie/en-us/Content/Topics/DeploymentGuides/AWS/aws-deployment.htm) — Bagian ini di situs web Okta menjelaskan cara mengatur dan mengaktifkan Pusat Identitas IAM untuk. AWS | 
| OneLogin | Dari [OneLoginKnowledgebase](https://onelogin.service-now.com/support), SAML AWS cari daftar artikel yang menjelaskan cara mengatur fungsionalitas Pusat Identitas IAM antara OneLogin dan AWS untuk skenario peran tunggal dan multi-peran. Anda dapat mengonfigurasi OneLogin untuk meneruskan [tag sesi](id_session-tags.md). Untuk informasi selengkapnya, lihat [OneLogin dan Tag Sesi: Kontrol Akses Berbasis Atribut untuk AWS Sumber Daya](https://www.onelogin.com/blog/aws-session-tags-integration). | 
| Identitas Ping |  [PingFederate AWS Konektor](https://support.pingidentity.com/s/marketplace-integration-details?recordId=a7i1W0000004HBwQAM) - Lihat detail tentang PingFederate AWS Konektor, templat koneksi cepat untuk mengatur koneksi masuk tunggal (SSO) dan penyediaan dengan mudah. Baca dokumentasi dan unduh PingFederate AWS Konektor terbaru untuk integrasi dengan AWS. Anda dapat mengonfigurasikan Identitas Ping untuk meneruskan [tag sesi](id_session-tags.md). Untuk informasi selengkapnya, lihat [Mengumumkan Dukungan Identitas Ping untuk Kontrol Akses Berbasis Atribut di AWS](https://support.pingidentity.com/s/document-item?bundleId=integrations&topicId=pon1571779451105.html).  | 
| RadiantLogic | [Mitra Teknologi Radiant Logic](http://www.radiantlogic.com/about/partners/technology-partners/) - Layanan Identitas RadiantOne Federasi Radiant Logic terintegrasi dengan AWS untuk menyediakan pusat identitas untuk SSO berbasis SAMP.  | 
| RSA | [Amazon Web Services - Panduan Implementasi Siap RSA memberikan panduan](https://community.rsa.com/s/article/Amazon-Web-Services-RSA-Ready-Implementation-Guide) untuk mengintegrasikan AWS dan RSA. Untuk informasi selengkapnya tentang konfigurasi SAMP, lihat [Amazon Web Services - Konfigurasi SSO Halaman Saya SALL - Panduan Implementasi Siap RSA](https://community.rsa.com/s/article/Amazon-Web-Services-SAML-My-Page-SSO-Configuration-RSA-Ready-Implementation-Guide). | 
| Salesforce.com |  [Cara mengkonfigurasi SSO dari Salesforce ke AWS](https://developer.salesforce.com/page/Configuring-SAML-SSO-to-AWS) - Artikel cara ini di situs pengembang Salesforce.com menjelaskan cara mengatur penyedia identitas (idP) di Salesforce dan mengkonfigurasi sebagai penyedia layanan. AWS  | 
| SecureAuth |  [AWS - SecureAuth SAMP SSO](https://docs.secureauth.com/2104/en/amazon-web-services--aws---idp-initiated--integration-guide.html) - Artikel ini di SecureAuth situs web menjelaskan cara mengatur integrasi SAMP dengan alat AWS . SecureAuth  | 
| Shibboleth |  [Cara Menggunakan Shibboleth untuk SSO ke Konsol Manajemen AWS](https://aws.amazon.com/blogs/security/how-to-use-shibboleth-for-single-sign-on-to-the-aws-management-console) - Entri ini di Blog AWS Keamanan menyediakan step-by-step tutorial tentang cara mengatur Shibboleth dan mengkonfigurasinya sebagai penyedia identitas untuk. AWS Anda dapat mengonfigurasikan Shibboleth untuk meneruskan [tag sesi](id_session-tags.md). | 

Untuk detail selengkapnya, lihat halaman [Mitra IAM](https://aws.amazon.com/iam/partners/) di AWS situs web. 

# Konfigurasikan pernyataan SAMP untuk respons otentikasi
<a name="id_roles_providers_create_saml_assertions"></a>

Setelah memverifikasi identitas pengguna di organisasi, penyedia identitas eksternal (iDP) akan mengirimkan respons autentikasi ke URL titik akhir AWS masuk. Respons ini adalah permintaan POST yang menyertakan token SAML yang mematuhi standar [Pengikatan HTTP POST untuk SAML 2.0](http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf) dan berisi elemen, atau *klaim* berikut. Anda mengonfigurasi klaim ini di IdP yang kompatibel dengan SAML. Lihat dokumentasi IdP Anda untuk instruksi tentang cara memasukkan klaim ini.

Ketika IDP mengirimkan respons yang berisi klaim AWS, banyak klaim yang masuk memetakan ke AWS kunci konteks. Kunci konteks ini dapat diperiksa di kebijakan IAM menggunakan elemen `Condition`. Daftar pemetaan yang tersedia mengikuti di bagian ini [Memetakan atribut SAMP untuk AWS mempercayai kunci konteks kebijakan](#saml-attribute-mapping).

## `Subject` dan `NameID`
<a name="saml_subject-name-id"></a>

Respons harus menyertakan tepat satu `SubjectConfirmation` `SubjectConfirmationData` elemen dengan elemen yang mencakup `NotOnOrAfter` atribut dan `Recipient` atribut. Atribut Penerima harus menyertakan nilai yang cocok dengan URL titik akhir AWS masuk. IDP Anda dapat menggunakan istilah`ACS`,`Recipient`, atau merujuk `Target` ke atribut ini.

Jika enkripsi SAMP diperlukan, URL masuk harus menyertakan pengenal unik yang ditetapkan ke penyedia AWS SAMP Anda, yang dapat Anda temukan di halaman detail penyedia Identitas. Contoh berikut menunjukkan format URL login dengan opsional`region-code`.

`https://region-code.signin.aws.amazon.com/saml`

Dalam contoh berikut, URL login menyertakan pengenal unik, yang memerlukan /acs/ ditambahkan ke jalur masuk.

`https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID`

Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html). Untuk AWS nilainya, Anda juga dapat menggunakan titik akhir `https://signin.aws.amazon.com/saml` masuk global.

`NameID`elemen dapat memiliki nilai persisten, sementara, atau terdiri dari URI Format lengkap seperti yang disediakan oleh solusi iDP. Nilai persisten menunjukkan bahwa nilai dalam `NameID` adalah sama untuk pengguna di antara sesi. Jika nilainya bersifat sementara, pengguna memiliki `NameID` nilai yang berbeda untuk setiap sesi. Interaksi masuk tunggal mendukung jenis pengidentifikasi berikut:
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:entity`

Kebijakan berikut menunjukkan sebuah contoh. Gantikan nilai Anda sendiri untuk nilai yang ditandai.

```
<Subject>
  <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">_cbb88bf52c2510eabe00c1642d4643f41430fe25e3</NameID>
  <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    <SubjectConfirmationData NotOnOrAfter="2013-11-05T02:06:42.876Z" Recipient="https://region-code.signin.aws.amazon.com/saml/SAMLSP4SHN3UIS2D558H46"/>
  </SubjectConfirmation>
</Subject>
```

**penting**  
Kunci `saml:aud` konteks berasal dari atribut *penerima SAMP* karena SAMP setara dengan bidang audiens OIDC, misalnya,. `accounts.google.com:aud`

## `PrincipalTag` Atribut SAML
<a name="saml_role-session-tags"></a>

(Opsional) Anda dapat menggunakan elemen `Attribute` dengan atribut `Name` diatur ke `https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}`. Elemen ini memungkinkan Anda untuk meneruskan atribut sebagai tanda sesi dalam pernyataan SAML. Untuk informasi lebih lanjut tentang tag sesi, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

Untuk menyampaikan atribut sebagai tag sesi, sertakan elemen `AttributeValue` yang menentukan nilai tag. Misalnya, untuk melewati pasangan nilai kunci tag `Project` = `Marketing` dan `CostCenter` = `12345`, gunakan atribut berikut. Termasuk elemen `Attribute` terpisah untuk setiap tag.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project">
  <AttributeValue>Marketing</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter">
  <AttributeValue>12345</AttributeValue>
</Attribute>
```

Untuk mengatur tanda di atas sebagai transitif, sertakan elemen `Attribute` lain dengan atribut `Name` yang diatur ke `https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys`. Ini adalah atribut multinilai opsional yang menetapkan tanda sesi Anda sebagai transitif. Tanda transitif tetap ada saat Anda menggunakan sesi SAML untuk mengambil peran lain di AWS. Ini dikenal sebagai [perangkaian peran](id_roles.md#iam-term-role-chaining). Misalnya, untuk mengatur tag `Principal` dan `CostCenter` yang bersifat transitif, gunakan atribut berikut untuk menentukan kunci.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys">
  <AttributeValue>Project</AttributeValue>
  <AttributeValue>CostCenter</AttributeValue>
</Attribute>
```

## `Role` Atribut SAML
<a name="saml_role-attribute"></a>

Anda dapat menggunakan elemen `Attribute` dengan atribut `Name` diatur ke `https://aws.amazon.com/SAML/Attributes/Role`. Elemen ini berisi satu atau lebih `AttributeValue` elemen yang mencantumkan penyedia identitas IAM dan peran yang pengguna dipetakan oleh idP Anda. [Peran IAM dan penyedia identitas IAM ditentukan sebagai pasangan yang dibatasi koma ARNs dalam format yang sama dengan `RoleArn` dan `PrincipalArn` parameter yang diteruskan ke SAMP. AssumeRoleWith](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) Elemen ini harus memuat setidaknya satu pasangan peran-penyedia (elemen `AttributeValue`), dan dapat berisi beberapa pasangan. Jika elemen berisi beberapa pasangan, maka pengguna diminta untuk memilih peran mana yang akan diambil ketika mereka menggunakan WebSSO untuk masuk ke. Konsol Manajemen AWS

**penting**  
Nilai dari atribut `Name` dalam tag `Attribute` peka terhadap huruf besar-kecil. Nilai harus diatur ke `https://aws.amazon.com/SAML/Attributes/Role` dengan tepat.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role">
  <AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>
  <AttributeValue>arn:aws:iam::account-number:role/role-name2,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>
  <AttributeValue>arn:aws:iam::account-number:role/role-name3,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>
</Attribute>
```

## `RoleSessionName` Atribut SAML
<a name="saml_role-session-attribute"></a>

Anda dapat menggunakan elemen `Attribute` dengan atribut `Name` diatur ke `https://aws.amazon.com/SAML/Attributes/RoleSessionName`. Elemen ini berisi satu elemen `AttributeValue` yang menyediakan pengenal untuk kredensial sementara yang dikeluarkan ketika peran diambil. Anda dapat menggunakan ini untuk mengasosiasikan kredensial sementara dengan pengguna yang menggunakan aplikasi Anda. Elemen ini digunakan untuk menampilkan informasi pengguna di Konsol Manajemen AWS. Nilai dalam elemen `AttributeValue` harus terdiri dari 2 hingga 64 karakter, dapat berisi hanya karakter alfanumerik, garis bawah, dan karakter berikut: **. , \$1 = @ -** (tanda hubung). Tidak dapat berisi spasi. Nilai ini umumnya adalah ID pengguna (`john`) atau alamat email (`johndoe@example.com`). Nilai tidak boleh berupa nilai yang mencakup spasi, seperti nama tampilan pengguna (`John Doe`).

**penting**  
Nilai dari atribut `Name` dalam tag `Attribute` peka terhadap huruf besar-kecil. Nilai harus diatur ke `https://aws.amazon.com/SAML/Attributes/RoleSessionName` dengan tepat.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName">
  <AttributeValue>user-id-name</AttributeValue>
</Attribute>
```

## `SessionDuration` Atribut SAML
<a name="saml_role-session-duration"></a>

(Opsional) Anda dapat menggunakan elemen `Attribute` dengan atribut `Name` diatur ke `https://aws.amazon.com/SAML/Attributes/SessionDuration"`. Elemen ini berisi satu `AttributeValue` elemen yang menentukan berapa lama pengguna dapat mengakses Konsol Manajemen AWS sebelum harus meminta kredensi sementara baru. Nilai adalah bilangan bulat yang mewakili jumlah detik untuk sesi. Nilai dapat berkisar dari 900 detik (15 menit) hingga 43200 detik (12 jam). Jika atribut ini tidak ada, maka kredensial berlangsung selama satu jam (nilai default parameter `DurationSeconds` dari API `AssumeRoleWithSAML`).

Untuk menggunakan atribut ini, Anda harus mengonfigurasi penyedia SAMP untuk menyediakan akses masuk tunggal ke titik akhir web login Konsol Manajemen AWS melalui konsol di. `https://region-code.signin.aws.amazon.com/saml` Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html). Anda dapat menggunakan URL berikut secara opsional:`https://signin.aws.amazon.com/static/saml`. Perhatikan bahwa atribut ini hanya memperluas sesi ke Konsol Manajemen AWS. Atribut ini tidak dapat memperpanjang masa pakai kredensial lainnya. Namun, jika dibuat dalam Panggilan API `AssumeRoleWithSAML`, atribut dapat digunakan untuk *mempersingkat* durasi sesi. Masa pakai kredensial default yang dikembalikan oleh panggilan adalah 60 menit. 

Perhatikan juga bahwa jika atribut `SessionNotOnOrAfter` juga ditentukan, nilai yang ***lebih sedikit*** dari kedua atribut, `SessionDuration` atau `SessionNotOnOrAfter`, menetapkan durasi maksimum sesi konsol.

Saat Anda mengaktifkan sesi konsol dengan durasi yang diperpanjang, risiko penyusupan kredensial meningkat. Untuk membantu Anda mengurangi risiko ini, Anda dapat segera menonaktifkan sesi konsol aktif untuk peran apa pun dengan memilih **Mencabut Sesi** pada halaman **Ringkasan Peran** di konsol IAM. Untuk informasi selengkapnya, lihat [Mencabut kredensi keamanan sementara peran IAM](id_roles_use_revoke-sessions.md). 

**penting**  
Nilai dari atribut `Name` dalam tag `Attribute` peka terhadap huruf besar-kecil. Nilai harus diatur ke `https://aws.amazon.com/SAML/Attributes/SessionDuration` dengan tepat.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration">
  <AttributeValue>1800</AttributeValue>
</Attribute>
```

## `SourceIdentity` Atribut SAML
<a name="saml_sourceidentity"></a>

(Opsional) Anda dapat menggunakan elemen `Attribute` dengan atribut `Name` diatur ke `https://aws.amazon.com/SAML/Attributes/SourceIdentity`. Elemen ini berisi satu `AttributeValue` elemen yang menyediakan pengenal untuk orang atau aplikasi yang menggunakan peran IAM. Nilai untuk identitas sumber tetap ada saat Anda menggunakan sesi SAMP untuk mengambil peran lain yang AWS dikenal sebagai rantai [peran](id_roles.md#iam-term-role-chaining). Nilai untuk identitas sumber hadir dalam permintaan untuk setiap tindakan yang diambil selama sesi peran. Nilai yang ditetapkan tidak dapat diubah selama sesi peran. Administrator kemudian dapat menggunakan AWS CloudTrail log untuk memantau dan mengaudit informasi identitas sumber untuk menentukan siapa yang melakukan tindakan dengan peran bersama.

Nilai dalam elemen `AttributeValue` harus terdiri dari 2 hingga 64 karakter, dapat berisi hanya karakter alfanumerik, garis bawah, dan karakter berikut: **. , \$1 = @ -** (tanda hubung). Tidak dapat berisi spasi. Nilai biasanya merupakan atribut yang berhubungan dengan pengguna seperti id pengguna (`john`) atau alamat email (`johndoe@example.com`). Nilai tidak boleh berupa nilai yang mencakup spasi, seperti nama tampilan pengguna (`John Doe`). Untuk informasi selengkapnya tentang penggunaan identitas sumber, lihat [Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan](id_credentials_temp_control-access_monitor.md).

**penting**  
Jika pernyataan SAML Anda dikonfigurasikan untuk menggunakan atribut [`SourceIdentity`](#saml_sourceidentity), kebijakan kepercayaan Anda juga harus mencakup tindakan `sts:SetSourceIdentity`, atau operasi pengambilan peran akan gagal. Untuk informasi selengkapnya tentang penggunaan identitas sumber, lihat [Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan](id_credentials_temp_control-access_monitor.md).

Untuk meneruskan atribut identitas sumber, sertakan elemen `AttributeValue` yang menentukan nilai identitas sumber. Misalnya, untuk meneruskan identitas sumber `Diego` menggunakan atribut berikut.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity">
  <AttributeValue>Diego</AttributeValue>
```

## Memetakan atribut SAMP untuk AWS mempercayai kunci konteks kebijakan
<a name="saml-attribute-mapping"></a>

Tabel di bagian ini mencantumkan atribut SAML yang umum digunakan dan cara mereka dipetakan untuk memercayai kunci konteks syarat kebijakan di AWS. Anda dapat menggunakan kunci ini untuk mengontrol akses ke sebuah peran. Untuk melakukannya, bandingkan kunci dengan nilai yang disertakan dalam pernyataan yang menyertai permintaan akses SAML.

**penting**  
Kunci ini hanya tersedia di kebijakan kepercayaan IAM (kebijakan yang menentukan siapa yang dapat mengambil peran) dan tidak berlaku untuk kebijakan izin.

Di tabel atribut eduPerson dan eduOrg, nilai diketik sebagai string atau sebagai daftar string. Untuk nilai string, Anda dapat menguji nilai ini dalam kebijakan kepercayaan IAM menggunakan ketentuan `StringEquals` atau `StringLike`. Untuk nilai yang berisi daftar string, Anda dapat menggunakan `ForAnyValue` dan `ForAllValues` [operator set kebijakan](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) untuk menguji nilai-nilai dalam kebijakan kepercayaan.

**catatan**  
Anda harus menyertakan hanya satu klaim per kunci AWS konteks. Jika Anda menyertakan lebih dari satu, hanya satu klaim yang akan dipetakan. 

Tabel berikut menunjukkan atribut EduPerson dan EduOrg.


| Atribut eduPerson atau eduOrg (kunci `Name`) | Peta ke kunci AWS konteks ini (`FriendlyName`kunci) | Tipe | 
| --- | --- | --- | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.1`   |   `eduPersonAffiliation`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.2`   |   `eduPersonNickname`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.3`   |   `eduPersonOrgDN`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.4`   |   `eduPersonOrgUnitDN`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.5`   |   `eduPersonPrimaryAffiliation`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.6`   |   `eduPersonPrincipalName`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.7`   |   `eduPersonEntitlement`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.8`   |   `eduPersonPrimaryOrgUnitDN`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.9`   |   `eduPersonScopedAffiliation`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.10`   |   `eduPersonTargetedID`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.11`   |   `eduPersonAssurance`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.2`   |   `eduOrgHomePageURI`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.3`   |   `eduOrgIdentityAuthNPolicyURI`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.4`   |   `eduOrgLegalName`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.5`   |   `eduOrgSuperiorURI`   |  Daftar string  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.6`   |   `eduOrgWhitePagesURI`   |  Daftar string  | 
|   `urn:oid:2.5.4.3`   |   `cn`   |  Daftar string  | 

Tabel berikut menunjukkan atribut Active Directory.


| Atribut AD | Peta ke kunci AWS konteks ini | Tipe | 
| --- | --- | --- | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`  |  `name`  |  String  | 
|  `http://schemas.xmlsoap.org/claims/CommonName`  |  `commonName`  |  String  | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname`  |  `givenName`  |  String  | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname`  |  `surname`  |  String  | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`  |  `mail`  |  String  | 
|  `http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid`  |  `uid`  |  String  | 

Tabel berikut menunjukkan X.500 atribut.


| atribut X.500 | Peta ke kunci AWS konteks ini | Tipe | 
| --- | --- | --- | 
|  `2.5.4.3`  |  `commonName`  |  String  | 
|  `2.5.4.4`  |  `surname`  |  String  | 
|  `2.4.5.42`  |  `givenName`  |  String  | 
|  `2.5.4.45`  |  `x500UniqueIdentifier`  |  String  | 
|  `0.9.2342.19200300100.1.1`  |  `uid`  |  String  | 
|  `0.9.2342.19200300100.1.3`  |  `mail`  |  String  | 
|  `0.9.2342.19200300.100.1.45`  |  `organizationStatus`  |  Tali  | 

# Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS
<a name="id_roles_providers_enable-console-saml"></a>

Anda dapat menggunakan peran untuk mengonfigurasi penyedia identitas yang sesuai dengan SAMP 2.0 (IDP) dan mengizinkan prinsipal federasi SAMP AWS untuk mengakses. Konsol Manajemen AWS Peran ini memberikan izin kepada pengguna untuk melaksanakan tugas di konsol. Jika Anda ingin memberi prinsip federasi SAMP cara lain untuk mengakses AWS, lihat salah satu topik berikut:
+ AWS CLI: [Beralih ke peran IAM ()AWS CLI](id_roles_use_switch-role-cli.md)
+ Tools for Windows PowerShell: [Beralih ke peran IAM (Alat untuk Windows PowerShell)](id_roles_use_switch-role-twp.md)
+ AWS API: [Beralih ke peran IAM (AWS API)](id_roles_use_switch-role-api.md)

## Ikhtisar
<a name="enable-console-saml-overview"></a>

Diagram berikut menggambarkan alur untuk sistem masuk tunggal yang mendukung SAML. 

**catatan**  
Penggunaan khusus SAMP ini berbeda dari yang lebih umum diilustrasikan di [Federasi SAMP 2.0](id_roles_providers_saml.md) karena alur kerja ini membuka Konsol Manajemen AWS atas nama pengguna. Ini memerlukan penggunaan titik akhir AWS masuk alih-alih langsung memanggil API. `AssumeRoleWithSAML` Titik akhir memanggil API untuk pengguna dan mengembalikan URL yang secara otomatis mengalihkan peramban pengguna ke Konsol Manajemen AWS.

![\[Single sign-on (SSO) ke AWS Management Console menggunakan SAMP\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/saml-based-sso-to-console.diagram.png)


Diagram ini menggambarkan langkah-langkah berikut:

1. Pengguna menelusuri portal organisasi Anda dan memilih opsi untuk membuka Konsol Manajemen AWS. Dalam organisasi Anda, portal biasanya merupakan fungsi dari IDP Anda yang menangani pertukaran kepercayaan antara organisasi Anda dan. AWS Misalnya, di Layanan Federasi Active Directory, URL portal adalah: `https://ADFSServiceName/adfs/ls/IdpInitiatedSignOn.aspx` 

1. Portal tersebut memverifikasi identitas pengguna di organisasi Anda.

1. Portal tersebut menghasilkan tanggapan autentikasi SAML yang mencakup pernyataan yang mengidentifikasi pengguna dan menyertakan atribut tentang pengguna. Anda juga dapat mengonfigurasi IdP untuk menyertakan atribut pernyataan SAML yang disebut `SessionDuration` yang menentukan durasi sesi konsol yang valid. Anda juga dapat mengonfigurasi IdP untuk meneruskan atribut sebagai [tanda sesi](id_session-tags.md). Portal mengirimkan respons ini ke browser klien.

1. Browser klien dialihkan ke titik akhir masuk AWS tunggal dan memposting pernyataan SAMP. 

1. Titik akhir meminta kredensial keamanan sementara atas nama pengguna dan membuat URL masuk konsol yang menggunakan kredensial tersebut. 

1. AWS mengirim URL masuk kembali ke klien sebagai pengalihan.

1. Peramban klien diarahkan ulang ke Konsol Manajemen AWS. Jika tanggapan autentikasi SAML mencakup atribut yang memetakan ke beberapa peran IAM, pengguna pertama-tama diminta memilih peran untuk mengakses konsol. 

Dari sudut pandang pengguna, prosesnya terjadi secara transparan: Pengguna mulai di portal internal organisasi Anda dan berakhir di Konsol Manajemen AWS, tanpa harus memberikan AWS kredensil apa pun.

Lihat bagian berikut untuk gambaran umum tentang cara mengkonfigurasi perilaku ini bersama dengan tautan ke langkah-langkah rinci.

## Konfigurasikan jaringan Anda sebagai penyedia SAMP untuk AWS
<a name="fedconsole-config-network-as-saml"></a>

Di dalam jaringan organisasi, Anda mengonfigurasi penyimpanan identitas (seperti Windows Active Directory) untuk bekerja dengan IdP berbasis SAML seperti Windows Active Directory Federation Services, Shibboleth, dll. Menggunakan IdP, Anda membuat dokumen metadata yang menjelaskan organisasi Anda sebagai IdP dan menyertakan kunci autentikasi. Anda juga mengonfigurasi portal organisasi Anda untuk merutekan permintaan pengguna Konsol Manajemen AWS ke titik akhir AWS SAMP untuk otentikasi menggunakan pernyataan SAMP. Cara Anda mengonfigurasi IdP untuk menghasilkan file metadata.xml tergantung pada IdP Anda. Lihat dokumentasi IdP untuk instruksi, atau lihat [Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS](id_roles_providers_saml_3rd-party.md) untuk tautan ke dokumentasi web bagi banyak penyedia SAML yang didukung.

## Membuat penyedia SAML di IAM
<a name="fedconsole-create-saml-provider"></a>

Selanjutnya, Anda masuk ke Konsol Manajemen AWS dan pergi ke konsol IAM. Di sana Anda membuat penyedia SAMP baru, yang merupakan entitas di IAM yang menyimpan informasi tentang IDP organisasi Anda. Sebagai bagian dari proses ini, Anda mengunggah dokumen metadata yang dibuat oleh perangkat lunak IdP di organisasi Anda pada bagian sebelumnya. Untuk detailnya, lihat [Buat penyedia identitas SAMP di IAM](id_roles_providers_create_saml.md). 

## Konfigurasikan izin AWS untuk prinsipal federasi SAMP
<a name="fedconsole-grantperms"></a>

Langkah selanjutnya adalah menciptakan peran IAM yang membangun hubungan kepercayaan antara IAM dan IDP organisasi Anda. Peran ini harus mengidentifikasi IdP sebagai prinsipal (entitas tepercaya) untuk tujuan federasi. Peran ini juga menentukan apa yang diizinkan dilakukan oleh pengguna yang diautentikasi oleh IDP organisasi Anda. AWS Anda dapat menggunakan konsol IAM untuk membuat peran ini. Saat Anda membuat kebijakan kepercayaan yang menunjukkan siapa yang dapat mengambil peran tersebut, Anda menentukan penyedia SAML yang Anda buat sebelumnya di IAM. Anda juga menentukan satu atau beberapa atribut SAML yang harus dicocokkan pengguna agar diizinkan untuk menjalankan peran tersebut. Misalnya, Anda dapat menyebutkan bahwa hanya pengguna yang nilai `[eduPersonOrgDN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_edupersonorgdn)` SAML-nya adalah `ExampleOrg` yang diperbolehkan untuk masuk. Wizard peran secara otomatis menambahkan ketentuan untuk menguji atribut `saml:aud` guna memastikan bahwa peran tersebut diambil hanya untuk masuk ke Konsol Manajemen AWS.

Jika enkripsi SAMP diperlukan, URL masuk harus menyertakan pengenal unik yang ditetapkan ke penyedia AWS SAMP Anda, yang dapat Anda temukan di halaman detail penyedia Identitas. Kebijakan kepercayaan untuk peran tersebut mungkin akan terlihat seperti ini:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::111122223333:saml-provider/ExampleOrgSSOProvider"
            },
            "Action": "sts:AssumeRoleWithSAML",
            "Condition": {
                "StringEquals": {
                    "saml:edupersonorgdn": "ExampleOrg",
                    "saml:aud": "https://region-code.signin.aws.amazon.com/saml/acs/SAMLSP4SHN3UIS2D558H46"
                }
            }
        }
    ]
}
```

------

**catatan**  
SAMP yang IDPs digunakan dalam kebijakan kepercayaan peran harus berada dalam akun yang sama dengan peran tersebut.

Sebaiknya gunakan titik akhir regional untuk `saml:aud` atribut di`https://region-code.signin.aws.amazon.com/static/saml-metadata.xml`. Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html).

Untuk [kebijakan izin](access_policies.md) dalam peran tersebut, Anda menentukan izin seperti yang Anda inginkan untuk peran, pengguna, atau grup. Misalnya, jika pengguna dari organisasi Anda diizinkan untuk mengelola instans Amazon EC2, Anda secara eksplisit mengizinkan tindakan Amazon EC2 dalam kebijakan izin. Anda dapat melakukannya dengan menetapkan [kebijakan terkelola](access_policies_manage-attach-detach.md), seperti kebijakan terkelola **Akses Penuh Amazon EC2**. 

Untuk detail tentang membuat peran untuk IdP SAML, lihat [Buat peran untuk federasi SAMP 2.0 (konsol)](id_roles_create_for-idp_saml.md). 

## Selesaikan konfigurasi dan buat pernyataan SAML
<a name="fedconsole-configassertions"></a>

Beri tahu SAMP IDP Anda yang AWS merupakan penyedia layanan Anda dengan menginstal `saml-metadata.xml` file yang ditemukan di atau. `https://region-code.signin.aws.amazon.com/static/saml-metadata.xml` `https://signin.aws.amazon.com/static/saml-metadata.xml` Jika SAMl enkripsi diperlukan, file ditemukan di`https://region-code.signin.aws.amazon.com/static/saml/SAMLSP4SHN3UIS2D558H46/saml-metadata.xml`.

Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html). 

Cara Anda menginstal file tergantung pada IdP Anda. Beberapa penyedia memberi Anda opsi untuk mengetik URL, tempat IdP mendapatkan dan menginstal file untuk Anda. Lainnya mengharuskan Anda mengunduh file dari URL lalu menyediakannya sebagai file lokal. Lihat dokumentasi IdP untuk detail, atau lihat [Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS](id_roles_providers_saml_3rd-party.md) untuk tautan ke dokumentasi web bagi banyak penyedia SAML yang didukung.

Anda juga mengonfigurasi informasi yang Anda inginkan untuk diteruskan oleh IdP sebagai atribut SAML ke AWS sebagai bagian dari respons autentikasi. Sebagian besar informasi ini muncul AWS sebagai kunci konteks kondisi yang dapat Anda evaluasi dalam kebijakan Anda. Kunci syarat ini memastikan bahwa hanya pengguna yang diberi otorisasi dalam konteks yang tepat yang diberi izin untuk mengakses sumber daya AWS Anda. Anda dapat menentukan jendela waktu yang dibatasi saat konsol dapat digunakan. Anda juga dapat menentukan waktu maksimum (hingga 12 jam) yang dapat diakses pengguna konsol sebelum harus menyegarkan kembali kredensial mereka. Lihat perinciannya di [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md).

# Lihat respons SAMP di browser Anda
<a name="troubleshoot_saml_view-saml-response"></a>

Prosedur berikut menjelaskan cara melihat respons SAML dari penyedia layanan Anda dari browser Anda ketika menyelesaikan masalah terkait SAML 2.0. 

Untuk semua browser, kunjungi halaman tempat Anda dapat mereproduksi masalah. Kemudian ikuti langkah-langkah untuk peramban yang sesuai:

**Topics**
+ [Google Chrome](#chrome)
+ [Mozilla Firefox](#firefox)
+ [Apple Safari](#safari)
+ [Apa yang harus dilakukan dengan respons SAML berkode Base64](#whatnext)

## Google Chrome
<a name="chrome"></a>

**Untuk melihat respons SAMP di Chrome**

Langkah-langkah ini diuji menggunakan versi 106.0.5249.103 (Build Resmi) (arm64) dari Google Chrome. Jika Anda menggunakan versi lain, Anda mungkin perlu mengadaptasi langkah-langkah tersebut.

1. Tekan **F12** untuk memulai konsol **Alat Pengembang**.

1. Pilih tab **Jaringan**, lalu pilih **Pertahankan log** di kiri atas jendela **Alat Pengembang**.

1. Mereproduksi masalah.

1. (Opsional) Jika kolom **Metode** tidak terlihat di panel log **Jaringan** **Alat Pengembang**, klik kanan pada label kolom mana pun dan pilih **Metode** untuk menambahkan kolom.

1. Cari **Posting SAMP** di panel log **Jaringan** **Alat Pengembang**. Pilih baris itu, lalu lihat tab **Payload** di bagian atas. Cari **SAMLResponse**elemen yang berisi permintaan yang dikodekan. Nilai yang terkait adalah respons yang dienkodekan dengan Base64.

## Mozilla Firefox
<a name="firefox"></a>

**Untuk melihat respons SAMP di Firefox**

Prosedur ini diuji pada versi 105.0.3 (64-bit) dari Mozilla Firefox. Jika Anda menggunakan versi lain, Anda mungkin perlu mengadaptasi langkah-langkah tersebut.

1. Tekan **F12** untuk memulai konsol **Alat Pengembang Web**.

1. Pilih tab **Jaringan**. 

1. Di kanan atas jendela **Alat Pengembang Web**, pilih opsi (ikon roda gigi kecil). Pilih **Persiste logs**. 

1. Mereproduksi masalah.

1. (Opsional) Jika kolom **Metode** tidak terlihat di panel log **Jaringan** **Alat Pengembang Web**, klik kanan pada label kolom mana pun dan pilih **Metode** untuk menambahkan kolom.

1. Cari **POST** **SAML** di dalam tabel. Pilih baris itu, lalu lihat tab **Permintaan** dan temukan **SAMLResponse**elemennya. Nilai yang terkait adalah respons yang dienkodekan dengan Base64.

## Apple Safari
<a name="safari"></a>

**Untuk melihat respons SAMP di Safari**

Langkah-langkah ini diuji menggunakan versi 16.0 (17614.1.25.9.10, 17614) dari Apple Safari. Jika Anda menggunakan versi lain, Anda mungkin perlu mengadaptasi langkah-langkah tersebut.

1. Aktifkan Web Inspector di Safari. Buka jendela **Preferensi** , pilih tab **Lanjutan** , lalu pilih **Tampilkan menu Kembangkan di bilah menu**.

1. Sekarang Anda dapat membuka Web Inspector. Pilih **Kembangkan** di bilah menu, lalu pilih **Show Web Inspector**.

1. Pilih tab **Jaringan**.

1. Di kiri atas jendela **Web Inspector**, pilih opsi (ikon lingkaran kecil yang berisi tiga garis horizontal). Pilih **Pertahankan Log**.

1. (Opsional) Jika kolom **Metode** tidak terlihat di panel log **Web Inspector** **Network**, klik kanan pada label kolom mana pun dan pilih **Metode** untuk menambahkan kolom.

1. Mereproduksi masalah.

1. Cari **POST** **SAML** di dalam tabel. Pilih baris itu, lalu lihat tab Header.

1. Cari **SAMLResponse**elemen yang berisi permintaan yang dikodekan. Gulir ke bawah untuk menemukan `Request Data` dengan nama `SAMLResponse`. Nilai yang terkait adalah respons yang dienkodekan dengan Base64.

## Apa yang harus dilakukan dengan respons SAML berkode Base64
<a name="whatnext"></a>

Setelah Anda menemukan elemen respons SAML berkode Base64 di peramban Anda, salin dan gunakan alat dekode Base-64 favorit Anda untuk mengekstrak respons yang ditandai dengan XML.

**Tips keamanan**  
Karena data respons SAML yang Anda lihat mungkin berisi data keamanan yang sensitif, kami menyarankan Anda untuk tidak menggunakan dekoder base64 *online*. Sebaliknya, gunakan alat yang diinstal di komputer lokal Anda yang tidak mengirimkan data SAML Anda melalui jaringan.

**Opsi bawaan untuk sistem Windows (PowerShell):**

```
PS C:\> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("base64encodedtext"))
```

**Opsi bawaan untuk sistem macOS dan Linux:**

```
$ echo "base64encodedtext" | base64 --decode
```

**Tinjau nilai dalam file yang diterjemahkan**  
Tinjau nilai-nilai dalam file respons SAMP yang diterjemahkan. 
+ Verifikasi bahwa nilai untuk atribut SAML:nameID cocok dengan nama pengguna untuk pengguna yang diautentikasi.
+ Tinjau nilai untuk https://aws.amazon.com/SAML/ Atribut/Peran. Penyedia ARN dan SAMP peka huruf besar/kecil, dan [ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) harus cocok dengan sumber daya di akun Anda.
+ Tinjau nilai untuk https://aws.amazon.com/SAML/ Atribut/RoleSessionName. Nilai harus sesuai dengan nilai dalam [aturan klaim](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html).
+ Jika Anda mengonfigurasi nilai atribut untuk alamat email atau nama akun, pastikan nilainya benar. Nilai harus sesuai dengan alamat email atau nama akun pengguna yang diautentikasi.

**Periksa kesalahan dan konfirmasikan konfigurasi**  
Periksa apakah nilai mengandung kesalahan, dan konfirmasikan bahwa konfigurasi berikut sudah benar.
+ Aturan klaim memenuhi elemen yang diperlukan dan ARNs semuanya benar. Untuk informasi selengkapnya, lihat [Konfigurasikan IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak dan menambahkan klaim](id_roles_providers_create_saml_relying-party.md).
+ Anda mengunggah file metadata terbaru dari IDP Anda ke dalam AWS penyedia SAMP Anda. Untuk informasi selengkapnya, lihat [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md).
+ Anda mengonfigurasi kebijakan kepercayaan peran IAM dengan benar. Lihat informasi yang lebih lengkap di [Metode untuk mengambil peran](id_roles_manage-assume.md).

# Menggabungkan AWS Identitas ke Layanan Eksternal
<a name="id_roles_providers_outbound"></a>

Federasi identitas keluar IAM memungkinkan AWS beban kerja Anda mengakses layanan eksternal dengan aman tanpa menyimpan kredensi jangka panjang. AWS Beban kerja Anda dapat meminta JSON Web Tokens (JWTs) berumur pendek dari AWS Security Token Service (AWS STS) dengan memanggil API. [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html) Token ini ditandatangani secara kriptografis, dapat diverifikasi secara publik dan berisi serangkaian klaim komprehensif yang menegaskan identitas beban AWS kerja Anda ke layanan eksternal. Anda dapat menggunakan token ini dengan berbagai penyedia cloud pihak ketiga, platform SaaS, dan aplikasi yang dihosting sendiri. Layanan eksternal memverifikasi keaslian token menggunakan AWS kunci verifikasi yang diterbitkan di titik akhir terkenal dan menggunakan informasi dalam token untuk membuat keputusan otentikasi dan otorisasi.

Federasi identitas keluar menghilangkan kebutuhan untuk menyimpan kredensil jangka panjang seperti kunci API atau kata sandi dalam kode aplikasi atau variabel lingkungan Anda, meningkatkan postur keamanan Anda. Anda dapat mengontrol akses ke pembuatan token dan menerapkan properti token seperti algoritma penandatanganan, pemirsa yang diizinkan, dan durasi menggunakan kebijakan IAM. Semua permintaan token masuk AWS , menyediakan jejak audit lengkap untuk pemantauan keamanan dan pelaporan kepatuhan. Anda juga dapat menyesuaikan token dengan tag yang muncul sebagai klaim khusus, memungkinkan layanan eksternal menerapkan kontrol akses berbasis atribut yang halus.

## Kasus penggunaan umum
<a name="outbound-federation-use-cases"></a>

Menggunakan federasi identitas keluar, AWS beban kerja Anda dapat dengan aman:
+ Akses sumber daya dan layanan di penyedia cloud eksternal. Misalnya, data pemrosesan fungsi Lambda dapat menulis hasil ke layanan penyimpanan penyedia cloud eksternal atau menanyakan database mereka.
+ Integrasikan dengan penyedia eksternal software-as-a-service (SaaS) untuk analitik, pemrosesan data, pemantauan, dll. Misalnya, fungsi Lambda Anda dapat mengirim metrik ke platform observabilitas.
+ Otentikasi dengan aplikasi Anda sendiri yang dihosting di AWS, penyedia cloud eksternal, atau pusat data lokal, memungkinkan arsitektur hybrid dan multi-cloud yang aman. Misalnya, AWS beban kerja Anda dapat berinteraksi dengan aplikasi kontainer yang berjalan di klaster Kubernetes lokal Anda.

## Cara Kerjanya
<a name="outbound-federation-how-it-works"></a>

![\[alt text not found\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/outbound-use-cases.png)


1. Fungsi Lambda memanggil [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API untuk meminta JSON Web Token (JWT) dari AWS Security Token Service ().AWS STS

1. AWS STS memvalidasi permintaan dan mengembalikan JWT yang ditandatangani ke fungsi Lambda.

1. Fungsi Lambda mengirimkan JWT ke layanan eksternal.

1. Layanan eksternal mengekstrak URL penerbit dari token, memverifikasinya cocok dengan penerbit tepercaya yang diketahui, dan mengambil kunci verifikasi dan metadata AWS dari titik akhir penemuan OIDC.

1. Layanan eksternal menggunakan kunci verifikasi untuk memverifikasi tanda tangan token dan memvalidasi klaim seperti waktu kedaluwarsa, subjek, dan audiens.

1. Setelah validasi berhasil, layanan eksternal memberikan akses ke fungsi Lambda.

# Memulai federasi identitas keluar
<a name="id_roles_providers_outbound_getting_started"></a>

Panduan ini menunjukkan cara mengaktifkan federasi identitas keluar untuk AWS akun Anda dan mendapatkan JSON Web Token (JWT) pertama Anda (menggunakan API). [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html) Anda akan mengaktifkan fitur, membangun hubungan kepercayaan dengan layanan eksternal, mengkonfigurasi izin IAM, dan meminta token menggunakan AWS CLI atau AWS SDK for Python (Boto3).

## Prasyarat
<a name="outbound-federation-prerequisites"></a>

Sebelum Anda mulai, pastikan Anda memiliki:
+ Versi terbaru dari AWS CLI atau Python 3.8 (atau yang lebih baru) dan Boto3 diinstal (untuk contoh SDK) AWS 
+ Akun layanan eksternal tempat Anda dapat mengonfigurasi hubungan kepercayaan (seperti penyedia cloud eksternal, penyedia SaaS, atau aplikasi pengujian)

**catatan**  
`GetWebIdentityToken`API tidak tersedia di titik akhir STS Global.
Token Web JSON (JWTs) yang dihasilkan oleh `GetWebIdentityToken` API tidak dapat digunakan untuk AWS federasi OpenID Connect (OIDC) ke dalam ([AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)melalui API).

## Aktifkan federasi identitas keluar untuk akun Anda
<a name="enable-outbound-federation"></a>

Anda harus mengaktifkan federasi identitas keluar sebelum Anda dapat meminta token. Anda dapat mengaktifkan fitur menggunakan AWS Management Console atau menggunakan API secara terprogram. [EnableOutboundWebIdentityFederation](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableOutboundWebIdentityFederation.html)

### Menggunakan AWS CLI
<a name="enable-using-cli"></a>

```
aws iam enable-outbound-web-identity-federation
```

### Menggunakan AWS SDK untuk Python
<a name="enable-using-sdk"></a>

```
import boto3

# Create IAM client
iam_client = boto3.client('iam')

# Enable outbound identity federation
response = iam_client.enable_outbound_web_identity_federation()
print(f"Feature enabled. Issuer URL: {response['IssuerUrl']}")
print(f"Status: {response['Status']}")
```

### Menggunakan AWS Konsol
<a name="enable-using-console"></a>

Arahkan ke IAM dan pilih **Pengaturan Akun** di bawah bagian **Manajemen Akses** pada menu navigasi sebelah kiri

![\[alt text not found\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/outbound-screen-1.png)


Setelah Anda mengaktifkan fitur ini, catat URL penerbit khusus akun Anda. Anda akan menggunakan URL ini saat mengonfigurasi hubungan kepercayaan di layanan eksternal. Anda juga dapat mengambil URL penerbit ini sesuai kebutuhan menggunakan API. [GetOutboundWebIdentityFederationInfo](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOutboundWebIdentityFederationInfo.html)

![\[alt text not found\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/outbound-screen-2.png)


## Membangun hubungan kepercayaan dalam layanan eksternal
<a name="establish-trust-relationship"></a>

Konfigurasikan layanan eksternal untuk mempercayai dan menerima token yang dikeluarkan oleh AWS akun Anda. Langkah-langkah spesifik bervariasi menurut layanan, tetapi umumnya melibatkan:
+ Mendaftarkan URL penerbit AWS akun Anda sebagai penyedia identitas tepercaya
+ Mengkonfigurasi klaim mana yang akan divalidasi (audiens, pola subjek)
+ Token pemetaan mengklaim izin di layanan eksternal

Lihat dokumentasi layanan eksternal untuk instruksi konfigurasi terperinci.

## Mengonfigurasi izin IAM
<a name="configure-iam-permissions"></a>

Buat kebijakan IAM yang memberikan izin untuk memanggil [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API dan melampirkan kebijakan ke peran IAM yang perlu menghasilkan token.

Kebijakan contoh ini memberikan akses ke pembuatan token dengan batasan tertentu. Ini memungkinkan meminta token hanya untuk "https://api.example.com" sebagai audiens dan memberlakukan masa pakai token maksimum 5 menit (300 detik). Lihat daftar kunci kondisi yang dapat Anda gunakan untuk menerapkan properti token. [Kunci konteks IAM dan AWS STS kondisi](reference_policies_iam-condition-keys.md)

### Contoh kebijakan IAM
<a name="example-iam-policy"></a>

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "sts:IdentityTokenAudience": "https://api.example.com"
                },
                "NumericLessThanEquals": {
                    "sts:DurationSeconds": 300
                }
            }
        }
    ]
}
```

## Minta JSON Web Token (JWT) pertama Anda
<a name="request-first-jwt"></a>

Anda dapat meminta Token Web JSON menggunakan [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API. Anda dapat menentukan parameter berikut saat memanggil API:
+ **Audiens (wajib):** Penerima token yang dituju. Nilai ini mengisi klaim “aud” di JWT. Layanan eksternal memvalidasi klaim ini untuk memastikan token ditujukan untuk mereka.
+ **SigningAlgorithm (wajib):** Algoritma kriptografi yang digunakan untuk menandatangani token. Nilai yang valid adalah ES384 dan RS256. Gunakan ES384 untuk keamanan dan kinerja yang optimal, atau RS256 untuk kompatibilitas yang lebih luas dengan sistem yang tidak mendukung ECDSA.
+ **DurationSeconds (opsional):** Masa pakai token dalam hitungan detik. Nilai yang valid berkisar antara 60 hingga 3600. Defaultnya adalah 300 (5 menit). Kami merekomendasikan masa pakai token yang lebih pendek untuk meningkatkan keamanan.
+ **Tag (opsional):** Daftar pasangan nilai kunci untuk disertakan sebagai klaim khusus dalam token. Layanan eksternal dapat menggunakan klaim ini untuk otorisasi berbutir halus.

API mengembalikan bidang berikut:
+ **IdentityToken:** JWT yang ditandatangani sebagai string yang disandikan base64url. Sertakan token ini dalam permintaan ke layanan eksternal.
+ **Kedaluwarsa:** Stempel waktu UTC saat token kedaluwarsa.

### Menggunakan AWS CLI
<a name="using-aws-cli"></a>

```
aws sts get-web-identity-token \
    --audience "https://api.example.com" \
    --signing-algorithm ES384 \
    --duration-seconds 300 \
    --tags Key=team,Value=data-engineering \
           Key=environment,Value=production \
           Key=cost-center,Value=analytics
```

### Menggunakan AWS SDK untuk Python
<a name="using-aws-sdk-python"></a>

```
import boto3

sts_client = boto3.client('sts')

response = sts_client.get_web_identity_token(
    Audience=['https://api.example.com'],
    DurationSeconds=300,
    SigningAlgorithm='RS256',
    Tags=[
        {'Key': 'team', 'Value': 'data-engineering'},
        {'Key': 'environment', 'Value': 'production'},
        {'Key': 'cost-center', 'Value': 'analytics'}
    ]
)

token = response['WebIdentityToken']
```

Anda juga dapat memecahkan kode JWT untuk memeriksa isinya menggunakan pustaka JWT standar seperti PyJWT, Python-jose untuk Python, Nimbus JOSE\$1JWT untuk Java atau debugger seperti jwt.io. Lihat [Memahami klaim token](id_roles_providers_outbound_token_claims.md) untuk informasi lebih lanjut tentang klaim yang termasuk dalam token.

## Gunakan token dengan layanan eksternal
<a name="use-token-with-external-service"></a>

Setelah menerima token, sertakan dalam permintaan ke layanan eksternal. Metode ini bervariasi menurut layanan, tetapi sebagian besar layanan menerima token di header Otorisasi. Layanan eksternal harus menerapkan logika validasi token yang mengambil kunci JWKS dari titik akhir penerbit Anda yang terkenal, memverifikasi tanda tangan token, dan memvalidasi klaim penting sebelum memberikan akses ke beban kerja Anda. AWS 

## Ambil kunci verifikasi dan metadata dari titik akhir OpenID Connect (OIDC)
<a name="fetch-verification-keys"></a>

URL penerbit unik untuk AWS akun Anda menghosting titik akhir penemuan OpenID Connect (OIDC) yang berisi kunci verifikasi dan metadata yang diperlukan untuk verifikasi token.

URL titik akhir penemuan OIDC berisi metadata yang digunakan beberapa penyedia untuk memverifikasi token. Ini tersedia di:

```
{issuer_url}/.well-known/openid-configuration
```

Titik akhir JWKS (JSON Web Key Set) berisi kunci yang digunakan untuk memverifikasi tanda tangan token. Ini tersedia di:

```
{issuer_url}/.well-known/jwks.json
```

### Ambil JWKS menggunakan curl
<a name="fetch-jwks-curl"></a>

```
curl https://{issuer_url}/.well-known/jwks.json
```

Respons:

```
{
  "keys": [
    {
      "kty": "EC",
      "use": "sig",
      "kid": "key-id-1",
      "alg": "ES384",
      "crv": "P-384",
      "x": "base64-encoded-x-coordinate",
      "y": "base64-encoded-y-coordinate"
    },
    {
      "kty": "RSA",
      "use": "sig",
      "kid": "key-id-2",
      "n": "base64-encoded-modulus",
      "e": "AQAB"
    }
  ]
}
```

### Menggunakan AWS SDK untuk Python
<a name="fetch-using-sdk"></a>

```
import requests

# Fetch Openid Configuration
open_id_config_response = requests.get("https://{issuer_url}/.well-known/openid-configuration")
open_id_config = open_id_config_response.json()

# Fetch JWKS
jwks_response = requests.get("https://{issuer_url}/.well-known/jwks.json")
jwks = jwks_response.json()
```

Kami merekomendasikan caching kunci ini untuk menghindari mengambilnya untuk setiap verifikasi token.

### Validasi klaim penting
<a name="essential-claim-validations"></a>
+ **Subjek (sub):** Verifikasi klaim subjek berisi pola ARN utama IAM yang diharapkan.
+ **Kedaluwarsa (exp):** Pastikan token belum kedaluwarsa. Pustaka JWT biasanya menangani ini secara otomatis.
+ **Audiens (aud):** Verifikasi audiens sesuai dengan nilai yang Anda harapkan. Ini mencegah token yang ditujukan untuk layanan lain digunakan dengan milik Anda.
+ **Penerbit (iss):** Verifikasi penerbit cocok dengan AWS akun yang Anda percayai. Pertahankan daftar emiten tepercaya. URLs

Jika memungkinkan, Anda harus memvalidasi klaim AWS khusus tambahan untuk menerapkan kontrol akses berbutir halus di layanan eksternal Anda. Misalnya, validasi klaim org\$1id untuk membatasi akses ke prinsipal IAM di AWS Organisasi Anda, periksa principal\$1tags untuk menerapkan kontrol akses berbasis atribut (seperti hanya mengizinkan lingkungan produksi atau tim tertentu), atau verifikasi klaim konteks sesi seperti lambda\$1source\$1function\$1arn atau ec2\$1instance\$1source\$1vpc untuk membatasi akses berdasarkan sumber daya komputasi. Lihat [Memahami klaim token](id_roles_providers_outbound_token_claims.md) untuk daftar lengkap klaim yang termasuk dalam token.

# Memahami klaim token
<a name="id_roles_providers_outbound_token_claims"></a>

Saat Anda memanggil [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API, AWS Security Token Service mengembalikan JSON Web Token (JWT) yang ditandatangani yang berisi serangkaian klaim yang mewakili identitas prinsipal IAM. Token ini sesuai dengan [RFC](https://datatracker.ietf.org/doc/html/rfc7519) 7519. Memahami struktur dan isi token ini membantu Anda menerapkan alur otentikasi yang aman, mengonfigurasi validasi klaim yang sesuai di layanan eksternal, dan secara efektif menggunakan klaim khusus untuk kontrol akses berbutir halus.

JWT mencakup klaim OpenID Connect (OIDC) standar seperti subjek (“sub”), audiens (“aud”), penerbit (“iss”) untuk memfasilitasi interoperabilitas di berbagai layanan eksternal. AWS STS mengisi token dengan klaim AWS khusus identitas (seperti ID AWS Akun dan tag Utama) dan klaim konteks sesi (seperti EC2 contoh ARNs) bila berlaku. Anda juga dapat menambahkan klaim khusus ke token dengan meneruskannya sebagai tag permintaan ke [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API. Klaim AWS khusus identitas, dan klaim konteks sesi dan klaim khusus bersarang di bawah namespace "https://sts.amazonaws.com/” di token.

Lihat contoh token di bawah ini untuk daftar klaim yang termasuk dalam token. Harap dicatat bahwa semua klaim ini mungkin tidak ada dalam token pada saat yang bersamaan. 

```
{
  "iss": "https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws",
  "aud": "https://api.example.com",
  "sub": "arn:aws:iam::123456789012:role/DataProcessingRole",
  "iat": 1700000000,
  "exp": 1700000900,
  "jti": "xyz123-def456-ghi789-jkl012",
  "https://sts.amazonaws.com/": {
    "aws_account": "123456789012",
    "source_region": "us-east-1",
    "org_id": "o-abc1234567",
    "ou_path": "o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/",
    "principal_tags": {
      "environment": "production",
      "team": "data-engineering",
      "cost-center": "engineering"
    },
    "lambda_source_function_arn": "arn:aws:lambda:us-east-1:123456789012:function:process-data",
    "request_tags": {
        "job-id": "job-2024-001",
        "priority": "high",
        "data-classification": "sensitive"
    }
  }
}
```

## Klaim standar
<a name="standard-claims"></a>

Klaim OIDC standar yang ada dalam token memfasilitasi interoperabilitas dengan berbagai layanan eksternal. Klaim ini dapat divalidasi menggunakan sebagian besar pustaka JWT.


| Klaim | Nama | Deskripsi | Nilai Contoh | 
| --- | --- | --- | --- | 
| iss | Penerbit | URL penerbit khusus akun Anda. Layanan eksternal memvalidasi klaim ini untuk memastikannya sesuai dengan penerbit tepercaya mereka. | https://abc123-def456-ghi789-jkl012.tokens.sts.global.api.aws | 
| aud | Audiens | Penerima yang dimaksudkan untuk token yang ditentukan dalam [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)permintaan. | https://api.example.com | 
| sub | Subjek | ARN dari prinsipal IAM yang meminta token. | arn:aws:iam: :123456789012: peran/DataProcessingRole | 
| iat | Dikeluarkan Pada | NumericDate nilai yang mengidentifikasi waktu di mana JWT dikeluarkan. | 1700000000 | 
| exp | Kedaluwarsa | NumericDate nilai yang mengidentifikasi waktu kedaluwarsa pada atau setelah itu JWT TIDAK BOLEH diterima untuk diproses. | 1700000900 | 
| jti | JWT ID | Pengidentifikasi unik untuk contoh token ini. | xyz123-def456-ghi789-jkl012 | 

## Klaim khusus
<a name="custom-claims"></a>

Selain klaim standar OIDC, AWS STS menambahkan klaim tentang identitas dan konteks sesi bila berlaku. Anda juga dapat menambahkan klaim Anda sendiri ke token dengan meneruskannya sebagai tag permintaan. Klaim khusus bersarang di bawah https://sts.amazonaws.com namespace/.

### AWS klaim identitas
<a name="aws-identity-claims"></a>

Klaim ini memberikan informasi terperinci tentang AWS akun Anda, struktur organisasi, dan prinsipal IAM.


| Klaim | Deskripsi | Peta ke Kunci Kondisi | Nilai Contoh | 
| --- | --- | --- | --- | 
| aws\$1akun | ID AWS akun Anda | [aws: PrincipalAccount](reference_policies_condition-keys.md#condition-keys-principalaccount) | 123456789012 | 
| source\$1region |  AWS Wilayah tempat token diminta | [aws: RequestedRegion](reference_policies_condition-keys.md#condition-keys-requestedregion) | us-east-1 | 
| org\$1id | ID AWS Organizations Anda (jika akun Anda adalah bagian dari organisasi) | [aws: PrincipalOrg ID](reference_policies_condition-keys.md#condition-keys-principalorgid) | o-abc1234567 | 
| ou\$1path | Jalur unit organisasi Anda (jika ada) | [aws: PrincipalOrgPaths](reference_policies_condition-keys.md#condition-keys-principalorgpaths) | o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ | 
| principal\$1tag | Tag yang dilampirkan pada prinsipal IAM atau sesi peran yang diasumsikan. Ketika token diminta di mana prinsipal IAM yang meminta memiliki tag utama dan tag sesi, tag sesi akan ada di JWT. | [aws:PrincipalTag/](reference_policies_condition-keys.md#condition-keys-principaltag)<tag-key> | \$1"environment”: “production”, “team”: “data-engineering”, “cost-center” :"engineering "\$1 | 

### Klaim konteks sesi
<a name="session-context-claims"></a>

Klaim ini memberikan informasi tentang lingkungan komputasi dan sesi tempat permintaan token berasal. AWS AWS STS secara otomatis menyertakan klaim ini bila berlaku berdasarkan konteks sesi kepala sekolah yang meminta.


| Klaim | Deskripsi | Peta ke Kunci Kondisi | Nilai Contoh | 
| --- | --- | --- | --- | 
| original\$1session\$1exp | Ketika kredensyal sesi peran asli akan kedaluwarsa (untuk peran yang diasumsikan) | N/A | 2024-01-15T 10:00:00 Z | 
| federated\$1provider | Nama penyedia identitas untuk sesi federasi | [aws: FederatedProvider](reference_policies_condition-keys.md#condition-keys-federatedprovider) | arn:aws:iam: :111122223333:oidc-provider/your\$1oidc\$1provider | 
| identity\$1store\$1user\$1id | ID pengguna Pusat Identitas IAM | [toko identitas: UserId](reference_policies_condition-keys.md#condition-keys-identity-store-user-id) | pengguna-abc123def456 | 
| identity\$1store\$1arn | ARN dari toko identitas Pusat Identitas | [toko identitas: IdentityStoreArn](https://docs.aws.amazon.com/singlesignon/latest/userguide/condition-context-keys-sts-idc.html#condition-keys-identity-store-arn) | arn:aws:identitystore: :123456789012: identitystore/d-abc1234567 | 
| ec2\$1source\$1instance\$1id | ARN dari contoh yang meminta EC2  | [EC2: SourceInstanceArn](reference_policies_condition-keys.md#condition-keys-ec2-source-instance-arn) | arn:aws:ec2: us-timur- 1:123456789012: instance/i-abc123def456 | 
| ec2\$1instance\$1source\$1vpc | ID VPC tempat kredensyal EC2 peran dikirimkan | [AWS: EC2 InstanceSourceVpc](reference_policies_condition-keys.md#condition-keys-ec2instancesourcevpc) | vpc-abc123def456 | 
| ec2\$1instance\$1source\$1private\$1ipv4 |  IPv4 Alamat pribadi dari EC2 instance | [AWS: EC2 InstanceSourcePrivate IPv4](reference_policies_condition-keys.md#condition-keys-ec2instancesourceprivateip4) | 10.0.1.25 | 
| ec2\$1role\$1delivery | Versi layanan metadata instans | [EC2: RoleDelivery](reference_policies_condition-keys.md#condition-keys-ec2-role-delivery) | 2 | 
| source\$1identity | Identitas sumber yang ditetapkan oleh kepala sekolah | [aws: SourceIdentity](reference_policies_condition-keys.md#condition-keys-sourceidentity) | admin-pengguna | 
| lambda\$1source\$1function\$1arn | ARN dari fungsi Lambda yang memanggil | [lambda: SourceFunctionArn](reference_policies_condition-keys.md#condition-keys-lambda-source-function-arn) | arn:aws:lambda: us-timur- 1:123456789012: fungsi: fungsi saya | 
| glue\$1credential\$1issuing\$1service | AWS Glue service identifier untuk pekerjaan Glue | [lem: CredentialIssuingService](reference_policies_condition-keys.md#condition-keys-glue-credential-issuing) | lem.amazonaws.com | 

### Minta tag
<a name="request-tags"></a>

Anda dapat menambahkan klaim kustom ke token dengan menentukan tag dalam permintaan [GetWebIdentityToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetWebIdentityToken.html)API. Klaim ini muncul di bawah bidang request\$1tags di token dan memungkinkan Anda untuk meneruskan informasi spesifik yang dapat digunakan layanan eksternal untuk keputusan otorisasi halus. Anda dapat menentukan hingga 50 tag per permintaan.

Contoh permintaan:

```
response = sts_client.get_web_identity_token(
    Audience=['https://api.example.com'],
    SigningAlgorithm='ES384'
    Tags=[
        {'Key': 'team', 'Value': 'data-engineering'},
        {'Key': 'cost-center', 'Value': 'analytics'},
        {'Key': 'environment', 'Value': 'production'}
    ]
)
```

Menghasilkan klaim dalam token:

```
{
  "request_tags": {
    "team": "data-engineering",
    "cost-center": "analytics",
    "environment": "production"
  }
}
```

# Mengontrol akses dengan kebijakan IAM
<a name="id_roles_providers_outbound_policies"></a>

IAM menyediakan beberapa jenis kebijakan untuk mengontrol akses ke fitur federasi identitas keluar. Anda dapat menggunakan [kebijakan berbasis identitas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) untuk mengontrol prinsipal IAM mana yang dapat meminta token dan menerapkan properti token tertentu seperti audiens, masa pakai, dan algoritme penandatanganan. [Kebijakan Kontrol Layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCPs) memungkinkan Anda untuk menerapkan pembatasan seluruh organisasi pada pembuatan token di semua akun di Organizations Anda. AWS [Kebijakan Kontrol Sumber Daya](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) (RCPs) mengontrol akses di tingkat sumber daya. Anda juga dapat menggunakan [kebijakan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) untuk membatasi prinsipal mana yang dapat mengakses API AWS STS `GetWebIdentityToken` melalui titik akhir VPC Anda, menambahkan kontrol tingkat jaringan ke postur keamanan Anda. Bagian ini menjelaskan cara menerapkan kontrol akses berbutir halus menggunakan tipe kebijakan dan kunci kondisi ini.

Untuk meminta token identitas, kepala sekolah IAM harus memiliki `sts:GetWebIdentityToken` izin. Berikan izin ini melalui kebijakan identitas yang dilampirkan pada pengguna atau peran IAM. Untuk mengizinkan Tag (kunci, pasangan nilai) diteruskan ke GetWebIdentityToken panggilan, prinsipal IAM harus memiliki `sts:TagGetWebIdentityToken` izin.
+ Gunakan [sts: IdentityTokenAudience](reference_policies_iam-condition-keys.md#ck_identitytokenaudience) condition key untuk membatasi layanan eksternal mana yang dapat menerima token.
+ Gunakan kunci DurationSeconds kondisi [sts:](reference_policies_iam-condition-keys.md#ck_durationseconds) untuk menegakkan masa pakai token maksimum.
+ Gunakan [sts: SigningAlgorithm](reference_policies_iam-condition-keys.md#ck_signingalgorithm) condition key untuk memerlukan algoritma kriptografi tertentu.
+ Gunakan kunci [aws: RequestTag](reference_policies_condition-keys.md#condition-keys-requesttag) condition bandingkan pasangan nilai kunci tag yang diteruskan dalam permintaan dengan pasangan tag yang Anda tentukan dalam kebijakan.
+ Gunakan kunci [aws: TagKeys](reference_policies_condition-keys.md#condition-keys-tagkeys) condition untuk membandingkan kunci tag dalam permintaan dengan kunci yang Anda tentukan dalam kebijakan.

Lihat [IAM dan](reference_policies_iam-condition-keys.md) kunci AWS STS kondisi untuk mempelajari selengkapnya tentang kunci kondisi yang tersedia dalam kebijakan IAM.

Kebijakan identitas sampel ini menggabungkan beberapa kunci kondisi:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowTokenGenerationWithRestrictions",
            "Effect": "Allow",
            "Action": "sts:GetWebIdentityToken",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "sts:IdentityTokenAudience": [
                        "https://api1.example.com",
                        "https://api2.example.com"
                    ]
                },
                "NumericLessThanEquals": {
                    "sts:DurationSeconds": 300
                },
                "StringEquals": {
                    "sts:SigningAlgorithm": "ES384"
                }
            }
        }
    ]
}
```

## Praktik terbaik
<a name="outbound-best-practices"></a>

Ikuti rekomendasi ini untuk menyatukan AWS identitas Anda dengan aman ke layanan eksternal.
+ **Gunakan masa pakai token pendek:** Minta token dengan masa pakai terpendek yang memenuhi kebutuhan operasional Anda.
+ **Terapkan akses hak istimewa paling sedikit dan batasi properti token dengan kebijakan IAM:** Berikan `sts:GetWebIdentityToken` izin hanya kepada prinsipal IAM yang memerlukannya. Gunakan tombol kondisi untuk menentukan algoritme penandatanganan, pemirsa token yang diizinkan, dan masa pakai token maksimum yang Anda butuhkan.
+ **Validasi klaim di layanan eksternal:** Untuk keamanan, selalu validasi klaim yang relevan seperti subjek (“sub”), audiens (“aud”) dll. untuk memastikan mereka sesuai dengan nilai yang Anda harapkan. Validasi klaim kustom bila memungkinkan untuk mengaktifkan keputusan otorisasi halus di layanan eksternal.

# Kredensial keamanan sementara di IAM
<a name="id_credentials_temp"></a>

Anda dapat menggunakan AWS Security Token Service (AWS STS) untuk membuat dan menyediakan kredenal keamanan sementara kepada pengguna tepercaya yang dapat mengontrol akses ke sumber daya Anda AWS . Kredensil keamanan sementara bekerja hampir identik dengan kredensil kunci akses jangka panjang, dengan perbedaan berikut:
+ Kredensial keamanan sementara bersifat *jangka pendek*, seperti namanya. Konfigurasi dapat berlangsung selama beberapa menit hingga beberapa jam. Setelah kredensialnya kedaluwarsa, AWS tidak lagi mengenalinya atau mengizinkan segala jenis akses dari permintaan API yang dibuat dengannya.
+ Kredensial keamanan sementara tidak disimpan dengan pengguna tetapi dihasilkan secara dinamis dan diberikan kepada pengguna saat diminta. Ketika (atau bahkan sebelum) kredensial keamanan sementara kedaluwarsa, pengguna dapat meminta kredensial baru, selama pengguna yang memintanya masih memiliki izin untuk melakukannya.

Akibatnya, kredensil sementara memiliki keunggulan sebagai berikut dibandingkan kredensil jangka panjang:
+ Anda tidak perlu mendistribusikan atau menanamkan kredensil AWS keamanan jangka panjang dengan aplikasi.
+ Anda dapat memberikan akses ke AWS sumber daya Anda kepada pengguna tanpa harus menentukan AWS identitas untuk mereka. Kredensi sementara adalah dasar untuk [peran](id_roles.md) dan federasi [identitas](id_roles_providers.md).
+ Kredensi keamanan sementara memiliki masa pakai yang terbatas, jadi Anda tidak perlu memperbaruinya atau mencabutnya secara eksplisit saat tidak lagi diperlukan. Setelah kredensial keamanan sementara berakhir, kredensial tersebut tidak dapat digunakan kembali. Anda dapat menentukan berapa lama kredensial berlaku, hingga batas maksimum. 

## AWS STS dan AWS daerah
<a name="sts-regionalization"></a>

Kredensial keamanan sementara dihasilkan oleh AWS STS. Secara default, AWS STS adalah layanan global dengan titik akhir tunggal di`https://sts.amazonaws.com`. Namun, Anda juga dapat memilih untuk melakukan panggilan AWS STS API ke titik akhir di Wilayah lain yang didukung. Ini dapat mengurangi latensi (server lag) dengan mengirim permintaan ke server di Wilayah yang secara geografis lebih dekat dengan Anda. Tidak peduli dari Wilayah mana kredensial Anda berasal, mereka bekerja secara global. Untuk informasi selengkapnya, lihat [Kelola AWS STS dalam sebuah Wilayah AWS](id_credentials_temp_enable-regions.md).

## Skenario umum untuk kredensial sementara
<a name="sts-introduction"></a>

Kredensial sementara berguna dalam skenario yang melibatkan federasi identitas, pendelegasian, akses lintas akun, dan peran IAM.

### Federasi identitas
<a name="id-federation"></a>

Anda dapat mengelola identitas pengguna di sistem eksternal di luar AWS dan memberi pengguna yang masuk dari sistem tersebut akses untuk melakukan AWS tugas dan mengakses AWS sumber daya Anda. IAM mendukung dua jenis federasi identitas. Dalam kedua kasus, identitas disimpan di luar. AWS Perbedaannya adalah tempat sistem eksternal berada—di pusat data Anda atau pihak ketiga eksternal di web. Untuk membandingkan fitur kredensil keamanan sementara untuk federasi identitas, lihat. [Bandingkan AWS STS kredensialnya](id_credentials_sts-comparison.md)

Untuk informasi lebih lanjut tentang penyedia identitas eksternal, lihat [Penyedia identitas dan federasi ke AWS](id_roles_providers.md).
+ **Federasi OpenID Connect (OIDC)** - Anda dapat mengizinkan pengguna masuk menggunakan penyedia identitas pihak ketiga yang terkenal seperti Login with Amazon, Facebook, Google, atau penyedia yang kompatibel dengan OIDC 2.0 untuk aplikasi seluler atau web Anda, Anda tidak perlu membuat kode masuk khusus atau mengelola identitas pengguna Anda sendiri. Menggunakan federasi OIDC membantu Anda menjaga Akun AWS keamanan Anda, karena Anda tidak perlu mendistribusikan kredensil keamanan jangka panjang, seperti kunci akses pengguna IAM, dengan aplikasi Anda. Untuk informasi selengkapnya, lihat [Federasi OIDC](id_roles_providers_oidc.md).

  AWS STS Federasi OIDC mendukung Login with Amazon, Facebook, Google, dan penyedia identitas yang kompatibel dengan OpenID Connect (OIDC).
**catatan**  
Untuk aplikasi seluler, kami sarankan Anda menggunakan Amazon Cognito. Anda dapat menggunakan layanan ini untuk pengembangan seluler AWS SDKs untuk membuat identitas unik bagi pengguna dan mengautentikasi mereka untuk akses aman ke sumber daya Anda AWS . Amazon Cognito mendukung penyedia identitas yang sama dengan AWS STS, dan juga mendukung akses (tamu) yang tidak diautentikasi dan memungkinkan Anda memigrasikan data pengguna saat pengguna masuk. Amazon Cognito juga menyediakan operasi API untuk mensinkronisasi data pengguna sehingga data terjaga saat pengguna berpindah antar perangkat. Untuk informasi selengkapnya, lihat [Otentikasi dengan Amplify di Dokumentasi](https://docs.amplify.aws/lib/auth/getting-started/q/platform/js/#authentication-with-amplify) *Amplify*.
+ **Federasi SAMP** - Anda dapat mengautentikasi pengguna di jaringan organisasi Anda, dan kemudian memberikan akses kepada pengguna tersebut AWS tanpa membuat AWS identitas baru untuk mereka dan mengharuskan mereka untuk masuk dengan kredenal masuk yang berbeda. Ini dikenal sebagai pendekatan *masuk tunggal* untuk akses sementara. AWS STS mendukung standar terbuka seperti Security Assertion Markup Language (SAMP) 2.0, yang dengannya Anda dapat menggunakan Microsoft AD FS untuk memanfaatkan Microsoft Active Directory Anda. Anda juga dapat menggunakan SAML 2.0 untuk mengelola solusi Anda sendiri untuk memfederasi identitas pengguna. Untuk informasi selengkapnya, lihat [Federasi SAMP 2.0](id_roles_providers_saml.md).
  + **Pialang federasi khusus** - Anda dapat menggunakan sistem otentikasi organisasi Anda untuk memberikan akses ke AWS sumber daya. Untuk contoh skenario, lihat [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md).
  + **Federasi menggunakan SAMP 2.0** — Anda dapat menggunakan sistem otentikasi organisasi Anda dan SAMP untuk memberikan akses ke sumber daya. AWS Untuk informasi lebih lanjut dan contoh skenario, lihat [Federasi SAMP 2.0](id_roles_providers_saml.md).

### Peran untuk akses lintas akun
<a name="role_cross-account"></a>

Banyak organisasi mempertahankan lebih dari satu Akun AWS. Dengan menggunakan peran dan akses lintas akun, Anda dapat menentukan identitas pengguna dalam satu akun, dan menggunakan identitas tersebut untuk mengakses sumber daya AWS di akun lain yang menjadi bagian dari organisasi Anda. Ini dikenal sebagai pendekatan *pendelegasian* ke akses sementara. Untuk informasi selengkapnya tentang cara membuat peran lintas akun, lihat [Buat peran untuk memberikan izin kepada pengguna IAM](id_roles_create_for-user.md). Untuk mempelajari apakah prinsipal dalam akun di luar zona kepercayaan (organisasi atau akun terpercaya) memiliki akses untuk mengasumsikan peran Anda, lihat [Apa yang dimaksud dengan IAM Access Analyzer?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

### Peran untuk Amazon EC2
<a name="role_ec2"></a>

Jika Anda menjalankan aplikasi di instans Amazon EC2 dan aplikasi tersebut memerlukan akses ke AWS sumber daya, Anda dapat memberikan kredensil keamanan sementara ke instans saat meluncurkannya. Kredensial keamanan sementara ini tersedia untuk semua aplikasi yang berjalan pada instans, sehingga Anda tidak perlu menyimpan kredensial jangka panjang apa pun pada instans. Untuk informasi selengkapnya, lihat [Menggunakan peran IAM untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2](id_roles_use_switch-role-ec2.md).

Untuk mempelajari selengkapnya tentang kredenal peran IAM Amazon EC2, [lihat peran IAM untuk Amazon EC2 *di* Panduan Pengguna Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) Elastic Compute Cloud.

### AWS Layanan lainnya
<a name="other-services"></a>

Anda dapat menggunakan kredensil keamanan sementara untuk mengakses sebagian besar AWS layanan. Untuk daftar layanan yang menerima kredensial keamanan sementara, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md).

## Contoh aplikasi yang menggunakan kredensial sementara
<a name="id_credentials_temp_sample-apps"></a>

Anda dapat menggunakan AWS Security Token Service (AWS STS) untuk membuat dan menyediakan kredenal keamanan sementara kepada pengguna tepercaya yang dapat mengontrol akses ke sumber daya Anda AWS . Untuk informasi lebih lanjut tentang AWS STS, lihat[Kredensial keamanan sementara di IAM](#id_credentials_temp). Untuk melihat bagaimana Anda dapat menggunakan AWS STS untuk mengelola kredenal keamanan sementara, Anda dapat mengunduh contoh aplikasi berikut yang menerapkan skenario contoh lengkap:
+ [Mengaktifkan Federasi untuk AWS Menggunakan Windows Active Directory, ADFS, dan SAMP 2.0](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/). Menunjukkan cara menghapus akses menggunakan federasi perusahaan untuk AWS menggunakan Windows Active Directory (AD), Active Directory Federation Services (ADFS) 2.0, dan SAMP (Security Assertion Markup Language) 2.0.
+ [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md). Menunjukkan cara membuat proxy federasi kustom yang memungkinkan single sign-on (SSO) sehingga pengguna Active Directory yang ada dapat masuk ke file. Konsol Manajemen AWS
+ [Cara Menggunakan Shibboleth untuk Single Sign-On ke. Konsol Manajemen AWS](https://aws.amazon.com/blogs/security/how-to-use-shibboleth-for-single-sign-on-to-the-aws-management-console/) . Menunjukkan cara menggunakan [Shibboleth](http://shibboleth.net/) dan [SAML](id_roles_providers_saml.md) untuk memberikan akses pengguna dengan sistem masuk tunggal (SSO) ke Konsol Manajemen AWS.

### Sampel untuk federasi OIDC
<a name="sts-sample-apps-wif"></a>

Contoh aplikasi berikut menggambarkan cara menggunakan OIDCfederation dengan penyedia seperti Login with Amazon, Amazon Cognito, Facebook, atau Google. Anda dapat menukar otentikasi dari penyedia ini untuk kredensi AWS keamanan sementara untuk mengakses layanan. AWS 
+ [Tutorial Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/tutorials.html) — Kami menyarankan Anda menggunakan Amazon Cognito dengan pengembangan seluler AWS SDKs untuk. Amazon Cognito adalah cara paling mudah untuk mengelola identitas untuk aplikasi seluler, serta menyediakan fitur tambahan seperti sinkronisasi dan identitas lintas perangkat. *Untuk informasi selengkapnya tentang Amazon Cognito, lihat [Otentikasi dengan Amplify di Dokumentasi Amplify](https://docs.amplify.aws/lib/auth/getting-started/q/platform/js/#authentication-with-amplify).*

## Sumber daya tambahan untuk kredensial keamanan sementara
<a name="id_credentials_temp_related-topics"></a>

Skenario dan aplikasi berikut dapat memandu Anda dalam menggunakan kredensial keamanan sementara: 
+ [Bagaimana mengintegrasikan AWS STS SourceIdentity dengan penyedia identitas Anda](https://aws.amazon.com/blogs/security/how-to-integrate-aws-sts-sourceidentity-with-your-identity-provider/). Posting ini menunjukkan cara mengatur AWS STS `SourceIdentity` atribut saat menggunakan Okta, Ping, atau OneLogin sebagai idP Anda.
+  [Federasi OIDC](id_roles_providers_oidc.md). Bagian ini membahas cara mengonfigurasi peran IAM saat Anda menggunakan federasi OIDC dan API. `AssumeRoleWithWebIdentity` 
+ [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md). Topik ini menjelaskan cara menggunakan peran untuk mewajibkan Autentikasi Multi-Faktor (MFA) untuk melindungi tindakan API rahasia di akun Anda.

Untuk informasi selengkapnya tentang kebijakan dan izin di AWS lihat topik berikut:
+ [Manajemen akses untuk AWS sumber daya](access.md)
+ [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md).
+ [Mengelola Izin Akses ke Sumber Daya Amazon S3 Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) di Panduan *Pengguna Layanan Penyimpanan Sederhana Amazon*.
+  Untuk mempelajari apakah prinsip di akun di luar zona kepercayaan (organisasi atau akun tepercaya) memiliki akses untuk menjalankan peran Anda, lihat [Apa yang dimaksud dengan Penganalisis Akses IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html).

# Bandingkan AWS STS kredensialnya
<a name="id_credentials_sts-comparison"></a>

Tabel berikut membandingkan fitur operasi API AWS STS yang mengembalikan kredensil keamanan sementara tersebut. Untuk mempelajari tentang berbagai metode yang dapat Anda gunakan untuk meminta kredensial keamanan sementara dengan mengambil peran, lihat [Metode untuk mengambil peran](id_roles_manage-assume.md). Untuk mempelajari berbagai operasi AWS STS API yang memungkinkan Anda meneruskan tag sesi, lihat[Lulus tag sesi di AWS STS](id_session-tags.md).

**catatan**  
Anda dapat mengirim panggilan AWS STS API ke titik akhir global atau ke salah satu titik akhir Regional. Jika Anda memilih titik akhir yang lebih dekat dengan Anda, Anda dapat mengurangi latensi dan meningkatkan kinerja panggilan API Anda. Anda juga dapat memilih untuk mengarahkan panggilan Anda ke titik akhir Regional alternatif jika Anda tidak lagi dapat berkomunikasi dengan titik akhir awal. Jika Anda menggunakan salah satu dari beragam AWS SDKs, gunakan metode SDK tersebut untuk menentukan Region sebelum Anda melakukan panggilan API. Jika Anda membuat permintaan HTTP API secara manual, maka Anda harus mengarahkan permintaan ke titik akhir yang benar sendiri. Untuk informasi lebih lanjut, lihat [bagian AWS STS dari *Wilayah dan Titik Akhir*](https://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region) dan [Kelola AWS STS dalam sebuah Wilayah AWS](id_credentials_temp_enable-regions.md).


|  **AWS STS API**  |  **Siapa yang bisa menelepon**  |  **Masa pakai kredensi (min \$1 maks \$1 default)**  |  **Support MFA**¹  |  **Dukungan kebijakan sesi**²  |  **Pembatasan pada kredensi sementara yang dihasilkan**  | 
| --- | --- | --- | --- | --- | --- | 
|  [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)  | Pengguna IAM atau peran IAM dengan kredensial keamanan sementara yang ada  | 15 m \$1 Pengaturan durasi sesi maksimum³ \$1 1 jam  | Ya  | Ya |  Tidak bisa menelepon `GetFederationToken` atau `GetSessionToken`.  | 
|  [AssumeRoleWithSAM](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)  | Setiap pengguna; penelepon harus melewati tanggapan autentikasi SAML yang menunjukkan autentikasi dari penyedia layanan yang dikenal | 15 m \$1 Pengaturan durasi sesi maksimum³ \$1 1 jam  | Tidak | Ya |  Tidak bisa menelepon `GetFederationToken` atau `GetSessionToken`.  | 
|  [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)  | Setiap pengguna; penelepon harus melewati token JWT yang sesuai dengan OIDC yang menunjukkan otentikasi dari penyedia identitas yang dikenal | 15 m \$1 Pengaturan durasi sesi maksimum³ \$1 1 jam  | Tidak | Ya |  Tidak bisa menelepon `GetFederationToken` atau `GetSessionToken`.  | 
| [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) | Pengguna IAM atau Pengguna root akun AWS |  Pengguna IAM: 15 m \$1 1 jam \$1 1 jam Pengguna root: 15 m \$1 1 jam \$1 1 jam  | Tidak  | Ya  |  Tidak dapat memanggil operasi IAM menggunakan AWS CLI atau AWS API. Batasan ini tidak berlaku untuk sesi konsol. Tidak dapat memanggil AWS STS operasi kecuali `GetCallerIdentity` .1 SSO ke konsol diperbolehkan.⁵  | 
| [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) | Pengguna IAM atau Pengguna root akun AWS |  Pengguna IAM: 15 m \$1 1 jam \$1 1 jam Pengguna root: 15 m \$1 1 jam \$1 1 jam  | Ya  | Tidak  |  Tidak dapat memanggil operasi API IAM kecuali informasi MFA disertakan dengan permintaan. Tidak dapat memanggil operasi AWS STS API kecuali `AssumeRole` atau`GetCallerIdentity`. SSO ke konsol tidak diperbolehkan.⁶  | 

 ¹ **Support MFA** Anda dapat menyertakan informasi tentang perangkat otentikasi multi-faktor (MFA) saat Anda memanggil operasi dan API. AssumeRole GetSessionToken Hal ini memastikan kredensial keamanan sementara yang dihasilkan dari panggilan API hanya dapat digunakan oleh pengguna yang diautentikasi dengan perangkat MFA. Untuk informasi selengkapnya, lihat [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md). 

 ² **Dukungan kebijakan sesi**. Kebijakan sesi adalah kebijakan yang Anda teruskan sebagai parameter saat Anda membuat sesi sementara secara terprogram untuk peran atau sesi pengguna AWS STS gabungan. Kebijakan ini membatasi izin dari peran atau kebijakan berbasis identitas pengguna yang ditetapkan untuk sesi. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas entitas dan kebijakan sesi. Kebijakan sesi tidak dapat digunakan untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari peran yang sedang diasumsikan. Untuk informasi lebih lanjut tentang izin sesi peran, lihat [Kebijakan sesi](access_policies.md#policies_session).

³ **Pengaturan durasi sesi maksimum**. Gunakan parameter `DurationSeconds` untuk menentukan durasi sesi peran Anda dari 900 detik (15 menit) hingga pengaturan durasi sesi maksimum untuk peran tersebut. Untuk mempelajari cara melihat nilai maksimum untuk peran Anda, lihat [Memperbarui durasi sesi maksimum untuk peran](id_roles_update-role-settings.md#id_roles_update-session-duration).

**GetCallerIdentity**. Tidak ada izin yang diperlukan untuk melakukan operasi ini. Jika administrator menambahkan kebijakan ke pengguna IAM Anda atau peran yang secara jelas menghalangi akses ke tindakan `sts:GetCallerIdentity`, Anda masih dapat melakukan operasi ini. Izin tidak diperlukan karena informasi yang sama dikembalikan saat pengguna IAM atau peran ditolak aksesnya. Untuk melihat contoh tanggapan, lihat [Saya tidak berwenang untuk melakukan: iam: DeleteVirtual MFADevice](troubleshoot.md#troubleshoot_general_access-denied-delete-mfa).

⁵ **Masuk tunggal (SSO) ke konsol**. Untuk mendukung SSO, Anda AWS dapat memanggil federasi endpoint (`https://signin.aws.amazon.com/federation`) dan meneruskan kredensi keamanan sementara. Titik akhir mengembalikan token yang dapat Anda gunakan untuk membangun URL yang menandai pengguna secara langsung ke konsol tanpa memerlukan kata sandi. Untuk informasi selengkapnya, lihat [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md) dan [Cara Mengaktifkan Akses Lintas Akun ke Konsol AWS Manajemen](https://aws.amazon.com/blogs/security/how-to-enable-cross-account-access-to-the-aws-management-console) di Blog AWS Keamanan. 

⁶ Setelah Anda mendapatkan kredensial sementara Anda, Anda tidak dapat mengakses Konsol Manajemen Konsol Manajemen AWS dengan meneruskan kredensial ke titik akhir masuk tunggal gabungan. Lihat informasi yang lebih lengkap di [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md).

# Token pembawa layanan
<a name="id_credentials_bearer"></a>

Beberapa AWS layanan mengharuskan Anda memiliki izin untuk mendapatkan token pembawa AWS STS layanan sebelum Anda dapat mengakses sumber daya mereka secara terprogram. Layanan ini mendukung protokol yang mengharuskan Anda untuk menggunakan token pembawa alih-alih menggunakan tradisional[AWS Signature Versi 4 untuk permintaan API](reference_sigv.md). Saat Anda melakukan AWS CLI atau operasi AWS API yang memerlukan token pembawa, AWS layanan meminta token pembawa atas nama Anda. Layanan memberi Anda token, yang kemudian dapat Anda gunakan untuk melakukan operasi selanjutnya dalam layanan tersebut. 

AWS STS token pembawa layanan mencakup informasi dari otentikasi utama asli Anda yang dapat memengaruhi izin Anda. Informasi ini dapat mencakup tanda utama, tanda sesi, dan kebijakan sesi. Access key ID token dimulai dengan awalan `ABIA`. Ini membantu Anda untuk mengidentifikasi operasi yang dilakukan menggunakan token pembawa layanan dalam log CloudTrail anda.

**penting**  
Token pembawa dapat digunakan hanya untuk panggilan ke layanan yang membuatnya dan di Wilayah tempat pembuatannya. Anda tidak dapat menggunakan token pembawa untuk melakukan operasi di layanan atau Wilayah lain.

Contoh layanan yang mendukung token pembawa adalah AWS CodeArtifact. Sebelum Anda dapat berinteraksi dengan AWS CodeArtifact menggunakan manajer paket seperti NPM, Maven, atau PIP, Anda harus memanggil operasi. `aws codeartifact get-authorization-token` Operasi ini mengembalikan token pembawa yang dapat Anda gunakan untuk melakukan AWS CodeArtifact operasi. Atau, Anda dapat menggunakan perintah `aws codeartifact login` yang menyelesaikan operasi yang sama dan kemudian mengonfigurasi klien Anda secara otomatis. 

Jika Anda melakukan tindakan dalam AWS layanan yang menghasilkan token pembawa untuk Anda, Anda harus memiliki izin berikut dalam kebijakan IAM Anda:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowServiceBearerToken",
            "Effect": "Allow",
            "Action": "sts:GetServiceBearerToken",
            "Resource": "*"
        }
    ]
}
```

------

Untuk contoh token pembawa layanan, lihat [Menggunakan kebijakan berbasis identitas untuk AWS CodeArtifact](https://docs.aws.amazon.com/codeartifact/latest/ug/auth-and-access-control-iam-identity-based-access-control.html) dalam panduan pengguna. *AWS CodeArtifact*

# Minta kredensil keamanan sementara
<a name="id_credentials_temp_request"></a>

Untuk meminta kredensil keamanan sementara, Anda dapat menggunakan operasi AWS Security Token Service (AWS STS) di API. AWS Ini termasuk operasi untuk membuat dan menyediakan kredensi keamanan sementara kepada pengguna tepercaya yang dapat mengontrol akses ke sumber daya Anda AWS . Untuk informasi lebih lanjut tentang AWS STS, lihat[Kredensial keamanan sementara di IAM](id_credentials_temp.md). Untuk mempelajari lebih lanjut tentang berbagai metode berbeda yang dapat Anda gunakan untuk meminta kredensial keamanan sementara dengan mengasumsikan peran, lihat [Metode untuk mengambil peran](id_roles_manage-assume.md).

Untuk memanggil operasi API, Anda dapat menggunakan salah satu [AWS SDKs](https://aws.amazon.com/tools/). SDKs Tersedia untuk berbagai bahasa pemrograman dan lingkungan, termasuk Java, .NET, Python, Ruby, Android, dan iOS. SDKs Menangani tugas-tugas seperti menandatangani permintaan Anda secara kriptografis, mencoba ulang permintaan jika perlu, dan menangani respons kesalahan. Anda juga dapat menggunakan AWS STS Query API, yang dijelaskan dalam [Referensi AWS Security Token Service API](https://docs.aws.amazon.com/STS/latest/APIReference/). Akhirnya, dua alat baris perintah mendukung AWS STS perintah: [AWS Command Line Interface](https://aws.amazon.com/documentation/cli), dan [AWS Tools for Windows PowerShell](https://aws.amazon.com/documentation/powershell). 

Operasi AWS STS API membuat sesi baru dengan kredensial keamanan sementara yang mencakup access key pair dan token sesi. Pasangan pasangan access key terdiri dari access key ID dan secret access key. Pengguna (atau aplikasi yang dijalankan pengguna) dapat menggunakan kredensial ini untuk mengakses sumber daya Anda. Anda dapat membuat sesi peran dan meneruskan kebijakan sesi dan tag sesi secara terprogram menggunakan operasi AWS STS API. Izin sesi yang dihasilkan adalah persimpangan kebijakan berbasis identitas peran dan kebijakan sesi. Untuk informasi lebih lanjut tentang kebijakan sesi, lihat [Kebijakan sesi](access_policies.md#policies_session). Untuk informasi lebih lanjut tentang tanda sesi, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

**catatan**  
Ukuran token sesi yang dikembalikan operasi AWS STS API tidak tetap. Kami sangat menyarankan agar Anda tidak membuat asumsi tentang ukuran maksimum. Ukuran token umumnya kurang dari 4096 byte, tetapi itu dapat bervariasi.

## Menggunakan AWS STS dengan AWS Wilayah
<a name="using_sts_regions"></a>

Anda dapat mengirim panggilan AWS STS API ke titik akhir global atau ke salah satu titik akhir Regional. Jika Anda memilih titik akhir yang lebih dekat dengan Anda, Anda dapat mengurangi latensi dan meningkatkan kinerja panggilan API Anda. Anda juga dapat memilih untuk mengarahkan panggilan Anda ke titik akhir Regional alternatif jika Anda tidak lagi dapat berkomunikasi dengan titik akhir awal. Jika Anda menggunakan salah satu dari beragam AWS SDKs, gunakan metode SDK tersebut untuk menentukan Region sebelum Anda melakukan panggilan API. Jika Anda membuat permintaan HTTP API secara manual, maka Anda harus mengarahkan permintaan ke titik akhir yang benar sendiri. Untuk informasi lebih lanjut, lihat [bagian AWS STS dari *Wilayah dan Titik Akhir*](https://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region) dan [Kelola AWS STS dalam sebuah Wilayah AWS](id_credentials_temp_enable-regions.md).

Berikut ini adalah operasi API yang dapat Anda gunakan untuk memperoleh kredensil sementara untuk digunakan di AWS lingkungan dan aplikasi Anda.

## Meminta kredensi untuk delegasi dan federasi lintas akun melalui pialang identitas khusus
<a name="api_assumerole"></a>

Operasi [https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html)API berguna untuk memungkinkan pengguna IAM yang ada mengakses AWS sumber daya yang belum mereka akses. Misalnya, pengguna mungkin memerlukan akses ke sumber daya di tempat lain Akun AWS. Itu juga berguna sebagai sarana untuk mendapatkan akses istimewa sementara waktu—misalnya, untuk menyediakan Multi-Factor Authentication (MFA) Anda harus memanggil API ini menggunakan kredensi aktif. Untuk mempelajari siapa yang dapat memanggil operasi ini, lihat[Bandingkan AWS STS kredensialnya](id_credentials_sts-comparison.md). Untuk informasi selengkapnya, lihat [Buat peran untuk memberikan izin kepada pengguna IAM](id_roles_create_for-user.md) dan [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md).

**Untuk meminta kredensi keamanan sementara untuk delegasi lintas akun dan federasi melalui broker identitas khusus**

1. Otentikasi dengan kredensi AWS keamanan Anda. Panggilan ini harus dilakukan dengan menggunakan kredensial keamanan AWS yang berlaku.

1. Panggil operasi [https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html).

Contoh berikut menunjukkan permintaan sampel dan respons menggunakan `AssumeRole`. Contoh permintaan ini mengasumsikan peran `demo` untuk durasi yang ditentukan dengan disertakan [Kebijakan sesi](access_policies.md#policies_session), [tanda sesi](id_session-tags.md), [ID eksternal](id_roles_common-scenarios_third-party.md), dan [identitas sumber](id_credentials_temp_control-access_monitor.md). Sesi yang dihasilkan diberi nama `John-session`. 

**Example Contoh Permintaan**  

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=AssumeRole
&RoleSessionName=John-session
&RoleArn=arn:aws::iam::123456789012:role/demo
&Policy=%7B%22Version%22%3A%222012-10-17		 	 	 %22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%20%22Stmt1%22%2C%22Effect%22%3A%20%22Allow%22%2C%22Action%22%3A%20%22s3%3A*%22%2C%22Resource%22%3A%20%22*%22%7D%5D%7D
&DurationSeconds=1800
&Tags.member.1.Key=Project
&Tags.member.1.Value=Pegasus
&Tags.member.2.Key=Cost-Center
&Tags.member.2.Value=12345
&ExternalId=123ABC
&SourceIdentity=DevUser123
&AUTHPARAMS
```

Nilai kebijakan yang ditunjukkan dalam contoh sebelumnya adalah versi kebijakan berkode URL dari kebijakan berikut ini:

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

****  

```
{"Version":"2012-10-17",		 	 	 "Statement":[{"Sid":"Stmt1","Effect":"Allow","Action":"s3:*","Resource":"*"}]}
```

------

Parameter `AUTHPARAMS` dalam contoh adalah placeholder untuk *tanda tangan* Anda. Tanda tangan adalah informasi otentikasi yang harus Anda sertakan dengan permintaan AWS HTTP API. Sebaiknya gunakan [AWS SDKs](https://aws.amazon.com/tools/)untuk membuat permintaan API, dan salah satu manfaatnya adalah penandatanganan permintaan penandatanganan untuk Anda. SDKs Jika Anda harus membuat dan menandatangani permintaan API secara manual, lihat [Menandatangani AWS Permintaan Dengan Menggunakan Tanda Tangan Versi 4](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html) di bagian *Referensi Umum Amazon Web Services*untuk mempelajari cara menandatangani permintaan.

Selain kredensial keamanan sementara, responsnya mencakup Amazon Resource Name (ARN) untuk pengguna federasi dan waktu kedaluwarsa kredensial tersebut.

**Example Contoh tanggapan**  

```
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<SourceIdentity>DevUser123</SourceIdentity>
<Credentials>
  <SessionToken>
   AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
   LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
   QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
   9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
   +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
  </SessionToken>
  <SecretAccessKey>
   wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
  </SecretAccessKey>
  <Expiration>2019-07-15T23:28:33.359Z</Expiration>
  <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId>
</Credentials>
<AssumedRoleUser>
  <Arn>arn:aws:sts::123456789012:assumed-role/demo/John</Arn>
  <AssumedRoleId>ARO123EXAMPLE123:John</AssumedRoleId>
</AssumedRoleUser>
<PackedPolicySize>8</PackedPolicySize>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>
```

**catatan**  
 AWS Konversi memampatkan kebijakan sesi dan tag sesi yang diteruskan ke dalam format biner yang dikemas yang memiliki batas terpisah. Permintaan Anda bisa gagal untuk batas ini bahkan jika teks biasa Anda memenuhi persyaratan lain. Elemen respons `PackedPolicySize` menunjukkan persentase seberapa dekat kebijakan dan tanda untuk permintaan Anda dengan batas ukuran atas.

## Meminta kredensi melalui penyedia OIDC
<a name="api_assumerolewithwebidentity"></a>

Operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API mengembalikan satu set kredensil AWS keamanan sementara dengan imbalan JSON Web Token (JWT). Ini termasuk penyedia identitas publik, seperti Login with Amazon, Facebook, Google, dan penyedia yang mengeluarkan JWTs yang kompatibel dengan penemuan OpenID Connect (OIDC), seperti GitHub tindakan atau Azure Devops. Untuk informasi selengkapnya, lihat [Federasi OIDC](id_roles_providers_oidc.md).

**catatan**  
`AssumeRoleWithWebIdentity`permintaan tidak ditandatangani dengan, dan tidak memerlukan AWS kredensil.

**Meminta kredensi melalui penyedia OIDC**

1. Panggil operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html).

   Saat Anda menelepon`AssumeRoleWithWebIdentity`, AWS validasi token yang disajikan dengan memverifikasi tanda tangan digital menggunakan kunci publik yang tersedia melalui keyset web JSON (JWKS) IDP Anda. Jika token valid, dan semua kondisi yang ditetapkan dalam kebijakan kepercayaan peran IAM terpenuhi, AWS kembalikan informasi berikut kepada Anda:
   + Serangkaian kredensial keamanan sementara. Ini terdiri dari access key ID, secret access key, dan token sesi.
   + ID peran dan ARN peran yang diasumsikan.
   + Suatu nilai `SubjectFromWebIdentityToken` yang memuat ID pengguna unik.

1. Aplikasi Anda kemudian dapat menggunakan kredenal keamanan sementara yang dikembalikan dalam respons untuk melakukan panggilan AWS API. Ini adalah proses yang sama dengan membuat panggilan AWS API dengan kredensil keamanan jangka panjang. Perbedaannya adalah Anda harus menyertakan token sesi, yang memungkinkan AWS verifikasi bahwa kredensil keamanan sementara valid.

Aplikasi Anda harus menyimpan kredensil yang dikembalikan oleh AWS STS dan menyegarkannya sesuai kebutuhan. Jika aplikasi Anda dibuat menggunakan AWS SDK, SDK memiliki penyedia kredensi yang dapat menangani kredensi panggilan `AssumeRoleWithWebIdentity` dan penyegaran AWS sebelum kedaluwarsa. Untuk informasi selengkapnya, lihat [AWS SDKs dan Penyedia kredensi standar Alat](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) di Panduan Referensi Alat *AWS SDKs dan Alat*.

## Meminta kredensil melalui penyedia identitas SALL 2.0
<a name="api_assumerolewithsaml"></a>

Operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)API mengembalikan satu set kredensil keamanan sementara untuk prinsipal federasi SAMP yang diautentikasi oleh sistem identitas organisasi Anda yang ada. Pengguna juga harus menggunakan [SAML](https://www.oasis-open.org/standards#samlv2.0) 2.0 (Security Assertion Markup Language) untuk menyampaikan informasi autentikasi dan otorisasi ke AWS. Operasi API ini berguna pada organisasi yang telah mengintegrasikan sistem identitas mereka (seperti Windows Active Directory atau OpenLDAP) dengan perangkat lunak yang dapat menghasilkan pernyataan SAML. Integrasi tersebut menyediakan informasi tentang identitas dan izin pengguna (seperti ctive Directory Federation Services atau Shibboleth). Untuk informasi selengkapnya, lihat [Federasi SAMP 2.0](id_roles_providers_saml.md).

1. Panggil operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html).

   Ini adalah panggilan yang tidak ditandatangani, artinya Anda tidak perlu mengautentikasi kredensi AWS keamanan sebelum membuat permintaan.
**catatan**  
Sebuah panggilan ke `AssumeRoleWithSAML` tidak ditandatangani (dienkripsi). Oleh karena itu, Anda hanya boleh menyertakan kebijakan sesi opsional jika permintaan dikirim melalui perantara terpercaya. Dalam hal ini, seseorang dapat mengubah kebijakan untuk menghapus pembatasan.

1. Saat Anda menelepon`AssumeRoleWithSAML`, AWS verifikasi keaslian pernyataan SAFL. Dengan asumsi bahwa penyedia identitas memvalidasi pernyataan, AWS mengembalikan informasi berikut kepada Anda:
   + Serangkaian kredensial keamanan sementara. Ini terdiri dari access key ID, secret access key, dan token sesi. 
   + ID peran dan ARN peran yang diasumsikan. 
   + Nilai `Audience` yang berisi nilai atribut `Recipient` dari `SubjectConfirmationData` elemen pernyataan SAML.
   + Nilai `Issuer` yang berisi nilai dari elemen `Issuer` pernyataan SAML.
   + `NameQualifier`Elemen yang berisi nilai hash yang dibangun dari `Issuer` nilai, Akun AWS ID, dan nama ramah penyedia SAMP. Ketika dikombinasikan dengan `Subject` elemen, mereka dapat secara unik mengidentifikasi prinsipal federasi SALL.
   + Suatu Elemen `Subject` yang berisi nilai dari elemen `NameID` dalam elemen `Subject` pernyataan SAML.
   + Suatu elemen `SubjectType` yang menunjukkan format elemen `Subject`. Kunci ini dapat berupa `persistent`, `transient`, atau URI `Format` penuh dari elemen `Subject` dan `NameID` yang digunakan dalam pernyataan SAML Anda. Untuk informasi tentang elemen `NameID` `Format` atribut, lihat [Konfigurasikan pernyataan SAMP untuk respons otentikasi](id_roles_providers_create_saml_assertions.md). 

1. Gunakan kredenal keamanan sementara yang ditampilkan dalam respons untuk melakukan panggilan AWS API. Ini adalah proses yang sama dengan membuat panggilan AWS API dengan kredensil keamanan jangka panjang. Perbedaannya adalah bahwa Anda harus menyertakan token sesi, yang memungkinkan AWS memverifikasi bahwa kredensial keamanan sementara valid.

Aplikasi Anda harus menyimpan kredensial. Secara default kredensial kedaluwarsa setelah satu jam. Jika Anda tidak menggunakan tindakan [STSCredentialsPenyedia Amazon](https://aws.amazon.com/blogs/mobile/using-the-amazoncredentialsprovider-protocol-in-the-aws-sdk-for-ios) di AWS SDK, terserah Anda dan aplikasi Anda untuk menelepon `AssumeRoleWithSAML` lagi. Panggil operasi ini untuk mendapatkan rangkaian kredensial keamanan sementara yang baru sebelum kredensial lama kedaluwarsa.

## Meminta kredensi melalui pialang identitas khusus
<a name="api_getfederationtoken"></a>

Operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)API mengembalikan satu set kredensil keamanan sementara untuk prinsipal pengguna AWS STS federasi. API ini berbeda dari `AssumeRole` karena periode kedaluwarsa default jauh lebih lama (12 jam, bukan satu jam). Sebagai tambahan, Anda dapat menggunakan parameter `DurationSeconds` untuk menentukan durasi untuk kredensial keamanan sementara agar tetap valid. Kredensi yang dihasilkan berlaku untuk durasi yang ditentukan, antara 900 detik (15 menit) hingga 129.600 detik (36 jam). Masa kedaluwarsa yang lebih lama dapat membantu mengurangi jumlah panggilan AWS karena Anda tidak perlu mendapatkan kredensi baru sesering mungkin.

1. Otentikasi dengan kredensi AWS keamanan pengguna IAM spesifik Anda. Panggilan ini harus dilakukan menggunakan kredensil AWS keamanan yang valid.

1. Panggil operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html).

`GetFederationToken`Panggilan mengembalikan kredensil keamanan sementara yang terdiri dari token sesi, kunci akses, kunci rahasia, dan kedaluwarsa. Anda dapat menggunakan `GetFederationToken` jika anda ingin mengelola izin di dalam organization anda (misalnya, menggunakan aplikasi proksi untuk menetapkan izin).

Contoh berikut menunjukkan permintaan sampel dan respons yang menggunakan `GetFederationToken`. Permintaan contoh ini meminta menggabungkan pengguna panggilan untuk durasi yang ditentukan dengan ARN [kebijakan sesi](access_policies.md#policies_session) dan[tanda sesi](id_session-tags.md). Sesi yang dihasilkan diberi nama `Jane-session`.

**Example Contoh Permintaan**  

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetFederationToken
&Name=Jane-session
&PolicyArns.member.1.arn==arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2FRole1policy
&DurationSeconds=1800
&Tags.member.1.Key=Project
&Tags.member.1.Value=Pegasus
&Tags.member.2.Key=Cost-Center
&Tags.member.2.Value=12345
&AUTHPARAMS
```

Kebijakan ARN yang ditunjukkan dalam contoh sebelumnya mencakup ARN berkode URL berikut: 

`arn:aws:iam::123456789012:policy/Role1policy`

Selain itu, perhatikan bahwa parameter `&AUTHPARAMS` dalam contoh dimaksudkan sebagai kerangka untuk informasi autentikasi. Ini adalah *tanda tangan*, yang harus Anda sertakan dengan permintaan AWS HTTP API. Sebaiknya gunakan [AWS SDKs](https://aws.amazon.com/tools/)untuk membuat permintaan API, dan salah satu manfaatnya adalah penandatanganan permintaan penandatanganan untuk Anda. SDKs Jika Anda harus membuat dan menandatangani permintaan API secara manual, buka [AWS Permintaan Menandatangani Dengan Menggunakan Tanda Tangan Versi 4](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html) di bagian *Referensi Umum Amazon Web Services*untuk mempelajari cara menandatangani permintaan.

Selain kredensial keamanan sementara, responsnya mencakup Amazon Resource Name (ARN) untuk pengguna federasi dan waktu kedaluwarsa kredensial tersebut.

**Example Contoh tanggapan**  

```
<GetFederationTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<GetFederationTokenResult>
<Credentials>
  <SessionToken>
   AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
   LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
   QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
   9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
   +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCEXAMPLE==
  </SessionToken>
  <SecretAccessKey>
  wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
  </SecretAccessKey>
  <Expiration>2019-04-15T23:28:33.359Z</Expiration>
  <AccessKeyId>AKIAIOSFODNN7EXAMPLE;</AccessKeyId>
</Credentials>
<FederatedUser>
  <Arn>arn:aws:sts::123456789012:federated-user/Jean</Arn>
  <FederatedUserId>123456789012:Jean</FederatedUserId>
</FederatedUser>
<PackedPolicySize>4</PackedPolicySize>
</GetFederationTokenResult>
<ResponseMetadata>
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
</ResponseMetadata>
</GetFederationTokenResponse>
```

**catatan**  
 AWS Konversi memampatkan kebijakan sesi dan tag sesi yang diteruskan ke dalam format biner yang dikemas yang memiliki batas terpisah. Permintaan Anda bisa gagal untuk batas ini bahkan jika teks biasa Anda memenuhi persyaratan lain. Elemen respons `PackedPolicySize` menunjukkan persentase seberapa dekat kebijakan dan tanda untuk permintaan Anda dengan batas ukuran atas.

AWS menyarankan agar Anda memberikan izin di tingkat sumber daya (misalnya, Anda melampirkan kebijakan berbasis sumber daya ke bucket Amazon S3), Anda dapat menghilangkan parameternya. `Policy` Namun, jika Anda tidak menyertakan kebijakan untuk prinsipal pengguna AWS STS federasi, kredensil keamanan sementara tidak akan memberikan izin apa pun. Dalam kasus ini, Anda *harus* menggunakan kebijakan sumber daya untuk memberikan akses pengguna gabungan ke sumber daya AWS Anda.

Misalnya, anggaplah Akun AWS nomor Anda 111122223333, dan Anda memiliki bucket Amazon S3 yang ingin Anda izinkan untuk diakses oleh Susan. Kredensial keamanan sementara Susan tidak menyertakan kebijakan untuk bucket. Dalam hal ini, Anda perlu memastikan bahwa bucket memiliki kebijakan ARN yang cocok dengan ARN Susan, seperti `arn:aws:sts::111122223333:federated-user/Susan`. 

## Meminta kredensi untuk pengguna di lingkungan yang tidak tepercaya
<a name="api_getsessiontoken"></a>

Operasi API [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) mengembalikan satu set kredensial keamanan sementara untuk pengguna IAM yang sudah ada. Ini berguna untuk memberikan keamanan yang ditingkatkan, seperti mengizinkan AWS permintaan hanya ketika MFA diaktifkan untuk pengguna IAM. Karena kredensial bersifat sementara, kredensial ini memberikan keamanan yang lebih baik ketika Anda memiliki pengguna IAM yang mengakses sumber daya Anda melalui lingkungan yang kurang aman. Contoh lingkungan yang kurang aman termasuk perangkat seluler atau browser web.

1. Otentikasi dengan kredensi AWS keamanan pengguna IAM spesifik Anda. Panggilan ini harus dilakukan menggunakan kredensil AWS keamanan yang valid.

1. Panggil operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html).

1. `GetSessionToken`mengembalikan kredensil keamanan sementara yang terdiri dari token sesi, ID kunci akses, dan kunci akses rahasia.

Secara default, kredensial keamanan sementara untuk pengguna IAM berlaku selama maksimal 12 jam. Tetapi Anda dapat meminta durasi sesingkat 15 menit atau selama 36 jam menggunakan parameter `DurationSeconds`. Untuk alasan keamanan, token untuk sebuah Pengguna root akun AWS dibatasi hingga durasi satu jam.

Contoh berikut menunjukkan permintaan sampel dan respons menggunakan `GetSessionToken`. Jawaban juga mencakup waktu kedaluwarsa kredensial keamanan sementara. 

**Example Contoh Permintaan**  

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetSessionToken
&DurationSeconds=1800
&AUTHPARAMS
```

Parameter `AUTHPARAMS` dalam contoh adalah placeholder untuk *tanda tangan* Anda. Tanda tangan adalah informasi otentikasi yang harus Anda sertakan dengan permintaan AWS HTTP API. Sebaiknya gunakan [AWS SDKs](https://aws.amazon.com/tools/)untuk membuat permintaan API, dan salah satu manfaatnya adalah penandatanganan permintaan penandatanganan untuk Anda. SDKs Jika Anda harus membuat dan menandatangani permintaan API secara manual, buka [AWS Permintaan Menandatangani Dengan Menggunakan Tanda Tangan Versi 4](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html) di bagian *Referensi Umum Amazon Web Services*untuk mempelajari cara menandatangani permintaan.

**Example Contoh tanggapan**  

```
<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<GetSessionTokenResult>
<Credentials>
  <SessionToken>
   AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L
   To6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3z
   rkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtp
   Z3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE
  </SessionToken>
  <SecretAccessKey>
  wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
  </SecretAccessKey>
  <Expiration>2011-07-11T19:55:29.611Z</Expiration>
  <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId>
</Credentials>
</GetSessionTokenResult>
<ResponseMetadata>
<RequestId>58c5dbae-abef-11e0-8cfe-09039844ac7d</RequestId>
</ResponseMetadata>
</GetSessionTokenResponse>
```

Secara opsional, `GetSessionToken` permintaan dapat menyertakan `SerialNumber` dan `TokenCode` nilai untuk verifikasi otentikasi AWS multi-faktor (MFA). Jika nilai yang diberikan valid, AWS STS berikan kredensil keamanan sementara yang mencakup status otentikasi MFA. Kredensi keamanan sementara kemudian dapat digunakan untuk mengakses operasi API atau AWS situs web yang dilindungi MFA selama otentikasi MFA valid. 

Contoh berikut menunjukkan permintaan `GetSessionToken` yang menyertakan kode verifikasi MFA dan nomor seri perangkat. 

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetSessionToken
&DurationSeconds=7200
&SerialNumber=YourMFADeviceSerialNumber
&TokenCode=123456
&AUTHPARAMS
```

**catatan**  
Panggilan untuk AWS STS dapat ke titik akhir global atau ke salah satu titik akhir Regional yang Anda aktifkan. Akun AWS Untuk informasi lebih lanjut, lihat [bagian AWS STS pada *Wilayah dan Titik Akhir*](https://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region).  
Parameter `AUTHPARAMS` dalam contoh adalah placeholder untuk *tanda tangan* Anda. Tanda tangan adalah informasi otentikasi yang harus Anda sertakan dengan permintaan AWS HTTP API. Sebaiknya gunakan [AWS SDKs](https://aws.amazon.com/tools/)untuk membuat permintaan API, dan salah satu manfaatnya adalah penandatanganan permintaan penandatanganan untuk Anda. SDKs Jika Anda harus membuat dan menandatangani permintaan API secara manual, lihat [Menandatangani AWS Permintaan Dengan Menggunakan Tanda Tangan Versi 4](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html) di bagian *Referensi Umum Amazon Web Services*untuk mempelajari cara menandatangani permintaan.

# Gunakan kredensi sementara dengan sumber daya AWS
<a name="id_credentials_temp_use-resources"></a>

Anda dapat menggunakan kredenal keamanan sementara untuk membuat permintaan terprogram untuk AWS sumber daya menggunakan AWS CLI atau AWS API (menggunakan). [AWS SDKs](https://aws.amazon.com/tools/) Kredensi sementara memberikan izin yang sama dengan kredenal keamanan jangka panjang, seperti kredenal pengguna IAM. Namun, ada beberapa perbedaan:
+ Saat Anda melakukan panggilan menggunakan kredensi keamanan sementara, panggilan harus menyertakan token sesi, yang dikembalikan bersama dengan kredensial sementara tersebut. AWS menggunakan token sesi untuk memvalidasi kredenal keamanan sementara. 
+ Kredensi sementara kedaluwarsa setelah interval tertentu. Setelah kredensi sementara kedaluwarsa, panggilan apa pun yang Anda lakukan dengan kredensi tersebut akan gagal, jadi Anda harus membuat kumpulan kredensi sementara yang baru. Kredensi sementara tidak dapat diperpanjang atau disegarkan di luar interval yang ditentukan asli.
+ Saat Anda menggunakan kredensial sementara untuk membuat permintaan, prinsipal Anda mungkin mencakup satu set tanda. Tanda ini berasal dari tanda sesi dan tanda yang dilampirkan pada peran yang Anda asumsikan. Untuk informasi lebih lanjut tentang tanda sesi, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

Jika Anda menggunakan, [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/)(AWS CLI) [AWS SDKs](https://aws.amazon.com/tools), atau [Tools untuk Windows PowerShell, cara untuk](https://aws.amazon.com/powershell) mendapatkan dan menggunakan kredenal keamanan sementara berbeda dengan konteksnya. Jika Anda menjalankan kode, AWS CLI, atau PowerShell perintah Alat untuk Windows di dalam instans EC2, Anda dapat memanfaatkan peran untuk Amazon EC2. Jika tidak, Anda dapat menghubungi [API AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/) untuk mendapatkan kredensial sementara, kemudian menggunakannya secara eksplisit untuk melakukan panggilan ke layanan AWS .

**catatan**  
Anda dapat menggunakan AWS Security Token Service (AWS STS) untuk membuat dan menyediakan kredenal keamanan sementara kepada pengguna tepercaya yang dapat mengontrol akses ke sumber daya Anda AWS . Untuk informasi lebih lanjut tentang AWS STS, lihat[Kredensial keamanan sementara di IAM](id_credentials_temp.md). AWS STS adalah layanan global yang memiliki titik akhir default di`https://sts.amazonaws.com`. Titik akhir ini berada di Wilayah AS Timur (Virginia N.), meskipun kredensi yang Anda dapatkan dari titik ini dan titik akhir lainnya valid secara global. Kredensial ini bekerja dengan layanan dan sumber daya di Wilayah mana pun. Anda juga dapat memilih untuk melakukan panggilan AWS STS API ke titik akhir di salah satu Wilayah yang didukung. Hal ini dapat mengurangi latensi dengan membuat permintaan dari server di Wilayah yang secara geografis lebih dekat dengan Anda. Tidak peduli dari Wilayah mana kredensial Anda berasal, mereka bekerja secara global. Untuk informasi selengkapnya, lihat [Kelola AWS STS dalam sebuah Wilayah AWS](id_credentials_temp_enable-regions.md).

**Contents**
+ [Menggunakan kredensial sementara di instans Amazon EC2](#using-temp-creds-sdk-ec2-instances)
+ [Menggunakan kredensi keamanan sementara dengan AWS SDKs](#using-temp-creds-sdk)
+ [Menggunakan kredensi keamanan sementara dengan AWS CLI](#using-temp-creds-sdk-cli)
+ [Menggunakan kredensial keamanan sementara dengan operasi API](#RequestWithSTS)
+ [Informasi selengkapnya](#using-temp-creds-more-info)

## Menggunakan kredensial sementara di instans Amazon EC2
<a name="using-temp-creds-sdk-ec2-instances"></a>

Jika Anda ingin menjalankan AWS CLI perintah atau kode di dalam instans EC2, cara yang disarankan untuk mendapatkan kredensi adalah dengan menggunakan [peran untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html). Anda membuat peran IAM yang menentukan izin yang ingin Anda berikan ke aplikasi yang berjalan di instans EC2 Saat Anda meluncurkan instans, Anda mengaitkan peran dengan instans tersebut.

Aplikasi, AWS CLI, dan Alat untuk PowerShell perintah Windows yang berjalan pada instance kemudian bisa mendapatkan kredenal keamanan sementara otomatis dari metadata instance. Anda tidak perlu secara eksplisit mendapatkan kredensial kerahasiaan keamanan sementara. The AWS SDKs, AWS CLI, and Tools untuk Windows PowerShell secara otomatis mendapatkan kredensi dari Layanan Metadata Instans EC2 (IMDS) dan menggunakannya. Kredensial sementara memiliki izin yang Anda tentukan untuk peran yang terkait dengan instans.

Untuk informasi selengkapnya dan untuk contoh, lihat berikut ini:
+  [Menggunakan Peran IAM untuk Memberikan Akses ke AWS Sumber Daya di Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html) - AWS SDK untuk Java
+  [Memberikan Akses Menggunakan Peran IAM](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html) - AWS SDK untuk .NET 
+  [Menciptakan Peran](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/iam-example-create-role.html) - AWS SDK untuk Ruby

## Menggunakan kredensi keamanan sementara dengan AWS SDKs
<a name="using-temp-creds-sdk"></a>

Untuk menggunakan kredensi keamanan sementara dalam kode, Anda secara terprogram memanggil AWS STS API seperti `AssumeRole` dan mengekstrak kredenal dan token sesi yang dihasilkan. Anda kemudian menggunakan nilai-nilai tersebut sebagai kredensi untuk panggilan berikutnya ke. AWS Contoh berikut menunjukkan pseudocode untuk cara menggunakan kredenal keamanan sementara jika Anda menggunakan SDK: AWS 

```
assumeRoleResult = AssumeRole(role-arn);
tempCredentials = new SessionAWSCredentials(
   assumeRoleResult.AccessKeyId, 
   assumeRoleResult.SecretAccessKey, 
   assumeRoleResult.SessionToken);
s3Request = CreateAmazonS3Client(tempCredentials);
```

Untuk contoh yang ditulis dalam Python (menggunakan [AWS SDK for Python (Boto)](https://aws.amazon.com/sdk-for-python/)), lihat[Beralih ke peran IAM (AWS API)](id_roles_use_switch-role-api.md). Contoh ini menunjukkan cara melakukan panggilan `AssumeRole` untuk mendapatkan kredensial keamanan sementara dan kemudian menggunakan kredensial tersebut untuk melakukan panggilan ke Amazon S3

Untuk detail tentang cara memanggil `AssumeRole``GetFederationToken`, dan operasi API lainnya, lihat [Referensi AWS Security Token Service API](https://docs.aws.amazon.com/STS/latest/APIReference/). Untuk informasi tentang mendapatkan kredensial keamanan sementara dan token sesi dari hasilnya, lihat dokumentasi untuk SDK yang sedang Anda kerjakan. Anda dapat menemukan dokumentasi untuk semua AWS SDKs pada [halaman AWS dokumentasi](https://aws.amazon.com/documentation) utama, di bagian **SDKs dan Toolkit**.

Anda harus memastikan bahwa Anda mendapatkan set kredensial baru sebelum kredensial yang lama kedaluwarsa. Di beberapa SDKs, Anda dapat menggunakan penyedia yang mengelola proses penyegaran kredenal untuk Anda; periksa dokumentasi untuk SDK yang Anda gunakan. 

## Menggunakan kredensi keamanan sementara dengan AWS CLI
<a name="using-temp-creds-sdk-cli"></a>

Anda dapat menggunakan kredensial keamanan sementara dengan AWS CLI Ini dapat berguna untuk menguji kebijakan. 

Dengan menggunakan [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/), Anda dapat memanggil [AWS STS API](https://docs.aws.amazon.com/STS/latest/APIReference/) seperti `AssumeRole` atau `GetFederationToken` dan kemudian menangkap output yang dihasilkan. Contoh berikut ini menunjukkan panggilan ke `AssumeRole` yang mengirimkan output ke file. Dalam contoh, `profile` parameter diasumsikan sebagai profil dalam file AWS CLI konfigurasi. Itu juga diasumsikan sebagai kredensial referensi untuk pengguna IAM yang memiliki izin untuk mengambil peran tersebut.

```
aws sts assume-role --role-arn arn:aws:iam::123456789012:role/role-name --role-session-name "RoleSession1" --profile IAM-user-name > assume-role-output.txt
```

Setelah perintah selesai, Anda dapat mengekstrak ID kunci akses, kunci akses rahasia, dan token sesi dari mana pun Anda merutekannya. Anda dapat melakukannya secara manual atau dengan menggunakan skrip. Kemudian Anda dapat menetapkan nilai-nilai ini ke variabel lingkungan. 

Ketika Anda menjalankan AWS CLI perintah, AWS CLI mencari kredensi dalam urutan tertentu—pertama dalam variabel lingkungan dan kemudian di file konfigurasi. Oleh karena itu, setelah Anda memasukkan kredensi sementara ke dalam variabel lingkungan, kredensialnya akan AWS CLI digunakan secara default. (Jika Anda menentukan `profile` parameter dalam perintah, AWS CLI melewatkan variabel lingkungan. Sebagai gantinya, AWS CLI tampilan dalam file konfigurasi, yang memungkinkan Anda mengganti kredensi dalam variabel lingkungan jika perlu.) 

Contoh berikut menunjukkan bagaimana Anda dapat mengatur variabel lingkungan untuk kredenal keamanan sementara dan kemudian memanggil perintah AWS CLI . Karena tidak ada `profile` parameter yang disertakan dalam AWS CLI perintah, AWS CLI mencari kredensi terlebih dahulu dalam variabel lingkungan dan oleh karena itu menggunakan kredenal sementara. 

**Linux**

```
$ export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token>
$ aws ec2 describe-instances --region us-west-1
```

**Windows**

```
C:\> SET AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
C:\> SET AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> SET AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of token> 
C:\> aws ec2 describe-instances --region us-west-1
```

## Menggunakan kredensial keamanan sementara dengan operasi API
<a name="RequestWithSTS"></a>

Jika Anda membuat permintaan HTTPS API langsung AWS, Anda dapat menandatangani permintaan tersebut dengan kredenal keamanan sementara yang Anda dapatkan dari AWS Security Token Service ()AWS STS. Untuk melakukan ini, Anda menggunakan ID kunci akses dan kunci akses rahasia yang Anda terima AWS STS. Anda menggunakan access key ID dan secret access key dengan cara yang sama seperti Anda menggunakan kredensial jangka panjang untuk menandatangani permintaan. Anda juga menambahkan ke permintaan API Anda token sesi yang Anda terima AWS STS. Anda menambahkan token sesi untuk header HTTP atau parameter string kueri bernama `X-Amz-Security-Token`. Anda menambahkan token sesi untuk HTTP header *atau*parameter string kueri, tetapi tidak keduanya. Untuk informasi selengkapnya tentang penandatanganan permintaan API HTTPS, lihat [Menandatangani Permintaan AWS API](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) di bagian *Referensi Umum AWS*.

## Informasi selengkapnya
<a name="using-temp-creds-more-info"></a>

Untuk informasi selengkapnya tentang penggunaan AWS STS dengan AWS layanan lain, lihat tautan berikut:
+ **Amazon S3**. Lihat [Membuat permintaan menggunakan kredensi sementara pengguna IAM atau Membuat permintaan menggunakan kredenal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/AuthUsingTempSessionToken.html) [sementara pengguna gabungan di Panduan Pengguna Layanan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/AuthUsingTempFederationToken.html) Penyimpanan Sederhana *Amazon*.
+ **Amazon SNS**. Lihat [Menggunakan kebijakan berbasis identitas dengan Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/UsingIAMwithSNS.html#UsingTemporarySecurityCredentials_SNS) di Panduan Pengembang Layanan Pemberitahuan *Sederhana Amazon*.
+ **Amazon SQS**. Lihat [Manajemen identitas dan akses di Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/UsingIAM.html#UsingTemporarySecurityCredentials_SQS) di Panduan Pengembang *Layanan Antrian Sederhana Amazon*.
+ **Amazon SimpleDB**. Lihat [Menggunakan Kredenal Keamanan Sementara](https://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/index.html?UsingTemporarySecurityCredentials_SDB.html) di Panduan Pengembang *Amazon SimpleDB*.

# Izin untuk kredensial keamanan sementara
<a name="id_credentials_temp_control-access"></a>

Anda dapat menggunakan AWS Security Token Service (AWS STS) untuk membuat dan menyediakan kredenal keamanan sementara kepada pengguna tepercaya yang dapat mengontrol akses ke sumber daya Anda AWS . Untuk informasi lebih lanjut tentang AWS STS, lihat[Kredensial keamanan sementara di IAM](id_credentials_temp.md). Setelah AWS STS mengeluarkan kredensial keamanan sementara, kredensial tersebut berlaku selama periode kedaluwarsa dan tidak dapat dicabut. Namun, izin yang diberikan untuk kredensial keamanan sementara dievaluasi setiap kali sebuah permintaan dibuat ketika menggunakan kredensial tersebut, sehingga Anda dapat memperoleh dampak dari mencabut kredensial dengan mengubah hak akses mereka setelah diterbitkan. 

Topik berikut menganggap Anda memiliki pengetahuan tentang AWS izin dan kebijakan. Untuk informasi lebih lanjut pada topik ini, lihat [Manajemen akses untuk AWS sumber daya](access.md). 

**Topics**
+ [Izin untuk AssumeRole, AssumeRoleWith SALL, dan AssumeRoleWithWebIdentity](id_credentials_temp_control-access_assumerole.md)
+ [Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan](id_credentials_temp_control-access_monitor.md)
+ [Izin untuk GetFederationToken](id_credentials_temp_control-access_getfederationtoken.md)
+ [Izin untuk GetSessionToken](id_credentials_temp_control-access_getsessiontoken.md)
+ [Menonaktifkan izin untuk kredensial keamanan sementara](id_credentials_temp_control-access_disable-perms.md)
+ [Memberikan izin untuk membuat kredensial keamanan sementara](id_credentials_temp_control-access_enable-create.md)
+ [Memberikan izin untuk menggunakan sesi konsol yang disempurnakan identitas](id_credentials_temp_control-access_sts-setcontext.md)

# Izin untuk AssumeRole, AssumeRoleWith SALL, dan AssumeRoleWithWebIdentity
<a name="id_credentials_temp_control-access_assumerole"></a>

Kebijakan izin dari peran yang sedang diasumsikan menentukan izin untuk kredensial keamanan sementara yang dikembalikan oleh `AssumeRole`, `AssumeRoleWithSAML`, dan `AssumeRoleWithWebIdentity`. Anda menentukan izin ini saat membuat atau memperbarui peran. 

Atau, Anda dapat meneruskan [kebijakan sesi](access_policies.md#policies_session) inline atau terkelola sebagai parameter Operasi API `AssumeRole`, `AssumeRoleWithSAML`, atau `AssumeRoleWithWebIdentity`. Kebijakan sesi membatasi izin untuk sesi kredensial sementara peran tersebut. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas peran dan kebijakan sesi. Anda dapat menggunakan kredensi sementara peran dalam panggilan AWS API berikutnya untuk mengakses sumber daya di akun yang memiliki peran tersebut. Anda tidak dapat menggunakan kebijakan sesi untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari peran yang sedang diasumsikan. Untuk mempelajari lebih lanjut tentang bagaimana AWS menentukan izin yang efektif dari suatu peran, lihat [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md).

![\[PermissionsWhenPassingRoles_Diagram\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/role_passed_policy_permissions.png)


Kebijakan yang dilampirkan pada kredensil yang membuat panggilan asli tidak `AssumeRole` dievaluasi oleh AWS saat membuat keputusan otorisasi “izinkan” atau “tolak”. Pengguna untuk sementara menyerahkan izin asli yang mendukung izin yang ditetapkan oleh peran yang diasumsikan. Dalam kasus operasi `AssumeRoleWithSAML` dan `AssumeRoleWithWebIdentity` API, tidak ada kebijakan untuk dievaluasi karena pemanggil API bukan AWS identitas.

## Contoh: Menetapkan izin menggunakan AssumeRole
<a name="permissions-assume-role-example"></a>

Anda dapat menggunakan Operasi API `AssumeRole` dengan berbagai jenis kebijakan. Berikut adalah beberapa contoh.

### Kebijakan izin peran
<a name="permissions-assume-role-example-role-access-policy"></a>

Dalam contoh ini, Anda memanggil operasi API `AssumeRole` tanpa menetapkan kebijakan sesi pada opsional parameter `Policy`. Izin yang diberikan untuk kredensial sementara ditentukan oleh kebijakan izin dari peran yang diasumsikan. Contoh kebijakan izin berikut memberikan izin peran untuk mencantumkan semua objek yang terkandung dalam bucket S3 dengan nama `productionapp`. Hal ini juga memungkinkan peran untuk mendapatkan, menempatkan, dan menghapus objek dalam bucket itu.

**Example Contoh kebijakan izin peran**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::productionapp"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::productionapp/*"
    }
  ]
}
```

### Kebijakan sesi diberikan sebagai parameter
<a name="permissions-assume-role-example-passed-policy"></a>

Bayangkan Anda ingin mengizinkan pengguna untuk mengambil peran yang sama seperti dalam contoh sebelumnya. Tetapi dalam hal ini Anda ingin sesi peran hanya memiliki izin untuk mendapatkan dan memasukkan objek ke dalam bucket S3 `productionapp`. Anda tidak ingin mengizinkan mereka untuk menghapus objek. Salah satu cara untuk mencapainya adalah dengan membuat peran baru dan menentukan izin yang diinginkan dalam kebijakan izin peran tersebut. Cara lain untuk mencapai ini adalah dengan memanggil API `AssumeRole` dan menyertakan kebijakan sesi dalam opsional parameter `Policy` sebagai bagian dari operasi API. Izin sesi yang dihasilkan adalah titik pertemuan antara kebijakan berbasis identitas peran dan kebijakan sesi. Kebijakan sesi tidak dapat digunakan untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari peran yang sedang diasumsikan. Untuk informasi lebih lanjut tentang izin sesi peran, lihat [Kebijakan sesi](access_policies.md#policies_session). 

Setelah Anda menerima kredensial sementara sesi baru, Anda dapat memberikannya kepada pengguna yang Anda ingin untuk memiliki izin tersebut.

Misalnya, bayangkan kebijakan berikut ini diberikan sebagai parameter panggilan API. Orang yang menggunakan sesi memiliki izin untuk hanya melakukan tindakan berikut: 
+ Mencantumkan semua objek ke dalam bucket `productionapp`.
+ Mendapatkan dan memasukkan objek ke dalam bucket `productionapp`.

Dalam kebijakan sesi berikut, izin `s3:DeleteObject` difilter dan sesi yang diasumsikan tidak diberikan izin `s3:DeleteObject`. Kebijakan menetapkan izin maksimum untuk sesi peran sehingga menggantikan kebijakan izin yang ada pada peran tersebut.

**Example Contoh kebijakan sesi melewati Panggilan API `AssumeRole`**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::productionapp"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::productionapp/*"
    }
  ]
}
```

### Kebijakan berbasis sumber daya
<a name="permissions-assume-role-example-resource-based-policy"></a>

Beberapa AWS sumber daya mendukung kebijakan berbasis sumber daya, dan kebijakan ini menyediakan mekanisme lain untuk menentukan izin yang memengaruhi kredensi keamanan sementara. Hanya beberapa sumber daya, seperti bucket Amazon S3, topik Amazon SNS, dan antrean Amazon SQS mendukung kebijakan berbasis sumber daya. Contoh berikut memperluas contoh sebelumnya, menggunakan bucket S3 bernama `productionapp`. Kebijakan berikut ini terlampir di bucket. 

Ketika Anda melampirkan kebijakan berbasis sumber daya berikut ini ke bucket `productionapp`, *semua* pengguna tidak diberi izin untuk menghapus objek dari bucket. (Lihat elemen `Principal` dalam kebijakan.) Ini termasuk semua pengguna peran yang diasumsikan, meskipun kebijakan izin peran memberikan izin `DeleteObject`. Sebuah pernyataan `Deny` yang jelas selalu lebih diutamakan daripada pernyataan `Allow`.

**Example Contoh kebijakan bucket**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Principal": {"AWS": "*"},
    "Effect": "Deny",
    "Action": "s3:DeleteObject",
    "Resource": "arn:aws:s3:::productionapp/*"
  }
}
```

Untuk informasi selengkapnya tentang bagaimana beberapa jenis kebijakan digabungkan dan dievaluasi oleh AWS, lihat[Logika evaluasi kebijakan](reference_policies_evaluation-logic.md).

# Memantau dan mengontrol tindakan yang diambil dengan peran yang diasumsikan
<a name="id_credentials_temp_control-access_monitor"></a>

[Peran IAM](id_roles.md) [adalah objek di IAM yang diberi izin.](access_policies.md) Saat Anda [mengambil peran tersebut](id_roles_manage-assume.md) menggunakan identitas IAM atau identitas dari luar AWS, Anda menerima sesi dengan izin yang ditetapkan ke peran tersebut. 

Saat Anda melakukan tindakan AWS, informasi tentang sesi Anda dapat dicatat AWS CloudTrail untuk dipantau oleh administrator akun Anda. Administrator dapat mengkonfigurasi peran untuk meminta identitas untuk melewati string kustom yang mengidentifikasi orang atau aplikasi yang melakukan tindakan di AWS. Informasi identitas ini disimpan sebagai *identitas sumber* di AWS CloudTrail. Saat administrator meninjau aktivitas CloudTrail, mereka dapat melihat informasi identitas sumber untuk menentukan siapa atau tindakan apa yang dilakukan dengan sesi peran yang diasumsikan.

Setelah identitas sumber ditetapkan, identitas tersebut hadir dalam permintaan untuk AWS tindakan apa pun yang diambil selama sesi peran. Nilai yang ditetapkan tetap ada ketika peran digunakan untuk mengambil peran lain melalui AWS CLI atau AWS API, yang dikenal sebagai [rantai peran](id_roles.md#iam-term-role-chaining). Nilai yang ditetapkan tidak dapat diubah selama sesi peran. Administrator dapat mengonfigurasi izin terperinci berdasarkan keberadaan atau nilai identitas sumber untuk mengontrol AWS tindakan lebih lanjut yang diambil dengan peran bersama. Anda dapat memutuskan apakah atribut identitas sumber dapat digunakan, apakah itu diperlukan, dan apakah nilai dapat digunakan.



Cara Anda menggunakan identitas sumber berbeda dari nama sesi peran dan tanda sesi dalam cara yang penting. Nilai identitas sumber tidak dapat diubah setelah ditetapkan, dan tetap ada untuk tindakan tambahan yang diambil dengan sesi peran. Berikut cara menggunakan tanda sesi dan nama sesi peran: 
+ **Tag sesi** — Anda dapat meneruskan tag sesi saat Anda mengambil peran atau menyatukan pengguna. Tanda sesi hadir ketika peran diasumsikan. Kemudian, Anda dapat menentukan kebijakan yang menggunakan kunci syarat tanda untuk memberikan izin kepada penanggung jawab Anda berdasarkan tanda mereka. Kemudian Anda dapat menggunakan CloudTrail untuk melihat permintaan yang dibuat untuk mengambil peran atau pengguna federasi. Untuk mempelajari lebih lanjut tentang tanda sesi, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).
+ **Nama sesi peran** — Anda dapat menggunakan kunci `sts:RoleSessionName` kondisi dalam kebijakan kepercayaan peran untuk mengharuskan pengguna Anda memberikan nama sesi tertentu saat mereka mengambil peran. Nama sesi peran dapat digunakan untuk membedakan sesi peran ketika peran digunakan oleh penanggung jawab yang berbeda. Untuk mempelajari lebih lanjut tentang nama sesi peran, lihat [sts: RoleSessionName](reference_policies_iam-condition-keys.md#ck_rolesessionname).

Kami menyarankan Anda menggunakan identitas sumber ketika Anda ingin mengontrol identitas yang mengasumsikan peran. Identitas sumber juga berguna untuk penambangan CloudTrail log untuk menentukan siapa yang menggunakan peran untuk melakukan tindakan. 

**Topics**
+ [Menyiapkan untuk menggunakan identitas sumber](#id_credentials_temp_control-access_monitor-setup)
+ [Hal yang perlu diketahui tentang identitas sumber](#id_credentials_temp_control-access_monitor-know)
+ [Izin yang diperlukan untuk menetapkan identitas sumber](#id_credentials_temp_control-access_monitor-perms)
+ [Menentukan identitas sumber ketika mengasumsikan peran](#id_credentials_temp_control-access_monitor-specify-sourceid)
+ [Menggunakan identitas sumber dengan AssumeRole](#id_credentials_temp_control-access_monitor-assume-role)
+ [Menggunakan identitas sumber dengan AssumeRoleWith SAFL](#id_credentials_temp_control-access_monitor-assume-role-saml)
+ [Menggunakan identitas sumber dengan AssumeRoleWithWebIdentity](#id_credentials_temp_control-access_monitor-assume-role-web-id)
+ [Mengontrol akses menggunakan informasi identitas sumber](#id_credentials_temp_control-access_monitor-control-access)
+ [Melihat identitas sumber di CloudTrail](#id_credentials_temp_control-access_monitor-ct)

## Menyiapkan untuk menggunakan identitas sumber
<a name="id_credentials_temp_control-access_monitor-setup"></a>

Cara Anda mengatur untuk menggunakan identitas sumber tergantung metode yang digunakan ketika peran Anda diasumsikan. Misalnya, pengguna IAM Anda mungkin mengambil peran secara langsung menggunakan `AssumeRole` operasi. Jika Anda memiliki identitas perusahaan, juga dikenal sebagai identitas tenaga kerja, mereka dapat mengakses sumber daya Anda AWS menggunakan. `AssumeRoleWithSAML` Jika pengguna akhir mengakses aplikasi seluler atau web Anda, mereka mungkin melakukannya menggunakan `AssumeRoleWithWebIdentity`. Berikut ini adalah gambaran umum alur kerja tingkat tinggi untuk membantu Anda memahami bagaimana Anda dapat mengatur untuk memanfaatkan informasi identitas sumber di lingkungan yang ada.

1. **Konfigurasikan pengguna dan peran pengujian** — Menggunakan lingkungan praproduksi, konfigurasikan pengguna dan peran pengujian, serta konfigurasikan kebijakan mereka untuk memungkinkan pengaturan identitas sumber.

   Jika Anda menggunakan penyedia identitas (IdP) untuk identitas federasi Anda, konfigurasikan IdP Anda untuk melewati atribut pengguna pilihan Anda untuk identitas sumber dalam pernyataan atau token.

1. **Asumsikan peran** — Uji asumsi peran dan meneruskan identitas sumber dengan pengguna dan peran yang Anda siapkan untuk pengujian.

1. **Tinjauan CloudTrail** — Tinjau informasi identitas sumber untuk peran pengujian Anda di CloudTrail log Anda.

1. **Latih pengguna Anda** — Setelah Anda menguji di lingkungan praproduksi, pastikan pengguna mengetahui cara meneruskan informasi identitas sumber, jika perlu. Tetapkan tenggat waktu untuk kapan Anda akan meminta pengguna Anda untuk memberikan identitas sumber di lingkungan produksi Anda.

1. **Konfigurasikan kebijakan produksi** — Konfigurasikan kebijakan Anda untuk lingkungan produksi, lalu tambahkan ke pengguna dan peran produksi Anda.

1. **Pantau aktivitas** — Pantau aktivitas peran produksi Anda menggunakan CloudTrail log.

## Hal yang perlu diketahui tentang identitas sumber
<a name="id_credentials_temp_control-access_monitor-know"></a>

Ingatlah hal-hal berikut ini saat bekerja dengan identitas sumber.
+ Kebijakan kepercayaan untuk semua peran yang terhubung ke penyedia identitas (IdP) harus memiliki izin `sts:SetSourceIdentity`. Untuk peran yang tidak memiliki izin ini dalam kebijakan kepercayaan peran, operasi `AssumeRole*` akan gagal. Jika Anda tidak ingin memperbarui kebijakan kepercayaan peran untuk setiap peran, Anda dapat menggunakan instans IdP terpisah untuk meneruskan identitas sumber. Lalu tambahkan izin `sts:SetSourceIdentity` hanya untuk peran yang terhubung ke IdP yang terpisah.
+ Ketika identitas menetapkan identitas sumber, kunci `sts:SourceIdentity` terdapat dalam permintaan. Untuk tindakan selanjutnya yang diambil selama sesi peran, kunci `aws:SourceIdentity` terdapat dalam permintaan. AWS tidak mengontrol nilai identitas sumber di salah satu kunci `sts:SourceIdentity` atau `aws:SourceIdentity`. Jika Anda memilih untuk meminta identitas sumber, Anda harus memilih atribut yang Anda inginkan pengguna atau IdP untuk menyediakan. Untuk tujuan keamanan, Anda harus memastikan bahwa Anda dapat mengontrol bagaimana nilai-nilai tersebut disediakan.
+ Nilai identitas sumber harus antara 2 dan 64 karakter panjang, dapat berisi hanya karakter alfanumerik, garis bawah, dan karakter berikut:**., \$1 = @ -** (tanda hubung). Anda tidak dapat menggunakan nilai yang dimulai dengan teks **aws:**. Awalan ini dicadangkan untuk penggunaan AWS internal.
+ Informasi identitas sumber tidak ditangkap oleh CloudTrail ketika AWS layanan atau peran terkait layanan melakukan tindakan atas nama identitas federasi atau tenaga kerja. 

**penting**  
Anda tidak dapat beralih ke peran Konsol Manajemen AWS yang memerlukan identitas sumber untuk disetel saat peran diasumsikan. Untuk mengambil peran seperti itu, Anda dapat menggunakan AWS API AWS CLI atau untuk memanggil `AssumeRole` operasi dan menentukan parameter identitas sumber.

## Izin yang diperlukan untuk menetapkan identitas sumber
<a name="id_credentials_temp_control-access_monitor-perms"></a>

Selain tidakan yang sesuai dengan operasi API, Anda harus memiliki tindakan khusus izin berikut dalam kebijakan Anda: 

```
sts:SetSourceIdentity
```
+ Untuk menentukan identitas sumber, prinsipal (pengguna dan peran IAM) harus memiliki izin untuk. `sts:SetSourceIdentity` Sebagai administrator, Anda dapat mengonfigurasi ini dalam kebijakan kepercayaan peran dan kebijakan izin penanggung jawab.
+ Ketika Anda mengambil peran dengan peran lain, disebut [perangkaian peran](id_roles.md#iam-term-role-chaining), izin untuk `sts:SetSourceIdentity` diperlukan dalam kebijakan perizinan penanggung jawab yang mengasumsikan peran dan dalam kebijakan kepercayaan peran pada peran target. Jika tidak, peran operasi asumsi akan gagal.
+ Saat menggunakan identitas sumber, kebijakan kepercayaan peran untuk semua peran yang terhubung ke IdP harus memiliki izin `sts:SetSourceIdentity`. Operasi `AssumeRole*` akan gagal untuk peran apa pun yang terhubung ke IdP tanpa izin ini. Jika Anda tidak ingin memperbarui kebijakan kepercayaan peran untuk setiap peran, Anda dapat menggunakan instans IdP terpisah untuk meneruskan identitas sumber dan menambahkan izin `sts:SetSourceIdentity` hanya untuk peran yang terhubung ke IdP yang terpisah.
+ Untuk menetapkan identitas sumber di batas akun, Anda harus menyertakan izin `sts:SetSourceIdentity` di dua tempat. Harus berada dalam kebijakan izin penanggung jawab di akun asal dan kebijakan kepercayaan peran dalam akun target. Anda mungkin perlu melakukannya, misalnya, ketika peran digunakan untuk mengambil peran di akun lain dengan [perangkaian peran](id_roles.md#iam-term-role-chaining).

Sebagai administrator akun, bayangkan Anda ingin mengizinkan pengguna IAM `DevUser` di akun Anda untuk mengasumsikan akun yang sama. `Developer_Role` Tetapi Anda ingin mengizinkan tindakan ini hanya jika pengguna telah mengatur identitas sumber ke nama pengguna IAM mereka. Anda dapat melampirkan kebijakan berikut ke pengguna IAM.

**Example Contoh kebijakan berbasis identitas yang dilampirkan DevUser**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AssumeRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::123456789012:role/Developer_Role"
    },
    {
      "Sid": "SetAwsUserNameAsSourceIdentity",
      "Effect": "Allow",
      "Action": "sts:SetSourceIdentity",
      "Resource": "arn:aws:iam::123456789012:role/Developer_Role",
      "Condition": {
        "StringLike": {
          "sts:SourceIdentity": "${aws:username}"
        }
      }
    }
  ]
}
```

Untuk memberlakukan nilai identitas sumber yang dapat diterima, Anda dapat mengonfigurasi kebijakan kepercayaan peran berikut. Kebijakan ini memberikan `DevUser` izin pengguna IAM untuk mengambil peran dan menetapkan identitas sumber. Kunci syarat `sts:SourceIdentity` mendefinisikan nilai identitas sumber yang dapat diterima.

**Example Contoh kebijakan kepercayaan peran untuk identitas sumber**  

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDevUserAssumeRole",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/DevUser"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringEquals": {
          "sts:SourceIdentity": "DevUser"
        }
      }
    }
  ]
}
```

------

Menggunakan kredensil untuk pengguna IAM`DevUser`, pengguna mencoba untuk mengasumsikan `DeveloperRole` menggunakan permintaan berikut. AWS CLI 

**Example Contoh AssumeRole permintaan CLI**  

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Developer_Role \
--role-session-name Dev-project \ 
--source-identity DevUser \
```

Saat AWS mengevaluasi permintaan, konteks permintaan berisi `sts:SourceIdentity` dari. `DevUser`

## Menentukan identitas sumber ketika mengasumsikan peran
<a name="id_credentials_temp_control-access_monitor-specify-sourceid"></a>

Anda dapat menentukan identitas sumber saat menggunakan salah satu operasi AWS STS `AssumeRole*` API untuk mendapatkan kredensil keamanan sementara untuk suatu peran. Operasi API yang Anda gunakan berbeda tergantung kasus penggunaan Anda. Misalnya, jika Anda menggunakan peran IAM untuk memberi pengguna IAM akses ke AWS sumber daya yang biasanya tidak dapat mereka akses, Anda dapat menggunakan operasi tersebut`AssumeRole`. Jika Anda menggunakan federasi identitas perusahaan untuk mengelola pengguna tenaga kerja Anda, Anda dapat menggunakan operasi `AssumeRoleWithSAML`. Jika Anda menggunakan federasi OIDC untuk mengizinkan pengguna akhir mengakses aplikasi seluler atau web Anda, Anda dapat menggunakan operasi tersebut`AssumeRoleWithWebIdentity`. Bagian berikut menjelaskan cara menggunakan identitas sumber dengan setiap operasi. Untuk mempelajari selengkapnya tentang skenario umum untuk kredensial sementara, lihat [Skenario umum untuk kredensial sementara](id_credentials_temp.md#sts-introduction).

## Menggunakan identitas sumber dengan AssumeRole
<a name="id_credentials_temp_control-access_monitor-assume-role"></a>

`AssumeRole`Operasi mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Anda dapat menggunakan kredensi pengguna atau peran IAM untuk menelepon. `AssumeRole` Untuk meneruskan identitas sumber saat mengambil peran, gunakan `-–source-identity` AWS CLI opsi atau parameter `SourceIdentity` AWS API. Contoh berikut menunjukkan cara menentukan identitas sumber menggunakan AWS CLI.

**Example Contoh AssumeRole permintaan CLI**  

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/developer \
--role-session-name Audit \ 
--source-identity Admin \
```

## Menggunakan identitas sumber dengan AssumeRoleWith SAFL
<a name="id_credentials_temp_control-access_monitor-assume-role-saml"></a>

Penanggung jawab yang memanggil operasi `AssumeRoleWithSAML` diautentikasi menggunakan federasi berbasis SAML. Operasi ini mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Untuk informasi selengkapnya tentang penggunaan federasi berbasis SAML untuk Konsol Manajemen AWS akses, lihat. [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md) Untuk detail tentang AWS CLI atau akses AWS API, lihat[Federasi SAMP 2.0](id_roles_providers_saml.md). Untuk tutorial menyiapkan federasi SAFL untuk pengguna Active Directory Anda, lihat [AWS Otentikasi Federasi dengan Layanan Federasi Direktori Aktif (ADFS)](https://aws.amazon.com/blogs/security/aws-federated-authentication-with-active-directory-federation-services-ad-fs/) di Blog Keamanan. AWS 

Sebagai administrator, Anda dapat mengizinkan anggota direktori perusahaan Anda untuk bergabung AWS menggunakan AWS STS `AssumeRoleWithSAML` operasi. Untuk melakukannya, Anda harus menyelesaikan tugas berikut:

1. [Mengonfigurasi penyedia SAML di organisasi Anda](id_roles_providers_saml_3rd-party.md).

1. [Buat penyedia SAFL di IAM](id_roles_providers_create_saml.md).

1. [Konfigurasikan peran dan izinnya AWS untuk prinsipal federasi SALL Anda](id_roles_create_for-idp_saml.md).

1. [Selesaikan konfigurasi SAML IdP dan buat pernyataan untuk respons autentikasi SAML](id_roles_providers_create_saml_assertions.md)

Untuk mengatur atribut SAML untuk identitas sumber, termasuk elemen `Attribute` dengan atribut `Name` yang ditetapkan ke `https://aws.amazon.com/SAML/Attributes/SourceIdentity`. Gunakan elemen `AttributeValue` untuk menentukan nilai identitas sumber. Misalnya, anggap Anda ingin meneruskan atribut identitas berikut sebagai identitas sumber. 

`SourceIdentity:DiegoRamirez`

Untuk meneruskan atribut ini, sertakan elemen berikut dalam pernyataan SAML Anda.

**Example Contoh snippet pernyataan SAML**  

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity">
<AttributeValue>DiegoRamirez</AttributeValue>
</Attribute>
```

## Menggunakan identitas sumber dengan AssumeRoleWithWebIdentity
<a name="id_credentials_temp_control-access_monitor-assume-role-web-id"></a>

Pemanggilan utama `AssumeRoleWithWebIdentity` operasi diautentikasi menggunakan federasi yang sesuai dengan OpenID Connect (OIDC). Operasi ini menghasilkan serangkaian kredensial sementara yang dapat Anda gunakan untuk mengakses sumber daya AWS . Untuk informasi selengkapnya tentang penggunaan federasi OIDC untuk Konsol Manajemen AWS akses, lihat. [Federasi OIDC](id_roles_providers_oidc.md)

Untuk meneruskan identitas sumber dari OpenID Connect (OIDC), Anda harus menyertakan identitas sumber dalam JSON Web Token (JWT). Sertakan identitas sumber dalam namespace `[https://aws.amazon.com/](https://aws.amazon.com/)source_identity` dalam token ketika Anda mengajukan permintaan `AssumeRoleWithWebIdentity`. Untuk mempelajari lebih lanjut tentang token dan klaim OIDC, lihat [Menggunakan Token dengan Kolam Pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) di *Panduan Developer Amazon Cognito *.

Misalnya, JWT yang diterjemahkan berikut adalah token yang digunakan untuk memanggil `AssumeRoleWithWebIdentity` dengan sumber identitas `Admin`.

**Example Contoh Token Web JSON yang diterjemahkan**  

```
{
    "sub": "john",
    "aud": "ac_oic_client",
    "jti": "ZYUCeRMQVtqHypVPWAN3VB",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/source_identity":"Admin"
}
```

## Mengontrol akses menggunakan informasi identitas sumber
<a name="id_credentials_temp_control-access_monitor-control-access"></a>

Ketika identitas sumber awalnya ditetapkan, SourceIdentity kunci [sts:](reference_policies_iam-condition-keys.md#ck_sourceidentity) ada dalam permintaan. Setelah identitas sumber disetel, SourceIdentity kunci [aws:](reference_policies_condition-keys.md#condition-keys-sourceidentity) hadir di semua permintaan berikutnya yang dibuat selama sesi peran. Sebagai administrator, Anda dapat menulis kebijakan yang memberikan otorisasi bersyarat untuk melakukan AWS tindakan berdasarkan keberadaan atau nilai atribut identitas sumber.

Bayangkan Anda ingin meminta pengembang Anda untuk menetapkan identitas sumber untuk mengambil peran penting yang memiliki izin untuk menulis ke AWS sumber daya penting produksi. Juga bayangkan bahwa Anda memberikan AWS akses ke identitas tenaga kerja Anda menggunakan. `AssumeRoleWithSAML` Anda hanya ingin developer senior Saanvi dan Diego memiliki akses ke peran, sehingga Anda membuat kebijakan kepercayaan berikut untuk peran tersebut.

**Example Contoh kebijakan kepercayaan peran untuk identitas sumber (SALL)**  

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "SAMLProviderAssumeRoleWithSAML",
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::111122223333:saml-provider/name-of-identity-provider"
      },
      "Action": [
        "sts:AssumeRoleWithSAML"
      ],
      "Condition": {
        "StringEquals": {
          "SAML:aud": "https://signin.aws.amazon.com/saml"
        }
      }
    },
    {
      "Sid": "SetSourceIdentitySrEngs",
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::111122223333:saml-provider/name-of-identity-provider"
      },
      "Action": [
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringLike": {
          "sts:SourceIdentity": [
            "Saanvi",
            "Diego"
          ]
        }
      }
    }
  ]
}
```

------

Kebijakan kepercayaan berisi syarat untuk `sts:SourceIdentity` itu membutuhkan identitas sumber Saanvi atau Diego untuk mengambil peran penting.

Atau, jika Anda menggunakan penyedia OIDC untuk federasi dan pengguna diautentikasi`AssumeRoleWithWebIdentity`, kebijakan kepercayaan peran Anda mungkin terlihat sebagai berikut.

**Example Contoh kebijakan kepercayaan peran untuk identitas sumber (penyedia OIDC)**  

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::111122223333:oidc-provider/server.example.com"
      },
      "Action": [
        "sts:AssumeRoleWithWebIdentity",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringEquals": {
          "server.example.com:aud": "oidc-audience-id"
        },
        "StringLike": {
          "sts:SourceIdentity": [
            "Saanvi",
            "Diego"
          ]
        }
      }
    }
  ]
}
```

------

### Peran perangkauan dan persyaratan lintas akun
<a name="id_credentials_temp_control-access_monitor-chain"></a>

Bayangkan Anda ingin mengizinkan pengguna yang mengasumsikan `CriticalRole` untuk mengambil `CriticalRole_2` di akun lain. Kredensial sesi peran yang diperoleh untuk mengasumsikan `CriticalRole` digunakan untuk [merangkai peran](id_roles.md#iam-term-role-chaining) untuk peran kedua, `CriticalRole_2`, di akun yang berbeda. Peran sedang diasumsikan di batas akun. Oleh karena itu, izin `sts:SetSourceIdentity` harus diberikan dalam kedua kebijakan izin pada `CriticalRole` dan dalam kebijakan kepercayaan peran di `CriticalRole_2`.

**Example Contoh kebijakan izin pada CriticalRole**  

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AssumeRoleAndSetSourceIdentity",
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Resource": "arn:aws:iam::222222222222:role/CriticalRole_2"
    }
  ]
}
```

------

Untuk mengamankan pengaturan sumber identitas di batas akun, kebijakan kepercayaan peran berikut hanya mempercayai peran utama untuk `CriticalRole` guna mengatur identitas sumber.

**Example Contoh kebijakan kepercayaan peran pada CriticalRole \$12**  

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:role/CriticalRole"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:SetSourceIdentity"
      ],
      "Condition": {
        "StringLike": {
          "aws:SourceIdentity": ["Saanvi","Diego"]
        }
      }
    }
  ]
}
```

------

Pengguna membuat panggilan berikut menggunakan kredensil sesi peran yang diperoleh dari asumsi. CriticalRole Identitas sumber ditetapkan selama asumsi CriticalRole, sehingga tidak perlu diatur lagi secara eksplisit. Jika pengguna mencoba untuk mengatur identitas sumber yang berbeda dari nilai yang ditetapkan ketika diasumsikan `CriticalRole`, permintaan peran asumsi akan ditolak.

**Example Contoh AssumeRole permintaan CLI**  

```
aws sts assume-role \ 
--role-arn arn:aws:iam::222222222222:role/CriticalRole_2 \
--role-session-name Audit \
```

Ketika penanggung jawab panggilan mengasumsikan peran, identitas sumber dalam permintaan tetap dari sesi peran diasumsikan pertama. Oleh karena itu, kedua kunci `aws:SourceIdentity` dan `sts:SourceIdentity` terdapat dalam konteks permintaan.

## Melihat identitas sumber di CloudTrail
<a name="id_credentials_temp_control-access_monitor-ct"></a>

Anda dapat menggunakan CloudTrail untuk melihat permintaan yang dibuat untuk mengambil peran atau pengguna federasi. Anda juga dapat melihat peran atau permintaan pengguna untuk mengambil tindakan dalam AWS. File CloudTrail log mencakup informasi tentang identitas sumber yang ditetapkan untuk peran yang diasumsikan atau sesi pengguna federasi. Untuk informasi selengkapnya, lihat [Mencatat panggilan IAM dan AWS STS API dengan AWS CloudTrail](cloudtrail-integration.md)

Misalnya, asumsikan bahwa pengguna membuat AWS STS `AssumeRole` permintaan, dan menetapkan identitas sumber. Anda dapat menemukan `sourceIdentity` informasi di `requestParameters` kunci di CloudTrail log Anda.

**Example Contoh bagian RequestParameters dalam log AWS CloudTrail**  

```
"eventVersion": "1.05",
    "userIdentity": {
        "type": "AWSAccount",
        "principalId": "AIDAJ45Q7YFFAREXAMPLE",
        "accountId": "111122223333"
    },
    "eventTime": "2020-04-02T18:20:53Z",
    "eventSource": "sts.amazonaws.com",
    "eventName": "AssumeRole",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "203.0.113.64",
    "userAgent": "aws-cli/1.16.96 Python/3.6.0 Windows/10 botocore/1.12.86",
    "requestParameters": {
        "roleArn": "arn:aws:iam::123456789012:role/DevRole",
        "roleSessionName": "Dev1",
        "sourceIdentity": "source-identity-value-set"
    }
```

Jika pengguna menggunakan sesi peran yang diasumsikan untuk melakukan tindakan, informasi identitas sumber ada di `userIdentity` kunci di CloudTrail log.

**Example Contoh kunci UserIdentity dalam log AWS CloudTrail**  

```
{
  "eventVersion": "1.08",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAJ45Q7YFFAREXAMPLE:Dev1",
    "arn": "arn:aws:sts::123456789012:assumed-role/DevRole/Dev1",
    "accountId": "123456789012",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAJ45Q7YFFAREXAMPLE",
        "arn": "arn:aws:iam::123456789012:role/DevRole",
        "accountId": "123456789012",
        "userName": "DevRole"
      },
      "webIdFederationData": {},
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2021-02-21T23:46:28Z"
      },
      "sourceIdentity": "source-identity-value-present"
    }
  }
}
```

Untuk melihat contoh peristiwa AWS STS API di CloudTrail log, lihat[Contoh peristiwa API IAM di log CloudTrail](cloudtrail-integration.md#cloudtrail-integration_examples-iam-api). Untuk detail selengkapnya tentang informasi yang terkandung dalam file CloudTrail log, lihat [Referensi CloudTrail Acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/eventreference.html) di *Panduan AWS CloudTrail Pengguna*.

# Izin untuk GetFederationToken
<a name="id_credentials_temp_control-access_getfederationtoken"></a>

Operasi `GetFederationToken` dipanggil oleh pengguna IAM dan mengembalikan kredensial sementara untuk pengguna tersebut. Operasi ini *menggabungkan* pengguna. Izin yang ditetapkan untuk sesi pengguna AWS STS federasi didefinisikan di salah satu dari dua tempat: 
+ Kebijakan sesi lewat sebagai sebuah parameter dari Panggilan API `GetFederationToken`. (Ini paling umum.)
+ Kebijakan berbasis sumber daya yang secara eksplisit menamai sesi pengguna AWS STS federasi dalam elemen kebijakan. `Principal` (Ini lebih jarang terjadi.)

Kebijakan sesi adalah kebijakan lanjutan yang Anda jalankan sebagai parameter saat Anda secara terprogram membuat sebuah sesi sementara. Saat Anda membuat sesi pengguna AWS STS gabungan dan meneruskan kebijakan sesi, izin sesi yang dihasilkan adalah persimpangan kebijakan berbasis identitas pengguna dan kebijakan sesi. Anda tidak dapat menggunakan kebijakan sesi untuk memberikan lebih banyak izin daripada yang diizinkan oleh kebijakan berbasis identitas dari pengguna yang sedang digabung.

Dalam kebanyakan kasus jika Anda tidak memberikan kebijakan dengan panggilan API `GetFederationToken`, kredensial keamanan sementara yang dihasilkan tidak memiliki izin. Namun, kebijakan berbasis sumber daya dapat memberikan izin tambahan untuk sesi tersebut. Anda dapat mengakses sumber daya dengan sebuah kebijakan berbasis sumber daya yang menentukan sesi Anda sebagai prinsipal yang diizinkan. 

Gambar berikut ini menunjukkan gambaran visual tentang cara kebijakan berinteraksi untuk menentukan izin bagi kredensial keamanan sementara yang dikembalikan oleh panggilan ke `GetFederationToken`.

![\[Pengguna IAM Ilustrasi berikut menunjukkan tanda centang untuk menunjukkan bahwa izin sesi adalah persimpangan kebijakan berbasis identitas pengguna dan kebijakan sesi. Izin sesi juga dapat menjadi persimpangan kebijakan berbasis identitas pengguna dan kebijakan berbasis sumber daya.\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/getfederationtoken-permissions.diagram.png)


## Contoh: Menetapkan izin menggunakan GetFederationToken
<a name="permissions-get-federation-token-example"></a>

Anda dapat menggunakan tindakan API `GetFederationToken` dengan berbagai jenis kebijakan. Berikut adalah beberapa contoh.

### Kebijakan yang terlampir pada pengguna IAM
<a name="permissions-get-federation-token-example-iam-user"></a>

Dalam contoh ini, Anda memiliki aplikasi klien berbasis browser yang mengandalkan dua layanan web backend. Satu layanan backend adalah server autentikasi Anda sendiri yang menggunakan identitas sistem Anda sendiri untuk mengautentikasi aplikasi klien. Layanan backend lainnya adalah layanan AWS yang menyediakan beberapa fungsionalitas aplikasi klien. Aplikasi klien diautentikasi oleh server Anda, dan server Anda membuat atau mengambil kebijakan izin yang sesuai. Server Anda kemudian memanggil API `GetFederationToken` untuk mendapatkan kredensial keamanan sementara, dan mengembalikan kredensial tersebut ke aplikasi klien. Aplikasi klien kemudian dapat membuat permintaan langsung ke AWS layanan dengan kredenal keamanan sementara. Arsitektur ini memungkinkan aplikasi klien untuk membuat AWS permintaan tanpa menyematkan AWS kredensi jangka panjang.

Server otentikasi Anda memanggil `GetFederationToken` API dengan kredensi keamanan jangka panjang dari pengguna IAM bernama. `token-app` Tetapi kredensi pengguna IAM jangka panjang tetap ada di server Anda dan tidak pernah didistribusikan ke klien. Contoh kebijakan berikut dilampirkan ke pengguna `token-app` IAM dan mendefinisikan kumpulan izin terluas yang diperlukan oleh pengguna AWS STS federasi (klien) Anda. Perhatikan bahwa `sts:GetFederationToken` izin diperlukan untuk layanan otentikasi Anda untuk mendapatkan kredenial keamanan sementara bagi pengguna federasi AWS STS .

**Example Contoh kebijakan terlampir ke pengguna IAM `token-app` yang memanggil `GetFederationToken`**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:GetFederationToken",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "dynamodb:ListTables",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "sqs:ReceiveMessage",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "sns:ListSubscriptions",
      "Resource": "*"
    }
  ]
}
```

Kebijakan sebelumnya memberikan beberapa izin kepada pengguna IAM. Namun, kebijakan ini saja tidak memberikan izin apa pun kepada pengguna AWS STS federasi. Jika pengguna IAM ini memanggil `GetFederationToken` dan tidak meneruskan kebijakan sebagai parameter panggilan API, pengguna AWS STS federasi yang dihasilkan tidak memiliki izin yang efektif. 

### Kebijakan sesi diberikan sebagai parameter
<a name="permissions-get-federation-token-example-passed-policy"></a>

Cara paling umum untuk memastikan bahwa pengguna AWS STS federasi diberi izin yang sesuai adalah dengan meneruskan kebijakan sesi dalam panggilan `GetFederationToken` API. Memperluas contoh sebelumnya, bayangkan yang `GetFederationToken` dipanggil dengan kredensi pengguna IAM. `token-app` Bayangkan sesi kebijakan berikut ini diberikan sebagai parameter panggilan API. Pengguna AWS STS federasi yang dihasilkan memiliki izin untuk mencantumkan konten bucket Amazon S3 yang diberi nama. `productionapp` Pengguna tidak dapat melakukan Amazon S3 `GetObject``PutObject`, dan `DeleteObject` tindakan pada item di bucket. `productionapp`

Pengguna gabungan diberi izin ini karena izin tersebut merupakan pertemuan antara kebijakan pengguna IAM dan kebijakan sesi yang Anda lewati.

Pengguna AWS STS federasi tidak dapat melakukan tindakan di Amazon SNS, Amazon SQS, Amazon DynamoDB, atau di bucket S3 apa pun kecuali. `productionapp` Tindakan ini ditolak meskipun izin tersebut diberikan kepada pengguna IAM yang terkait dengan panggilan tersebut`GetFederationToken`.

**Example Contoh kebijakan sesi lewat sebagai sebuah parameter dari Panggilan API `GetFederationToken`.**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::productionapp"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": ["arn:aws:s3:::productionapp/*"]
    }
  ]
}
```

### Kebijakan berbasis sumber daya
<a name="permissions-get-federation-token-resource-based-policy"></a>

Beberapa AWS sumber daya mendukung kebijakan berbasis sumber daya, dan kebijakan ini menyediakan mekanisme lain untuk memberikan izin langsung kepada pengguna federasi. AWS STS Hanya beberapa AWS layanan yang mendukung kebijakan berbasis sumber daya. Misalnya, Amazon S3 memiliki bucket, Amazon SNS memiliki topik, dan Amazon SQS memiliki antrean yang dapat Anda lampirkan kebijakannya. Untuk daftar semua layanan yang mendukung kebijakan berbasis sumber daya, lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) dan tinjau kolom “Kebijakan berbasis Sumber Daya” pada tabel. Anda dapat menggunakan kebijakan berbasis sumber daya untuk menetapkan izin langsung ke pengguna federasi. AWS STS Lakukan ini dengan menentukan Nama Sumber Daya Amazon (ARN) pengguna AWS STS federasi dalam `Principal` elemen kebijakan berbasis sumber daya. Contoh berikut menggambarkan hal ini dan memperluas contoh sebelumnya, menggunakan bucket S3 bernama `productionapp`. 

Kebijakan berbasis sumber daya berikut ini terlampir di bucket. Kebijakan bucket ini memungkinkan pengguna AWS STS federasi bernama Carol untuk mengakses bucket. Ketika kebijakan contoh yang dijelaskan sebelumnya dilampirkan ke pengguna `token-app` IAM, pengguna AWS STS federasi bernama Carol memiliki izin untuk melakukan`s3:GetObject`,`s3:PutObject`, dan `s3:DeleteObject` tindakan pada bucket bernama. `productionapp` Hal ini berlaku bahkan ketika kebijakan sesi tidak diberikan sebagai parameter panggilan API `GetFederationToken`. Itu karena dalam kasus ini pengguna AWS STS federasi bernama Carol telah secara eksplisit diberikan izin oleh kebijakan berbasis sumber daya berikut. 

***Ingat, pengguna AWS STS federasi diberikan izin hanya jika izin tersebut secara eksplisit diberikan kepada pengguna IAM dan pengguna federasi.*** AWS STS Mereka juga dapat diberikan (dalam akun) oleh kebijakan berbasis sumber daya yang secara eksplisit menyebutkan nama pengguna AWS STS federasi dalam `Principal` elemen kebijakan, seperti pada contoh berikut.

**Example Contoh kebijakan bucket yang mengijinkan akses ke pengguna gabungan**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Principal": {
            "AWS": "arn:aws:sts::111122223333:federated-user/Carol"
        },
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:DeleteObject"
        ],
        "Resource": [
            "arn:aws:s3:::productionapp/*"
        ]
    }
}
```

Untuk informasi selengkapnya tentang bagaimana kebijakan dievaluasi, lihat [Logika evaluasi kebijakan](reference_policies_evaluation-logic.md).

# Izin untuk GetSessionToken
<a name="id_credentials_temp_control-access_getsessiontoken"></a>

Alasan utama untuk menghubungi operasi API `GetSessionToken` atau Perintah CLI `get-session-token` adalah ketika pengguna harus diautentikasi dengan autentikasi Autentikasi Multi-Faktor (MFA). Hal tersebut memungkinkan untuk menulis kebijakan yang mengizinkan tindakan tertentu hanya jika tindakan tersebut diminta oleh pengguna yang telah diautentikasi dengan MFA. Agar berhasil melewati pemeriksaan otorisasi MFA, pengguna harus melakukan panggilan pertama `GetSessionToken` dan menyertakan opsional parameter `SerialNumber` dan `TokenCode`. Jika pengguna berhasil mengautentikasi dengan sebuah perangkat MFA, kredensial dikembalikan oleh operasi API `GetSessionToken` mencakup konteks MFA. Konteks ini menunjukkan bahwa pengguna diautentikasi dengan MFA dan diotorisasi untuk operasi API yang memerlukan autentikasi MFA.

## Izin diperlukan untuk GetSessionToken
<a name="getsessiontoken-permissions-required"></a>

Tidak ada izin yang diperlukan bagi pengguna untuk mendapatkan token sesi. Tujuan dari operasi `GetSessionToken` adalah mengautentikasi pengguna menggunakan MFA. Anda tidak dapat menggunakan kebijakan untuk mengontrol operasi autentikasi.

Untuk memberikan izin untuk melakukan sebagian besar AWS operasi, Anda menambahkan tindakan dengan nama yang sama ke kebijakan. Misalnya, untuk membuat pengguna, Anda harus menggunakan operasi API `CreateUser`, perintah CLI `create-user`, atau Konsol Manajemen AWS. Untuk melakukan operasi ini, Anda harus memiliki kebijakan yang mengijinkan Anda untuk mengakses tindakan `CreateUser`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateUser",
            "Resource": "*"
        }
    ]
}
```

------

Anda dapat memasukkan tindakan `GetSessionToken` dalam kebijakan Anda, tetapi tidak itu berpengaruh pada kemampuan pengguna untuk melakukan operasi `GetSessionToken`.

## Izin yang diberikan oleh GetSessionToken
<a name="getsessiontoken-permissions-granted"></a>

Jika `GetSessionToken` yang dipanggil dengan kredensial pengguna IAM, kredensial keamanan sementara memiliki izin yang sama dengan pengguna IAM. Demikian pula, jika `GetSessionToken` dipanggil dengan Pengguna root akun AWS kredenal, kredenal keamanan sementara memiliki izin pengguna root.

**catatan**  
Kami menyarankan agar Anda tidak memanggil `GetSessionToken` dengan kredensial pengguna root. Sebaliknya, ikuti [praktik terbaik](best-practices-use-cases.md) kami dan membuat pengguna IAM dengan izin yang mereka butuhkan. Kemudian gunakan pengguna IAM ini untuk interaksi sehari-hari dengan AWS.

Kredensial sementara yang Anda dapatkan ketika Anda memanggil `GetSessionToken` memiliki kemampuan dan batasan sebagai berikut:
+ Anda dapat menggunakan kredensi untuk mengakses Konsol Manajemen AWS dengan meneruskan kredensialnya ke titik akhir masuk tunggal federasi di. `https://signin.aws.amazon.com/federation` Untuk informasi selengkapnya, lihat [Aktifkan akses broker identitas khusus ke AWS konsol](id_roles_providers_enable-console-custom-url.md).
+ Anda **tidak dapat** menggunakan kredensialnya untuk memanggil operasi IAM atau AWS STS API. Anda **dapat** menggunakannya untuk memanggil operasi API untuk AWS layanan lain.

Bandingkan operasi API ini serta batasan dan kemampuannya dengan operasi API lain yang membuat kredensial keamanan sementara di [Bandingkan AWS STS kredensialnya](id_credentials_sts-comparison.md)

Untuk informasi selengkapnya tentang akses API yang dilindungi MFA menggunakan `GetSessionToken`, lihat [Akses API aman dengan MFA](id_credentials_mfa_configure-api-require.md).

# Menonaktifkan izin untuk kredensial keamanan sementara
<a name="id_credentials_temp_control-access_disable-perms"></a>

Kredensi keamanan sementara berlaku hingga kedaluwarsa. Kredensi ini berlaku untuk durasi yang ditentukan, dari 900 detik (15 menit) hingga maksimum 129.600 detik (36 jam). Durasi sesi default adalah 43.200 detik (12 jam). Anda dapat mencabut kredensil ini, tetapi Anda juga harus mengubah izin untuk pengguna IAM atau peran untuk menghentikan penggunaan kredensil yang disusupi untuk aktivitas akun berbahaya. Izin yang ditetapkan untuk kredensil keamanan sementara dievaluasi setiap kali digunakan untuk membuat permintaan. AWS Setelah Anda menghapus semua izin dari kredensi, AWS permintaan yang menggunakannya gagal.

Mungkin perlu beberapa menit agar pembaruan kebijakan diterapkan. Untuk sesi peran IAM, Anda dapat mencabut kredensil keamanan sementara peran tersebut untuk memaksa semua pengguna yang mengasumsikan peran tersebut untuk mengautentikasi ulang dan meminta kredensil baru. Untuk informasi selengkapnya, lihat [Mencabut kredenal keamanan sementara peran tersebut](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html).

Anda tidak dapat mengubah izin untuk file Pengguna root akun AWS. Demikian juga, Anda tidak dapat mengubah izin untuk kredensial keamanan sementara yang dibuat dengan memanggil `GetFederationToken` atau `GetSessionToken` saat masuk sebagai pengguna root. Karena alasan ini, kami menyarankan agar Anda tidak memanggil `GetFederationToken` atau `GetSessionToken` sebagai pengguna root.

Untuk prosedur tentang cara mengubah izin untuk pengguna IAM, lihat. [Mengubah izin untuk pengguna IAM](id_users_change-permissions.md)

Untuk prosedur tentang cara mengubah izin untuk peran IAM, lihat. [Memperbarui izin untuk peran](id_roles_update-role-permissions.md)

**penting**  
Anda tidak dapat mengedit peran di IAM yang dibuat dari kumpulan izin Pusat Identitas IAM. Anda harus mencabut sesi set izin aktif untuk pengguna di Pusat Identitas IAM. Untuk informasi selengkapnya, lihat [Mencabut sesi peran IAM aktif yang dibuat oleh set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#revoke-user-permissions) di Panduan Pengguna Pusat *Identitas IAM*.

**Topics**
+ [Tolak akses ke semua sesi peran IAM yang terkait dengan peran](#deny-access-to-all-sessions)
+ [Tolak akses ke sesi peran IAM tertentu](#deny-access-to-specific-session)
+ [Tolak akses ke sesi kredensi keamanan sementara dengan kunci konteks kondisi](#deny-access-to-specific-session-condition-key)
+ [Tolak akses ke prinsipal tertentu dengan kebijakan berbasis sumber daya](#deny-access-with-resource-based)

## Tolak akses ke semua sesi peran IAM yang terkait dengan peran
<a name="deny-access-to-all-sessions"></a>

Prosedur ini menolak izin untuk **semua** sesi peran IAM yang terkait dengan peran. Gunakan pendekatan ini ketika Anda khawatir tentang akses yang mencurigakan dengan:


+ Prinsipal dari akun lain menggunakan akses lintas akun
+ Identitas pengguna eksternal dengan izin untuk mengakses AWS sumber daya di akun Anda
+ Pengguna yang telah diautentikasi dalam aplikasi seluler atau web dengan penyedia OIDC

Untuk mengubah atau menghapus izin yang ditetapkan ke kredensil keamanan sementara yang diperoleh dengan memanggil`AssumeRole`,, atau,`AssumeRoleWithSAML`, atau `AssumeRoleWithWebIdentity``GetFederationToken`, atau`GetSessionToken`, Anda dapat mengedit atau menghapus kebijakan berbasis identitas yang menentukan izin untuk peran tersebut.

**penting**  
Jika ada kebijakan berbasis sumber daya yang memungkinkan akses utama, Anda juga harus menambahkan penolakan eksplisit untuk sumber daya tersebut. Lihat [Tolak akses ke prinsipal tertentu dengan kebijakan berbasis sumber daya](#deny-access-with-resource-based) untuk detail.

**Untuk menolak akses ke **semua** sesi peran IAM yang terkait dengan peran**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM.

1. Di panel navigasi, pilih **Peran..**

1. Pilih nama peran yang akan diedit. Anda dapat menggunakan kotak pencarian untuk memfilter daftar.

1. Pilih tab **Izin**.

1. Pilih kebijakan yang relevan untuk diedit. Sebelum Anda mengedit kebijakan terkelola pelanggan, tinjau tab **Entitas yang dilampirkan** untuk menghindari gangguan akses ke identitas lain yang mungkin memiliki kebijakan yang sama.

1. Pilih tab **JSON** dan perbarui kebijakan untuk menolak semua sumber daya dan tindakan.
**catatan**  
Izin ini sama dengan yang ada di kebijakan AWS terkelola [AWSDenySemua](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDenyAll.html). Anda dapat melampirkan kebijakan AWS terkelola ini ke setiap pengguna IAM atau peran yang ingin Anda tolak semua aksesnya.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DenyAll",
               "Effect": "Deny",
               "Action": [
                   "*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Di halaman **Tinjauan**, tinjau **Ringkasan** kebijakan lalu pilih **Simpan perubahan** untuk menyimpan pekerjaan Anda.

Saat memperbarui kebijakan, perubahan akan memengaruhi izin semua kredensil keamanan sementara yang terkait dengan peran tersebut, termasuk kredensil yang dikeluarkan sebelum Anda mengubah kebijakan izin peran. 

Setelah memperbarui kebijakan, Anda dapat [mencabut kredensil keamanan sementara peran tersebut untuk segera mencabut semua izin atas kredenal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html) yang dikeluarkan peran tersebut.

## Tolak akses ke sesi peran IAM tertentu
<a name="deny-access-to-specific-session"></a>

Saat Anda memperbarui peran IAM dengan kebijakan penolakan semua atau menghapus peran sepenuhnya, semua pengguna yang memiliki akses ke peran tersebut akan terganggu. Anda dapat menolak akses tanpa memengaruhi izin semua sesi lain yang terkait dengan peran tersebut.

Izin `Principal` dapat ditolak menggunakan [kunci konteks kondisi atau kebijakan berbasis](#deny-access-to-specific-session-condition-key) [sumber daya](#deny-access-with-resource-based).

**Tip**  
Anda dapat menemukan pengguna ARNs federasi menggunakan AWS CloudTrail log. Untuk informasi selengkapnya, lihat [Cara Mudah Mengidentifikasi Pengguna Federasi Anda dengan Menggunakan AWS CloudTrail](https://aws.amazon.com/blogs/security/how-to-easily-identify-your-federated-users-by-using-aws-cloudtrail/).

## Tolak akses ke sesi kredensi keamanan sementara dengan kunci konteks kondisi
<a name="deny-access-to-specific-session-condition-key"></a>

Anda dapat menggunakan kunci konteks kondisi dalam kebijakan berbasis identitas dalam situasi di mana Anda ingin menolak akses ke sesi kredensi keamanan sementara tertentu tanpa memengaruhi izin pengguna IAM atau peran yang membuat kredensialnya. Untuk peran IAM, setelah memperbarui kebijakan, Anda juga dapat [mencabut sesi kredensil keamanan sementara peran tersebut untuk segera mencabut semua kredensil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html) yang dikeluarkan.

Untuk informasi selengkapnya tentang kunci konteks kondisi, lihat[AWS kunci konteks kondisi global](reference_policies_condition-keys.md).

### aws: PrincipalArn
<a name="deny-access-condition-key-principalarn"></a>

Anda dapat menggunakan kunci konteks kondisi [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) dalam kebijakan berbasis identitas untuk menolak akses ke prinsipal tertentu dengan Nama Sumber Daya Amazon (ARN) mereka. Anda melakukannya dengan menentukan ARN pengguna IAM, peran, AWS STS atau sesi pengguna gabungan yang terkait dengan kredensil keamanan sementara dalam elemen Kondisi kebijakan.

**Untuk menolak akses ke kepala sekolah tertentu oleh ARN mereka**

1. **Di panel navigasi konsol IAM, pilih **Pengguna** atau Peran.**

1. Pilih nama pengguna IAM atau peran yang akan diedit. Anda dapat menggunakan kotak pencarian untuk memfilter daftar.

1. Pilih tab **Izin**.

1. Pilih kebijakan yang relevan untuk diedit. Sebelum Anda mengedit kebijakan terkelola pelanggan, tinjau tab **Entitas yang dilampirkan** untuk menghindari gangguan akses ke identitas lain yang mungkin memiliki kebijakan yang sama.

1. Pilih tab **JSON** dan tambahkan pernyataan penolakan untuk ARN utama seperti yang ditunjukkan pada contoh berikut.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "ArnEquals": {
             "aws:PrincipalArn": [
               "arn:aws:iam::222222222222:role/ROLENAME",
               "arn:aws:iam::222222222222:user/USERNAME",
               "arn:aws:iam::222222222222:federated-user/USERNAME" 
             ]
           }
         }
       }
     ]
   }
   ```

------

1. Di halaman **Tinjauan**, tinjau **Ringkasan** kebijakan lalu pilih **Simpan perubahan** untuk menyimpan pekerjaan Anda.

### aws: SourceIdentity
<a name="deny-access-condition-key-sourceidentity"></a>

Anda dapat menggunakan kunci konteks kondisi [aws:SourceIdentity](reference_policies_condition-keys.md#condition-keys-sourceidentity) dalam kebijakan berbasis identitas untuk menolak akses ke identitas sumber tertentu yang terkait dengan sesi peran IAM. Ini berlaku selama sesi peran dikeluarkan dengan menyetel parameter `SourceIdentity` permintaan saat prinsipal mengambil peran menggunakan AWS STS `assume-role` perintah\$1 CLI apa pun, atau AWS STS `AssumeRole` operasi\$1 API. Anda melakukannya dengan menentukan identitas sumber yang terkait dengan kredensi keamanan sementara dalam `Condition` elemen kebijakan. 

Tidak seperti kunci konteks [sts:RoleSessionName](reference_policies_iam-condition-keys.md#ck_rolesessionname), setelah identitas sumber disetel, nilainya tidak dapat diubah. `aws:SourceIdentity`Kuncinya ada dalam konteks permintaan untuk semua tindakan yang diambil oleh peran. Identitas sumber tetap ada di sesi peran berikutnya saat Anda menggunakan kredenal sesi untuk mengambil peran lain. Mengasumsikan satu peran dari peran lain disebut [rantai peran](id_roles.md#iam-term-role-chaining).

Kebijakan berikut menunjukkan contoh bagaimana Anda dapat menolak akses ke sesi kredensi keamanan sementara menggunakan kunci `aws:SourceIdentity` konteks kondisi. Jika Anda menentukan identitas sumber yang terkait dengan sesi peran, itu akan menolak sesi peran dengan identitas sumber bernama tanpa memengaruhi izin peran yang membuat kredensil. Untuk contoh ini, identitas sumber yang ditetapkan oleh kepala sekolah saat sesi peran dikeluarkan adalah`nikki_wolf@example.com`. Setiap permintaan yang dibuat oleh sesi peran dengan identitas sumber `nikki_wolf@example.com` akan ditolak karena identitas sumber disertakan dalam kondisi kebijakan dan Efek kebijakan disetel ke`Deny`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:SourceIdentity": [
            "nikki_wolf@example.com",
            "<source identity value>"
          ]
        }
      }
    }
  ]
}
```

------

### aws:userid
<a name="deny-access-condition-key-userid"></a>

Anda dapat menggunakan kunci konteks kondisi [aws:userid](reference_policies_condition-keys.md#condition-keys-userid) dalam kebijakan berbasis identitas untuk menolak akses ke semua atau sesi kredensi keamanan sementara tertentu yang terkait dengan pengguna atau peran IAM. Anda melakukannya dengan menentukan pengenal unik (ID) pengguna IAM, peran, atau sesi pengguna AWS STS federasi yang terkait dengan kredensil keamanan sementara dalam elemen kebijakan. `Condition`

Kebijakan berikut menunjukkan contoh bagaimana Anda dapat menolak akses ke sesi kredensi keamanan sementara menggunakan kunci `aws:userid` konteks kondisi.
+ `AIDAXUSER1`mewakili ID unik untuk pengguna IAM. Menentukan ID unik pengguna IAM sebagai nilai untuk kunci konteks `aws:userid` akan menolak akses ke pengguna IAM. Ini termasuk sesi kredensi keamanan sementara yang dibuat dengan memanggil `GetSessionToken` API.
+ `AROAXROLE1:*`mewakili ID unik untuk semua sesi yang terkait dengan peran IAM. Menentukan ID unik peran IAM dan karakter wildcard (\$1) di bagian caller-specified-role-session -name sebagai nilai untuk kunci konteks `aws:userid` akan menolak semua sesi yang terkait dengan peran tersebut.
+ `AROAXROLE2:<caller-specified-role-session-name>`mewakili ID unik untuk sesi peran yang diasumsikan. Di bagian caller-specified-role-session -name dari ID unik peran yang diasumsikan, Anda dapat menentukan nama sesi peran atau karakter wildcard jika operator kondisi digunakan. StringLike Jika Anda menentukan nama sesi peran, itu akan menolak sesi peran bernama tanpa memengaruhi izin peran yang membuat kredensialnya. Jika Anda menentukan karakter wildcard untuk nama sesi peran, itu akan menolak semua sesi yang terkait dengan peran tersebut.
**catatan**  
Nama sesi peran yang ditentukan pemanggil, yang merupakan bagian dari pengenal unik untuk sesi peran yang diasumsikan, dapat berubah selama rantai peran. Role chaining terjadi ketika satu peran mengambil peran lain. Nama sesi peran disetel menggunakan parameter `RoleSessionName` permintaan saat prinsipal mengasumsikan peran menggunakan operasi AWS STS `AssumeRole` API.
+ `account-id:<federated-user-caller-specified-name>`mewakili ID unik untuk sesi pengguna AWS STS federasi. Pengguna IAM membuat sesi ini dengan memanggil `GetFederationToken` API. Menentukan ID unik untuk sesi pengguna AWS STS federasi menyangkal sesi federasi bernama tanpa memengaruhi izin pengguna IAM yang membuat kredensialnya.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:userId": [
            "AIDAXUSER1",
            "AROAXROLE1:*",
            "AROAXROLE2:<caller-specified-role-session-name>",
            "123456789012:<federated-user-caller-specified-name>"
          ]
        }
      }
    }
  ]
}
```

------

Untuk contoh spesifik dari nilai kunci utama, lihat[Nilai-nilai kunci utama](reference_policies_variables.md#principaltable). Untuk informasi tentang pengidentifikasi unik IAM dan cara mendapatkannya, lihat. [Pengidentifikasi unik](reference_identifiers.md#identifiers-unique-ids)

## Tolak akses ke prinsipal tertentu dengan kebijakan berbasis sumber daya
<a name="deny-access-with-resource-based"></a>

Untuk membatasi akses ke prinsipal tertentu dengan kebijakan berbasis sumber daya, Anda dapat menggunakan kunci [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) konteks kondisi atau dalam elemen. [aws:SourceIdentity](reference_policies_condition-keys.md#condition-keys-sourceidentity) `Condition` Kebijakan berbasis sumber daya adalah kebijakan izin yang dilampirkan pada sumber daya dan kontrol siapa yang dapat mengakses sumber daya dan tindakan apa yang dapat mereka lakukan terhadapnya. 

Bila Anda menggunakan kunci `aws:PrincipalARN` konteks, tentukan ARN pengguna IAM, peran, atau sesi pengguna AWS STS federasi yang terkait dengan kredensil keamanan sementara dalam elemen Kondisi kebijakan. Contoh kebijakan berikut menunjukkan cara menggunakan kunci `aws:PrincipalARN` konteks dalam kebijakan berbasis sumber daya:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Principal": "*",
    "Effect": "Deny",
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
    "Condition": {
      "ArnEquals": {
        "aws:PrincipalArn": [
          "arn:aws:iam::222222222222:role/ROLENAME",
          "arn:aws:iam::222222222222:user/USERNAME",
          "arn:aws:sts::222222222222:federated-user/USERNAME"
        ]
      }
    }
  }
}
```

------

Bila Anda menggunakan kunci `aws:SourceIdentity` konteks, tentukan nilai identitas sumber yang terkait dengan kredensil keamanan sementara peran dalam `Condition` elemen kebijakan. Ini berlaku selama sesi peran dikeluarkan dengan menyetel parameter `SourceIdentity` permintaan saat prinsipal mengambil peran menggunakan AWS STS `assume-role` perintah\$1 CLI apa pun, atau AWS STS `AssumeRole` operasi\$1 API. Contoh berikut menunjukkan cara menggunakan kunci `aws:SourceIdentity` konteks dalam kebijakan berbasis sumber daya:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Principal": "*",
    "Effect": "Deny",
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
    "Condition": {
      "StringLike": {
        "aws:SourceIdentity": [
          "nikki_wolf@example.com",
          "<source identity value>"
        ]
      }
    }
  }
}
```

------

Jika Anda hanya memperbarui kebijakan berbasis identitas untuk prinsipal, mereka masih dapat melakukan tindakan yang diizinkan dalam kebijakan berbasis sumber daya, kecuali jika tindakan tersebut secara eksplisit ditolak dalam kebijakan berbasis identitas.

**Untuk menolak akses ke prinsipal tertentu dalam kebijakan berbasis sumber daya**

1. Lihat [AWS layanan yang bekerja dengan IAM](reference_aws-services-that-work-with-iam.md) untuk melihat apakah layanan mendukung kebijakan berbasis sumber daya.

1. Masuk ke Konsol Manajemen AWS dan buka konsol untuk layanan ini. Setiap layanan memiliki lokasi yang berbeda di konsol untuk melampirkan kebijakan.

1. Edit kebijakan berbasis sumber daya. Tambahkan pernyataan kebijakan penolakan untuk menentukan informasi identifikasi kredensi:

   1. Dalam `Principal` elemen, masukkan wildcard (\$1). Kepala sekolah akan dibatasi dalam `Condition` elemen.

   1. Dalam `Effect` elemen, masukkan “Deny.”

   1. Masuk`Action`, masukkan namespace layanan dan nama tindakan yang akan ditolak. Untuk menolak semua tindakan, gunakan karakter wildcard (\$1). Sebagai contoh: `"s3:*"`.

   1. Dalam `Resource` elemen, masukkan ARN dari sumber daya target. Sebagai contoh: `"arn:aws:s3:::amzn-s3-demo-bucket"`.

   1. Dalam `Condition` elemen, tentukan kunci `aws:PrincipalARN` atau `aws:SourceIdentity` konteks.

      Jika Anda menggunakan tombol `aws:PrincipalARN` konteks, masukkan ARN kepala sekolah untuk menolak akses.

      Jika Anda menggunakan kunci `aws:SourceIdentity` konteks, masukkan nilai identitas sumber yang ditetapkan dalam sesi peran untuk menolak akses.

1. Simpan pekerjaan Anda.

# Memberikan izin untuk membuat kredensial keamanan sementara
<a name="id_credentials_temp_control-access_enable-create"></a>

Secara default, pengguna IAM tidak memiliki izin untuk membuat kredensil keamanan sementara untuk sesi dan peran pengguna AWS STS federasi. Anda harus menggunakan kebijakan untuk memberikan izin ini kepada pengguna Anda. Meskipun Anda dapat memberikan izin secara langsung kepada pengguna, kami sangat menyarankan agar Anda memberikan izin kepada grup. Ini menjadikan pengelolaan izin jauh lebih mudah. Saat seseorang tidak lagi perlu melakukan tugas yang terkait dengan izin, Anda cukup menghapusnya dari grup. Jika orang lain perlu melakukan tugas tersebut, tambahkan mereka ke grup untuk memberikan izin.

Untuk memberikan izin grup IAM untuk membuat kredensil keamanan sementara untuk sesi atau peran pengguna AWS STS gabungan, Anda melampirkan kebijakan yang memberikan salah satu atau kedua hak istimewa berikut:
+ Untuk kepala sekolah federasi OIDC dan SALL untuk mengakses peran IAM, berikan akses ke. AWS STS `AssumeRole`
+ <a name="para_gsy_hxg_1t"></a>Untuk pengguna AWS STS federasi yang tidak memerlukan peran, berikan akses ke AWS STS `GetFederationToken`.

 Untuk informasi selengkapnya tentang perbedaan antara operasi API `AssumeRole` dan `GetFederationToken`, lihat [Minta kredensil keamanan sementara](id_credentials_temp_request.md).

Pengguna IAM juga dapat memanggil [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) untuk membuat kredensial keamanan sementara. Tidak ada izin yang diperlukan bagi pengguna untuk memanggil `GetSessionToken`. Tujuan dari operasi ini adalah mengautentikasi pengguna menggunakan MFA. Anda tidak dapat menggunakan kebijakan untuk mengontrol autentikasi. Ini artinya Anda tidak dapat mencegah pengguna IAM melakukan panggilan `GetSessionToken` untuk membuat kredensial sementara.

**Example Contoh kebijakan yang memberikan izin untuk mengambil peran**  
Contoh kebijakan berikut memberikan izin `AssumeRole` untuk memanggil `UpdateApp` peran dalam Akun AWS `123123123123`. Saat `AssumeRole` digunakan, pengguna (atau aplikasi) yang membuat kredensial keamanan atas nama pengguna gabungan tidak dapat mengurangi izin apapun yang belum ditentukan dalam kebijakan izin peran.     
****  

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

**Example Contoh kebijakan yang memberikan izin untuk membuat kredensial keamanan sementara bagi pengguna gabungan.**  
Contoh kebijakan berikut memberikan izin untuk mengakses `GetFederationToken`.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Allow",
    "Action": "sts:GetFederationToken",
    "Resource": "*"
  }]
}
```

**penting**  
Saat Anda memberi izin kepada pengguna IAM untuk membuat kredensil keamanan sementara untuk pengguna AWS STS federasi`GetFederationToken`, ketahuilah bahwa ini memungkinkan pengguna tersebut untuk mendelegasikan izin mereka sendiri. Untuk informasi selengkapnya tentang mendelegasikan izin di seluruh pengguna IAM dan Akun AWS, lihat. [Contoh kebijakan untuk mendelegasikan akses](id_roles_create_policy-examples.md) Untuk informasi selengkapnya tentang mengatur izin pada kredensial keamanan sementara, lihat [Izin untuk kredensial keamanan sementara](id_credentials_temp_control-access.md). 

**Example Contoh kebijakan yang memberikan izin terbatas kepada pengguna untuk membuat kredensial keamanan sementara bagi pengguna gabungan.**  
Saat Anda mengizinkan pengguna IAM memanggil `GetFederationToken`, ini adalah penerapan terbaik untuk membatasi izin yang dapat dikeluarkan oleh pengguna IAM. *Misalnya, kebijakan berikut menunjukkan cara mengizinkan pengguna IAM membuat kredensil keamanan sementara hanya untuk pengguna AWS STS federasi yang namanya dimulai dengan Manajer.*    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Allow",
    "Action": "sts:GetFederationToken",
    "Resource": ["arn:aws:sts::123456789012:federated-user/Manager*"]
  }]
}
```

# Memberikan izin untuk menggunakan sesi konsol yang disempurnakan identitas
<a name="id_credentials_temp_control-access_sts-setcontext"></a>

Sesi konsol yang disempurnakan identitas memungkinkan AWS IAM Identity Center pengguna dan sesi IDs untuk disertakan dalam sesi AWS konsol pengguna saat mereka masuk. Misalnya, Amazon Q Developer Pro menggunakan sesi konsol yang disempurnakan identitas untuk mempersonalisasi pengalaman layanan. *Untuk informasi selengkapnya tentang sesi konsol yang disempurnakan identitas, lihat [Mengaktifkan sesi konsol yang disempurnakan identitas](https://docs.aws.amazon.com/singlesignon/latest/userguide/identity-enhanced-sessions.html) di Panduan Pengguna.AWS IAM Identity Center * Untuk informasi tentang penyiapan Pengembang Amazon Q, lihat [Menyiapkan Pengembang Amazon Q](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/setting-up.html) di *Panduan Pengguna Pengembang Amazon Q*.

Agar sesi konsol yang disempurnakan identitas tersedia bagi pengguna, Anda harus menggunakan kebijakan berbasis identitas untuk memberikan `sts:SetContext` izin kepada prinsipal IAM untuk sumber daya yang mewakili sesi konsol mereka sendiri. 

**penting**  
Secara default, pengguna tidak memiliki izin untuk menyetel konteks untuk sesi konsol yang disempurnakan identitas mereka. Untuk mengizinkan hal ini, Anda harus memberikan `sts:SetContext` izin kepada kepala IAM dalam kebijakan berbasis identitas seperti yang ditunjukkan pada contoh kebijakan di bawah ini.

Contoh kebijakan berbasis identitas berikut memberikan `sts:SetContext` izin kepada prinsipal IAM, memungkinkan prinsipal untuk mengatur konteks sesi konsol yang ditingkatkan identitas untuk sesi konsol mereka sendiri. AWS Sumber daya kebijakan,`arn:aws:sts::account-id:self`, mewakili AWS sesi pemanggil. Segmen `account-id` ARN dapat diganti dengan karakter `*` wildcard jika kebijakan izin yang sama diterapkan di beberapa akun, seperti saat kebijakan ini diterapkan menggunakan set izin Pusat Identitas IAM.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:SetContext",
            "Resource": "arn:aws:sts::111122223333:self"
        }
    ]
}
```

------

# Kelola AWS STS dalam sebuah Wilayah AWS
<a name="id_credentials_temp_enable-regions"></a>

Endpoint Regional adalah URL titik masuk dalam wilayah tertentu untuk layanan AWS web. AWS merekomendasikan penggunaan titik akhir Regional AWS Security Token Service (AWS STS) alih-alih titik akhir global untuk mengurangi latensi, membangun redundansi, dan meningkatkan validitas token sesi. Meskipun AWS STS titik akhir `https://sts.amazonaws.com` global (lama) sangat tersedia, itu di-host di satu AWS Wilayah, AS Timur (Virginia N.), dan seperti titik akhir lainnya, itu tidak menyediakan failover otomatis ke titik akhir di Wilayah lain.
+ **Mengurangi latensi** — Dengan melakukan AWS STS panggilan ke titik akhir yang secara geografis lebih dekat dengan layanan dan aplikasi Anda, Anda dapat mengakses AWS STS layanan dengan latensi yang lebih rendah dan waktu respons yang lebih baik.
+ **Membangun redundansi** — Anda dapat membatasi efek kegagalan dalam beban kerja ke sejumlah komponen terbatas dengan cakupan penahanan dampak yang dapat diprediksi. Menggunakan AWS STS endpoint regional memungkinkan Anda menyelaraskan cakupan komponen Anda dengan cakupan token sesi Anda. Untuk informasi selengkapnya tentang pilar keandalan ini, lihat [Menggunakan isolasi kesalahan untuk melindungi beban kerja Anda](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/use-fault-isolation-to-protect-your-workload.html) di *AWS Well-Architected* Framework.
+ **Tingkatkan validitas token sesi** — Token sesi dari AWS STS titik akhir Regional valid di semua. Wilayah AWS Token sesi dari titik akhir STS global hanya valid Wilayah AWS yang diaktifkan secara default. Jika Anda bermaksud mengaktifkan Wilayah baru untuk akun Anda, Anda dapat menggunakan token sesi dari AWS STS titik akhir Regional. Jika Anda memilih untuk menggunakan titik akhir global, Anda harus mengubah kompatibilitas Wilayah token AWS STS sesi untuk titik akhir global. Melakukannya memastikan bahwa token valid di semua Wilayah AWS.

Untuk daftar AWS STS Wilayah dan titik akhirnya, lihat[AWS STS Wilayah dan titik akhir](id_credentials_temp_region-endpoints.md).

**catatan**  
AWS telah membuat perubahan pada AWS Security Token Service (AWS STS) titik akhir global (`https://sts.amazonaws.com`) di Wilayah yang [diaktifkan secara default](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) untuk meningkatkan ketahanan dan kinerjanya. AWS STS permintaan ke titik akhir global secara otomatis disajikan Wilayah AWS sama dengan beban kerja Anda. Perubahan ini tidak akan diterapkan ke Wilayah keikutsertaan. Kami menyarankan Anda menggunakan titik akhir AWS STS regional yang sesuai. Untuk informasi selengkapnya, lihat [AWS STS perubahan titik akhir global](id_credentials_temp_region-endpoints.md#reference_sts_global_endpoint_changes).

**Topics**
+ [Mengaktifkan dan menonaktifkan AWS STS dalam Wilayah AWS](#sts-regions-activate-deactivate)
+ [Menulis kode untuk menggunakan AWS STS Wilayah](#id_credentials_temp_enable-regions_writing_code)
+ [Mengelola token sesi titik akhir global](#sts-regions-manage-tokens)

## Mengaktifkan dan menonaktifkan AWS STS dalam Wilayah AWS
<a name="sts-regions-activate-deactivate"></a>

Ketika Anda mengaktifkan AWS STS titik akhir untuk Wilayah, AWS STS dapat mengeluarkan kredensi sementara untuk pengguna dan peran di akun Anda yang membuat permintaan. AWS STS Kredensial tersebut kemudian dapat digunakan di setiap Wilayah yang diaktifkan secara default atau diaktifkan secara manual. Untuk Wilayah yang diaktifkan secara default, Anda harus mengaktifkan AWS STS titik akhir Regional di akun tempat kredenal sementara dibuat. Tidak masalah apakah pengguna masuk ke akun yang sama atau akun yang berbeda saat mereka mengajukan permintaan. Saat meminta kredensi sementara untuk peran lain Akun AWS menggunakan Wilayah yang diaktifkan secara manual, akun target (akun yang berisi peran) harus mengaktifkan Wilayah tersebut untuk operasi. AWS STS Ini memastikan bahwa kredenal keamanan sementara dapat dihasilkan dengan benar.

Misalnya, bayangkan pengguna di akun A ingin mengirim permintaan `sts:AssumeRole` API ke [titik akhir AWS STS`https://sts.ap-southeast-3.amazonaws.com` Regional](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_region-endpoints.html). Permintaan adalah kredensi sementara untuk peran yang disebutkan `Developer` di akun B. Karena permintaannya adalah untuk membuat kredensil untuk entitas di akun B, akun B harus mengaktifkan Region. `ap-southeast-3` Pengguna dari akun A (atau akun lain) dapat memanggil titik akhir `ap-southeast-3` AWS STS untuk meminta kredensial bagi akun B apakah Wilayah diaktifkan di akun mereka atau tidak. Untuk mempelajari lebih lanjut, lihat [Mengaktifkan atau menonaktifkan Wilayah AWS di akun Anda](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html).

**catatan**  
Wilayah Aktif tersedia bagi semua orang yang menggunakan kredensial sementara dalam akun tersebut. Untuk mengontrol pengguna atau peran IAM mana yang dapat mengakses Wilayah, gunakan kunci ketentuan `aws:RequestedRegion` dalam kebijakan izin Anda.

**Untuk mengaktifkan atau menonaktifkan AWS STS di Wilayah yang diaktifkan secara default (konsol)**

1. Masuk sebagai pengguna root atau pengguna dengan izin untuk melakukan tugas administrasi IAM.

1. Membuka [Konsol IAM](https://console.aws.amazon.com/iam/home?#home) dan di panel navigasi pilih [https://console.aws.amazon.com/iam/home?#account_settings](https://console.aws.amazon.com/iam/home?#account_settings).

1. Di bagian **Security Token Service (STS)** **Endpoints**, cari Region yang ingin Anda konfigurasikan, lalu pilih **Active** or **Inactive** di kolom **status STS**.

1. Di kotak dialog yang terbuka, pilih **Aktifkan** atau **Nonaktifkan**.

Untuk Wilayah yang harus diaktifkan, kami mengaktifkan AWS STS secara otomatis saat Anda mengaktifkan Wilayah. Setelah Anda mengaktifkan Wilayah, AWS STS selalu aktif untuk Wilayah dan Anda tidak dapat menonaktifkannya. Untuk mempelajari cara mengaktifkan Wilayah yang dinonaktifkan secara default, lihat [Menentukan Wilayah AWS akun mana yang dapat digunakan](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) dalam Panduan *AWS Account Management Referensi*.

## Menulis kode untuk menggunakan AWS STS Wilayah
<a name="id_credentials_temp_enable-regions_writing_code"></a>

Setelah mengaktifkan Region, Anda dapat mengarahkan panggilan AWS STS API ke Region tersebut. Cuplikan kode Java berikut menunjukkan cara mengkonfigurasi `AWSSecurityTokenService` objek untuk membuat permintaan ke Wilayah Eropa (Milan) (eu-south-1).

```
EndpointConfiguration regionEndpointConfig = new EndpointConfiguration("https://sts.eu-south-1.amazonaws.com", "eu-south-1");
AWSSecurityTokenService stsRegionalClient = AWSSecurityTokenServiceClientBuilder.standard()
.withCredentials(credentials)
.withEndpointConfiguration(regionEndpointConfig)
.build();
```

AWS STS merekomendasikan agar Anda melakukan panggilan ke titik akhir Regional. Untuk mempelajari cara mengaktifkan Wilayah secara manual, lihat [Menentukan Wilayah AWS akun yang dapat digunakan](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) dalam *Panduan AWS Account Management Referensi*.

Dalam contoh, baris pertama membuat instance `EndpointConfiguration` objek yang dipanggil`regionEndpointConfig`, melewati URL titik akhir dan Wilayah AWS sebagai parameter.

Untuk mempelajari cara menyetel titik akhir AWS STS regional menggunakan variabel lingkungan AWS SDKs, lihat [Titik akhir AWS STS regional](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sts-regionalized-endpoints.html) di Panduan Referensi Alat *AWS SDKs dan*.

Untuk semua kombinasi bahasa dan lingkungan pemrograman lainnya, mengacu pada [dokumentasi untuk SDK terkait](https://aws.amazon.com/tools/).

## Mengelola token sesi titik akhir global
<a name="sts-regions-manage-tokens"></a>

Sebagian Wilayah AWS besar diaktifkan untuk operasi di semua secara Layanan AWS default. Wilayah tersebut secara otomatis diaktifkan untuk digunakan dengan AWS STS. Beberapa Wilayah, seperti Asia Pacific (Hong Kong) harus diaktifkan secara manual. *Untuk mempelajari lebih lanjut tentang mengaktifkan dan menonaktifkan Wilayah AWS, lihat [Menentukan Wilayah AWS akun yang dapat digunakan](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) dalam Panduan Referensi AWS Account Management .* Ketika Anda mengaktifkan AWS Wilayah ini, mereka secara otomatis diaktifkan untuk digunakan dengan AWS STS. Anda tidak dapat mengaktifkan AWS STS titik akhir untuk Wilayah yang dinonaktifkan. Token sesi yang valid di semua Wilayah AWS menyertakan lebih banyak karakter daripada token yang valid di Wilayah yang diaktifkan secara default. Mengubah pengaturan ini mungkin memengaruhi sistem yang sudah ada di mana Anda menyimpan token untuk sementara waktu.

Anda dapat mengubah pengaturan ini menggunakan Konsol Manajemen AWS, AWS CLI, atau AWS API.

**Untuk mengubah kesesuaian Wilayah token sesi untuk titik akhir global (konsole)**

1. Masuk sebagai pengguna root atau pengguna dengan izin untuk melakukan tugas administrasi IAM. Untuk mengubah kesesuaian token sesi, Anda harus memiliki kebijakan yang memungkinkan tindakan `iam:SetSecurityTokenServicePreferences`.

1. Buka [konsol IAM](https://console.aws.amazon.com/iam/home?#home). Di panel navigasi, pilih **Pengaturan akun**.

1. Di bawah **Security Token Service (STS)** bagian **Token Sesi dari titik akhir STS**. **Titik akhir Global** menunjukkan`Valid only in Wilayah AWS enabled by default`. Pilih **Ubah**.

1. Dalam kotak dialog **Ubah kompatibilitas wilayah**, pilih **Semua Wilayah AWS**. Lalu pilih **Simpan Perubahan**.
**catatan**  
Token sesi yang valid di semua Wilayah AWS menyertakan lebih banyak karakter daripada token yang valid di Wilayah yang diaktifkan secara default. Mengubah pengaturan ini mungkin memengaruhi sistem yang sudah ada di mana Anda menyimpan token untuk sementara waktu.

**Untuk mengubah kesesuaian Wilayah token sesi untuk titik akhir global (AWS CLI)**  
Atur versi token sesi. Token versi 1 hanya valid dalam Wilayah AWS yang tersedia secara default. Token ini tidak bekerja di Wilayah yang diaktifkan secara manual, seperti Asia Pasifik (Hong Kong). Token Versi 2 valid di semua Wilayah. Namun, token versi 2 memuat lebih banyak karakter dan mungkin memengaruhi sistem tempat Anda menyimpan token untuk sementara waktu.
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/set-security-token-service-preferences.html](https://docs.aws.amazon.com/cli/latest/reference/iam/set-security-token-service-preferences.html)

**Untuk mengubah kompatibilitas Wilayah token sesi untuk titik akhir global (AWS API)**  
Atur versi token sesi. Token versi 1 hanya valid dalam Wilayah AWS yang tersedia secara default. Token ini tidak bekerja di Wilayah yang diaktifkan secara manual, seperti Asia Pasifik (Hong Kong). Token Versi 2 valid di semua Wilayah. Namun, token versi 2 memuat lebih banyak karakter dan mungkin memengaruhi sistem tempat Anda menyimpan token untuk sementara waktu.
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_SetSecurityTokenServicePreferences.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SetSecurityTokenServicePreferences.html) 

# AWS STS Wilayah dan titik akhir
<a name="id_credentials_temp_region-endpoints"></a>

**catatan**  
AWS telah membuat perubahan pada AWS Security Token Service (AWS STS) titik akhir global (`https://sts.amazonaws.com`) di Wilayah yang [diaktifkan secara default](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) untuk meningkatkan ketahanan dan kinerjanya. AWS STS permintaan ke titik akhir global secara otomatis disajikan Wilayah AWS sama dengan beban kerja Anda. Perubahan ini tidak akan diterapkan ke Wilayah keikutsertaan. Kami menyarankan Anda menggunakan titik akhir AWS STS regional yang sesuai. Untuk informasi selengkapnya, lihat [AWS STS perubahan titik akhir global](#reference_sts_global_endpoint_changes).

Tabel berikut mencantumkan Wilayah dan titik akhirnya. Ini menunjukkan mana yang diaktifkan secara default dan mana yang dapat Anda aktifkan atau nonaktifkan.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/id_credentials_temp_region-endpoints.html)

¹Anda harus [mengaktifkan Wilayah](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) untuk menggunakannya. Ini secara otomatis mengaktifkan. AWS STS Anda tidak dapat mengaktifkan atau menonaktifkan secara manual AWS STS di Wilayah ini.

²Untuk digunakan AWS di Tiongkok, Anda memerlukan akun dan kredensyal khusus di Tiongkok. AWS 

## AWS STS perubahan titik akhir global
<a name="reference_sts_global_endpoint_changes"></a>

AWS telah membuat perubahan pada AWS Security Token Service (AWS STS) titik akhir global (`https://sts.amazonaws.com`) di Wilayah yang [diaktifkan secara default](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) untuk meningkatkan ketahanan dan kinerjanya. Sebelumnya, semua permintaan ke titik akhir AWS STS global dilayani oleh satu Wilayah AWS, US East (Virginia N.). Sekarang di Wilayah [diaktifkan secara default](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html), permintaan ke titik akhir AWS STS global secara otomatis disajikan di Wilayah yang sama tempat permintaan berasal, bukan Wilayah AS Timur (Virginia Utara). Perubahan ini tidak akan diterapkan ke Wilayah keikutsertaan.

Dengan perubahan ini, AWS STS akan memproses permintaan Anda berdasarkan Region asal dan DNS resolver yang digunakan. Permintaan ke titik akhir AWS STS global disajikan di Wilayah yang sama dengan beban kerja AWS yang Anda gunakan jika permintaan DNS untuk titik akhir AWS STS global ditangani oleh server DNS Amazon di Wilayah yang diaktifkan secara default. Permintaan ke titik akhir AWS STS global akan terus dilayani di Wilayah AS Timur (Virginia Utara) jika permintaan Anda berasal dari Wilayah keikutsertaan atau jika permintaan Anda diselesaikan menggunakan penyelesai DNS selain server DNS Amazon. Untuk informasi selengkapnya tentang Amazon DNS, lihat [Server DNS Amazon](https://docs.aws.amazon.com/vpc/latest/userguide/AmazonDNS-concepts.html#AmazonDNS) di *Panduan Pengguna Amazon Virtual Private Cloud*.

Tabel berikut menunjukkan bagaimana permintaan ke titik akhir AWS STS global dirutekan berdasarkan penyedia DNS Anda.


| DNS Resolver | Permintaan ke titik akhir AWS STS global diarahkan ke lokal? Wilayah AWS | 
| --- | --- | 
|  Amazon DNS resolver di Amazon VPC di Wilayah diaktifkan secara default  |  Ya  | 
|  Penyelesai DNS Amazon di VPC Amazon di Wilayah keikutsertaan  |  Tidak, permintaan akan dialihkan ke Wilayah AS Timur (Virginia N.)  | 
|  DNS resolver yang disediakan oleh ISP Anda, penyedia DNS publik, atau penyedia DNS lainnya  |  Tidak, permintaan akan dialihkan ke Wilayah AS Timur (Virginia N.)  | 

Untuk memastikan gangguan minimal terhadap proses yang ada, AWS telah menerapkan langkah-langkah berikut:
+ AWS CloudTrail log untuk permintaan yang dibuat ke titik akhir AWS STS global dikirim ke Wilayah AS Timur (Virginia N.). CloudTrail log untuk permintaan yang dilayani oleh titik akhir AWS STS Regional akan terus dicatat ke Wilayah masing-masing di CloudTrail.
+ CloudTrail log untuk operasi yang dilakukan oleh titik akhir AWS STS global dan titik akhir Regional memiliki bidang tambahan `endpointType` dan `awsServingRegion` untuk menunjukkan titik akhir dan Wilayah mana yang melayani permintaan. Untuk contoh CloudTrail log, lihat[Contoh peristiwa AWS STS API menggunakan titik akhir global dalam file CloudTrail log](cloudtrail-integration.md#stscloudtrailexample-assumerole-sts-global-endpoint).
+ Permintaan yang dibuat ke titik akhir AWS STS global memiliki nilai `us-east-1` untuk kunci `aws:RequestedRegion` kondisi, terlepas dari Wilayah mana yang melayani permintaan tersebut.
+ Permintaan yang ditangani oleh titik akhir AWS STS global tidak membagikan kuota permintaan per detik dengan titik akhir Regional. AWS STS 

Jika Anda memiliki beban kerja di Wilayah keikutsertaan dan masih menggunakan titik akhir AWS STS global, kami sarankan untuk bermigrasi ke titik akhir AWS STS regional untuk meningkatkan ketahanan dan kinerja. Untuk informasi selengkapnya tentang mengonfigurasi AWS STS titik akhir regional, lihat [Titik akhir AWS STS Regional](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sts-regionalized-endpoints.html) di Panduan Referensi *Alat AWS SDKs dan Alat*.

## AWS CloudTrail dan titik akhir Regional
<a name="sts-regions-cloudtrail"></a>

Panggilan ke titik akhir regional dan global dicatat di `tlsDetails` bidang di AWS CloudTrail. Panggilan ke titik akhir regional, seperti`us-east-2.amazonaws.com`, masuk CloudTrail ke wilayah yang sesuai. Memanggil ke titik akhir global, `sts.amazonaws.com`, dicatat sebagai panggilan ke layanan global. Peristiwa untuk AWS STS titik akhir global dicatat ke us-east-1.

**catatan**  
 `tlsDetails`hanya dapat dilihat untuk layanan yang mendukung bidang ini. Lihat [Layanan yang mendukung detail TLS CloudTrail di AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-supported-tls-details.html) *Panduan Pengguna*  
Lihat informasi yang lebih lengkap di [Mencatat panggilan IAM dan AWS STS API dengan AWS CloudTrail](cloudtrail-integration.md).

# Aktifkan akses broker identitas khusus ke AWS konsol
<a name="id_roles_providers_enable-console-custom-url"></a>

Anda dapat menulis dan menjalankan kode untuk membuat URL yang memungkinkan pengguna yang masuk ke jaringan organisasi Anda mengakses Konsol Manajemen AWS. URL menyertakan token masuk yang Anda dapatkan AWS dan yang mengautentikasi pengguna. AWS Sesi konsol yang dihasilkan mungkin termasuk yang berbeda `AccessKeyId` karena federasi. Untuk melacak penggunaan kunci akses untuk login federasi melalui CloudTrail acara terkait, lihat [Mencatat panggilan IAM dan AWS STS API dengan AWS CloudTrail](cloudtrail-integration.md) dan acara [Konsol Manajemen AWS login](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-aws-console-sign-in-events.html). 

**catatan**  
Jika organisasi Anda menggunakan penyedia identitas (IdP) yang kompatibel dengan SAML, Anda dapat menyiapkan akses ke konsol tanpa menulis kode. Ini berfungsi dengan penyedia seperti Layanan Federasi Direktori Aktif Microsoft atau Shibboleth sumber terbuka. Untuk detailnya, lihat [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md). 

Untuk memungkinkan pengguna organisasi Anda mengakses Konsol Manajemen AWS, Anda dapat membuat *pialang identitas* khusus yang melakukan langkah-langkah berikut:

1. Pastikan bahwa pengguna diautentikasi oleh sistem identitas lokal Anda.

1. Panggil operasi AWS Security Token Service (AWS STS) [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)(disarankan) atau [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)API untuk mendapatkan kredenal keamanan sementara bagi pengguna. Untuk mempelajari tentang berbagai metode yang dapat Anda gunakan untuk menjalankan peran, lihat [Metode untuk mengambil peran](id_roles_manage-assume.md). Untuk mempelajari cara mengirimkan tag sesi opsional saat Anda mendapatkan kredensial keamanan Anda, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).
   + Jika Anda menggunakan salah satu dari Operasi API `AssumeRole*` untuk mendapatkan kredensial keamanan sementara untuk sebuah peran, Anda dapat menyertakan parameter `DurationSeconds` dalam panggilan Anda. Parameter ini menentukan durasi sesi peran Anda, dari 900 detik (15 menit) hingga setelan durasi sesi maksimum untuk peran tersebut. Ketika Anda menggunakan `DurationSeconds` dalam `AssumeRole*` operasi, Anda harus menyebutnya sebagai pengguna IAM dengan kredensi jangka panjang. Jika tidak, panggilan ke titik akhir federasi pada langkah 3 gagal. Untuk mempelajari cara melihat atau mengubah nilai maksimum untuk peran, lihat [Memperbarui durasi sesi maksimum untuk peran](id_roles_update-role-settings.md#id_roles_update-session-duration).
   + Jika Anda menggunakan operasi API `GetFederationToken` untuk mendapatkan kredensial, Anda bisa menyertakan parameter `DurationSeconds` dalam panggilan Anda. Parameter ini menentukan durasi sesi peran Anda. Nilai dapat berkisar dari 900 detik (15 menit) hingga 129.600 detik (36 jam). Anda dapat melakukan panggilan API ini hanya dengan menggunakan kredenal AWS keamanan jangka panjang dari pengguna IAM. Anda juga dapat melakukan panggilan ini menggunakan Pengguna root akun AWS kredensional, tetapi kami tidak merekomendasikannya. Jika Anda membuat panggilan ini sebagai pengguna akar, sesi default berlangsung selama satu jam. Atau Anda dapat menentukan sesi dari 900 detik (15 menit) hingga 3.600 detik (satu jam). 

1. Hubungi titik akhir AWS federasi dan berikan kredensi keamanan sementara untuk meminta token masuk.

1. Buat URL untuk konsol yang mencakup token:
   + Jika Anda menggunakan salah satu dari operasi API `AssumeRole*` di URL Anda, Anda dapat menyertakan Parameter HTTP `SessionDuration`. Parameter ini menentukan durasi sesi konsol, dari 900 detik (15 menit) hingga 43200 detik (12 jam).
   + Jika Anda menggunakan operasi API `GetFederationToken` di URL Anda, Anda dapat menyertakan Parameter `DurationSeconds`. Parameter ini menentukan durasi sesi konsol federasi. Nilai dapat berkisar dari 900 detik (15 menit) hingga 129.600 detik (36 jam). 
**catatan**  
Anda `SessionDuration` tidak boleh lebih besar dari atau sama dengan pengaturan durasi sesi maksimum untuk peran yang Anda asumsikan. Misalnya, Anda menetapkan durasi sesi maksimum untuk peran yang ingin Anda asumsikan menjadi 5 jam. `SessionDuration`Parameter Anda bisa 16524 detik atau 4 jam 59 detik.
Jangan gunakan parameter `SessionDuration` HTTP ketika Anda mendapatkan kredensi sementara dengan. `GetFederationToken` Operasi akan gagal.
Menggunakan kredensi untuk satu peran untuk mengambil peran yang berbeda disebut rantai [*peran*](id_roles.md#iam-term-role-chaining). Saat Anda menggunakan rantai peran, kredensial baru Anda dibatasi hingga durasi maksimum satu jam. Saat Anda menggunakan peran untuk [memberikan izin ke aplikasi yang berjalan pada instans EC2](id_roles_use_switch-role-ec2.md), aplikasi tersebut tidak terkena batasan ini.
Jangan gunakan parameter `SessionDuration` HTTP saat Anda mendapatkan kredensi sementara melalui rantai peran. Operasi akan gagal.

1. Berikan URL ke pengguna atau panggil URL atas nama pengguna.

URL yang disediakan oleh titik akhir federasi berlaku selama 15 menit setelah dibuat. Ini berbeda dari durasi (dalam detik) sesi kredensial keamanan sementara yang dikaitkan dengan URL. Kredensial tersebut berlaku selama durasi yang Anda tentukan saat membuatnya, dimulai sejak saat informasi tersebut dibuat.

**penting**  
URL memberikan akses ke AWS sumber daya Anda melalui Konsol Manajemen AWS jika Anda telah mengaktifkan izin di kredenial keamanan sementara terkait. Karena alasan ini, Anda harus memperlakukan URL sebagai rahasia. Kami menyarankan mengembalikan URL melalui pengalihan aman, misalnya, dengan menggunakan kode status respons HTTP 302 melalui koneksi SSL. Untuk informasi lebih lanjut tentang kode status respons HTTP 302, kunjungi [RFC 2616, bagian 10.3.3](https://datatracker.ietf.org/doc/html/rfc2616#section-10.3.3).

Untuk menyelesaikan tugas-tugas ini, Anda dapat menggunakan [HTTPS Query API for AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/APIReference/) dan [AWS Security Token Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/). Atau, Anda dapat menggunakan bahasa pemrograman, seperti Java, Ruby, atau C\$1, bersama dengan [SDK AWS](https://aws.amazon.com/tools/) yang sesuai. Masing-masing metode ini dijelaskan dalam topik-topik berikut.

**Topics**
+ [Contoh kode menggunakan operasi API kueri IAM](#STSConsoleLink_manual)
+ [Contoh kode menggunakan Python](#STSConsoleLink_programPython)
+ [Contoh kode menggunakan Java](#STSConsoleLink_programJava)
+ [Contoh menunjukkan cara membangun URL (Ruby)](#STSConsoleLink_programRuby)

## Contoh kode menggunakan operasi API kueri IAM
<a name="STSConsoleLink_manual"></a>

Anda dapat membuat URL yang memberikan peran dan kepala sekolah federasi akses langsung ke file. Konsol Manajemen AWS Tugas ini menggunakan IAM dan AWS STS HTTPS Query API. Untuk informasi selengkapnya tentang membuat permintaan pertanyaan, lihat [Membuat Permintaan Kueri](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html).

**catatan**  
Prosedur berikut berisi contoh string teks. Untuk meningkatkan keterbacaan, jeda baris telah ditambahkan ke beberapa contoh yang lebih panjang. Saat Anda membuat string ini untuk Anda gunakan sendiri, Anda harus mengurangi setiap pecahan baris.

**Untuk memberikan peran dan kepala sekolah federasi akses ke sumber daya Anda dari Konsol Manajemen AWS**

1. Autentikasi pengguna di sistem identitas dan otorisasi Anda.

1. Dapatkan kredensial keamanan sementara untuk pengguna. Kredensi sementara terdiri dari ID kunci akses, kunci akses rahasia, dan token sesi. Untuk informasi lebih lanjut tentang membuat kredensial sementara, lihat [Kredensial keamanan sementara di IAM](id_credentials_temp.md).

   Untuk mendapatkan kredensi sementara, Anda memanggil AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API (disarankan) atau API. [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) Untuk informasi selengkapnya tentang perbedaan antara operasi API ini, lihat [Memahami Opsi API untuk Mendelegasikan Akses ke AWS Akun Anda dengan](https://aws.amazon.com/blogs/security/understanding-the-api-options-for-securely-delegating-access-to-your-aws-account) Aman di Blog AWS Keamanan.
**penting**  
Saat Anda menggunakan API [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) untuk membuat kredensial keamanan sementara, Anda harus menentukan izin yang diberikan kredensial tersebut kepada pengguna yang memegang peran tersebut. Untuk setiap operasi API yang dimulai dengan `AssumeRole*`, Anda menggunakan peran IAM untuk menetapkan izin. Untuk operasi API lainnya, mekanisme bervariasi dengan API. Untuk lebih detailnya, lihat [Izin untuk kredensial keamanan sementara](id_credentials_temp_control-access.md). Sebagai tambahan, jika Anda menggunakan operasi API `AssumeRole*`, Anda harus menyebutnya sebagai pengguna IAM dengan kredensial jangka panjang. Jika tidak, panggilan ke titik akhir federasi pada langkah 3 gagal.  


1. Setelah Anda mendapatkan kredensial keamanan sementara, masukkan ke dalam rangkaian sesi JSON untuk menukarnya dengan token masuk. Contoh berikut menunjukkan cara mengkode kredensial. Anda mengganti teks placeholder dengan nilai yang sesuai dari kredensial yang Anda terima di langkah sebelumnya.

   ```
   {"sessionId":"*** temporary access key ID ***",
   "sessionKey":"*** temporary secret access key ***",
   "sessionToken":"*** session token ***"}
   ```

1. [URL dikode](https://en.wikipedia.org/wiki/Percent-encoding) string sesi dari langkah sebelumnya. Karena informasi yang Anda encoding itu sensitif, kami menganjurkan agar Anda menghindari penggunaan layanan web untuk encoding ini. Alih-alih, gunakan fungsi atau fitur yang dipasang secara lokal di perangkat pengembangan Anda untuk mengenkode informasi ini dengan aman. Anda dapat menggunakan fungsi `urllib.quote_plus` di Python, fungsi `URLEncoder.encode` di Java, atau fungsi `CGI.escape` di Ruby. Lihat contoh-contoh ini nanti dalam topik ini.

1. <a name="STSConsoleLink_manual_step5"></a>
**catatan**  
AWS mendukung permintaan POST di sini.

   Kirim permintaan Anda ke titik akhir AWS federasi:

   `https://region-code.signin.aws.amazon.com/federation` 

   Untuk daftar *region-code* nilai yang mungkin, lihat kolom **Wilayah** di titik [akhir AWS Masuk](https://docs.aws.amazon.com/general/latest/gr/signin-service.html). Anda dapat secara opsional menggunakan titik akhir federasi AWS Masuk default:

   `https://signin.aws.amazon.com/federation` 

   Permintaan tersebut harus menyertakan parameter `Action` dan `Session`, dan (secara opsional) jika Anda menggunakan operasi API [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html), sebuah parameter HTTP `SessionDuration` seperti ditunjukkan dalam contoh berikut.

   ```
   Action = getSigninToken
   SessionDuration = time in seconds
   Session = *** the URL encoded JSON string created in steps 3 & 4 ***
   ```
**catatan**  
Petunjuk berikut dalam langkah ini hanya berfungsi menggunakan permintaan GET.

   Parameter HTTP `SessionDuration` ini menentukan durasi sesi konsol federasi. Ini terpisah dari durasi kredensial sementara yang Anda tentukan menggunakan parameter `DurationSeconds`. Anda dapat menentukan nilai maksimal `SessionDuration` adalah 43.200 (12 jam). Jika `SessionDuration` parameter tidak ada, maka sesi default ke durasi kredensional yang Anda ambil dari AWS STS langkah 2 (yang defaultnya satu jam). Lihat dokumentasi [ untuk `AssumeRole` API](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) untuk detail tentang cara menentukan durasi menggunakan parameter `DurationSeconds`. Kemampuan untuk membuat sesi konsol yang lebih lama dari satu jam bersifat intrinsik bagi `getSigninToken` operasi titik akhir federasi.
**catatan**  
Anda `SessionDuration` tidak boleh lebih besar dari atau sama dengan pengaturan durasi sesi maksimum untuk peran yang Anda asumsikan. Misalnya, Anda menetapkan durasi sesi maksimum untuk peran yang ingin Anda asumsikan menjadi 5 jam. `SessionDuration`Parameter Anda bisa 16524 detik atau 4 jam 59 detik.
Jangan gunakan parameter `SessionDuration` HTTP ketika Anda mendapatkan kredensi sementara dengan. `GetFederationToken` Operasi akan gagal.
Menggunakan kredensi untuk satu peran untuk mengambil peran yang berbeda disebut rantai [*peran*](id_roles.md#iam-term-role-chaining). Saat Anda menggunakan rantai peran, kredensial baru Anda dibatasi hingga durasi maksimum satu jam. Saat Anda menggunakan peran untuk [memberikan izin ke aplikasi yang berjalan pada instans EC2](id_roles_use_switch-role-ec2.md), aplikasi tersebut tidak terkena batasan ini.
Jangan gunakan parameter `SessionDuration` HTTP saat Anda mendapatkan kredensi sementara melalui rantai peran. Operasi akan gagal.

   Saat Anda mengaktifkan sesi konsol dengan durasi yang diperpanjang, Anda meningkatkan risiko eksposur kredensial. Untuk membantu Anda mengurangi risiko ini, Anda dapat segera menonaktifkan sesi konsol aktif untuk peran apa pun dengan memilih **Mencabut Sesi** pada **Ringkasan Peran** IAM halaman konsol. Untuk informasi selengkapnya, lihat [Mencabut kredensi keamanan sementara peran IAM](id_roles_use_revoke-sessions.md). 

    Berikut ini adalah contoh seperti apa permintaan Anda. Garis dibungkus di sini agar mudah dibaca, tetapi Anda harus mengirimkannya sebagai string satu baris.

   ```
   https://signin.aws.amazon.com/federation
   ?Action=getSigninToken
   &SessionDuration=1800
   &Session=%7B%22sessionId%22%3A+%22ASIAJUMHIZPTOKTBMK5A%22%2C+%22sessionKey%22
   %3A+%22LSD7LWI%2FL%2FN%2BgYpan5QFz0XUpc8s7HYjRsgcsrsm%22%2C+%22sessionToken%2
   2%3A+%22FQoDYXdzEBQaDLbj3VWv2u50NN%2F3yyLSASwYtWhPnGPMNmzZFfZsL0Qd3vtYHw5A5dW
   AjOsrkdPkghomIe3mJip5%2F0djDBbo7SmO%2FENDEiCdpsQKodTpleKA8xQq0CwFg6a69xdEBQT8
   FipATnLbKoyS4b%2FebhnsTUjZZQWp0wXXqFF7gSm%2FMe2tXe0jzsdP0O12obez9lijPSdF1k2b5
   PfGhiuyAR9aD5%2BubM0pY86fKex1qsytjvyTbZ9nXe6DvxVDcnCOhOGETJ7XFkSFdH0v%2FYR25C
   UAhJ3nXIkIbG7Ucv9cOEpCf%2Fg23ijRgILIBQ%3D%3D%22%7D
   ```

   Respons dari titik akhir federasi adalah dokumen JSON dengan nilai `SigninToken`. Ini akan terlihat serupa dengan contoh berikut.

   ```
   {"SigninToken":"*** the SigninToken string ***"}
   ```

1. 
**catatan**  
AWS mendukung permintaan POST di sini.

   Terakhir, buat URL yang dapat digunakan pengguna Anda untuk mengakses file Konsol Manajemen AWS. URL adalah titik akhir URL federasi yang sama yang Anda gunakan di [Step 5](#STSConsoleLink_manual_step5), ditambah parameter berikut:

   ```
   ?Action = login
   &Issuer = *** the form-urlencoded URL for your internal sign-in page ***
   &Destination = *** the form-urlencoded URL to the desired AWS console page ***
   &SigninToken = *** the value of SigninToken received in the previous step ***
   ```
**catatan**  
Petunjuk berikut dalam langkah ini hanya berfungsi menggunakan GET API.

   Contoh berikut menunjukkan seperti apa URL akhir itu. URL valid selama 15 menit sejak dibuat. Kredensial keamanan sementara dan sesi konsol yang disematkan dalam URL valid selama durasi yang Anda tentukan di parameter HTTP `SessionDuration` saat Anda memintanya untuk pertama kali. 

   ```
   https://signin.aws.amazon.com/federation
   ?Action=login
   &Issuer=https%3A%2F%2Fexample.com
   &Destination=https%3A%2F%2Fconsole.aws.amazon.com%2F
   &SigninToken=VCQgs5qZZt3Q6fn8Tr5EXAMPLEmLnwB7JjUc-SHwnUUWabcRdnWsi4DBn-dvC
   CZ85wrD0nmldUcZEXAMPLE-vXYH4Q__mleuF_W2BE5HYexbe9y4Of-kje53SsjNNecATfjIzpW1
   WibbnH6YcYRiBoffZBGExbEXAMPLE5aiKX4THWjQKC6gg6alHu6JFrnOJoK3dtP6I9a6hi6yPgm
   iOkPZMmNGmhsvVxetKzr8mx3pxhHbMEXAMPLETv1pij0rok3IyCR2YVcIjqwfWv32HU2Xlj471u
   3fU6uOfUComeKiqTGX974xzJOZbdmX_t_lLrhEXAMPLEDDIisSnyHGw2xaZZqudm4mo2uTDk9Pv
   9l5K0ZCqIgEXAMPLEcA6tgLPykEWGUyH6BdSC6166n4M4JkXIQgac7_7821YqixsNxZ6rsrpzwf
   nQoS14O7R0eJCCJ684EXAMPLEZRdBNnuLbUYpz2Iw3vIN0tQgOujwnwydPscM9F7foaEK3jwMkg
   Apeb1-6L_OB12MZhuFxx55555EXAMPLEhyETEd4ZulKPdXHkgl6T9ZkIlHz2Uy1RUTUhhUxNtSQ
   nWc5xkbBoEcXqpoSIeK7yhje9Vzhd61AEXAMPLElbWeouACEMG6-Vd3dAgFYd6i5FYoyFrZLWvm
   0LSG7RyYKeYN5VIzUk3YWQpyjP0RiT5KUrsUi-NEXAMPLExMOMdoODBEgKQsk-iu2ozh6r8bxwC
   RNhujg
   ```

## Contoh kode menggunakan Python
<a name="STSConsoleLink_programPython"></a>

Contoh berikut menunjukkan bagaimana menggunakan Python untuk secara terprogram membangun URL yang memberikan pengguna akses langsung ke URL. Konsol Manajemen AWS Berikut ini adalah dua contoh:
+ Federasi melalui GET permintaan ke AWS
+ Federasi melalui permintaan POST untuk AWS

Kedua contoh menggunakan [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API [AWS SDK untuk Python (Boto3)](https://aws.amazon.com/tools/)dan untuk mendapatkan kredenal keamanan sementara.

Jangan sertakan `SessionDuration` jika `AssumeRoleSession` kredensional Anda berasal dari rantai peran. Jika Anda memasukkan`SessionDuration`, operasi akan gagal.

### Gunakan Permintaan GET
<a name="post-api-py-example"></a>

```
import urllib, json, sys
import requests # 'pip install requests'
import boto3 # AWS SDK for Python (Boto3) 'pip install boto3'

# Step 1: Authenticate user in your own identity system.

# Step 2: Using the access keys for an IAM user in your Akun AWS,
# call "AssumeRole" to get temporary access keys for the role or federated principal

# Note: Calls to AWS STS AssumeRole must be signed using the access key ID 
# and secret access key of an IAM user or using existing temporary credentials.
# The credentials can be in Amazon EC2 instance metadata, in environment variables, 
# or in a configuration file, and will be discovered automatically by the 
# client('sts') function. For more information, see the Python SDK docs:
# http://boto3.readthedocs.io/en/latest/reference/services/sts.html
# http://boto3.readthedocs.io/en/latest/reference/services/sts.html#STS.Client.assume_role
sts_connection = boto3.client('sts')

assumed_role_object = sts_connection.assume_role(
    RoleArn="arn:aws:iam::account-id:role/ROLE-NAME",
    RoleSessionName="AssumeRoleSession",
)

# Step 3: Format resulting temporary credentials into JSON
url_credentials = {}
url_credentials['sessionId'] = assumed_role_object.get('Credentials').get('AccessKeyId')
url_credentials['sessionKey'] = assumed_role_object.get('Credentials').get('SecretAccessKey')
url_credentials['sessionToken'] = assumed_role_object.get('Credentials').get('SessionToken')
json_string_with_temp_credentials = json.dumps(url_credentials)

# Step 4. Make request to AWS federation endpoint to get sign-in token. Construct the parameter string with
# the sign-in action request, a 12-hour session duration, and the JSON document with temporary credentials 
# as parameters.
request_parameters = "?Action=getSigninToken"
request_parameters += "&SessionDuration=43200"
if sys.version_info[0] < 3:
    def quote_plus_function(s):
        return urllib.quote_plus(s)
else:
    def quote_plus_function(s):
        return urllib.parse.quote_plus(s)
request_parameters += "&Session=" + quote_plus_function(json_string_with_temp_credentials)
request_url = "https://signin.aws.amazon.com/federation" + request_parameters
r = requests.get(request_url)
# Returns a JSON document with a single element named SigninToken.
signin_token = json.loads(r.text)

# Step 5: Create URL where users can use the sign-in token to sign in to 
# the console. This URL must be used within 15 minutes after the
# sign-in token was issued.
request_parameters = "?Action=login" 
request_parameters += "&Issuer=Example.org" 
request_parameters += "&Destination=" + quote_plus_function("https://console.aws.amazon.com/")
request_parameters += "&SigninToken=" + signin_token["SigninToken"]
request_url = "https://signin.aws.amazon.com/federation" + request_parameters

# Send final URL to stdout
print (request_url)
```

### Gunakan Permintaan POST
<a name="get-api-py-example-1"></a>

```
import urllib, json, sys
import requests # 'pip install requests'
import boto3 # AWS SDK for Python (Boto3) 'pip install boto3'
import os
from selenium import webdriver # 'pip install selenium', 'brew install chromedriver'

# Step 1: Authenticate user in your own identity system.

# Step 2: Using the access keys for an IAM user in your A Akun AWS,
# call "AssumeRole" to get temporary access keys for the role or federated principal

# Note: Calls to AWS STS AssumeRole must be signed using the access key ID 
# and secret access key of an IAM user or using existing temporary credentials.
# The credentials can be in Amazon EC2 instance metadata, in environment variables, 

# or in a configuration file, and will be discovered automatically by the 
# client('sts') function. For more information, see the Python SDK docs:
# http://boto3.readthedocs.io/en/latest/reference/services/sts.html
# http://boto3.readthedocs.io/en/latest/reference/services/sts.html#STS.Client.assume_role
if sys.version_info[0] < 3:
    def quote_plus_function(s):
        return urllib.quote_plus(s)
else:
    def quote_plus_function(s):
        return urllib.parse.quote_plus(s)

sts_connection = boto3.client('sts')

assumed_role_object = sts_connection.assume_role(
    RoleArn="arn:aws:iam::account-id:role/ROLE-NAME",
    RoleSessionName="AssumeRoleDemoSession",
)

# Step 3: Format resulting temporary credentials into JSON
url_credentials = {}
url_credentials['sessionId'] = assumed_role_object.get('Credentials').get('AccessKeyId')
url_credentials['sessionKey'] = assumed_role_object.get('Credentials').get('SecretAccessKey')
url_credentials['sessionToken'] = assumed_role_object.get('Credentials').get('SessionToken')
json_string_with_temp_credentials = json.dumps(url_credentials)

# Step 4. Make request to AWS federation endpoint to get sign-in token. Construct the parameter string with
# the sign-in action request, a 12-hour session duration, and the JSON document with temporary credentials 
# as parameters.
request_parameters = {}
request_parameters['Action'] = 'getSigninToken'
request_parameters['SessionDuration'] = '43200'
request_parameters['Session'] = json_string_with_temp_credentials

request_url = "https://signin.aws.amazon.com/federation"
r = requests.post( request_url, data=request_parameters)

# Returns a JSON document with a single element named SigninToken.
signin_token = json.loads(r.text)

# Step 5: Create a POST request where users can use the sign-in token to sign in to 
# the console. The POST request must be made within 15 minutes after the
# sign-in token was issued.
request_parameters = {}
request_parameters['Action'] = 'login'
request_parameters['Issuer']='Example.org'
request_parameters['Destination'] = 'https://console.aws.amazon.com/'
request_parameters['SigninToken'] =signin_token['SigninToken']

jsrequest = '''
var form = document.createElement('form');
form.method = 'POST';
form.action = '{request_url}';
request_parameters = {request_parameters}
for (var param in request_parameters) {{
    if (request_parameters.hasOwnProperty(param)) {{
        const hiddenField = document.createElement('input');
        hiddenField.type = 'hidden';
        hiddenField.name = param;
        hiddenField.value = request_parameters[param];
        form.appendChild(hiddenField);
    }}
}}
document.body.appendChild(form);
form.submit();
'''.format(request_url=request_url, request_parameters=request_parameters)

driver = webdriver.Chrome()
driver.execute_script(jsrequest)
input("Press Enter to close the browser window...")
```

## Contoh kode menggunakan Java
<a name="STSConsoleLink_programJava"></a>

Contoh berikut menunjukkan bagaimana menggunakan Java untuk secara terprogram membangun URL yang memberikan pengguna akses langsung ke. Konsol Manajemen AWS Ptongan kode berikut menggunakan [SDK for Java AWS](https://aws.amazon.com/documentation/sdkforjava/).

```
import java.net.URLEncoder;
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
// Available at http://www.json.org/java/index.html
import org.json.JSONObject;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient;
import com.amazonaws.services.securitytoken.model.Credentials;
import com.amazonaws.services.securitytoken.model.GetFederationTokenRequest;
import com.amazonaws.services.securitytoken.model.GetFederationTokenResult;


/* Calls to AWS STS API operations must be signed using the access key ID 
   and secret access key of an IAM user or using existing temporary 
   credentials. The credentials should not be embedded in code. For 
   this example, the code looks for the credentials in a 
   standard configuration file.
*/
AWSCredentials credentials = 
  new PropertiesCredentials(
         AwsConsoleApp.class.getResourceAsStream("AwsCredentials.properties"));

AWSSecurityTokenServiceClient stsClient = 
  new AWSSecurityTokenServiceClient(credentials);

GetFederationTokenRequest getFederationTokenRequest = 
  new GetFederationTokenRequest();
getFederationTokenRequest.setDurationSeconds(1800);
getFederationTokenRequest.setName("UserName");

// A sample policy for accessing Amazon Simple Notification Service (Amazon SNS) in the console.

String policy = "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Action\":\"sns:*\"," +
  "\"Effect\":\"Allow\",\"Resource\":\"*\"}]}";

getFederationTokenRequest.setPolicy(policy);

GetFederationTokenResult federationTokenResult = 
  stsClient.getFederationToken(getFederationTokenRequest);

Credentials federatedCredentials = federationTokenResult.getCredentials();

// The issuer parameter specifies your internal sign-in
// page, for example https://mysignin.internal.mycompany.com/.
// The console parameter specifies the URL to the destination console of the
// AWS Management Console. This example goes to Amazon SNS. 
// The signin parameter is the URL to send the request to.

String issuerURL = "https://mysignin.internal.mycompany.com/";
String consoleURL = "https://console.aws.amazon.com/sns";
String signInURL = "https://signin.aws.amazon.com/federation";
  
// Create the sign-in token using temporary credentials,
// including the access key ID,  secret access key, and session token.
String sessionJson = String.format(
  "{\"%1$s\":\"%2$s\",\"%3$s\":\"%4$s\",\"%5$s\":\"%6$s\"}",
  "sessionId", federatedCredentials.getAccessKeyId(),
  "sessionKey", federatedCredentials.getSecretAccessKey(),
  "sessionToken", federatedCredentials.getSessionToken());
              
// Construct the sign-in request with the request sign-in token action, a
// 12-hour console session duration, and the JSON document with temporary 
// credentials as parameters.

String getSigninTokenURL = signInURL + 
                           "?Action=getSigninToken" +
                           "&DurationSeconds=43200" + 
                           "&SessionType=json&Session=" + 
                           URLEncoder.encode(sessionJson,"UTF-8");

URL url = new URL(getSigninTokenURL);

// Send the request to the AWS federation endpoint to get the sign-in token
URLConnection conn = url.openConnection ();

BufferedReader bufferReader = new BufferedReader(new 
  InputStreamReader(conn.getInputStream()));  
String returnContent = bufferReader.readLine();

String signinToken = new JSONObject(returnContent).getString("SigninToken");

String signinTokenParameter = "&SigninToken=" + URLEncoder.encode(signinToken,"UTF-8");

// The issuer parameter is optional, but recommended. Use it to direct users
// to your sign-in page when their session expires.

String issuerParameter = "&Issuer=" + URLEncoder.encode(issuerURL, "UTF-8");

// Finally, present the completed URL for the AWS console session to the user

String destinationParameter = "&Destination=" + URLEncoder.encode(consoleURL,"UTF-8");
String loginURL = signInURL + "?Action=login" +
                     signinTokenParameter + issuerParameter + destinationParameter;
```

## Contoh menunjukkan cara membangun URL (Ruby)
<a name="STSConsoleLink_programRuby"></a>

Contoh berikut menunjukkan bagaimana menggunakan Ruby untuk secara terprogram membangun URL yang memberikan pengguna akses langsung ke. Konsol Manajemen AWS Potongan kode ini menggunakan [SDK for Ruby AWS](https://aws.amazon.com/documentation/sdkforruby/). 

```
require 'rubygems'
require 'json'
require 'open-uri'
require 'cgi'
require 'aws-sdk'

# Create a new STS instance
# 
# Note: Calls to AWS STS API operations must be signed using an access key ID 
# and secret access key. The credentials can be in EC2 instance metadata 
# or in environment variables and will be automatically discovered by
# the default credentials provider in the AWS Ruby SDK. 
sts = Aws::STS::Client.new()

# The following call creates a temporary session that returns 
# temporary security credentials and a session token.
# The policy grants permissions to work
# in the AWS SNS console.

session = sts.get_federation_token({
  duration_seconds: 1800,
  name: "UserName",
  policy: "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":{\"Effect\":\"Allow\",\"Action\":\"sns:*\",\"Resource\":\"*\"}}",
})

# The issuer value is the URL where users are directed (such as
# to your internal sign-in page) when their session expires.
#
# The console value specifies the URL to the destination console.
# This example goes to the Amazon SNS console.
#
# The sign-in value is the URL of the AWS STS federation endpoint.
issuer_url = "https://mysignin.internal.mycompany.com/"
console_url = "https://console.aws.amazon.com/sns"
signin_url = "https://signin.aws.amazon.com/federation"

# Create a block of JSON that contains the temporary credentials
# (including the access key ID, secret access key, and session token).
session_json = {
  :sessionId => session.credentials[:access_key_id],
  :sessionKey => session.credentials[:secret_access_key],
  :sessionToken => session.credentials[:session_token]
}.to_json

# Call the federation endpoint, passing the parameters
# created earlier and the session information as a JSON block. 
# The request returns a sign-in token that's valid for 15 minutes.
# Signing in to the console with the token creates a session 
# that is valid for 12 hours.
get_signin_token_url = signin_url + 
                       "?Action=getSigninToken" + 
                       "&SessionType=json&Session=" + 
                       CGI.escape(session_json)

returned_content = URI.parse(get_signin_token_url).read

# Extract the sign-in token from the information returned
# by the federation endpoint.
signin_token = JSON.parse(returned_content)['SigninToken']
signin_token_param = "&SigninToken=" + CGI.escape(signin_token)

# Create the URL to give to the user, which includes the
# sign-in token and the URL of the console to open.
# The "issuer" parameter is optional but recommended.
issuer_param = "&Issuer=" + CGI.escape(issuer_url)
destination_param = "&Destination=" + CGI.escape(console_url)
login_url = signin_url + "?Action=login" + signin_token_param + 
  issuer_param + destination_param
```

# Tag untuk AWS Identity and Access Management sumber daya
<a name="id_tags"></a>

*Tanda* adalah label atribut khusus yang dapat Anda tetapkan ke sumber daya AWS . Setiap tag memiliki dua bagian:
+ Sebuah *kunci tag* (misalnya, `CostCenter`, `Environment`, `Project`, atau `Purpose`).
+ Bidang opsional yang dikenal sebagai *nilai tag* (misalnya, `111122223333`, `Production`, atau nama tim). Mengabaikan nilai tag sama dengan menggunakan rangkaian kosong.

Bersama-sama ini dikenal sebagai pasangan nilai-kunci. Untuk batasan jumlah tag yang dapat Anda miliki pada sumber daya IAM, lihat[IAM dan AWS STS kuota](reference_iam-quotas.md).

**catatan**  
Untuk detail tentang sensitivitas huruf besar untuk kunci tag dan nilai kunci tag, lihat[Case sensitivity](#case-sensitivity).

Tag membantu Anda mengidentifikasi dan mengatur AWS sumber daya Anda. Banyak AWS layanan mendukung penandaan, sehingga Anda dapat menetapkan tag yang sama ke sumber daya dari layanan yang berbeda untuk menunjukkan bahwa sumber daya terkait. Misalnya, Anda dapat menetapkan tag yang sama ke peran IAM yang ditetapkan ke bucket Amazon S3. Untuk informasi selengkapnya tentang strategi penandaan, lihat *Panduan Pengguna [AWS sumber daya Penandaan](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)*.

Selain mengidentifikasi, mengatur, dan melacak sumber daya IAM Anda dengan tag, Anda dapat menggunakan tag dalam kebijakan IAM untuk membantu mengontrol siapa yang dapat melihat dan berinteraksi dengan sumber daya Anda. Untuk mempelajari selengkapnya tentang penggunaan tanda untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

Anda juga dapat menggunakan tag AWS STS untuk menambahkan atribut kustom saat Anda mengambil peran atau menyatukan pengguna. Untuk informasi selengkapnya, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

**Topics**
+ [Pilih konvensi penamaan AWS tag](#id_tags_naming)
+ [Aturan untuk menandai di IAM dan AWS STS](#id_tags_rules)
+ [Tag pengguna IAM](id_tags_users.md)
+ [Tag peran IAM](id_tags_roles.md)
+ [Tandai kebijakan yang dikelola pelanggan](id_tags_customer-managed-policies.md)
+ [Tandai penyedia identitas OpenID Connect (OIDC)](id_tags_oidc.md)
+ [Menandai penyedia identitas SALL IAM](id_tags_saml.md)
+ [Menandai profil instans untuk peran Amazon EC2](id_tags_instance-profiles.md)
+ [Tandai sertifikat server](id_tags_server-certificates.md)
+ [Tandai perangkat MFA virtual](id_tags_virtual-mfa.md)
+ [Lulus tag sesi di AWS STS](id_session-tags.md)

## Pilih konvensi penamaan AWS tag
<a name="id_tags_naming"></a>

Saat Anda mulai melampirkan tag ke sumber daya IAM Anda, pilih konvensi penamaan tag Anda dengan hati-hati. Terapkan konvensi yang sama untuk semua AWS tag Anda. Ini sangat penting jika Anda menggunakan tag dalam kebijakan untuk mengontrol akses ke AWS sumber daya. Jika Anda sudah menggunakan tag di AWS, tinjau konvensi penamaan Anda dan sesuaikan sesuai kebutuhan.

**catatan**  
Jika akun Anda adalah anggota AWS Organizations, lihat [Kebijakan tag](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html) di panduan AWS Organizations pengguna untuk mempelajari selengkapnya tentang penggunaan tag di AWS Organizations.

### Praktik terbaik untuk penamaan tag
<a name="id_tags_naming_best_practices"></a>

Ini adalah beberapa praktik terbaik dan konvensi penamaan untuk tag.

Pastikan bahwa nama tag digunakan secara konsisten. Misalnya, tag `CostCenter` dan `costcenter` berbeda, jadi satu mungkin dikonfigurasi sebagai tag alokasi biaya untuk analisis keuangan dan pelaporan dan yang lainnya mungkin tidak. Demikian pula, `Name` tag muncul di AWS Konsol untuk banyak sumber daya, tetapi `name` tag tidak. Untuk detail tentang sensitivitas huruf besar untuk kunci tag dan nilai kunci tag, lihat[Case sensitivity](#case-sensitivity).

Sejumlah tag telah ditentukan sebelumnya oleh AWS atau dibuat secara otomatis oleh berbagai AWS layanan. Banyak nama tag AWS yang ditentukan menggunakan semua huruf kecil, dengan tanda hubung yang memisahkan kata dalam nama, dan awalan untuk mengidentifikasi layanan sumber untuk tag tersebut. Contoh: 
+ `aws:ec2spot:fleet-request-id`mengidentifikasi Permintaan Instans EC2 Spot Amazon yang meluncurkan instance.
+ `aws:cloudformation:stack-name`mengidentifikasi CloudFormation tumpukan yang menciptakan sumber daya. 
+ `elasticbeanstalk:environment-name`mengidentifikasi aplikasi yang menciptakan sumber daya.

Pertimbangkan untuk memberi nama tag Anda menggunakan semua huruf kecil, dengan tanda hubung yang memisahkan kata, dan awalan yang mengidentifikasi nama organisasi atau nama yang disingkat. Misalnya, untuk perusahaan fiktif bernama *AnyCompany*, Anda dapat menentukan tag seperti:
+ `anycompany:cost-center`untuk mengidentifikasi kode Pusat Biaya internal 
+ `anycompany:environment-type`untuk mengidentifikasi apakah lingkungan adalah pengembangan, pengujian, atau produksi
+ `anycompany:application-id`untuk mengidentifikasi aplikasi sumber daya diciptakan untuk 

Awalan memastikan bahwa tag diidentifikasi dengan jelas sebagai telah ditentukan oleh organisasi Anda dan bukan oleh AWS atau alat pihak ketiga yang mungkin Anda gunakan. Menggunakan semua huruf kecil dengan tanda hubung untuk pemisah menghindari kebingungan tentang cara menggunakan huruf besar pada nama tag. Misalnya, `anycompany:project-id` lebih mudah diingat daripada`ANYCOMPANY:ProjectID`,`anycompany:projectID`, atau`Anycompany:ProjectId`.

## Aturan untuk menandai di IAM dan AWS STS
<a name="id_tags_rules"></a>

Sejumlah konvensi mengatur pembuatan dan penerapan tag di IAM dan. AWS STS

### Penamaan tag
<a name="id_tags_rules_creating"></a>

Perhatikan konvensi berikut saat merumuskan konvensi penamaan tag untuk sumber daya IAM, sesi AWS STS peran asumsi, dan sesi pengguna gabungan: AWS STS 

**Persyaratan karakter** — Kunci dan nilai tag dapat mencakup kombinasi huruf, angka, spasi, dan \$1.:/= \$1 - @ simbol.

**Sensitivitas kasus** — Sensitivitas kasus untuk kunci tag berbeda tergantung pada jenis sumber daya IAM yang diberi tag. Nilai kunci tag untuk pengguna dan peran IAM tidak peka huruf besar/kecil, tetapi kasus dipertahankan. Ini berarti Anda tidak dapat memisahkan kunci tag **Department** dan **department**. Jika Anda sudah memberi tag ke pengguna dengan tag **Department=finance** dan Anda menambahkan tag **department=hr**, itu menggantikan tag pertama. Tag kedua tidak ditambahkan.

Untuk jenis sumber daya IAM lainnya, nilai kunci tag peka huruf besar/kecil. Ini berarti Anda dapat memisahkan kunci tanda **Costcenter** dan **costcenter**. Sebagai contoh, jika Anda telah menandai kebijakan yang dikelola pelanggan dengan tanda **Costcenter = 1234** dan Anda menambahkan tanda **costcenter = 5678**, kebijakan akan memiliki kunci tanda **Costcenter** dan **costcenter**.

Sebagai praktik terbaik, kami menyarankan agar Anda menghindari penggunaan tanda yang serupa dengan perlakuan huruf besar kecil yang tidak konsisten. Kami menyarankan Anda memutuskan strategi untuk memanfaatkan tag, dan secara konsisten menerapkan strategi itu di semua jenis sumber daya. Untuk mempelajari lebih lanjut tentang praktik terbaik untuk penandaan, lihat [Menandai AWS Sumber Daya](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) di. Referensi Umum AWS

Daftar berikut menunjukkan perbedaan sensitivitas kasus untuk kunci tag yang dilampirkan ke sumber daya IAM.

Nilai kunci tanda **tidak** peka huruf besar kecil:
+ Peran IAM
+ Pengguna IAM:

Nilai kunci tanda peka huruf besar kecil:
+ Kebijakan yang dikelola pelanggan
+ Profil instans
+ Penyedia identitas OpenID Connect
+ Penyedia identitas SAML
+ Sertifikat server
+ Perangkat MFA virtual

Selain itu, aturan berikut ini berlaku:
+ Anda tidak dapat membuat kunci tanda atau nilai yang dimulai dengan teks **aws:**. Awalan tag ini dicadangkan untuk penggunaan AWS internal.
+ Anda dapat membuat tanda dengan nilai kosong seperti**phoneNumber = **. Anda tidak dapat membuat kunci tanda kosong.
+ Anda tidak dapat menentukan beberapa nilai dalam satu tag, tetapi Anda dapat membuat struktur multinilai khusus dalam satu nilai. Misalnya, anggap bahwa pengguna Zhang bekerja di tim engineer dan tim QA. Jika Anda melampirkan atnda **team = Engineering** lalu melampirkan tanda **team = QA**, Anda mengubah nilai dari tanda dari **Engineering** ke **QA**. Sebaliknya, Anda dapat menyertakan beberapa nilai dalam satu tanda dengan pemisah kustom. Dalam contoh ini, Anda dapat memberikan tag **team = Engineering:QA** ke Zhang.
**catatan**  
Untuk mengontrol akses ke engineer dalam contoh ini menggunakan tanda **team**, Anda harus membuat kebijakan yang memungkinkan setiap konfigurasi yang mungkin mencakup **Engineering**, termasuk **Engineering:QA**. Untuk mem-pelajari selengkapnya tentang penggunaan tanda dalam kebijakan, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

### Menerapkan dan mengubah tag
<a name="id_tags_rules_applying"></a>

Perhatikan konvensi berikut saat melampirkan tag ke sumber daya IAM:
+ Anda dapat menandai sebagian besar sumber daya IAM, tetapi bukan grup, peran yang diasumsikan, laporan akses, atau perangkat MFA berbasis perangkat keras.
+ Anda tidak dapat menggunakan Editor Tag untuk menandai sumber daya IAM. Editor Tag tidak mendukung tag IAM. Untuk informasi tentang penggunaan Editor Tanda dengan layanan lain, lihat [Bekerja dengan Editor Tanda](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html) dalam *Panduan Pengguna AWS Resource Groups *.
+ Untuk menandai sumber daya IAM, Anda harus memiliki izin khusus. Untuk memberi atau menghapus tanda sumber daya, Anda juga harus memiliki izin untuk mencantumkan tanda. Untuk informasi selengkapnya, lihat daftar topik untuk setiap sumber daya IAM di akhir halaman ini. 
+ Jumlah dan ukuran sumber daya IAM dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat [IAM dan AWS STS kuota](reference_iam-quotas.md).
+ Anda dapat menerapkan tag yang sama ke beberapa sumber daya IAM. Misalnya, Anda memiliki departemen bernama `AWS_Development` dengan 12 anggota. Anda bisa memiliki 12 pengguna dan satu peran dengan kunci tag **department** dan nilai **awsDevelopment** (**department = awsDevelopment**). Anda juga dapat menggunakan tag yang sama pada sumber daya di [layanan yang mendukung pemberian tag](reference_aws-services-that-work-with-iam.md).
+ Entitas IAM (pengguna atau peran) tidak dapat memiliki beberapa instance dari kunci tag yang sama. Misalnya, jika Anda memiliki pengguna dengan pasangan nilai kunci tag**costCenter = 1234**, Anda kemudian dapat melampirkan pasangan nilai kunci tag. **costCenter = 5678** IAM memperbarui nilai **costCenter** tag ke**5678**.
+ Untuk mengedit tag yang dilampirkan ke entitas IAM (pengguna atau peran), lampirkan tag dengan nilai baru untuk menimpa tag yang ada. Sebagai contoh, anggap Anda memiliki pengguna dengan pasangan nilai-kunci tanda **department = Engineering**. Jika perlu memindahkan pengguna ke departemen QA, Anda dapat melampirkan pasangan nilai-kunci tanda **department = QA** ke pengguna. Ini menghasilkan nilai **Engineering** dari kunci tag **department** yang digantikan dengan nilai **QA**.

# Tag pengguna IAM
<a name="id_tags_users"></a>

Anda dapat menggunakan pasangan nilai kunci tag IAM untuk menambahkan atribut khusus ke pengguna IAM. Misalnya, untuk menambahkan informasi lokasi ke pengguna, Anda dapat menambahkan kunci tag **location** dan nilai tanda **us\$1wa\$1seattle**. Atau Anda bisa menggunakan tiga pasangan kunci nilai tanda lokasi yang terpisah: **loc-country = us**, **loc-state = wa**, dan **loc-city = seattle**. Anda dapat menggunakan tanda untuk mengontrol akses pengguna ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke pengguna. Untuk mempelajari lebih lanjut tentang penggunaan tag untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

Anda juga dapat menggunakan tag AWS STS untuk menambahkan atribut kustom saat Anda mengambil peran atau menyatukan pengguna. Untuk informasi selengkapnya, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

## Izin diperlukan untuk menandai pengguna IAM
<a name="id_tags_users_permissions"></a>

Anda harus mengonfigurasi izin untuk memungkinkan pengguna IAM menandai pengguna lain. Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListUserTags`
+ `iam:TagUser`
+ `iam:UntagUser`

**Untuk memungkinkan pengguna IAM menambahkan, membuat daftar, atau menghapus tag untuk pengguna tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk pengguna IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<username>* dengan nama pengguna yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListUserTags",
        "iam:TagUser",
        "iam:UntagUser"
    ],
    "Resource": "arn:aws:iam::<account-number>:user/<username>"
}
```

**Untuk mengizinkan pengguna IAM untuk mengelola tag sendiri**  
Tambahkan pernyataan berikut ini ke kebijakan izin untuk pengguna agar pengguna dapat mengelola tag mereka sendiri. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListUserTags",
        "iam:TagUser",
        "iam:UntagUser"
    ],
    "Resource": "arn:aws:iam::user/${aws:username}"
}
```

**Untuk memungkinkan pengguna IAM menambahkan tag ke pengguna tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk pengguna IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk pengguna tertentu.

**catatan**  
Tindakan `iam:TagUser` mengharuskan Anda untuk juga menyertakan tindakan `iam:ListUserTags`

Untuk menggunakan kebijakan ini, ganti *<username>* dengan nama pengguna yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListUserTags",
        "iam:TagUser"
    ],
    "Resource": "arn:aws:iam::<account-number>:user/<username>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada pengguna IAM (konsol)
<a name="id_tags_users_procs-console"></a>

Anda dapat mengelola tag untuk pengguna IAM dari file. Konsol Manajemen AWS

**Untuk mengelola tanda pada pengguna (konsol)**

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, pilih **Peran** lalu pilih nama pengguna yang ingin Anda edit.

1. Pilih **Tag** kemudian selesaikan salah satu tindakan berikut:
   + Pilih **Tambahkan tag baru** jika pengguna belum memiliki tag.
   + Pilih **Kelola tag** untuk mengelola kumpulan tag yang ada.

1. Tambahkan atau hapus tag untuk menyelesaikan rangkaian tag. Lalu pilih **Simpan Perubahan**.

## Mengelola tag pada pengguna IAM (AWS CLI atau AWS API)
<a name="id_tags_users_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tag untuk pengguna IAM. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk pengguna IAM.

**Untuk mencantumkan tag yang saat ini dilampirkan ke pengguna IAM (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam list-user-tags](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-tags.html)
+ AWS API: [ListUserTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserTags.html)

**Untuk melampirkan tag ke pengguna IAM (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam tag-user](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-user.html)
+ AWS API: [TagUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagUser.html)

**Untuk menghapus tag dari pengguna IAM (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam untag-user](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-user.html)
+ AWS API: [UntagUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagUser.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Tag peran IAM
<a name="id_tags_roles"></a>

Anda dapat menggunakan pasangan nilai kunci tag IAM untuk menambahkan atribut khusus ke peran IAM. Misalnya, untuk menambahkan informasi lokasi ke peran, Anda dapat menambahkan kunci tag **location** dan nilai tanda **us\$1wa\$1seattle**. Atau Anda bisa menggunakan tiga pasangan kunci nilai tanda lokasi yang terpisah: **loc-country = us**, **loc-state = wa**, dan **loc-city = seattle**. Anda dapat menggunakan tanda untuk mengontrol akses peran ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke peran. Untuk mempelajari selengkapnya tentang penggunaan tanda untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

Anda juga dapat menggunakan tag AWS STS untuk menambahkan atribut kustom saat Anda mengambil peran atau menyatukan pengguna. Untuk informasi selengkapnya, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

## Izin diperlukan untuk menandai peran IAM
<a name="id_tags_roles_permissions"></a>

Anda harus mengonfigurasi izin untuk mengizinkan peran IAM menandai entitas lain (pengguna atau peran). Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListRoleTags`
+ `iam:TagRole`
+ `iam:UntagRole`
+ `iam:ListUserTags`
+ `iam:TagUser`
+ `iam:UntagUser`

**Untuk mengizinkan peran IAM menambah, mencantumkan, atau menghapus tag untuk pengguna tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk peran IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<username>* dengan nama pengguna yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListUserTags",
        "iam:TagUser",
        "iam:UntagUser"
    ],
    "Resource": "arn:aws:iam::<account-number>:user/<username>"
}
```

**Untuk mengizinkan peran IAM menambahkan tag ke pengguna tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk peran IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk pengguna tertentu.

Untuk menggunakan kebijakan ini, ganti *<username>* dengan nama pengguna yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListUserTags",
        "iam:TagUser"
    ],
    "Resource": "arn:aws:iam::<account-number>:user/<username>"
}
```

**Untuk mengizinkan peran IAM menambah, mencantumkan, atau menghapus tag untuk peran tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk peran IAM yang perlu mengelola tag. Ganti *<rolename>* dengan nama peran yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListRoleTags",
        "iam:TagRole",
        "iam:UntagRole"
    ],
    "Resource": "arn:aws:iam::<account-number>:role/<rolename>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada peran IAM (konsol)
<a name="id_tags_roles_procs-console"></a>

Anda dapat mengelola tag untuk peran IAM dari. Konsol Manajemen AWS

**Untuk mengelola tanda pada peran (konsol)**

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, pilih **Peran** lalu pilih nama peran yang ingin Anda edit.

1. Pilih **Tag** kemudian selesaikan salah satu tindakan berikut:
   + Pilih **Tambahkan tag baru** jika peran belum memiliki tag.
   + Pilih **Kelola tag** untuk mengelola kumpulan tag yang ada.

1. Tambahkan atau hapus tag untuk menyelesaikan rangkaian tag. Kemudian, pilih **Simpan perubahan**.

## Mengelola tag pada peran IAM (AWS CLI atau AWS API)
<a name="id_tags_roles_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tag untuk peran IAM. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk peran IAM.

**Untuk mencantumkan tag yang saat ini dilampirkan ke peran IAM (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam list-role-tags](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-tags.html)
+ AWS API: [ListRoleTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoleTags.html)

**Untuk melampirkan tag ke peran IAM (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam tag-role](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-role.html)
+ AWS API: [TagRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagRole.html)

**Untuk menghapus tag dari peran IAM (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam untag-role](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-role.html)
+ AWS API: [UntagRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagRole.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Tandai kebijakan yang dikelola pelanggan
<a name="id_tags_customer-managed-policies"></a>

Anda dapat menggunakan pasangan nilai kunci tag IAM untuk menambahkan atribut khusus ke kebijakan terkelola pelanggan Anda. Misalnya, untuk menandai kebijakan dengan informasi departemen, Anda dapat menambahkan kunci tanda **Department** dan nilai tanda **eng**. Atau, Anda mungkin ingin menandai kebijakan guna menunjukkan bahwa kebijakan tersebut adalah untuk lingkungan tertentu, seperti **Environment = lab**. Anda dapat menggunakan tanda untuk mengontrol akses ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke identitas. Untuk mempelajari selengkapnya tentang penggunaan tanda untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

Anda juga dapat menggunakan tag AWS STS untuk menambahkan atribut kustom saat Anda mengambil peran atau menyatukan pengguna. Untuk informasi selengkapnya, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

## Izin yang diperlukan untuk menandai kebijakan terkelola pelanggan
<a name="id_tags_customer-managed-policies_permissions"></a>

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (pengguna atau peran) menandai kebijakan yang dikelola pelanggan. Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListPolicyTags`
+ `iam:TagPolicy`
+ `iam:UntagPolicy`

**Untuk mengizinkan entitas IAM (pengguna atau peran) menambah, mencantumkan, atau menghapus tag untuk kebijakan yang dikelola pelanggan**  
Tambahkan pernyataan berikut ini ke kebijakan izin untuk entitas IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<policyname>* dengan nama kebijakan yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListPolicyTags",
        "iam:TagPolicy",
        "iam:UntagPolicy"
    ],
    "Resource": "arn:aws:iam::<account-number>:policy/<policyname>"
}
```

**Untuk mengizinkan entitas IAM (pengguna atau peran) menambahkan tag ke kebijakan terkelola pelanggan tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk kebijakan tertentu. 

**catatan**  
Tindakan `iam:TagPolicy` mengharuskan Anda untuk juga menyertakan tindakan `iam:ListPolicyTags`

Untuk menggunakan kebijakan ini, ganti *<policyname>* dengan nama kebijakan yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListPolicyTags",
        "iam:TagPolicy"
    ],
    "Resource": "arn:aws:iam::<account-number>:policy/<policyname>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada kebijakan terkelola pelanggan IAM (konsol)
<a name="id_tags_customer-managed-policies_procs-console"></a>

Anda dapat mengelola tag untuk kebijakan yang dikelola pelanggan IAM dari. Konsol Manajemen AWS

**Untuk mengelola tanda pada kebijakan terkelola pelanggan (konsol)**

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, pilih **Kebijakan** lalu pilih nama kebijakan terkelola pelanggan yang ingin Anda edit.

1. Pilih tab **Tag** dan kemudian pilih **Kelola tag**.

1. Tambahkan atau hapus tag untuk menyelesaikan rangkaian tag. Lalu pilih **Simpan Perubahan**.

## Mengelola tag pada kebijakan (AWS CLI atau AWS API) yang dikelola pelanggan IAM
<a name="id_tags_customer-managed-policies_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tag untuk kebijakan yang dikelola pelanggan IAM. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk kebijakan yang dikelola pelanggan IAM.

**Untuk mencantumkan tag yang saat ini dilampirkan ke kebijakan (AWS CLI atau AWS API) yang dikelola pelanggan IAM**
+ AWS CLI: [aws iam list-policy-tags](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policy-tags.html)
+ AWS API: [ListPolicyTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicyTags.html)

**Untuk melampirkan tag ke kebijakan (AWS CLI atau AWS API) yang dikelola pelanggan IAM**
+ AWS CLI: [aws iam tag-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-policy.html)
+ AWS API: [TagPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagPolicy.html)

**Untuk menghapus tag dari kebijakan (AWS CLI atau AWS API) yang dikelola pelanggan IAM**
+ AWS CLI: [aws iam untag-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-policy.html)
+ AWS API: [UntagPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagPolicy.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Tandai penyedia identitas OpenID Connect (OIDC)
<a name="id_tags_oidc"></a>

Anda dapat menggunakan nilai kunci tag IAM untuk menambahkan atribut khusus ke penyedia identitas IAM OpenID Connect (OIDC). Misalnya, untuk mengidentifikasi penyedia identitas OIDC, Anda dapat menambahkan kunci tanda **google** dan nilai tanda **oidc**. Anda dapat menggunakan tanda untuk mengontrol akses ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke objek. Untuk mempelajari lebih lanjut tentang penggunaan tag untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

## Izin diperlukan untuk menandai penyedia identitas IAM OIDC
<a name="id_tags_oidc_permissions"></a>

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (pengguna atau peran) menandai penyedia identitas IAM OIDC. Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListOpenIDConnectProviderTags`
+ `iam:TagOpenIDConnectProvider`
+ `iam:UntagOpenIDConnectProvider`

**Untuk mengizinkan entitas IAM menambah, mencantumkan, atau menghapus tag untuk penyedia identitas IAM OIDC**  
Tambahkan pernyataan berikut ini ke kebijakan izin untuk entitas IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<OIDCProviderName>* dengan nama penyedia OIDC yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListOpenIDConnectProviderTags",
        "iam:TagOpenIDConnectProvider",
        "iam:UntagOpenIDConnectProvider"
    ],
    "Resource": "arn:aws:iam::<account-number>:oidc-provider/<OIDCProviderName>"
}
```

**Untuk mengizinkan entitas IAM (pengguna atau peran) menambahkan tag ke penyedia identitas IAM OIDC tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk penyedia identitas tertentu.

**catatan**  
Tindakan `iam:TagOpenIDConnectProvider` mengharuskan Anda untuk juga menyertakan tindakan `iam:ListOpenIDConnectProviderTags`

Untuk menggunakan kebijakan ini, ganti *<OIDCProviderName>* dengan nama penyedia OIDC yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListOpenIDConnectProviderTags",
        "iam:TagOpenIDConnectProvider"
    ],
    "Resource": "arn:aws:iam::<account-number>:oidc-provider/<OIDCProviderName>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada penyedia identitas IAM OIDC (konsol)
<a name="id_tags_oidc_procs-console"></a>

Anda dapat mengelola tag untuk penyedia identitas IAM OIDC dari. Konsol Manajemen AWS

**Untuk mengelola tanda pada penyedia identitas OIDC (konsol)**

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, pilih **Penyedia identitas**, kemudian pilih nama penyedia identitas yang ingin Anda edit.

1. Pilih tab **Tag**, lalu di bagian **Tag**, pilih **Kelola tag** dan kemudian selesaikan salah satu tindakan berikut:
   + Pilih **Tambahkan tanda** jika penyedia identitas OIDC belum memiliki tanda atau untuk menambahkan tanda baru.
   + Mengedit kunci dan nilai tanda yang ada.
   + Untuk menghapus tanda, pilih **Hapus tanda**.

1. Lalu pilih **Simpan Perubahan**.

## Mengelola tag pada penyedia identitas IAM OIDC (AWS CLI atau API) AWS
<a name="id_tags_oidc_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tag untuk penyedia identitas IAM OIDC. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk penyedia identitas IAM OIDC.

**Untuk mencantumkan tag yang saat ini dilampirkan ke penyedia identitas IAM OIDC (AWS CLI atau API) AWS**
+ AWS CLI: [aws iam list-open-id-connect](https://docs.aws.amazon.com/cli/latest/reference/iam/list-open-id-connect-provider-tags.html) -provider-tag
+ AWS API: [ListOpenIDConnectProviderTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListOpenIDConnectProviderTags.html)

**Untuk melampirkan tag ke penyedia identitas IAM OIDC (AWS CLI atau API) AWS**
+ AWS CLI: [aws iam tag-open-id-connect](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-open-id-connect-provider.html) -penyedia
+ AWS API: [TagOpenIDConnectPenyedia](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagOpenIDConnectProvider.html)

**Untuk menghapus tag dari penyedia identitas IAM OIDC (AWS CLI atau API) AWS**
+ AWS CLI: [aws iam untag-open-id-connect](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-open-id-connect-provider.html) -penyedia
+ AWS API: [UntagOpenIDConnectPenyedia](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagOpenIDConnectProvider.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Menandai penyedia identitas SALL IAM
<a name="id_tags_saml"></a>

Anda dapat menggunakan pasangan nilai kunci tag IAM untuk menambahkan atribut khusus ke penyedia identitas SALL. Misalnya, untuk mengidentifikasi penyedia, Anda dapat menambahkan kunci tanda **okta** dan nilai tanda **saml**. Anda dapat menggunakan tanda untuk mengontrol akses ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke objek. Untuk mempelajari lebih lanjut tentang penggunaan tag untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

## Izin yang diperlukan untuk menandai penyedia identitas SAML
<a name="id_tags_saml_permissions"></a>

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (pengguna atau peran) menandai Penyedia Identitas berbasis SAM 2.0 (). IdPs Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListSAMLProviderTags`
+ `iam:TagSAMLProvider`
+ `iam:UntagSAMLProvider`

**Untuk mengizinkan entitas IAM (pengguna atau peran) untuk menambah, mencantumkan, atau menghapus tag untuk penyedia identitas SALL**  
Tambahkan pernyataan berikut ini ke kebijakan izin untuk entitas IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<SAMLProviderName>* dengan nama penyedia SAFL yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListSAMLProviderTags",
        "iam:TagSAMLProvider",
        "iam:UntagSAMLProvider"
    ],
    "Resource": "arn:aws:iam::<account-number>:saml-provider/<SAMLProviderName>"
}
```

**Untuk mengizinkan entitas IAM (pengguna atau peran) menambahkan tag ke penyedia identitas SALL tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk penyedia SAFL tertentu.

**catatan**  
Tindakan `iam:TagSAMLProvider` mengharuskan Anda untuk juga menyertakan tindakan `iam:ListSAMLProviderTags`

Untuk menggunakan kebijakan ini, ganti *<SAMLProviderName>* dengan nama penyedia SAFL yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListSAMLProviderTags",
        "iam:TagSAMLProvider"
    ],
    "Resource": "arn:aws:iam::<account-number>:saml-provider/<SAMLProviderName>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada penyedia identitas SALL IAM (konsol)
<a name="id_tags_saml_procs-console"></a>

Anda dapat mengelola tag untuk Penyedia Identitas SALL IAM dari. Konsol Manajemen AWS

**Untuk mengelola tanda pada penyedia identitas SAML (konsol)**

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, pilih **Penyedia identitas**, kemudian pilih nama penyedia identitas SAML yang ingin Anda edit.

1. Pilih tab **Tag**, lalu di bagian **Tag**, pilih **Kelola tag** dan kemudian selesaikan salah satu tindakan berikut:
   + Pilih **Tambahkan tanda** jika penyedia identitas SAML belum memiliki tanda atau untuk menambahkan tanda baru.
   + Mengedit kunci dan nilai tanda yang ada.
   + Untuk menghapus tanda, pilih **Hapus tanda**.

1. Tambahkan atau hapus tag untuk menyelesaikan rangkaian tag. Lalu pilih **Simpan Perubahan**.

## Mengelola tag pada penyedia identitas SALL IAM (AWS CLI atau AWS API)
<a name="id_tags_saml_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tag untuk penyedia identitas IAM SALL. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk penyedia identitas IAM SALL.

**Untuk mencantumkan tag yang saat ini dilampirkan ke penyedia identitas SALL (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam list-saml-provider-tags](https://docs.aws.amazon.com/cli/latest/reference/iam/list-saml-provider-tags.html)
+ AWS API: [Daftar SAMLProvider Tag](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListSAMLProviderTags.html)

**Untuk melampirkan tag ke penyedia identitas SALL (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam tag-saml-provider](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-saml-provider.html)
+ AWS API: [Tag SAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagSAMLProvider.html)

**Untuk menghapus tag dari penyedia identitas SALL (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam untag-saml-provider](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-saml-provider.html)
+ AWS API: [Untag SAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagSAMLProvider.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Menandai profil instans untuk peran Amazon EC2
<a name="id_tags_instance-profiles"></a>

Saat meluncurkan instans Amazon EC2, Anda menentukan peran IAM untuk diasosiasikan dengan instans. Profil instans adalah kontainer untuk IAM role yang dapat Anda gunakan untuk meneruskan informasi peran ke instans Amazon EC2 saat instans diluncurkan. Anda dapat menandai profil instance saat menggunakan AWS CLI atau AWS API.

Anda dapat menggunakan pasangan nilai kunci tag IAM untuk menambahkan atribut khusus ke profil instance. Misalnya, untuk menambahkan informasi departemen ke profil instans, Anda dapat menambahkan kunci tanda **access-team** dan nilai tanda **eng**. Melakukan hal ini memberikan prinsipal dengan akses tanda yang sesuai ke profil instans dengan tanda yang sama. Anda bisa menggunakan beberapa tag pasangan kunci-nilai tanda untuk menentukan tim dan proyek: **access-team = eng **, dan **project = peg**. Anda dapat menggunakan tanda untuk mengontrol akses pengguna ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke pengguna. Untuk mempelajari lebih lanjut tentang penggunaan tag untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

Anda juga dapat menggunakan tag AWS STS untuk menambahkan atribut kustom saat Anda mengambil peran atau menyatukan pengguna. Untuk informasi selengkapnya, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

## Izin yang diperlukan untuk menandai profil instans
<a name="id_tags_instance-profiles_permissions"></a>

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (pengguna atau peran) menandai profil instance. Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListInstanceProfileTags`
+ `iam:TagInstanceProfile`
+ `iam:UntagInstanceProfile`

**Untuk mengizinkan entitas IAM (pengguna atau peran) untuk menambahkan, mencantumkan, atau menghapus tag untuk profil instance**  
Tambahkan pernyataan berikut ini ke kebijakan izin untuk entitas IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<InstanceProfileName>* dengan nama profil instance yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListInstanceProfileTags",
        "iam:TagInstanceProfile",
        "iam:UntagInstanceProfile"
    ],
    "Resource": "arn:aws:iam::<account-number>:instance-profile/<InstanceProfileName>"
}
```

**Untuk mengizinkan entitas IAM (pengguna atau peran) menambahkan tag ke profil instance tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk profil instance tertentu. 

**catatan**  
Tindakan `iam:TagInstanceProfile` mengharuskan Anda untuk juga menyertakan tindakan `iam:ListInstanceProfileTags`

Untuk menggunakan kebijakan ini, ganti *<InstanceProfileName>* dengan nama profil instance yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListInstanceProfileTags",
        "iam:TagInstanceProfile"
    ],
    "Resource": "arn:aws:iam::<account-number>:instance-profile/<InstanceProfileName>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada profil instance (AWS CLI atau AWS API)
<a name="id_tags_instance-profile_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tanda untuk profil instans. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk profil misalnya.

**Untuk mencantumkan tag yang saat ini dilampirkan ke profil instance (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam list-instance-profile-tags](https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profile-tags.html)
+ AWS API: [ListInstanceProfileTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfileTags.html)

**Untuk melampirkan tag ke profil instance (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam tag-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-instance-profile.html)
+ AWS API: [TagInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagInstanceProfile.html)

**Untuk menghapus tag dari profil instance (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam untag-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-instance-profile.html)
+ AWS API: [UntagInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagInstanceProfile.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Tandai sertifikat server
<a name="id_tags_server-certificates"></a>

Jika Anda menggunakan IAM untuk mengelola SSL/TLS sertifikat, Anda dapat menandai sertifikat server di IAM menggunakan AWS CLI atau AWS API. Untuk sertifikat di Wilayah yang didukung oleh AWS Certificate Manager (ACM), sebaiknya Anda menggunakan ACM alih-alih IAM untuk menyediakan, mengelola, dan menerapkan sertifikat server Anda. Di Wilayah yang tidak didukung, Anda harus menggunakan IAM sebagai manajer sertifikat. Untuk mempelajari Wilayah mana yang didukung ACM, lihat [AWS Certificate Manager titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/acm.html) di. *Referensi Umum AWS*

Anda dapat menggunakan pasangan nilai kunci tag IAM untuk menambahkan atribut khusus ke sertifikat server. Misalnya, untuk menambahkan informasi tentang pemilik atau administrator sertifikat server, tambahkan kunci tanda **owner** dan nilai tanda **net-eng**. Atau Anda dapat menentukan pusat biaya dengan menambahkan kunci tanda **CostCenter** dan nilai tanda **1234**. Anda dapat menggunakan tanda untuk mengontrol akses ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke sumber daya. Untuk mempelajari lebih lanjut tentang penggunaan tag untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

Anda juga dapat menggunakan tag AWS STS untuk menambahkan atribut kustom saat Anda mengambil peran atau menyatukan pengguna. Untuk informasi selengkapnya, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

## Izin yang diperlukan untuk menandai sertifikat server
<a name="id_tags_server-certificates_permissions"></a>

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (pengguna atau peran) menandai sertifikat server. Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListServerCertificateTags`
+ `iam:TagServerCertificate`
+ `iam:UntagServerCertificate`

**Untuk mengizinkan entitas IAM (pengguna atau peran) untuk menambah, mencantumkan, atau menghapus tag untuk sertifikat server**  
Tambahkan pernyataan berikut ini ke kebijakan izin untuk entitas IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<CertificateName>* dengan nama sertifikat server yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListServerCertificateTags",
        "iam:TagServerCertificate",
        "iam:UntagServerCertificate"
    ],
    "Resource": "arn:aws:iam::<account-number>:server-certificate/<CertificateName>"
}
```

**Untuk mengizinkan entitas IAM (pengguna atau peran) untuk menambahkan tag ke sertifikat server tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk sertifikat server tertentu.

**catatan**  
Tindakan `iam:TagServerCertificate` mengharuskan Anda untuk juga menyertakan tindakan `iam:ListServerCertificateTags`

Untuk menggunakan kebijakan ini, ganti *<CertificateName>* dengan nama sertifikat server yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListServerCertificateTags",
        "iam:TagServerCertificate"
    ],
    "Resource": "arn:aws:iam::<account-number>:server-certificate/<CertificateName>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada sertifikat server (AWS CLI atau AWS API)
<a name="id_tags_server-certificates_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tanda untuk sertifikat server. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk sertifikat server.

**Untuk mencantumkan tag yang saat ini dilampirkan ke sertifikat server (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam list-server-certificate-tags](https://docs.aws.amazon.com/cli/latest/reference/iam/list-server-certificate-tags.html)
+ AWS API: [ListServerCertificateTags](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificateTags.html)

**Untuk melampirkan tag ke sertifikat server (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam tag-server-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-server-certificate.html)
+ AWS API: [TagServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagServerCertificate.html)

**Untuk menghapus tag dari sertifikat server (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam untag-server-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-server-certificate.html)
+ AWS API: [UntagServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagServerCertificate.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Tandai perangkat MFA virtual
<a name="id_tags_virtual-mfa"></a>

Anda dapat menggunakan pasangan nilai kunci tag IAM untuk menambahkan atribut khusus ke perangkat MFA virtual. Misalnya, untuk menambahkan informasi pusat biaya untuk perangkat MFA virtual pengguna, Anda dapat menambahkan kunci tanda **CostCenter** dan nilai tanda **1234**. Anda dapat menggunakan tanda untuk mengontrol akses ke sumber daya atau untuk mengontrol tanda yang dapat dilampirkan ke objek. Untuk mempelajari lebih lanjut tentang penggunaan tag untuk mengontrol akses, lihat [Mengontrol akses ke dan untuk pengguna dan peran IAM menggunakan tag](access_iam-tags.md).

Anda juga dapat menggunakan tag AWS STS untuk menambahkan atribut kustom saat Anda mengambil peran atau menyatukan pengguna. Untuk informasi selengkapnya, lihat [Lulus tag sesi di AWS STS](id_session-tags.md).

## Izin yang diperlukan untuk menandai perangkat MFA virtual
<a name="id_tags_virtual-mfa_permissions"></a>

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (pengguna atau peran) menandai perangkat MFA virtual. Anda dapat menentukan satu atau semua tindakan tag IAM berikut dalam kebijakan IAM:
+ `iam:ListMFADeviceTags`
+ `iam:TagMFADevice`
+ `iam:UntagMFADevice`

**Untuk mengizinkan entitas IAM (pengguna atau peran) menambahkan, membuat daftar, atau menghapus tag untuk perangkat MFA virtual**  
Tambahkan pernyataan berikut ini ke kebijakan izin untuk entitas IAM yang perlu mengelola tag. Gunakan nomor akun Anda dan ganti *<MFATokenID>* dengan nama perangkat MFA virtual yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListMFADeviceTags",
        "iam:TagMFADevice",
        "iam:UntagMFADevice"
    ],
    "Resource": "arn:aws:iam::<account-number>:mfa/<MFATokenID>"
}
```

**Untuk mengizinkan entitas IAM (pengguna atau peran) menambahkan tag ke perangkat MFA virtual tertentu**  
Tambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menambahkan, tetapi tidak menghapus, tag untuk perangkat MFA tertentu.

**catatan**  
Tindakan `iam:TagMFADevice` mengharuskan Anda untuk juga menyertakan tindakan `iam:ListMFADeviceTags`

Untuk menggunakan kebijakan ini, ganti *<MFATokenID>* dengan nama perangkat MFA virtual yang tagnya perlu dikelola. Untuk mempelajari cara membuat kebijakan dengan menggunakan contoh dokumen kebijakan JSON ini, lihat [Membuat kebijakan menggunakan editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

```
{
    "Effect": "Allow",
    "Action": [
        "iam:ListMFADeviceTags",
        "iam:TagMFADevice"
    ],
    "Resource": "arn:aws:iam::<account-number>:mfa/<MFATokenID>"
}
```

Atau, Anda dapat menggunakan kebijakan AWS terkelola seperti [IAMFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess) untuk menyediakan akses penuh ke IAM.

## Mengelola tag pada perangkat MFA virtual (AWS CLI atau AWS API)
<a name="id_tags_virtual-mfa_procs-cli-api"></a>

Anda dapat membuat daftar, melampirkan, atau menghapus tanda untuk perangkat MFA virtual. Anda dapat menggunakan AWS CLI atau AWS API untuk mengelola tag untuk perangkat MFA virtual.

**Untuk mencantumkan tag yang saat ini dilampirkan ke perangkat MFA virtual (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam list-mfa-device-tags](https://docs.aws.amazon.com/cli/latest/reference/iam/list-mfa-device-tags.html)
+ AWS API: [Daftar MFADevice Tag](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADeviceTags.html)

**Untuk melampirkan tag ke perangkat MFA virtual (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam tag-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-mfa-device.html)
+ AWS API: [Tag MFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagMFADevice.html)

**Untuk menghapus tag dari perangkat MFA virtual (AWS CLI atau AWS API)**
+ AWS CLI: [aws iam untag-mfa-device](https://docs.aws.amazon.com/cli/latest/reference/iam/untag-mfa-device.html)
+ AWS API: [Untag MFADevice](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UntagMFADevice.html)

Untuk informasi tentang melampirkan tag ke sumber daya untuk AWS layanan lain, lihat dokumentasi untuk layanan tersebut. 

Untuk informasi tentang menggunakan tag untuk mengatur lebih banyak izin granular dengan kebijakan izin, lihat [Elemen kebijakan IAM: Variabel dan tag](reference_policies_variables.md).

# Lulus tag sesi di AWS STS
<a name="id_session-tags"></a>

Tag sesi adalah atribut pasangan nilai kunci yang Anda lewati saat Anda mengambil peran IAM atau menyatukan pengguna. AWS STS Anda melakukan ini dengan membuat permintaan AWS CLI atau AWS API melalui AWS STS atau melalui penyedia identitas Anda (iDP). Saat Anda menggunakan AWS STS untuk meminta kredensil keamanan sementara, Anda membuat sesi. Sesi berakhir dan memiliki [kredensial](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html), seperti pasangan access key dan token sesi. Saat Anda menggunakan kredensial sesi untuk membuat permintaan berikutnya, [konteks permintaan](reference_policies_elements_condition.md#AccessPolicyLanguage_RequestContext) mencakup kunci konteks `aws:PrincipalTag`. Anda dapat menggunakan kunci `aws:PrincipalTag` dalam elemen `Condition` elemen kebijakan Anda untuk mengizinkan atau menolak akses berdasarkan tag tersebut.

Saat Anda menggunakan kredensial sementara untuk membuat permintaan, prinsipal Anda mungkin mencakup serangkaian tag. Tag ini berasal dari sumber berikut:

1. **Tag sesi** — Tag diteruskan saat Anda mengambil peran atau menggabungkan pengguna menggunakan AWS API AWS CLI atau. Untuk informasi selengkapnya tentang operasi ini, lihat [Operasi pemberian tag ke sesi](#id_session-tags_operations).

1. **Tag sesi transitif masuk — Tag** yang diwarisi dari sesi sebelumnya dalam rantai peran. Untuk informasi selengkapnya, lihat [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining) dalam topik ini.

1. Tag **IAM — Tag** yang dilampirkan ke IAM Anda mengambil peran.

**Topics**
+ [Operasi pemberian tag ke sesi](#id_session-tags_operations)
+ [Hal yang perlu diketahui tentang tag sesi](#id_session-tags_know)
+ [Izin diperlukan untuk menambahkan tag sesi](#id_session-tags_permissions-required)
+ [Melewati tag sesi menggunakan AssumeRole](#id_session-tags_adding-assume-role)
+ [Melewati tag sesi menggunakan AssumeRoleWith SALL](#id_session-tags_adding-assume-role-saml)
+ [Melewati tag sesi menggunakan AssumeRoleWithWebIdentity](#id_session-tags_adding-assume-role-idp)
+ [Melewati tag sesi menggunakan GetFederationToken](#id_session-tags_adding-getfederationtoken)
+ [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining)
+ [Menggunakan tag sesi untuk ABAC](#id_session-tags_using-abac)
+ [Melihat tag sesi di CloudTrail](#id_session-tags_ctlogs)

## Operasi pemberian tag ke sesi
<a name="id_session-tags_operations"></a>

Anda dapat meneruskan tag sesi menggunakan operasi berikut AWS CLI atau AWS API di AWS STS. *Fitur Konsol Manajemen AWS **[Switch Role](id_roles_use_switch-role-console.md)** tidak memungkinkan Anda untuk meneruskan tag sesi.*

Anda juga dapat mengatur tag sesi sebagai transitif. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining).

Tabel berikut membandingkan metode untuk melewati tag sesi.


|  Operasi |  **Siapa yang bisa mengambil peran**  | **Metode untuk melewati tag** |  **Metode untuk mengatur tag transitif**  | 
| --- | --- | --- | --- | 
| Operasi [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) CLI atau [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API | Pengguna IAM atau sesi | Tags Parameter API atau --tags Opsi CLI | TransitiveTagKeys Parameter API atau --transitive-tag-keys Opsi CLI | 
| Operasi [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) CLI atau [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) API | Setiap pengguna yang diautentikasi menggunakan penyedia identitas SAMB | PrincipalTag Atribut SAML | TransitiveTagKeys Atribut SAML | 
| Operasi [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) CLI atau [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) API | Setiap pengguna yang diautentikasi menggunakan penyedia OIDC | PrincipalTagToken OIDC | TransitiveTagKeysToken OIDC | 
| Operasi [https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html) CLI atau [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) API | Pengguna IAM atau pengguna root | Tags Parameter API atau --tags Opsi CLI | Tidak didukung | 

Operasi yang mendukung penandaan sesi dapat gagal dalam kondisi berikut:
+ Anda meneruskan lebih dari 50 tag sesi.
+ Plaintext kunci tag sesi Anda melebihi 128 karakter.
+ Plaintext dari nilai tag sesi Anda melebihi 256 karakter.
+ Ukuran total plaintext kebijakan sesi melebihi 2048 karakter.
+ Ukuran paket total dari kebijakan sesi gabungan dan tag terlalu besar. Jika operasi gagal, pesan kesalahan menunjukkan seberapa dekat kebijakan dan tag yang digabungkan mencapai batas ukuran atas, berdasarkan persentase.

## Hal yang perlu diketahui tentang tag sesi
<a name="id_session-tags_know"></a>

Sebelum menggunakan tag sesi, tinjau detail berikut tentang sesi dan tag.
+ Saat menggunakan tag sesi, kebijakan kepercayaan untuk semua peran yang terhubung ke tag penerusan penyedia identitas (iDP) harus memiliki izin. [`sts:TagSession`](#id_session-tags_permissions-required) Untuk peran tanpa izin ini dalam kebijakan kepercayaan, `AssumeRole` operasi gagal.
+ Saat Anda meminta sesi, Anda dapat menentukan tag utama sebagai tag sesi. Tag berlaku untuk permintaan yang Anda buat dengan menggunakan kredensial sesi.
+ Tag sesi menggunakan pasangan kunci-nilai. Misalnya, untuk menambahkan informasi kontak ke sesi, Anda dapat menambahkan kunci tag sesi `email` dan nilai tag `johndoe@example.com`.
+ Tag sesi harus mengikuti [aturan untuk penamaan tag di IAM dan AWS STS](id_tags.md#id_tags_rules_creating). Topik ini mencakup informasi tentang kepekaan huruf besar-kecil dan awalan terbatas yang berlaku untuk tag sesi Anda.
+ Tag sesi baru mengganti peran yang diasumsikan atau tag sesi pengguna gabungan yang ada dengan kunci tag yang sama, terlepas dari kasus karakternya.
+ Anda tidak dapat meneruskan tag sesi menggunakan Konsol Manajemen AWS.
+ Tag sesi hanya valid untuk sesi saat ini. 
+ Tag sesi mendukung [perangkaian peran](id_roles.md#iam-term-role-chaining). Secara default, AWS STS tidak meneruskan tag ke sesi peran berikutnya. Anda juga dapat mengatur tag sesi sebagai transitif. Tag transitif bertahan selama rantai peran dan menggantikan `ResourceTag` nilai yang cocok setelah evaluasi kebijakan kepercayaan peran. Untuk informasi selengkapnya, lihat [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining).
+ Anda dapat menggunakan tag sesi untuk mengontrol akses ke sumber daya atau untuk mengontrol tag apa yang dapat diteruskan ke sesi selanjutnya. Untuk informasi selengkapnya, lihat [Tutorial IAM: Menggunakan tanda sesi SAML untuk ABAC](tutorial_abac-saml.md).
+ Anda dapat melihat tag utama untuk sesi Anda, termasuk tag sesi, di AWS CloudTrail log. Untuk informasi selengkapnya, lihat [Melihat tag sesi di CloudTrail](#id_session-tags_ctlogs).
+ Anda harus memberikan satu nilai untuk setiap tag sesi. AWS STS tidak mendukung tag sesi multi-nilai. 
+ Anda dapat meneruskan maksimum 50 tag sesi. Jumlah dan ukuran sumber daya IAM dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat [IAM dan AWS STS kuota](reference_iam-quotas.md).
+  AWS Konversi memampatkan kebijakan sesi yang diteruskan dan tag sesi yang digabungkan ke dalam format biner yang dikemas dengan batas terpisah. Jika Anda melebihi batas ini, pesan kesalahan AWS CLI atau AWS API menunjukkan seberapa dekat kebijakan dan tag yang digabungkan mencapai batas ukuran atas, berdasarkan persentase.

## Izin diperlukan untuk menambahkan tag sesi
<a name="id_session-tags_permissions-required"></a>

Selain tidakan yang sesuai dengan operasi API, Anda harus memiliki tindakan khusus izin berikut dalam kebijakan Anda:

```
sts:TagSession
```

**penting**  
Saat menggunakan tag sesi, kebijakan kepercayaan peran untuk semua peran yang terhubung ke penyedia identitas (IdP) harus memiliki izin `sts:TagSession`. `AssumeRole`Operasi gagal untuk peran apa pun yang terhubung ke tag sesi lewat IDP tanpa izin ini. Jika Anda tidak ingin memperbarui kebijakan kepercayaan peran untuk setiap peran, Anda dapat menggunakan instans IdP terpisah untuk meneruskan tag sesi. Kemudian, tambahkan `sts:TagSession` izin hanya untuk peran yang terhubung ke iDP terpisah.

Anda dapat menggunakan tindakan `sts:TagSession` dengan kunci syarat berikut.
+ `aws:PrincipalTag`— Membandingkan tag yang dilampirkan pada prinsipal yang membuat permintaan dengan tag yang Anda tentukan dalam kebijakan. Misalnya, Anda dapat mengizinkan prinsipal untuk meneruskan tag sesi hanya jika prinsipal yang mengajukan permintaan memiliki tag yang ditentukan.
+ `aws:RequestTag`— Membandingkan pasangan nilai kunci tag yang diteruskan dalam permintaan dengan pasangan tag yang Anda tentukan dalam kebijakan. Misalnya, Anda dapat mengizinkan prinsipal untuk meneruskan tag sesi yang ditentukan, tetapi hanya dengan nilai yang ditentukan.
+ `aws:ResourceTag`— Membandingkan pasangan nilai kunci tag yang Anda tentukan dalam kebijakan dengan pasangan nilai kunci yang dilampirkan ke sumber daya. Misalnya, Anda dapat mengizinkan prinsipal untuk meneruskan tag sesi hanya jika peran yang mereka ambil menyertakan tag yang ditentukan.
+ `aws:TagKeys`— Membandingkan kunci tag dalam permintaan dengan kunci yang Anda tentukan dalam kebijakan. Misalnya, Anda dapat mengizinkan prinsipal untuk hanya meneruskan tag sesi dengan kunci tag yang ditentukan. Kunci persyaratan ini membatasi rangkaian tag sesi maksimum yang dapat diteruskan.
+ `sts:TransitiveTagKeys`- Membandingkan kunci tag sesi transitif dalam permintaan dengan yang ditentukan dalam kebijakan. Misalnya, Anda dapat menyusun kebijakan untuk mengizinkan prinsipal mengatur hanya tag tertentu sebagai transitif. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining).

Misalnya, [kebijakan kepercayaan peran](id_roles.md#term_trust-policy) berikut memungkinkan `test-session-tags` pengguna untuk mengambil peran dengan kebijakan terlampir. Ketika pengguna tersebut mengambil peran tersebut, mereka harus menggunakan AWS API AWS CLI atau untuk meneruskan tiga tag sesi yang diperlukan dan [ID eksternal](id_roles_common-scenarios_third-party.md#id_roles_third-party_external-id) yang diperlukan. Selain itu, pengguna dapat memilih untuk mengatur tag `Project` dan `Department` tag sebagai transitif.

**Example Contoh kebijakan kepercayaan peran untuk tag sesi**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowIamUserAssumeRole",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::123456789012:user/test-session-tags"},
            "Condition": {
              "StringLike": {
                    "aws:RequestTag/Project": "*",
                    "aws:RequestTag/CostCenter": "*",
                    "aws:RequestTag/Department": "*"
                },
                "StringEquals": {"sts:ExternalId": "Example987"}
            }
        },
        {
            "Sid": "AllowPassSessionTagsAndTransitive",
            "Effect": "Allow",
            "Action": "sts:TagSession",
            "Principal": {"AWS": "arn:aws:iam::123456789012:user/test-session-tags"},
            "Condition": {
                "StringLike": {
                    "aws:RequestTag/Project": "*",
                    "aws:RequestTag/CostCenter": "*"
                },
                "StringEquals": {
                    "aws:RequestTag/Department": [
                        "Engineering",
                        "Marketing"
                    ]
                },
                "ForAllValues:StringEquals": {
                    "sts:TransitiveTagKeys": [
                        "Project",
                        "Department"
                    ]
                }
            }
        }
    ]
}
```

**Apa yang dilakukan kebijakan ini?**
+ `AllowIamUserAssumeRole`Pernyataan tersebut memungkinkan `test-session-tags` pengguna untuk mengambil peran dengan kebijakan terlampir. Ketika pengguna tersebut mengasumsikan peran tersebut, mereka harus meneruskan tag sesi yang diperlukan dan [ID eksternal](id_roles_common-scenarios_third-party.md#id_roles_third-party_external-id).
  + Blok syarat pertama dari pernyataan ini mengharuskan pengguna untuk meneruskan `Project`, `CostCenter`, dan `Department` tag sesi. Nilai tag tidak penting dalam pernyataan ini, sehingga Anda dapat menggunakan wildcard (\$1) untuk nilai tag. Blok ini memastikan bahwa pengguna melewati setidaknya tiga tag sesi ini. Jika tidak, operasi gagal. Pengguna dapat meneruskan tag tambahan.
  + Blok syarat kedua mengharuskan pengguna untuk meneruskan [ID eksternal](id_roles_common-scenarios_third-party.md#id_roles_third-party_external-id) dengan nilai `Example987`.
+ Pernyataan `AllowPassSessionTagsAndTransitive` memperbolehkan tindakan khusus izin `sts:TagSession`. Tindakan ini harus diperbolehkan sebelum pengguna dapat meneruskan tag sesi. Jika kebijakan Anda mencakup pernyataan pertama tanpa pernyataan kedua, pengguna tidak dapat mengasumsikan peran tersebut.
  + Blok syarat pertama dari pernyataan ini memperbolehkan pengguna untuk meneruskan nilai apa pun untuk sesi tag `CostCenter` dan `Project`. Anda melakukannya dengan menggunakan wildcards (\$1) untuk nilai tag dalam kebijakan, yang mengharuskan Anda menggunakan operator syarat [StringLike](reference_policies_elements_condition_operators.md#Conditions_String).
  + Blok syarat kedua memperbolehkan pengguna untuk hanya meneruskan `Engineering` atau `Marketing` nilai untuk tag sesi `Department`.
  + Blok kondisi ketiga mencantumkan kumpulan tag maksimum yang dapat Anda atur sebagai transitif. Pengguna dapat memilih untuk mengatur subset atau tidak ada tag sebagai transitif. Mereka tidak dapat menetapkan tag tambahan sebagai transitif. Anda dapat meminta agar mereka mengatur setidaknya salah satu tag sebagai transtitif dengan menambahkan blok syarat lain yang mencakup `"Null":{"sts:TransitiveTagKeys":"false"}`. 

## Melewati tag sesi menggunakan AssumeRole
<a name="id_session-tags_adding-assume-role"></a>

`AssumeRole`Operasi mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Anda dapat menggunakan kredensi pengguna atau peran IAM untuk menelepon. `AssumeRole` Untuk meneruskan tag sesi sambil mengambil peran, gunakan `--tags` AWS CLI opsi atau parameter `Tags` AWS API. 

Untuk menetapkan tag sebagai transitif, gunakan `--transitive-tag-keys` AWS CLI opsi atau parameter `TransitiveTagKeys` AWS API. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining).

Contoh berikut menunjukkan permintaan sampel yang menggunakan `AssumeRole`. Dalam contoh ini, saat mengambil peran `my-role-example`, Anda membuat sesi bernama `my-session`. Anda menambahkan pasangan nilai kunci tanda sesi `Project` = `Automation`, `CostCenter` = `12345`, dan `Department` = `Engineering`. Anda juga mengatur tanda `Project` dan `Department` sebagai transitif dengan menentukan kuncinya. Anda harus memberikan satu nilai untuk setiap tag sesi. AWS STS tidak mendukung tag sesi multi-nilai.

**Example Contoh AssumeRole permintaan CLI**  

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/my-role-example \
--role-session-name my-session \
--tags Key=Project,Value=Automation Key=CostCenter,Value=12345 Key=Department,Value=Engineering \
--transitive-tag-keys Project Department \
--external-id Example987
```

## Melewati tag sesi menggunakan AssumeRoleWith SALL
<a name="id_session-tags_adding-assume-role-saml"></a>

`AssumeRoleWithSAML`Operasi mengotentikasi dengan federasi berbasis SAML. Operasi ini mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Untuk informasi selengkapnya tentang penggunaan federasi berbasis SAMP untuk Konsol Manajemen AWS akses, lihat. [Mengaktifkan prinsip federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS](id_roles_providers_enable-console-saml.md) Untuk detail tentang AWS CLI atau akses AWS API, lihat[Federasi SAMP 2.0](id_roles_providers_saml.md). Untuk tutorial tentang mengonfigurasi federasi SAMP untuk pengguna Active Directory Anda, lihat [AWS Otentikasi Federasi dengan Layanan Federasi Direktori Aktif (ADFS)](https://aws.amazon.com/blogs/security/aws-federated-authentication-with-active-directory-federation-services-ad-fs/) di Blog Keamanan. AWS 

Sebagai administrator, Anda dapat mengizinkan anggota direktori perusahaan Anda untuk bergabung AWS menggunakan AWS STS `AssumeRoleWithSAML` operasi. Untuk melakukannya, Anda harus menyelesaikan tugas berikut:

1. [Konfigurasikan jaringan Anda sebagai penyedia SAFL untuk AWS](id_roles_providers_saml_3rd-party.md).

1. [Buat penyedia SAFL di IAM](id_roles_providers_create_saml.md)

1. [Buat peran untuk federasi SAMP 2.0 (konsol)](id_roles_create_for-idp_saml.md)

1. [Selesai mengonfigurasi SAMP iDP dan membuat pernyataan untuk respons otentikasi SAMP](id_roles_providers_create_saml_assertions.md)

AWS termasuk penyedia identitas dengan end-to-end pengalaman bersertifikat untuk tag sesi dengan solusi identitas mereka. Untuk mempelajari cara menggunakan penyedia identitas ini untuk mengonfigurasi tag sesi, lihat [Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS](id_roles_providers_saml_3rd-party.md).

Untuk meneruskan atribut SAML sebagai tanda sesi, sertakan elemen `Attribute` dengan atribut `Name` yang diatur ke `https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}`. Gunakan elemen `AttributeValue` untuk menentukan nilai tanda. Menyertakan elemen `Attribute` terpisah untuk setiap tag sesi.

Misalnya, anggap bahwa Anda ingin meneruskan atribut identitas berikut sebagai tag sesi:
+ `Project:Automation`
+ `CostCenter:12345`
+ `Department:Engineering`

Untuk meneruskan atribut ini, sertakan elemen berikut ini dalam pernyataan SAML Anda.

**Example Contoh snippet pernyataan SAML**  

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project">
  <AttributeValue>Automation</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter">
  <AttributeValue>12345</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Department">
  <AttributeValue>Engineering</AttributeValue>
</Attribute>
```

Untuk mengatur tag sebelumnya sebagai transitif, sertakan `Attribute` elemen lain dengan `Name` atribut yang disetel ke. `https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys` Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining).

Untuk mengatur `Project` dan `Department` tag sebagai transitif, gunakan atribut multi-nilai berikut:

**Example Contoh snippet pernyataan SAML**  

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys">
  <AttributeValue>Project</AttributeValue>
  <AttributeValue>Department</AttributeValue>
</Attribute>
```

## Melewati tag sesi menggunakan AssumeRoleWithWebIdentity
<a name="id_session-tags_adding-assume-role-idp"></a>

Gunakan federasi yang sesuai dengan OpenID Connect (OIDC) untuk mengautentikasi operasi. `AssumeRoleWithWebIdentity` Operasi ini mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Untuk informasi selengkapnya tentang penggunaan federasi identitas web untuk Konsol Manajemen AWS akses, lihat[Federasi OIDC](id_roles_providers_oidc.md).

Untuk meneruskan tag sesi dari OpenID Connect (OIDC), Anda harus menyertakan tag sesi di JSON Web Token (JWT) saat Anda mengirimkan permintaan. `AssumeRoleWithWebIdentity` Untuk mempelajari lebih lanjut tentang token dan klaim OIDC, lihat [Menggunakan Token dengan Kolam Pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) di *Panduan Developer Amazon Cognito *.

AWS mendukung dua format klaim untuk menyertakan tag sesi di JWT: 
+ Format klaim bersarang
+ Format klaim yang diratakan

### Format klaim bersarang
<a name="id_session-tags_adding-assume-role-idp-nested-format"></a>

Format klaim bersarang menggunakan struktur dalam `https://aws.amazon.com/tags` namespace di JWT. Dalam format ini:
+ Tag utama direpresentasikan sebagai objek bersarang di bawah `principal_tags` kunci.
+ Setiap tag utama adalah nilai string tunggal.
+ Tombol tag transitif diwakili dalam array di bawah `transitive_tag_keys` kunci.
+ Keduanya `principal_tags` dan `transitive_tag_keys` bersarang di bawah `https://aws.amazon.com/tags` namespace.

Contoh berikut menunjukkan JWT decoded menggunakan format objek bersarang: 

**Example Contoh Token Web JSON yang diterjemahkan menggunakan format klaim bersarang**  

```
{
    "sub": "johndoe",
    "aud": "ac_oic_client",
    "jti": "ZYUCeRMQVtqHypVPWAN3VB",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/tags": {
        "principal_tags": {
            "Project": ["Automation"],
            "CostCenter": ["987654"],
            "Department": ["Engineering"]
        },
        "transitive_tag_keys": [
            "Project",
            "CostCenter"
        ]
    }
}
```

### Format klaim yang diratakan
<a name="id_session-tags_adding-assume-role-idp-flattened-format"></a>

Format klaim yang diratakan kompatibel dengan penyedia identitas yang tidak mendukung objek bersarang dalam klaim JWT, seperti Microsoft Entra ID. Dalam format ini:
+ Tag utama direpresentasikan sebagai klaim terpisah dengan awalan`https://aws.amazon.com/tags/principal_tags/`. 
+ Setiap tag utama adalah nilai string tunggal.
+ Kunci tag transitif direpresentasikan dalam satu klaim sebagai array string dengan awalan. `https://aws.amazon.com/tags/transitive_tag_keys`

Sekarang, mari kita lihat bagaimana informasi yang sama direpresentasikan menggunakan format klaim yang diratakan:

**Example Contoh Token Web JSON yang diterjemahkan menggunakan format klaim yang diratakan**  

```
{
    "sub": "johndoe",
    "aud": "ac_oic_client",
    "jti": "ZYUCeRMQVtqHypVPWAN3VB",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/tags/principal_tags/Project": "Automation",
    "https://aws.amazon.com/tags/principal_tags/CostCenter": "987654",
    "https://aws.amazon.com/tags/principal_tags/Department": "Engineering",
    "https://aws.amazon.com/tags/transitive_tag_keys": [
        "Project",
        "CostCenter"
    ]
}
```

Kedua contoh JWT yang diterjemahkan menunjukkan panggilan ke `AssumeRoleWithWebIdentity` dengan tag`Project`,`CostCenter`, dan sesi. `Department` Kedua token menetapkan `Project` dan `CostCenter` tag sebagai transitif. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat [Merangkai peran dengan tag sesi](#id_session-tags_role-chaining).

Format klaim yang diratakan mencapai hasil yang sama dengan format klaim bersarang tetapi menggunakan struktur pipih untuk tag. Ini memungkinkan Anda untuk menyertakan tag sesi di lingkungan di mana objek JSON bersarang tidak didukung dalam klaim JWT. Saat menggunakan salah satu format, pastikan bahwa penyedia identitas Anda dikonfigurasi untuk mengeluarkan token dengan struktur klaim yang sesuai. AWS mendukung kedua format klaim, sehingga Anda dapat memilih salah satu yang paling sesuai dengan persyaratan spesifik penyedia identitas Anda.

## Melewati tag sesi menggunakan GetFederationToken
<a name="id_session-tags_adding-getfederationtoken"></a>

`GetFederationToken`Ini memungkinkan Anda untuk menyatukan pengguna Anda. Operasi ini mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Untuk menambahkan tag ke sesi pengguna federasi Anda, gunakan `--tags` AWS CLI opsi atau parameter `Tags` AWS API. Anda tidak dapat menyetel tag sesi sebagai transitif saat Anda menggunakan`GetFederationToken`, karena Anda tidak dapat menggunakan kredenal sementara untuk mengambil peran. Anda tidak dapat menggunakan rantai peran dalam kasus ini. 

Contoh berikut menunjukkan permintaan sampel menggunakan `GetFederationToken`. Dalam contoh ini, saat meminta token, Anda membuat sesi bernama `my-fed-user`. Anda menambahkan pasangan nilai kunci tanda sesi `Project` = `Automation` dan `Department` = `Engineering`.

**Example Contoh GetFederationToken permintaan CLI**  

```
aws sts get-federation-token \
--name my-fed-user \
--tags key=Project,value=Automation key=Department,value=Engineering
```

Saat Anda menggunakan kredensi sementara yang dikembalikan oleh `GetFederationToken` operasi, tag utama sesi menyertakan tag pengguna dan tag sesi yang diteruskan.

## Merangkai peran dengan tag sesi
<a name="id_session-tags_role-chaining"></a>

Anda dapat mengasumsikan satu peran dan kemudian menggunakan kredensial sementara untuk mengasumsikan peran lain. Anda dapat melanjutkan dari sesi ke sesi. Ini disebut [perangkaian peran](id_roles.md#iam-term-role-chaining). Saat Anda meneruskan tag sesi sembari mengasumsikan peran, Anda dapat mengatur kunci sebagai transitif. Hal ini memastikan bahwa tag sesi tersebut diteruskan ke sesi berikutnya dalam rantai peran. Anda tidak dapat mengatur tag peran sebagai transitif. Untuk meneruskan tag ini ke sesi berikutnya, tentukan tag tersebut sebagai tag sesi.

**catatan**  
Tag transitif bertahan selama rantai peran dan menggantikan `ResourceTag` nilai yang cocok setelah evaluasi kebijakan kepercayaan peran.

Contoh berikut menunjukkan bagaimana AWS STS meneruskan tag sesi, tag transitif, dan tag peran ke sesi berikutnya dalam rantai peran.

Dalam contoh skenario rantai peran ini, Anda menggunakan kunci akses pengguna IAM AWS CLI untuk mengambil peran bernama. `Role1` Anda kemudian menggunakan kredensial sesi yang dihasilkan untuk mengambil peran kedua bernama `Role2`. Anda kemudian dapat menggunakan kredensial sesi kedua untuk mengambil peran ketiga bernama `Role3`. Permintaan ini terjadi sebagai tiga operasi terpisah. Setiap peran sudah diberi tag di IAM. Dan dalam setiap permintaan, Anda meneruskan tag sesi tambahan.

![\[Perangkaian peran\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/session-tags-chaining-simple.png)


Saat Anda merangkai peran, Anda dapat memastikan bahwa tag dari sesi sebelumnya tetap berlanjut ke sesi berikutnya. Untuk melakukan ini menggunakan perintah `assume-role` CLI, Anda harus meneruskan tag sebagai tag sesi dan mengatur tag sebagai transitif. Anda meneruskan tag `Star` = `1` sebagai tag sesi. Perintah juga melampirkan tag `Heart` = `1` ke peran dan berlaku sebagai tag utama saat Anda menggunakan sesi. Namun, Anda juga menginginkan tag `Heart` = `1` tag untuk diteruskan secara otomatis ke sesi kedua atau ketiga. Untuk melakukannya, Anda menyertakannya secara manual sebagai tag sesi. Tag utama sesi yang dihasilkan mencakup kedua tag ini, dan menetapkannya sebagai transitif.

![\[Mengasumsikan peran pertama dalam rangkaian peran\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/session-tags-chaining-role1.png)


Anda melakukan permintaan ini menggunakan AWS CLI perintah berikut:

**Example Contoh AssumeRole permintaan CLI**  

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Role1 \
--role-session-name Session1 \
--tags Key=Star,Value=1 Key=Heart,Value=1 \
--transitive-tag-keys Star Heart
```

Anda kemudian menggunakan kredensials untuk sesi tersebut guna mengambil `Role2`. Perintah melampirkan tag `Sun` = `2` ke peran kedua dan berlaku sebagai tag utama saat Anda menggunakan sesi kedua. `Star`Tag `Heart` dan mewarisi tag sesi transitif di sesi pertama. Sesi kedua yang dihasilkan tag utama adalah `Heart` =`1`, `Star` =`1`, dan `Sun` =`2`. `Heart`dan `Star` terus menjadi transitif. `Sun`Tag yang `Role2` dilampirkan tidak ditandai sebagai transitif karena bukan tag sesi. Sesi mendatang tidak mewarisi tag ini. 

![\[Mengasumsikan peran kedua dalam rangkaian peran\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/session-tags-chaining-role2.png)


Anda melakukan permintaan kedua ini menggunakan AWS CLI perintah berikut:

**Example Contoh AssumeRole permintaan CLI**  

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Role2 \
--role-session-name Session2
```

Anda kemudian menggunakan kredensial kedua guna mengambil `Role3`. Tanda prinsipal untuk sesi ketiga berasal dari tanda sesi baru, tanda sesi transitif yang diturunkan, dan tanda peran. `1`Tag `Heart` = `1` dan `Star` = pada sesi kedua diwarisi dari tag sesi transitif di sesi pertama. Jika Anda mencoba untuk melewatkan tag `2` sesi `Sun` =, operasi gagal. Tag sesi `Star` = 1 yang diwarisi menggantikan tag role `Star` =. `3` Dalam rantai peran, nilai tag transitif mengesampingkan peran yang cocok dengan `ResourceTag` nilai setelah evaluasi kebijakan kepercayaan peran. Dalam contoh ini, jika `Role3` menggunakan `Star` sebagai `ResourceTag` dalam kebijakan kepercayaan peran, dan menetapkan `ResourceTag` nilai ke nilai tag transitif dari sesi peran pemanggilan. `Lightning`Tag peran juga berlaku untuk sesi ketiga, dan tidak ditetapkan sebagai transitif.

![\[Mengasumsikan peran ketiga dalam rangkaian peran\]](http://docs.aws.amazon.com/id_id/IAM/latest/UserGuide/images/session-tags-chaining-role3.png)


Anda melakukan permintaan ketiga menggunakan AWS CLI perintah berikut:

**Example Contoh AssumeRole permintaan CLI**  

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Role3 \
--role-session-name Session3
```

## Menggunakan tag sesi untuk ABAC
<a name="id_session-tags_using-abac"></a>

Attribute-based access control (ABAC) menggunakan strategi otorisasi yang mendefinisikan izin berdasarkan atribut tag. 

Jika perusahaan menggunakan penyedia identitas (IdP) berbasis OIDC atau SAML untuk mengelola identitas pengguna, Anda dapat mengonfigurasi pernyataan untuk meneruskan tanda sesi ke AWS. Misalnya, dengan identitas pengguna perusahaan, ketika karyawan Anda bergabung AWS, AWS menerapkan atribut mereka pada prinsipal yang dihasilkan. Kemudian, Anda dapat menggunakan ABAC untuk mengizinkan atau menolak izin berdasarkan atribut tersebut. Lihat perinciannya di [Tutorial IAM: Menggunakan tanda sesi SAML untuk ABAC](tutorial_abac-saml.md).

Untuk informasi selengkapnya tentang penggunaan Pusat Identitas IAM dengan ABAC, lihat [Atribut untuk kontrol akses](https://docs.aws.amazon.com/singlesignon/latest/userguide/attributesforaccesscontrol.html) di *AWS IAM Identity Center Panduan Pengguna*.

## Melihat tag sesi di CloudTrail
<a name="id_session-tags_ctlogs"></a>

Anda dapat menggunakan AWS CloudTrail untuk melihat permintaan yang digunakan untuk mengambil peran atau pengguna federasi. File log CloudTrail mencakup informasi tentang tanda prinsipal untuk sesi peran yang diasumsikan atau sesi pengguna gabungan. Untuk informasi selengkapnya, lihat [Mencatat panggilan IAM dan AWS STS API dengan AWS CloudTrail](cloudtrail-integration.md).

Misalnya, asumsikan bahwa Anda membuat AWS STS `AssumeRoleWithSAML` permintaan, meneruskan tag sesi, dan menetapkan tag tersebut sebagai transitif. Anda dapat menemukan informasi berikut di log CloudTrail Anda.

**Example Contoh AssumeRoleWith log SALL CloudTrail**  

```
    "requestParameters": {
        "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE",
        "roleSessionName": "MyRoleSessionName",
        "principalTags": {
            "CostCenter": "987654",
            "Project": "Unicorn"
        },
        "transitiveTagKeys": [
            "CostCenter",
            "Project"
        ],
        "durationSeconds": 3600,
        "roleArn": "arn:aws:iam::123456789012:role/SAMLTestRoleShibboleth",
        "principalArn": "arn:aws:iam::123456789012:saml-provider/Shibboleth"
    },
```

Anda dapat melihat contoh CloudTrail log berikut untuk melihat peristiwa yang menggunakan tag sesi.
+ [Contoh peristiwa API rantai AWS STS peran dalam file CloudTrail log](cloudtrail-integration.md#stscloudtrailexample-assumerole)
+ [Contoh peristiwa AWS STS SAMM API dalam file CloudTrail log](cloudtrail-integration.md#stscloudtrailexample_saml)
+ [Contoh peristiwa AWS STS API OIDC dalam file log CloudTrail](cloudtrail-integration.md#stscloudtrailexample_web-identity)