

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

# Otentikasi dan akses menggunakan AWS SDKs dan alat
<a name="access"></a>

Saat Anda mengembangkan aplikasi AWS SDK atau menggunakan AWS alat untuk digunakan Layanan AWS, Anda harus menetapkan bagaimana kode atau alat Anda mengautentikasi. AWS Anda dapat mengonfigurasi akses terprogram ke AWS sumber daya dengan cara yang berbeda, tergantung pada lingkungan tempat kode berjalan dan AWS akses yang tersedia untuk Anda. 

Opsi di bawah ini adalah bagian dari [rantai penyedia kredensi](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain). Ini berarti bahwa dengan mengonfigurasi file bersama AWS `config` dan `credentials` file yang sesuai, AWS SDK atau alat Anda akan secara otomatis menemukan dan menggunakan metode otentikasi tersebut.

## Pilih metode untuk mengautentikasi kode aplikasi Anda
<a name="authDecisionTree"></a>

Pilih metode untuk mengautentikasi panggilan yang dilakukan AWS oleh aplikasi Anda.

### Apakah Anda menjalankan kode DI DALAM Layanan AWS (seperti Amazon EC2, Lambda, Amazon ECS, Amazon EKS,)? CodeBuild
<a name="a"></a>

Jika kode Anda berjalan AWS, kredensi dapat dibuat secara otomatis tersedia untuk aplikasi Anda. Misalnya, jika aplikasi Anda di-host di Amazon Elastic Compute Cloud, dan terdapat peran IAM yang terkait dengan sumber daya tersebut, kredensialnya secara otomatis tersedia untuk aplikasi Anda. [Demikian juga, jika Anda menggunakan Amazon ECS atau Amazon EKS container, kredensi yang ditetapkan untuk peran IAM dapat diperoleh secara otomatis oleh kode yang berjalan di dalam container melalui rantai penyedia kredensi SDK.](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain)

#### Apakah kode Anda ada dalam instans Amazon Elastic Compute Cloud?
<a name="a1"></a>

[Menggunakan peran IAM untuk mengautentikasi aplikasi yang digunakan ke Amazon EC2](access-iam-roles-for-ec2.md)— Gunakan peran IAM untuk menjalankan aplikasi Anda dengan aman di instans Amazon EC2.

#### Apakah kode Anda dalam suatu AWS Lambda fungsi?
<a name="a2"></a>

Lambda membuat peran eksekusi dengan izin minimal saat Anda membuat fungsi [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). AWS SDK atau alat kemudian secara otomatis menggunakan peran IAM yang dilampirkan ke Lambda saat runtime, melalui lingkungan eksekusi Lambda.

#### Apakah kode Anda di Amazon Elastic Container Service (di Amazon EC2 atau untuk AWS Fargate Amazon ECS)?
<a name="a3"></a>

Gunakan Peran IAM untuk Tugas. Anda harus [membuat peran tugas dan menentukan peran](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) itu dalam [definisi tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) Anda. AWS SDK atau alat kemudian secara otomatis menggunakan peran IAM yang ditetapkan ke tugas saat runtime, melalui metadata Amazon ECS.

#### Apakah kode Anda ada di Amazon Elastic Kubernetes Service?
<a name="a4"></a>

Kami menyarankan Anda menggunakan [Amazon EKS Pod Identities.](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)

Catatan: Jika Anda merasa bahwa [peran IAM untuk akun layanan](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) (IRSA) mungkin lebih sesuai dengan kebutuhan unik Anda, lihat [Membandingkan Identitas Pod EKS dan IRSA di Panduan](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-accounts-iam) Pengguna **Amazon EKS**.

#### Apakah kode Anda berjalan di AWS CodeBuild
<a name="a5"></a>

Lihat [Menggunakan kebijakan berbasis identitas](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html) untuk. CodeBuild

#### Apakah kode Anda di yang lain Layanan AWS?
<a name="a6"></a>

Lihat panduan khusus untuk Anda Layanan AWS. Saat Anda menjalankan kode AWS, [rantai penyedia kredensi](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) SDK dapat secara otomatis memperoleh dan menyegarkan kredensil untuk Anda.

### Apakah Anda membuat aplikasi seluler atau aplikasi web berbasis klien?
<a name="b"></a>

Jika Anda membuat aplikasi seluler atau aplikasi web berbasis klien yang memerlukan akses AWS, buat aplikasi Anda sehingga meminta kredensil AWS keamanan sementara secara dinamis dengan menggunakan federasi identitas web. 

Dengan federasi identitas web, Anda tidak perlu membuat kode masuk khusus atau mengelola identitas pengguna Anda sendiri. Sebagai gantinya, pengguna aplikasi dapat masuk menggunakan penyedia identitas eksternal (IDP) yang terkenal, seperti Login with Amazon, Facebook, Google, atau IDP lain yang kompatibel dengan OpenID Connect (OIDC). Mereka dapat menerima token otentikasi, dan kemudian menukar token itu dengan kredensil keamanan sementara di peta AWS itu ke peran IAM dengan izin untuk menggunakan sumber daya di Anda. Akun AWS

Untuk mempelajari cara mengonfigurasi ini untuk SDK atau alat Anda, lihat[Dengan asumsi peran dengan identitas web atau OpenID Connect AWS SDKs untuk mengautentikasi dan alat](access-assume-role-web.md). 

Untuk aplikasi seluler, pertimbangkan untuk menggunakan Amazon Cognito. Amazon Cognito bertindak sebagai pialang identitas dan melakukan banyak pekerjaan federasi untuk Anda. Untuk informasi selengkapnya, lihat [Menggunakan Amazon Cognito untuk aplikasi seluler](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html) di Panduan Pengguna *IAM*. 

### Apakah Anda mengembangkan dan menjalankan kode secara lokal?
<a name="c"></a>

Kami merekomendasikan[Menggunakan kredensi konsol untuk AWS SDKs mengautentikasi dan alat](access-login.md).

Setelah alur otentikasi berbasis browser yang cepat, AWS secara otomatis menghasilkan kredensil sementara yang berfungsi di seluruh alat pengembangan lokal seperti CLI, dan. AWS Alat AWS untuk PowerShell AWS SDKs 

#### Jika Anda menggunakan Pusat Identitas untuk akses AWS akun
<a name="idc"></a>

Gunakan Pusat Identitas IAM untuk mengautentikasi AWS SDK dan alat jika Anda sudah memiliki akses ke AWS akun yang and/or perlu mengelola akses untuk tenaga kerja Anda. Sebagai praktik keamanan terbaik, sebaiknya gunakan AWS Organizations dengan IAM Identity Center untuk mengelola akses di semua AWS akun Anda. Anda dapat membuat pengguna di Pusat Identitas IAM, menggunakan Microsoft Active Directory, menggunakan penyedia identitas SAMP 2.0 (iDP), atau secara individual menggabungkan IDP Anda ke akun. AWS Untuk memeriksa apakah Wilayah Anda mendukung Pusat Identitas IAM, lihat titik akhir dan kuota Pusat [Menggunakan IAM Identity Center untuk mengautentikasi AWS SDK dan alat](access-sso.md) Identitas IAM di Referensi Umum Amazon Web Services.

#### Jika Anda mencari cara lain untuk mengautentikasi
<a name="owa"></a>

Buat pengguna IAM dengan hak istimewa dengan izin untuk masuk ke peran target Anda. `sts:AssumeRole` Kemudian konfigurasikan profil Anda untuk mengambil peran menggunakan `source_profile` pengaturan untuk pengguna tersebut.

Anda juga dapat menggunakan kredensil IAM sementara melalui variabel lingkungan atau file kredensi bersama AWS . Lihat Menggunakan kredensi jangka pendek untuk mengautentikasi AWS SDKs dan alat.

Catatan: Hanya di kotak pasir atau lingkungan belajar, Anda dapat mempertimbangkan Menggunakan kredensi jangka panjang untuk AWS SDKs mengautentikasi dan alat.

### Apakah kode ini berjalan di lokasi atau dalam VM hibrid/sesuai permintaan (seperti server yang membaca dari atau menulis ke Amazon S3, atau Jenkins menyebarkan ke cloud)?
<a name="d"></a>

#### Apakah Anda menggunakan sertifikat klien X.509?
<a name="d1"></a>

Ya: Lihat[Menggunakan Peran IAM Di Mana Saja untuk mengautentikasi dan AWS SDKs alat](access-rolesanywhere.md). Anda dapat menggunakan IAM Roles Anywhere untuk mendapatkan kredensil keamanan sementara di IAM untuk beban kerja seperti server, kontainer, dan aplikasi yang berjalan di luar. AWS Untuk menggunakan Peran IAM Di Mana Saja, beban kerja Anda harus menggunakan sertifikat X.509.

#### Dapatkah lingkungan terhubung dengan aman ke penyedia identitas federasi (seperti Microsoft Entra atau Okta) untuk meminta kredensil sementara? AWS
<a name="d2"></a>

##### Ya: Gunakan [Penyedia kredensi proses](feature-process-credentials.md)
<a name="d2a"></a>

Gunakan [Penyedia kredensi proses](feature-process-credentials.md) untuk mengambil kredensil secara otomatis saat runtime. Sistem ini mungkin menggunakan alat pembantu atau plugin untuk mendapatkan kredensil, dan mungkin mengambil peran IAM di belakang layar menggunakan. `sts:AssumeRole`

##### Tidak: Gunakan kredensil sementara yang disuntikkan melalui AWS Secrets Manager
<a name="d2b"></a>

Gunakan kredensil sementara yang disuntikkan melalui. AWS Secrets Manager Untuk opsi untuk mendapatkan kunci akses berumur pendek, lihat [Meminta kredensil keamanan sementara di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) *IAM*. Untuk opsi menyimpan kredensil sementara ini, lihat. [AWS kunci akses](feature-static-credentials.md)

Anda dapat menggunakan kredensil ini untuk mengambil izin aplikasi yang lebih luas dari Secrets [Manager dengan aman, tempat rahasia produksi atau kredenal](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) berbasis peran yang berumur panjang dapat disimpan.

### Apakah Anda menggunakan alat pihak ketiga yang tidak masuk AWS?
<a name="e"></a>

Gunakan dokumentasi yang ditulis oleh penyedia pihak ketiga Anda untuk panduan terbaik tentang mendapatkan kredensi.

#### Jika pihak ketiga Anda belum memberikan dokumentasi, dapatkah Anda menyuntikkan kredensil sementara dengan aman?
<a name="e1"></a>

Ya: Gunakan variabel lingkungan dan AWS STS kredensil sementara.

Tidak: Gunakan kunci akses statis yang disimpan di manajer rahasia terenkripsi (pilihan terakhir).

## Metode otentikasi
<a name="authOptions"></a>

**Metode otentikasi untuk kode yang berjalan dalam lingkungan AWS **

Jika kode Anda berjalan AWS, kredensi dapat dibuat secara otomatis tersedia untuk aplikasi Anda. Misalnya, jika aplikasi Anda di-host di Amazon Elastic Compute Cloud, dan terdapat peran IAM yang terkait dengan sumber daya tersebut, kredensialnya secara otomatis tersedia untuk aplikasi Anda. Demikian juga, jika Anda menggunakan Amazon ECS atau Amazon EKS container, kredensi yang ditetapkan untuk peran IAM dapat diperoleh secara otomatis oleh kode yang berjalan di dalam container melalui rantai penyedia kredensi SDK.
+ [Menggunakan peran IAM untuk mengautentikasi aplikasi yang digunakan ke Amazon EC2](access-iam-roles-for-ec2.md)— Gunakan peran IAM untuk menjalankan aplikasi Anda dengan aman di instans Amazon EC2. 
+  Anda dapat berinteraksi secara terprogram dengan AWS menggunakan IAM Identity Center dengan cara berikut:
  + Gunakan [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/)untuk menjalankan AWS CLI perintah dari konsol.
  + [Untuk mencoba ruang kolaborasi berbasis cloud untuk tim pengembangan perangkat lunak, pertimbangkan untuk menggunakan Amazon. CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/welcome.html) 

**Otentikasi melalui penyedia identitas berbasis web - Aplikasi web seluler atau berbasis klien**

Jika Anda membuat aplikasi seluler atau aplikasi web berbasis klien yang memerlukan akses AWS, buat aplikasi Anda sehingga meminta kredensil AWS keamanan sementara secara dinamis dengan menggunakan federasi identitas web. 

Dengan federasi identitas web, Anda tidak perlu membuat kode masuk khusus atau mengelola identitas pengguna Anda sendiri. Sebagai gantinya, pengguna aplikasi dapat masuk menggunakan penyedia identitas eksternal (IDP) yang terkenal, seperti Login with Amazon, Facebook, Google, atau IDP lain yang kompatibel dengan OpenID Connect (OIDC). Mereka dapat menerima token otentikasi, dan kemudian menukar token itu dengan kredensil keamanan sementara di peta AWS itu ke peran IAM dengan izin untuk menggunakan sumber daya di Anda. Akun AWS

Untuk mempelajari cara mengonfigurasi ini untuk SDK atau alat Anda, lihat[Dengan asumsi peran dengan identitas web atau OpenID Connect AWS SDKs untuk mengautentikasi dan alat](access-assume-role-web.md). 

Untuk aplikasi seluler, pertimbangkan untuk menggunakan Amazon Cognito. Amazon Cognito bertindak sebagai pialang identitas dan melakukan banyak pekerjaan federasi untuk Anda. Untuk informasi selengkapnya, lihat [Menggunakan Amazon Cognito untuk aplikasi seluler](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html) di Panduan Pengguna *IAM*. 

**Metode otentikasi untuk kode yang berjalan secara lokal (tidak masuk) AWS**
+ [Menggunakan kredensi konsol untuk AWS SDKs mengautentikasi dan alat](access-login.md)— Fitur ini bekerja dengan Antarmuka Baris AWS Perintah dan Alat untuk PowerShell dan memberi Anda kredensil yang dapat disegarkan yang bekerja di seluruh alat pengembangan lokal seperti AWS CLI, Alat untuk dan. PowerShell AWS
+ [Menggunakan IAM Identity Center untuk mengautentikasi AWS SDK dan alat](access-sso.md)— Sebagai praktik keamanan terbaik, kami sarankan menggunakan AWS Organizations dengan IAM Identity Center untuk mengelola akses di semua Anda Akun AWS. Anda dapat membuat pengguna di AWS IAM Identity Center, menggunakan Microsoft Active Directory, menggunakan penyedia identitas SAMP 2.0 (iDP), atau secara individual menggabungkan IDP Anda ke. Akun AWS Untuk memeriksa apakah Wilayah Anda mendukung Pusat Identitas IAM, lihat [AWS IAM Identity Center titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/sso.html) di. *Referensi Umum Amazon Web* 
+ [Menggunakan Peran IAM Di Mana Saja untuk mengautentikasi dan AWS SDKs alat](access-rolesanywhere.md)— Anda dapat menggunakan IAM Roles Anywhere untuk mendapatkan kredensil keamanan sementara di IAM untuk beban kerja seperti server, kontainer, dan aplikasi yang berjalan di luar. AWS Untuk menggunakan Peran IAM Di Mana Saja, beban kerja Anda harus menggunakan sertifikat X.509. 
+  [Dengan asumsi peran dengan AWS kredensi untuk mengautentikasi dan alat AWS SDKs](access-assume-role.md)— Anda dapat mengambil peran IAM untuk mengakses AWS sumber daya sementara yang mungkin tidak dapat Anda akses sebaliknya. 
+  [Menggunakan tombol AWS akses untuk mengautentikasi AWS SDKs dan alat](access-users.md)— Pilihan lain yang mungkin kurang nyaman atau mungkin meningkatkan risiko keamanan untuk AWS sumber daya Anda. 

**Informasi lebih lanjut tentang manajemen akses**

*Panduan Pengguna IAM* memiliki informasi berikut tentang mengontrol akses ke AWS sumber daya secara aman:
+ [Identitas IAM (pengguna, grup pengguna, dan peran)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) - Memahami dasar-dasar identitas di. AWS
+ [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) — Rekomendasi keamanan untuk diikuti ketika mengembangkan AWS aplikasi sesuai dengan model tanggung jawab [bersama.](https://aws.amazon.com/compliance/shared-responsibility-model/)

Ini *Referensi Umum Amazon Web*memiliki dasar-dasar dasar sebagai berikut:
+ [Memahami dan mendapatkan AWS kredensil Anda](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) — Akses opsi kunci dan praktik manajemen untuk akses konsol dan program.

**Plugin IAM Identity Center tepercaya propagasi identitas (TIP) untuk diakses Layanan AWS**
+ [Menggunakan plugin TIP untuk mengakses Layanan AWS](access-tip.md)— Jika Anda membuat aplikasi untuk Amazon Q Business atau layanan lain yang mendukung propagasi identitas tepercaya, dan menggunakan AWS SDK untuk Java atau AWS SDK untuk JavaScript, Anda dapat menggunakan plugin TIP untuk pengalaman otorisasi yang efisien. 

## ID AWS Builder
<a name="bid"></a>

Anda ID AWS Builder melengkapi apa pun yang mungkin sudah Akun AWS Anda miliki atau ingin buat. Sementara Akun AWS bertindak sebagai wadah untuk AWS sumber daya yang Anda buat dan menyediakan batas keamanan untuk sumber daya tersebut, Anda ID AWS Builder mewakili Anda sebagai individu. Anda dapat masuk dengan Anda ID AWS Builder untuk mengakses alat dan layanan pengembang seperti Amazon Q dan Amazon CodeCatalyst.
+ [ID AWS Builder Masuk dengan](https://docs.aws.amazon.com/signin/latest/userguide/sign-in-aws_builder_id.html) *Panduan AWS Sign-In Pengguna* — Pelajari cara membuat dan menggunakan ID AWS Builder dan mempelajari apa yang disediakan Builder ID.
+ [CodeCatalystkonsep - ID AWS Builder](https://docs.aws.amazon.com/codecatalyst/latest/userguide/concepts.html#sign-in-concept) di *Panduan CodeCatalyst Pengguna Amazon* - Pelajari cara CodeCatalyst menggunakan file ID AWS Builder.

# Menggunakan kredensi konsol untuk AWS SDKs mengautentikasi dan alat
<a name="access-login"></a>

Menggunakan kredensil konsol adalah metode yang disarankan untuk memberikan AWS kredensil saat mengembangkan AWS aplikasi di lingkungan lokal Anda atau lingkungan layanan AWS non-komputasi lainnya. Jika Anda mengembangkan AWS sumber daya, seperti Amazon Elastic Compute Cloud (Amazon EC2) AWS CloudShell atau, sebaiknya Anda mendapatkan kredensi dari layanan tersebut.

Anda juga dapat melakukan autentikasi melalui IAM Identity Center. [Menggunakan IAM Identity Center untuk mengautentikasi AWS SDK dan alat](access-sso.md) Opsi ini adalah cara umum bagi organisasi untuk mengelola akses bagi tenaga kerja mereka dan mengharuskan Pusat Identitas diaktifkan.

## Bagaimana cara kerjanya?
<a name="access-login-how"></a>

[Login untuk pengembangan AWS lokal menggunakan kredenal konsol](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html) memungkinkan Anda menggunakan kredenal masuk Konsol AWS Manajemen yang ada untuk akses terprogram ke layanan. AWS Setelah alur otentikasi berbasis browser, buat AWS kredensil sementara yang berfungsi di seluruh alat pengembangan lokal seperti CLI AWS , Alat untuk dan. PowerShell AWS SDKs Fitur ini menyederhanakan proses konfigurasi dan pengelolaan kredensional AWS CLI, terutama jika Anda lebih memilih otentikasi interaktif daripada mengelola kunci akses jangka panjang.

Dengan proses ini, Anda dapat mengautentikasi menggunakan kredensi root yang dibuat selama penyiapan akun awal, pengguna IAM, atau identitas gabungan dari penyedia identitas Anda.

Jika Anda menggunakan SDKs untuk pengembangan, klien SDK akan menggunakan kredenal sementara melalui file. [AWS SDKs dan Penyedia kredensi standar Alat](standardized-credentials.md) Anda juga dapat mengkonfigurasi file[Penyedia kredensi login](feature-login-credentials.md).

Otentikasi melalui perintah login didukung oleh AWS CLI dan Tools untuk: PowerShell
+ [Login untuk pengembangan AWS lokal menggunakan kredensil konsol](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)
+ [Login menggunakan kredenal konsol](https://docs.aws.amazon.com/powershell/v5/userguide/creds-idc.html#login-con-creds) di panduan pengguna Alat AWS untuk PowerShell 

# Menggunakan IAM Identity Center untuk mengautentikasi AWS SDK dan alat
<a name="access-sso"></a>

 AWS IAM Identity Center dapat digunakan untuk memberikan AWS kredensil ketika mengembangkan AWS aplikasi pada lingkungan layanan AWS non-komputasi. Jika Anda mengembangkan AWS sumber daya, seperti Amazon Elastic Compute Cloud (Amazon EC2) AWS Cloud9 atau, sebaiknya Anda mendapatkan kredensi dari layanan tersebut.

Gunakan autentikasi Pusat Identitas IAM jika Anda sudah menggunakan Pusat Identitas untuk akses AWS akun atau perlu mengelola akses untuk organisasi. 

Dalam tutorial ini, Anda membuat akses IAM Identity Center dan akan mengkonfigurasinya untuk SDK atau alat Anda dengan menggunakan portal AWS akses dan. AWS CLI
+ Portal AWS akses adalah lokasi web tempat Anda masuk secara manual ke Pusat Identitas IAM. Format URL adalah `d-xxxxxxxxxx.awsapps.com/start` atau`your_subdomain.awsapps.com/start`. Saat masuk ke portal AWS akses, Anda dapat melihat Akun AWS dan peran yang telah dikonfigurasi untuk pengguna tersebut. Prosedur ini menggunakan portal AWS akses untuk mendapatkan nilai konfigurasi yang Anda butuhkan untuk proses SDK/tool otentikasi. 
+  AWS CLI Ini digunakan untuk mengonfigurasi SDK atau alat Anda untuk menggunakan autentikasi IAM Identity Center untuk panggilan API yang dibuat oleh kode Anda. Proses satu kali ini memperbarui AWS `config` file bersama Anda, yang kemudian digunakan oleh SDK atau alat saat Anda menjalankan kode. 

## Prasyarat
<a name="prereq-auth"></a>

Sebelum memulai prosedur ini, Anda harus menyelesaikan yang berikut:
+ Jika Anda tidak memiliki Akun AWS, [mendaftar untuk Akun AWS](https://portal.aws.amazon.com/billing/signup).
+ Jika Anda belum mengaktifkan IAM Identity Center, [aktifkan IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) dengan mengikuti petunjuk di *AWS IAM Identity Center Panduan Pengguna*.

## Konfigurasikan akses terprogram menggunakan IAM Identity Center
<a name="idcGettingStarted"></a>

### Langkah 1: Tetapkan akses dan pilih set izin yang sesuai
<a name="establishAccess"></a>

Pilih salah satu metode berikut untuk mengakses AWS kredensional Anda.

#### Saya tidak memiliki akses melalui IAM Identity Center
<a name="idc-access"></a>

1. Tambahkan pengguna dan tambahkan izin administratif dengan mengikuti [Konfigurasi akses pengguna dengan prosedur direktori Pusat Identitas IAM default](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html) di *AWS IAM Identity Center Panduan Pengguna*. 

1. Set `AdministratorAccess` izin tidak boleh digunakan untuk pengembangan reguler. Sebagai gantinya, sebaiknya gunakan set `PowerUserAccess` izin yang telah ditentukan sebelumnya, kecuali majikan Anda telah membuat set izin khusus untuk tujuan ini.

   Ikuti hal yang sama [Konfigurasikan akses pengguna dengan prosedur direktori Pusat Identitas IAM default](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html) lagi, tetapi kali ini:
   + Alih-alih membuat `Admin team` grup, buat `Dev team` grup, dan ganti ini setelahnya dalam instruksi.
   + Anda dapat menggunakan pengguna yang ada, tetapi pengguna harus ditambahkan ke `Dev team` grup baru.
   + Alih-alih membuat set `AdministratorAccess` izin, buat set `PowerUserAccess` izin, dan ganti ini setelahnya dalam instruksi.

   Setelah selesai, Anda harus memiliki yang berikut:
   + Sebuah `Dev team` kelompok.
   + `PowerUserAccess`Izin terlampir yang disetel ke `Dev team` grup.
   + Pengguna Anda ditambahkan ke `Dev team` grup.

1. Keluar dari portal dan masuk lagi untuk melihat opsi Anda Akun AWS dan untuk `Administrator` atau`PowerUserAccess`. Pilih `PowerUserAccess` saat bekerja dengan alat/SDK Anda. 

#### Saya sudah memiliki akses AWS melalui penyedia identitas federasi yang dikelola oleh majikan saya (seperti Microsoft Entra atau Okta)
<a name="federated-access"></a>

Masuk AWS melalui portal penyedia identitas Anda. Jika Administrator Cloud Anda telah memberi Anda izin `PowerUserAccess` (pengembang), Anda akan melihat Akun AWS bahwa Anda memiliki akses ke dan izin Anda ditetapkan. Di samping nama set izin Anda, Anda melihat opsi untuk mengakses akun secara manual atau terprogram menggunakan set izin tersebut. 

Implementasi kustom dapat menghasilkan pengalaman yang berbeda, seperti nama set izin yang berbeda. Jika Anda tidak yakin izin mana yang disetel untuk digunakan, hubungi tim TI Anda untuk mendapatkan bantuan. 

#### Saya sudah memiliki akses AWS melalui portal AWS akses yang dikelola oleh majikan saya
<a name="accessportal-access"></a>

Masuk AWS melalui portal AWS akses. Jika Administrator Cloud Anda telah memberi Anda izin `PowerUserAccess` (pengembang), Anda akan melihat Akun AWS bahwa Anda memiliki akses ke dan izin Anda ditetapkan. Di samping nama set izin Anda, Anda melihat opsi untuk mengakses akun secara manual atau terprogram menggunakan set izin tersebut. 

#### Saya sudah memiliki akses AWS melalui penyedia identitas kustom federasi yang dikelola oleh majikan saya
<a name="customfederated-access"></a>

Hubungi tim TI Anda untuk bantuan.

### Langkah 2: Konfigurasi SDKs dan alat untuk menggunakan IAM Identity Center
<a name="configureAccess"></a>

1.  Pada mesin pengembangan Anda, instal yang terbaru AWS CLI. 

   1. Lihat [Menginstal atau memperbarui versi terbaru AWS CLI dari](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) *Panduan AWS Command Line Interface Pengguna*. 

   1.  (Opsional) Untuk memverifikasi AWS CLI bahwa berfungsi, buka prompt perintah dan jalankan `aws --version` perintah. 

1. Masuk ke portal AWS akses. Majikan Anda dapat memberikan URL ini atau Anda mungkin mendapatkannya dalam email berikut **Langkah 1: Tetapkan akses**. Jika tidak, temukan **URL portal AWS akses** Anda di **Dasbor [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)**. 

   1. Di portal AWS akses, di tab **Akun**, pilih akun individual untuk dikelola. Peran untuk pengguna Anda ditampilkan. Pilih **tombol Access** untuk mendapatkan kredensional untuk baris perintah atau akses terprogram untuk set izin yang sesuai. Gunakan set `PowerUserAccess` izin yang telah ditentukan sebelumnya, atau izin mana pun yang telah Anda atau perusahaan Anda buat untuk menerapkan izin hak istimewa paling sedikit untuk pengembangan. 

   1. Di kotak dialog **Dapatkan kredensi**, pilih **macOS dan Linux** atau **Windows**, tergantung pada sistem operasi Anda.

   1. Pilih metode **kredensial Pusat Identitas IAM** untuk mendapatkan `SSO Region` nilai `Issuer URL` dan nilai yang Anda butuhkan untuk langkah berikutnya. Catatan: `SSO Start URL` dapat digunakan secara bergantian dengan. `Issuer URL`

1. Di AWS CLI command prompt, jalankan `aws configure sso` perintah. Saat diminta, masukkan nilai konfigurasi yang Anda kumpulkan di langkah sebelumnya. Untuk detail tentang AWS CLI perintah ini, lihat [Mengkonfigurasi profil Anda dengan `aws configure sso` wizard](https://docs.aws.amazon.com/cli/latest/userguide/sso-configure-profile-token.html#sso-configure-profile-token-auto-sso). 

   1. Untuk prompt`SSO Start URL`, masukkan nilai yang Anda peroleh`Issuer URL`. 

   1.  Untuk **nama profil CLI**, kami sarankan masuk *default* saat Anda memulai. Untuk informasi tentang cara menyetel profil non-default (bernama) dan variabel lingkungan terkaitnya, lihat[Profil](file-format.md#file-format-profile). 

1. (Opsional) Pada prompt AWS CLI perintah, konfirmasikan identitas sesi aktif dengan menjalankan `aws sts get-caller-identity` perintah. Respons harus menunjukkan set izin IAM Identity Center yang Anda konfigurasikan. 

1. Jika Anda menggunakan AWS SDK, buat aplikasi untuk SDK Anda di lingkungan pengembangan Anda.

   1. Untuk beberapa SDKs, paket tambahan seperti `SSO` dan `SSOOIDC` harus ditambahkan ke aplikasi Anda sebelum Anda dapat menggunakan autentikasi IAM Identity Center. Untuk detailnya, lihat SDK spesifik Anda.

   1.  Jika sebelumnya Anda mengonfigurasi akses ke AWS, tinjau AWS `credentials` file bersama Anda untuk apa pun[AWS kunci akses](feature-static-credentials.md). Anda harus menghapus kredensi statis apa pun sebelum SDK atau alat akan menggunakan kredensil Pusat Identitas IAM karena diutamakan. [Memahami rantai penyedia kredensi](standardized-credentials.md#credentialProviderChain) 

 Untuk mempelajari lebih dalam bagaimana alat SDKs dan menggunakan dan menyegarkan kredensional menggunakan konfigurasi ini, lihat. [Bagaimana otentikasi IAM Identity Center diselesaikan untuk AWS SDKs dan alat](understanding-sso.md) 

Untuk mengonfigurasi setelan penyedia Pusat Identitas IAM secara langsung di `config` file bersama, lihat [Penyedia kredensi Pusat Identitas IAM](feature-sso-credentials.md) di panduan ini.

## Menyegarkan sesi akses portal
<a name="refreshSession"></a>

Akses Anda pada akhirnya akan kedaluwarsa dan SDK atau alat akan mengalami kesalahan otentikasi. Kapan kedaluwarsa ini terjadi tergantung pada panjang sesi yang dikonfigurasi. Untuk me-refresh sesi portal akses lagi bila diperlukan, gunakan AWS CLI untuk menjalankan `aws sso login` perintah. 

Anda dapat memperpanjang durasi sesi portal akses IAM Identity Center dan durasi sesi yang ditetapkan izin. Ini memperpanjang jumlah waktu Anda dapat menjalankan kode sebelum Anda perlu masuk lagi secara manual dengan kode. AWS CLI Untuk informasi selengkapnya, lihat topik berikut di *Panduan Pengguna AWS IAM Identity Center *:
+ **Durasi sesi Pusat Identitas IAM** — [Konfigurasikan durasi sesi portal AWS akses pengguna Anda](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html) 
+ **Izin mengatur durasi sesi** - [Mengatur durasi sesi](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)

# Bagaimana otentikasi IAM Identity Center diselesaikan untuk AWS SDKs dan alat
<a name="understanding-sso"></a>



## Ketentuan Pusat Identitas IAM yang relevan
<a name="ssoterms"></a>

Istilah berikut membantu Anda memahami proses dan konfigurasi di belakang AWS IAM Identity Center. Dokumentasi untuk AWS SDK APIs menggunakan nama yang berbeda dari IAM Identity Center untuk beberapa konsep otentikasi ini. Sangat membantu untuk mengetahui kedua nama tersebut. 

Tabel berikut menunjukkan bagaimana nama-nama alternatif berhubungan satu sama lain.


| Nama Pusat Identitas IAM | Nama API SDK | Deskripsi | 
| --- | --- | --- | 
| Pusat Identitas  | sso  | Meskipun AWS Single Sign-On diganti namanya, ruang nama sso API akan mempertahankan nama aslinya untuk tujuan kompatibilitas mundur. Untuk informasi selengkapnya, lihat [ganti nama Pusat Identitas IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) di AWS IAM Identity Center Panduan Pengguna. | 
| Konsol Pusat Identitas IAMKonsol administratif |   | Konsol yang Anda gunakan untuk mengonfigurasi sistem masuk tunggal.  | 
| AWS URL portal akses  |  | URL yang unik untuk akun Pusat Identitas IAM Anda, sepertihttps://xxx.awsapps.com/start. Anda masuk ke portal ini menggunakan kredenal masuk Pusat Identitas IAM Anda.  | 
| Sesi Portal Akses Pusat Identitas IAM  | Sesi otentikasi  | Menyediakan token akses pembawa ke penelepon.  | 
| Sesi set izin  |   | Sesi IAM yang digunakan SDK secara internal untuk melakukan panggilan. Layanan AWS Dalam diskusi informal, Anda mungkin melihat ini salah disebut sebagai “sesi peran.” | 
| Izin menetapkan kredensional  | AWS kredensialnyakredensi sigv4  | Kredensi yang sebenarnya digunakan SDK untuk sebagian besar Layanan AWS panggilan (khususnya, semua panggilan Layanan AWS sigv4). Dalam diskusi informal, Anda mungkin melihat ini salah disebut sebagai “kredensial peran.” | 
| Penyedia kredensi Pusat Identitas IAM  | Penyedia kredensi SSO  | Bagaimana Anda mendapatkan kredensialnya, seperti kelas atau modul yang menyediakan fungsionalitas.  | 

## Memahami resolusi kredensi SDK untuk Layanan AWS
<a name="idccredres"></a>

API Pusat Identitas IAM menukar kredenal token pembawa untuk kredenal sigv4. Sebagian besar Layanan AWS adalah sigv4 APIs, dengan beberapa pengecualian seperti dan. Amazon CodeWhisperer Amazon CodeCatalyst Berikut ini menjelaskan proses resolusi kredenal untuk mendukung sebagian besar Layanan AWS panggilan untuk kode aplikasi Anda. AWS IAM Identity Center

### Memulai sesi portal AWS akses
<a name="idccredres1"></a>
+ Mulai proses dengan masuk ke sesi dengan kredensi Anda.
  + Gunakan `aws sso login` perintah di AWS Command Line Interface (AWS CLI). Ini memulai sesi Pusat Identitas IAM baru jika Anda belum memiliki sesi aktif.
+ Saat memulai sesi baru, Anda menerima token penyegaran dan token akses dari IAM Identity Center. Ini AWS CLI juga memperbarui file JSON cache SSO dengan token akses baru dan token penyegaran dan membuatnya tersedia untuk digunakan oleh. SDKs
+ Jika Anda sudah memiliki sesi aktif, AWS CLI perintah menggunakan kembali sesi yang ada dan akan kedaluwarsa setiap kali sesi yang ada berakhir. Untuk mempelajari cara mengatur panjang sesi Pusat Identitas IAM, lihat [Mengonfigurasi durasi sesi portal AWS akses pengguna Anda](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html) di *AWS IAM Identity Center Panduan Pengguna*. 
  + Panjang sesi maksimum telah diperpanjang hingga 90 hari untuk mengurangi kebutuhan untuk sering masuk.

### Bagaimana SDK mendapatkan kredensional untuk panggilan Layanan AWS
<a name="idccredres2"></a>

SDKs menyediakan akses ke Layanan AWS saat Anda membuat instance objek klien per layanan. Ketika profil yang dipilih dari AWS `config` file bersama dikonfigurasi untuk resolusi kredensi Pusat Identitas IAM, Pusat Identitas IAM digunakan untuk menyelesaikan kredensil untuk aplikasi Anda. 
+ [Proses resolusi kredenal](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) selesai selama runtime ketika klien dibuat.

Untuk mengambil kredensil sigv4 APIs menggunakan sistem masuk tunggal Pusat Identitas IAM, SDK menggunakan token akses Pusat Identitas IAM untuk mendapatkan sesi IAM. Sesi IAM ini disebut sesi set izin, dan menyediakan AWS akses ke SDK dengan mengasumsikan peran IAM. 
+  Durasi sesi yang ditetapkan izin diatur secara independen dari durasi sesi Pusat Identitas IAM.
  + Untuk mempelajari cara menyetel durasi sesi yang ditetapkan izin, lihat [Mengatur durasi sesi](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html) di *Panduan AWS IAM Identity Center Pengguna*.
+  Ketahuilah bahwa kredenal set izin juga disebut sebagai kredensial dan *AWS kredensial* *sigv4* di sebagian besar dokumentasi SDK API. AWS 

Kredensial set izin dikembalikan dari panggilan ke API Pusat [getRoleCredentials](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html)Identitas IAM ke SDK. Objek klien SDK menggunakan peran IAM yang diasumsikan untuk melakukan panggilan ke Layanan AWS, seperti meminta Amazon S3 untuk mencantumkan bucket di akun Anda. Objek klien dapat terus beroperasi menggunakan kredenal set izin tersebut hingga sesi set izin berakhir. 

### Kedaluwarsa sesi dan penyegaran
<a name="idccredres3"></a>

Saat menggunakan token akses per jam yang diperoleh dari IAM Identity Center secara otomatis di-refresh menggunakan token penyegaran. [Konfigurasi penyedia token SSO](feature-sso-credentials.md#sso-token-config)
+ Jika token akses kedaluwarsa saat SDK mencoba menggunakannya, SDK menggunakan token penyegaran untuk mencoba mendapatkan token akses baru. Pusat Identitas IAM membandingkan token penyegaran dengan durasi sesi portal akses Pusat Identitas IAM Anda. Jika token penyegaran tidak kedaluwarsa, Pusat Identitas IAM merespons dengan token akses lain.
+ Token akses ini dapat digunakan untuk menyegarkan sesi set izin klien yang ada, atau untuk menyelesaikan kredensi untuk klien baru. 

Namun, jika sesi portal akses IAM Identity Center kedaluwarsa, maka tidak ada token akses baru yang diberikan. Oleh karena itu, durasi yang ditetapkan izin tidak dapat diperpanjang. Ini akan kedaluwarsa (dan akses akan hilang) setiap kali izin yang di-cache menetapkan waktu lama sesi habis untuk klien yang ada. 

Kode apa pun yang membuat klien baru akan gagal otentikasi segera setelah sesi IAM Identity Center berakhir. Ini karena kredenal set izin tidak di-cache. Kode Anda tidak akan dapat membuat klien baru dan menyelesaikan proses resolusi kredensi sampai Anda memiliki token akses yang valid. 

Untuk rekap, saat SDK memerlukan kredenal set izin baru, SDK terlebih dahulu memeriksa kredenal yang valid dan sudah ada dan menggunakannya. Ini berlaku apakah kredensialnya untuk klien baru atau untuk klien yang sudah ada dengan kredensi kedaluwarsa. Jika kredensialnya tidak ditemukan atau tidak valid, maka SDK akan memanggil API Pusat Identitas IAM untuk mendapatkan kredensi baru. Untuk memanggil API, diperlukan token akses. Jika token akses kedaluwarsa, SDK menggunakan token penyegaran untuk mencoba mendapatkan token akses baru dari layanan Pusat Identitas IAM. Token ini diberikan jika sesi portal akses Pusat Identitas IAM Anda tidak kedaluwarsa. 

# Menggunakan Peran IAM Di Mana Saja untuk mengautentikasi dan AWS SDKs alat
<a name="access-rolesanywhere"></a>

Anda dapat menggunakan IAM Roles Anywhere untuk mendapatkan kredenal keamanan sementara di IAM untuk beban kerja seperti server, kontainer, dan aplikasi yang berjalan di luar. AWS Untuk menggunakan Peran IAM Di Mana Saja, beban kerja Anda harus menggunakan sertifikat X.509. Administrator Cloud Anda harus menyediakan sertifikat dan kunci pribadi yang diperlukan untuk mengonfigurasi Peran IAM Anywhere sebagai penyedia kredensi Anda.

## Langkah 1: Konfigurasikan Peran IAM Di Mana Saja
<a name="config-ira"></a>

IAM Roles Anywhere menyediakan cara untuk mendapatkan kredensi sementara untuk beban kerja atau proses yang berjalan di luar. AWS Jangkar kepercayaan didirikan dengan otoritas sertifikat untuk mendapatkan kredensi sementara untuk peran IAM terkait. Peran menetapkan izin yang akan dimiliki beban kerja Anda saat kode Anda diautentikasi dengan IAM Roles Anywhere.

Untuk langkah-langkah menyiapkan profil jangkar kepercayaan, peran IAM, dan Peran IAM Di Mana Saja, lihat [Membuat jangkar kepercayaan dan profil di Peran Di Mana Saja di Panduan Pengguna *IAM AWS Identity and Access Management * Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html).

**catatan**  
*Profil* dalam *Panduan Pengguna IAM Roles Anywhere* mengacu pada konsep unik dalam layanan IAM Roles Anywhere. Ini tidak terkait dengan profil dalam AWS `config` file bersama. 

## Langkah 2: Gunakan Peran IAM Di Mana Saja
<a name="use-ira"></a>

Untuk mendapatkan kredenal keamanan sementara dari IAM Roles Anywhere, gunakan alat bantu kredenal yang disediakan oleh IAM Roles Anywhere. Alat kredensi mengimplementasikan proses penandatanganan untuk IAM Roles Anywhere.

Untuk petunjuk mengunduh alat bantu kredensi, lihat [Memperoleh kredenal keamanan sementara dari AWS Identity and Access Management Peran Di Mana Saja di Panduan Pengguna *IAM* Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html).

Untuk menggunakan kredenal keamanan sementara dari IAM Roles Anywhere with AWS SDKs and the AWS CLI, Anda dapat mengonfigurasi `credential_process` pengaturan dalam file bersama. AWS `config` SDKs Dan AWS CLI mendukung penyedia kredensi proses yang digunakan `credential_process` untuk mengautentikasi. Berikut ini menunjukkan struktur umum yang akan ditetapkan`credential_process`.

```
credential_process = [path to helper tool] [command] [--parameter1 value] [--parameter2 value] [...]  
```

`credential-process`Perintah alat pembantu mengembalikan kredensi sementara dalam format JSON standar yang kompatibel dengan pengaturan. `credential_process` Perhatikan bahwa nama perintah berisi tanda hubung tetapi nama pengaturan berisi garis bawah. Perintah ini membutuhkan parameter berikut:
+ `private-key`— Jalur ke kunci pribadi yang menandatangani permintaan. 
+ ` certificate`— Jalan menuju sertifikat. 
+ `role-arn`— ARN dari peran untuk mendapatkan kredensi sementara untuk. 
+ `profile-arn`— ARN profil yang menyediakan pemetaan untuk peran yang ditentukan. 
+ `trust-anchor-arn`— ARN dari jangkar kepercayaan yang digunakan untuk mengotentikasi. 

Administrator Cloud Anda harus menyediakan sertifikat dan kunci pribadi. Ketiga nilai ARN dapat disalin dari file. Konsol Manajemen AWS Contoh berikut menunjukkan `config` file bersama yang mengonfigurasi pengambilan kredensional sementara dari alat pembantu. 

```
[profile dev]
credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID
```

 Untuk parameter opsional dan detail alat pembantu tambahan, lihat [IAM Roles Anywhere Credential](https://github.com/aws/rolesanywhere-credential-helper#readme) Helper aktif. GitHub 

Untuk detail tentang pengaturan konfigurasi SDK itu sendiri dan penyedia kredensi proses, lihat [Penyedia kredensi proses](feature-process-credentials.md) di panduan ini.

# Dengan asumsi peran dengan AWS kredensi untuk mengautentikasi dan alat AWS SDKs
<a name="access-assume-role"></a>

Dengan asumsi peran melibatkan penggunaan seperangkat kredenal keamanan sementara untuk mengakses AWS sumber daya yang mungkin tidak dapat Anda akses sebaliknya. Kredensial sementara ini terdiri dari access key ID, secret access key, dan token keamanan. Untuk mempelajari lebih lanjut tentang AWS Security Token Service (AWS STS) permintaan API, lihat [Tindakan](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html) di *Referensi AWS Security Token Service API*. 

Untuk menyiapkan SDK atau alat untuk mengambil peran, Anda harus terlebih dahulu membuat atau mengidentifikasi *peran* tertentu yang akan diambil. [Peran IAM diidentifikasi secara unik oleh peran Amazon Resource Name (ARN).](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) Peran membangun hubungan kepercayaan dengan entitas lain. Entitas tepercaya yang menggunakan peran tersebut mungkin satu Layanan AWS atau lainnya Akun AWS. Untuk mempelajari lebih lanjut tentang peran IAM, lihat [Menggunakan peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) di Panduan Pengguna *IAM*. 

Setelah peran IAM diidentifikasi, jika Anda dipercaya oleh peran tersebut, Anda dapat mengonfigurasi SDK atau alat untuk menggunakan izin yang diberikan oleh peran tersebut. 

**catatan**  
Ini adalah praktik AWS terbaik untuk menggunakan titik akhir Regional bila memungkinkan dan untuk mengkonfigurasi Anda[Wilayah AWS](feature-region.md). 

## Asumsikan peran IAM
<a name="credOrSourceAssumeRole"></a>

Saat mengasumsikan peran, AWS STS mengembalikan satu set kredensi keamanan sementara. Kredensi ini bersumber dari profil lain atau dari instance atau wadah tempat kode Anda berjalan. Paling umum jenis asumsi peran ini digunakan ketika Anda memiliki AWS kredensi untuk satu akun, tetapi aplikasi Anda memerlukan akses ke sumber daya di akun lain. 

### Langkah 1: Siapkan peran IAM
<a name="credOrSourceAssumeRole_step1"></a>

Untuk menyiapkan SDK atau alat untuk mengambil peran, Anda harus terlebih dahulu membuat atau mengidentifikasi peran tertentu yang akan diambil. [Peran IAM diidentifikasi secara unik menggunakan peran ARN.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) Peran membangun hubungan kepercayaan dengan entitas lain, biasanya di dalam akun Anda atau untuk akses lintas akun. Untuk mengatur ini, lihat [Membuat peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) di *Panduan Pengguna IAM*.

### Langkah 2: Konfigurasikan SDK atau alat
<a name="credOrSourceAssumeRole_step2"></a>

Konfigurasikan SDK atau alat untuk mendapatkan kredensional dari atau. `credential_source` `source_profile` 

Gunakan `credential_source` untuk sumber kredensional dari wadah Amazon ECS, instans Amazon EC2, atau dari variabel lingkungan. 

Gunakan `source_profile` untuk sumber kredensional dari profil lain. `source_profile`juga mendukung rantai peran, yang merupakan hierarki profil di mana peran yang diasumsikan kemudian digunakan untuk mengambil peran lain.

Saat Anda menentukan ini di profil, SDK atau alat secara otomatis membuat panggilan 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 yang sesuai untuk Anda. Untuk mengambil dan menggunakan kredenal sementara dengan mengasumsikan peran, tentukan nilai konfigurasi berikut dalam file bersama. AWS `config` Untuk detail selengkapnya tentang masing-masing pengaturan ini, lihat [Asumsikan pengaturan penyedia kredensi peran](feature-assume-role-credentials.md#feature-assume-role-credentials-settings) bagian. 
+ `role_arn`- Dari peran IAM yang Anda buat di Langkah 1
+ Konfigurasikan salah satu `credential_source` atau `source_profile`
+ (Opsional) `duration_seconds`
+ (Opsional) `external_id`
+ (Opsional) `mfa_serial`
+ (Opsional) `role_session_name` 

Contoh berikut menunjukkan konfigurasi kedua opsi peran asumsi dalam `config` file bersama:

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

```
[profile-with-user-that-can-assume-role]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[profile dev]
region = us-east-1
output = json
role_arn = arn:aws:iam::123456789012:role/my-role-name
source_profile = profile-with-user-that-can-assume-role
role_session_name = my_session
```

Untuk detail tentang semua pengaturan penyedia kredensi peran asumsi, lihat [Asumsikan penyedia kredensi peran](feature-assume-role-credentials.md) di panduan ini.

# Dengan asumsi peran dengan identitas web atau OpenID Connect AWS SDKs untuk mengautentikasi dan alat
<a name="access-assume-role-web"></a>

Dengan asumsi peran melibatkan penggunaan seperangkat kredensil keamanan sementara untuk mengakses AWS sumber daya yang mungkin tidak dapat Anda akses sebaliknya. Kredensial sementara ini terdiri dari access key ID, secret access key, dan token keamanan. Untuk mempelajari lebih lanjut tentang AWS Security Token Service (AWS STS) permintaan API, lihat [Tindakan](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html) di *Referensi AWS Security Token Service API*. 

Untuk menyiapkan SDK atau alat untuk mengambil peran, Anda harus terlebih dahulu membuat atau mengidentifikasi *peran* tertentu yang akan diambil. [Peran IAM diidentifikasi secara unik oleh peran Amazon Resource Name (ARN).](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) Peran membangun hubungan kepercayaan dengan entitas lain. Entitas tepercaya yang menggunakan peran tersebut mungkin penyedia identitas web atau OpenID Connect (OIDC), atau federasi SAMP. Untuk mempelajari selengkapnya tentang peran IAM, lihat [Metode untuk mengambil peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dalam *Panduan Pengguna IAM*. 

Setelah peran IAM dikonfigurasi di SDK Anda, jika peran tersebut dikonfigurasi untuk mempercayai penyedia identitas Anda, Anda dapat mengonfigurasi SDK lebih lanjut untuk mengambil peran tersebut agar mendapatkan kredensi sementara. AWS 

**catatan**  
Ini adalah praktik AWS terbaik untuk menggunakan titik akhir Regional bila memungkinkan dan untuk mengkonfigurasi Anda[Wilayah AWS](feature-region.md). 

## Bersekutu dengan identitas web atau OpenID Connect
<a name="webidentity"></a>

Anda dapat menggunakan JSON Web Tokens (JWTs) dari penyedia identitas publik, seperti Login With Amazon, Facebook, Google untuk mendapatkan AWS kredensi sementara menggunakan. `AssumeRoleWithWebIdentity` Tergantung pada bagaimana mereka digunakan, ini JWTs dapat disebut token ID atau token akses. Anda juga dapat menggunakan yang JWTs diterbitkan dari penyedia identitas (IdPs) yang kompatibel dengan protokol penemuan OIDC, seperti EntraId atau. PingFederate

Jika Anda menggunakan Amazon Elastic Kubernetes Service, fitur ini menyediakan kemampuan untuk menentukan peran IAM yang berbeda untuk setiap akun layanan Anda di klaster Amazon EKS. Fitur Kubernetes ini mendistribusikan JWTs ke pod Anda yang kemudian digunakan oleh penyedia kredensi ini untuk mendapatkan kredensi sementara. AWS Untuk informasi selengkapnya tentang konfigurasi Amazon EKS ini, lihat [peran IAM untuk akun layanan](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) di **Panduan Pengguna Amazon EKS**. Namun, untuk opsi yang lebih sederhana, kami sarankan Anda menggunakan [Amazon EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) jika [SDK Anda mendukungnya](feature-container-credentials.md#feature-container-credentials-sdk-compat).

### Langkah 1: Siapkan penyedia identitas dan peran IAM
<a name="webidentity_step1"></a>

Untuk mengonfigurasi federasi dengan iDP eksternal, gunakan penyedia identitas IAM untuk menginformasikan AWS tentang iDP eksternal dan konfigurasinya. Ini membangun *kepercayaan* antara IDP Anda Akun AWS dan eksternal. Sebelum mengonfigurasi SDK untuk menggunakan JSON Web Token (JWT) untuk otentikasi, Anda harus terlebih dahulu mengatur penyedia identitas (iDP) dan peran IAM yang digunakan untuk mengaksesnya. Untuk mengaturnya, lihat [Membuat peran untuk identitas web atau Federasi OpenID Connect (konsol) di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html) Pengguna *IAM*.

### Langkah 2: Konfigurasikan SDK atau alat
<a name="webidentity_step2"></a>

Konfigurasikan SDK atau alat untuk menggunakan JSON Web Token (JWT) untuk otentikasi. AWS STS 

Saat Anda menentukan ini di profil, SDK atau alat secara otomatis membuat panggilan AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API yang sesuai untuk Anda. Untuk mengambil dan menggunakan kredensil sementara menggunakan federasi identitas web, tentukan nilai konfigurasi berikut dalam file bersama. AWS `config` Untuk detail selengkapnya tentang masing-masing pengaturan ini, lihat [Asumsikan pengaturan penyedia kredensi peran](feature-assume-role-credentials.md#feature-assume-role-credentials-settings) bagian. 
+ `role_arn`- Dari peran IAM yang Anda buat di Langkah 1
+ `web_identity_token_file`- Dari iDP eksternal
+ (Opsional) `duration_seconds`
+ (Opsional) `role_session_name` 

Berikut ini adalah contoh konfigurasi `config` file bersama untuk mengambil peran dengan identitas web:

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

**catatan**  
Untuk aplikasi seluler, pertimbangkan untuk menggunakan Amazon Cognito. Amazon Cognito bertindak sebagai pialang identitas dan melakukan banyak pekerjaan federasi untuk Anda. Namun, penyedia identitas Amazon Cognito tidak disertakan dalam pustaka inti SDKs dan alat seperti penyedia identitas lainnya. Untuk mengakses Amazon Cognito API, sertakan klien layanan Amazon Cognito di build atau pustaka untuk SDK atau alat Anda. Untuk penggunaan dengan AWS SDKs, lihat [Contoh Kode](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html) di Panduan *Pengembang Amazon Cognito*.

Untuk detail tentang semua pengaturan penyedia kredensi peran asumsi, lihat [Asumsikan penyedia kredensi peran](feature-assume-role-credentials.md) di panduan ini.

# Menggunakan tombol AWS akses untuk mengautentikasi AWS SDKs dan alat
<a name="access-users"></a>

Menggunakan tombol AWS akses adalah opsi untuk otentikasi saat menggunakan AWS SDKs dan alat.

## Gunakan kredensial jangka pendek
<a name="credentials-temporary"></a>

 Sebaiknya konfigurasi SDK atau alat yang akan digunakan [Menggunakan IAM Identity Center untuk mengautentikasi AWS SDK dan alat](access-sso.md) untuk menggunakan opsi durasi sesi yang diperpanjang. 

Namun, untuk mengatur SDK atau kredenal sementara alat secara langsung, lihat. [Menggunakan kredensi jangka pendek untuk AWS SDKs mengautentikasi dan alatKredensi jangka pendek](access-temp-idc.md)

## Gunakan kredensi jangka panjang
<a name="credentials-long-term"></a>

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

### Kelola akses di seluruh Akun AWS
<a name="manage-access-accounts"></a>

Sebagai praktik keamanan terbaik, kami sarankan menggunakan AWS Organizations dengan IAM Identity Center untuk mengelola akses di semua Anda Akun AWS. Untuk informasi selengkapnya tentang administrator, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) di dalam *Panduan Pengguna IAM*.

Anda dapat membuat pengguna di Pusat Identitas IAM, menggunakan Microsoft Active Directory, menggunakan penyedia identitas SAMP 2.0 (iDP), atau menggabungkan IDP Anda secara individual. Akun AWS Dengan menggunakan salah satu pendekatan ini, Anda dapat memberikan pengalaman masuk tunggal untuk pengguna Anda. Anda juga dapat menerapkan otentikasi multi-faktor (MFA) dan menggunakan kredensi sementara untuk akses. Akun AWS Ini berbeda dari pengguna IAM, yang merupakan kredensi jangka panjang yang dapat dibagikan dan yang dapat meningkatkan risiko keamanan terhadap sumber daya Anda AWS .

### Buat pengguna IAM hanya untuk lingkungan kotak pasir
<a name="create-iam-user-sandbox"></a>

Jika Anda baru AWS, Anda dapat membuat pengguna IAM uji dan kemudian menggunakannya untuk menjalankan tutorial dan menjelajahi apa yang AWS ditawarkan. Tidak apa-apa untuk menggunakan jenis kredensi ini saat Anda belajar, tetapi kami sarankan Anda menghindari menggunakannya di luar lingkungan kotak pasir.

Untuk kasus penggunaan berikut, mungkin masuk akal untuk memulai dengan pengguna IAM di AWS:
+ Memulai AWS SDK atau alat Anda dan menjelajah Layanan AWS di lingkungan kotak pasir.
+ Menjalankan skrip terjadwal, pekerjaan, dan proses otomatis lainnya yang tidak mendukung proses masuk yang dihadiri manusia sebagai bagian dari pembelajaran Anda.

Jika Anda menggunakan pengguna IAM di luar kasus penggunaan ini, maka transisi ke IAM Identity Center atau federasikan penyedia identitas Anda ke Akun AWS sesegera mungkin. Untuk informasi lebih lanjut, lihat [Federasi identitas di AWS](https://aws.amazon.com/identity/federation/).

### Kunci akses pengguna IAM yang aman
<a name="secure-iam-access-keys"></a>

Anda harus memutar kunci akses pengguna IAM secara teratur. Ikuti panduan dalam [Memutar kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) di Panduan *Pengguna IAM*. Jika Anda yakin bahwa Anda telah secara tidak sengaja membagikan kunci akses pengguna IAM Anda, kemudian putar kunci akses Anda.

Kunci akses pengguna IAM harus disimpan dalam AWS `credentials` file bersama di mesin lokal. Jangan menyimpan kunci akses pengguna IAM dalam kode Anda. Jangan sertakan file konfigurasi yang berisi kunci akses pengguna IAM Anda di dalam perangkat lunak manajemen kode sumber apa pun. Alat eksternal, seperti [git-secret](https://github.com/awslabs/git-secrets) proyek open source, dapat membantu Anda dari secara tidak sengaja melakukan informasi sensitif ke repositori Git. Untuk informasi selengkapnya, lihat [Identitas IAM (pengguna, grup pengguna, dan peran)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) di Panduan Pengguna *IAM*.

Untuk mengatur pengguna IAM untuk memulai, lihat[Menggunakan kredensi jangka panjang untuk AWS SDKs mengautentikasi dan alat](access-iam-users.md).

# Menggunakan kredensi jangka pendek untuk AWS SDKs mengautentikasi dan alat
<a name="access-temp-idc"></a>

 Sebaiknya konfigurasi AWS SDK atau alat Anda untuk digunakan [Menggunakan IAM Identity Center untuk mengautentikasi AWS SDK dan alat](access-sso.md) dengan opsi durasi sesi yang diperpanjang. Namun, Anda dapat menyalin dan menggunakan kredensi sementara yang tersedia di portal AWS akses. Kredensi baru perlu disalin ketika ini kedaluwarsa. Anda dapat menggunakan kredensi sementara di profil atau menggunakannya sebagai nilai untuk properti sistem dan variabel lingkungan.

Praktik terbaik: Alih-alih mengelola kunci akses dan token secara manual dalam file kredensional, kami menyarankan aplikasi Anda menggunakan kredensi sementara yang dikirimkan dari: 
+ Layanan AWS komputasi, seperti menjalankan aplikasi Anda di Amazon Elastic Compute Cloud atau di. AWS Lambda
+ Pilihan lain dalam rantai penyedia kredensi, seperti[Menggunakan IAM Identity Center untuk mengautentikasi AWS SDK dan alat](access-sso.md).
+ Atau gunakan [Penyedia kredensi proses](feature-process-credentials.md) untuk mengambil kredensi sementara.

**Siapkan file kredensial menggunakan kredensial jangka pendek yang diambil dari portal akses AWS**

1. [Buat file kredensial bersama](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html).

1. Dalam file kredensial, rekatkan teks placeholder berikut hingga Anda menempelkan kredensi sementara yang berfungsi.

   ```
   [default]
   aws_access_key_id=<value from AWS access portal>
   aws_secret_access_key=<value from AWS access portal>
   aws_session_token=<value from AWS access portal>
   ```

1. Simpan file tersebut. File sekarang `~/.aws/credentials` harus ada di sistem pengembangan lokal Anda. File ini berisi [profil [default]](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile) yang digunakan SDK atau alat jika profil bernama tertentu tidak ditentukan. 

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

1. Ikuti petunjuk ini untuk [penyegaran kredenal manual](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) untuk menyalin kredensi peran IAM dari portal akses. AWS 

   1. Untuk langkah 4 dalam petunjuk terkait, pilih nama peran IAM yang memberikan akses untuk kebutuhan pengembangan Anda. Peran ini biasanya memiliki nama seperti **PowerUserAccess**atau **Pengembang**.

   1. Untuk langkah 7 dalam instruksi yang ditautkan, pilih opsi **Tambahkan profil ke file AWS kredensial Anda secara manual** dan salin isinya.

1. Tempelkan kredenal yang disalin ke file lokal Anda. `credentials` Nama profil yang dihasilkan tidak diperlukan jika Anda menggunakan `default` profil. File Anda harus menyerupai yang berikut ini.

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

1. Simpan file `credentials`.

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

Setelah kredensi sementara kedaluwarsa, ulangi langkah 4 hingga 7.

# Menggunakan kredensi jangka panjang untuk AWS SDKs mengautentikasi dan alat
<a name="access-iam-users"></a>

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

Jika Anda menggunakan pengguna IAM untuk menjalankan kode Anda, maka SDK atau alat di lingkungan pengembangan Anda mengautentikasi dengan menggunakan kredensi pengguna IAM jangka panjang dalam file bersama. AWS `credentials` Tinjau [praktik terbaik Keamanan dalam topik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) dan transisi ke Pusat Identitas IAM atau kredensi sementara lainnya sesegera mungkin.

## Peringatan penting dan panduan untuk kredensional
<a name="iam-warnings-and-guidelines"></a>

**Peringatan untuk kredensional**
+ ***JANGAN*** gunakan kredensi root akun Anda untuk mengakses AWS sumber daya. Kredensi ini menyediakan akses akun yang tidak terbatas dan sulit dicabut.
+ ***JANGAN*** menaruh kunci akses literal atau informasi kredensi dalam file aplikasi Anda. Jika Anda melakukannya, Anda membuat risiko secara tidak sengaja mengekspos kredensialnya jika, misalnya, Anda mengunggah proyek ke repositori publik.
+ ***JANGAN*** sertakan file yang berisi kredensi di area proyek Anda.
+ Ketahuilah bahwa kredenal apa pun yang disimpan dalam AWS `credentials` file bersama disimpan dalam teks biasa.

**Panduan tambahan untuk mengelola kredensional dengan aman**

Untuk diskusi umum tentang cara mengelola AWS kredensional dengan aman, lihat [Praktik terbaik untuk mengelola kunci AWS akses](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) di. [Referensi Umum AWS](https://docs.aws.amazon.com/general/latest/gr/) Selain diskusi itu, pertimbangkan hal-hal berikut:
+ Gunakan [peran IAM untuk tugas untuk tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) Amazon Elastic Container Service (Amazon ECS).
+ Gunakan [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) untuk aplikasi yang berjalan di instans Amazon EC2.

## Prasyarat: Buat akun AWS
<a name="signup"></a>

Untuk menggunakan pengguna IAM untuk mengakses AWS layanan, Anda memerlukan AWS akun dan AWS kredensional.

1. **Buat akun.**

   Untuk membuat AWS akun, lihat [Memulai: Apakah Anda AWS pengguna pertama kali?](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html) dalam *Panduan AWS Account Management Referensi*.

1. **Buat pengguna administratif.**

   Hindari menggunakan akun pengguna root Anda (akun awal yang Anda buat) untuk mengakses konsol manajemen dan layanan. Sebagai gantinya, buat akun pengguna administratif, seperti yang dijelaskan dalam [Buat pengguna administratif](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) di *Panduan Pengguna IAM*.

   Setelah Anda membuat akun pengguna administratif dan mencatat detail login, **pastikan untuk keluar dari akun pengguna root Anda** dan masuk kembali menggunakan akun administratif.

Tak satu pun dari akun ini sesuai untuk melakukan pengembangan pada AWS atau untuk menjalankan aplikasi di AWS. Sebagai praktik terbaik, Anda perlu membuat pengguna, set izin, atau peran layanan yang sesuai untuk tugas-tugas ini. *Untuk informasi selengkapnya, lihat [Menerapkan izin hak istimewa terkecil di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) IAM.*

## Langkah 1: Buat pengguna IAM Anda
<a name="step1authIamUser"></a>
+ Buat pengguna IAM Anda dengan mengikuti prosedur [Membuat pengguna IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) di Panduan Pengguna *IAM*. Saat membuat pengguna IAM Anda:
  + Kami menyarankan Anda memilih **Menyediakan akses pengguna ke Konsol Manajemen AWS**. Ini memungkinkan Anda untuk melihat Layanan AWS terkait dengan kode yang Anda jalankan di lingkungan visual, seperti memeriksa log AWS CloudTrail diagnostik atau mengunggah file ke Amazon Simple Storage Service, yang sangat membantu saat men-debug kode Anda.
  + Untuk **Setel izin** - **Opsi izin**, pilih **Lampirkan kebijakan secara langsung** untuk mengetahui cara Anda ingin menetapkan izin kepada pengguna ini. 
    + Sebagian besar tutorial SDK “Memulai” menggunakan layanan Amazon S3 sebagai contoh. Untuk menyediakan aplikasi Anda dengan akses penuh ke Amazon S3, pilih `AmazonS3FullAccess` kebijakan untuk melampirkan ke pengguna ini.
  + Anda dapat mengabaikan langkah-langkah opsional dari prosedur tersebut mengenai pengaturan batas izin atau tag. 

## Langkah 2: Dapatkan kunci akses Anda
<a name="stepGetKeys"></a>

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

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

1. Untuk **Buat kunci akses Langkah 1**, pilih **Command Line Interface (CLI) atau kode** **Lokal**. Kedua opsi menghasilkan jenis kunci yang sama untuk digunakan dengan kedua AWS CLI dan SDKs.

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

1. Untuk **Buat kunci akses Langkah 3**, pilih **Unduh file.csv** untuk menyimpan `.csv` file dengan kunci akses pengguna IAM dan kunci akses rahasia Anda. Anda memerlukan informasi ini untuk nanti.
**Awas**  
Gunakan langkah-langkah keamanan yang tepat untuk menjaga kredensitas ini tetap aman.

1. Pilih **Selesai**. 

## Langkah 3: Perbarui `credentials` file bersama
<a name="stepauthIamUser"></a>

1. Buat atau buka AWS `credentials` file bersama. File ini ada `~/.aws/credentials` di sistem Linux dan macOS, dan `%USERPROFILE%\.aws\credentials` di Windows. Untuk informasi selengkapnya, lihat [Lokasi File Kredensial.](https://docs.aws.amazon.com/credref/latest/refdocs/file-location.html)

1. Tambahkan teks berikut ke `credentials` file bersama. Ganti nilai ID contoh dan nilai kunci contoh dengan nilai dalam `.csv` file yang Anda download sebelumnya. 

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

   

1. Simpan file tersebut.

`credentials`File bersama adalah cara paling umum untuk menyimpan kredensional. Ini juga dapat ditetapkan sebagai variabel lingkungan, lihat [AWS kunci akses](feature-static-credentials.md) untuk nama variabel lingkungan. Ini adalah cara untuk membantu Anda memulai, tetapi kami sarankan Anda beralih ke IAM Identity Center atau kredensi sementara lainnya sesegera mungkin. Setelah Anda beralih dari penggunaan kredensi jangka panjang, ingatlah untuk menghapus kredensi ini dari file bersama. `credentials`

# Menggunakan peran IAM untuk mengautentikasi aplikasi yang digunakan ke Amazon EC2
<a name="access-iam-roles-for-ec2"></a>

Contoh ini mencakup pengaturan AWS Identity and Access Management peran dengan akses Amazon S3 untuk digunakan dalam aplikasi yang diterapkan ke instans Amazon Elastic Compute Cloud. 

Untuk menjalankan aplikasi AWS SDK Anda di instans Amazon Elastic Compute Cloud, buat peran IAM, lalu berikan akses EC2 instans Amazon Anda ke peran tersebut. Untuk informasi selengkapnya, lihat [Peran IAM untuk Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) di *Panduan EC2 Pengguna Amazon*.

## Membuat peran IAM
<a name="createRoleForEc2"></a>

Aplikasi AWS SDK yang Anda kembangkan kemungkinan mengakses setidaknya satu Layanan AWS untuk melakukan tindakan. Buat peran IAM yang memberikan izin yang diperlukan untuk menjalankan aplikasi Anda.

 Prosedur ini membuat peran yang memberikan akses hanya-baca ke Amazon S3 sebagai contoh. Banyak panduan AWS SDK memiliki tutorial “memulai” yang dibaca dari Amazon S3.

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 **Buat peran**.

1. Untuk **Pilih entitas tepercaya**, di bawah **Jenis entitas tepercaya**, pilih **Layanan AWS**.

1. Di bawah **Kasus penggunaan**, pilih **Amazon EC2**, lalu pilih **Berikutnya**.

1. **Untuk **Menambahkan izin**, pilih kotak centang untuk **Amazon S3 Read Only** Access dari daftar kebijakan, lalu pilih Berikutnya.** 

1. Masukkan nama untuk peran tersebut, lalu pilih **Buat peran**. *Ingat nama ini karena Anda akan membutuhkannya saat membuat EC2 instance Amazon Anda.*

## Luncurkan EC2 instans Amazon dan tentukan peran IAM Anda
<a name="launchAndSpecify"></a>

Anda dapat membuat dan meluncurkan EC2 instans Amazon menggunakan peran IAM Anda dengan melakukan hal berikut:
+ Ikuti [Luncurkan instance dengan cepat](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html#liw-quickly-launch-instance) di *Panduan EC2 Pengguna Amazon*. Namun, sebelum langkah pengajuan akhir, lakukan juga hal berikut:
  + Di bawah **Detail lanjutan**, untuk **profil Instans IAM**, pilih peran yang Anda buat di langkah sebelumnya.

 Dengan EC2 pengaturan IAM dan Amazon ini, Anda dapat menyebarkan aplikasi Anda ke EC2 instans Amazon dan aplikasi Anda akan memiliki akses baca ke layanan Amazon S3. 

## Connect ke EC2 instance
<a name="net-dg-hosm-connect"></a>

Connect ke EC2 instans Amazon sehingga Anda dapat mentransfer aplikasi Anda ke sana dan kemudian menjalankan aplikasi. Anda akan memerlukan file yang berisi bagian pribadi dari key pair yang Anda gunakan di bawah **Key pair (login)** ketika Anda membuat instance Anda; yaitu, file PEM.

Anda dapat melakukannya dengan mengikuti panduan untuk jenis instans Anda: [Connect to your Linux instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) or [Connect to your Windows instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html). Ketika Anda terhubung, lakukan sedemikian rupa sehingga Anda dapat mentransfer file dari mesin pengembangan Anda ke instans Anda. 

**catatan**  
Di terminal Linux atau macOS, Anda dapat menggunakan perintah salin aman untuk menyalin aplikasi Anda. Untuk menggunakan `scp` dengan key pair, Anda dapat menggunakan perintah berikut:`scp -i path/to/key file/to/copy ec2-user@ec2-xx-xx-xxx-xxx.compute.amazonaws.com:~`.  
Untuk informasi selengkapnya untuk Windows, lihat [Mentransfer file ke instance Windows](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instanceWindowsFileTransfer.html).

Jika Anda menggunakan AWS Toolkit, Anda sering juga dapat terhubung ke instance dengan menggunakan Toolkit. Untuk informasi selengkapnya, lihat panduan pengguna khusus untuk Toolkit yang Anda gunakan.

## Jalankan aplikasi Anda pada EC2 instance
<a name="net-dg-hosm-run-the-app"></a>

1. Salin file aplikasi Anda dari drive lokal Anda ke EC2 instans Amazon Anda.

1. Mulai aplikasi dan verifikasi bahwa itu berjalan dengan hasil yang sama seperti pada mesin pengembangan Anda.

1. (Opsional) Verifikasi bahwa aplikasi menggunakan kredensional yang disediakan oleh peran IAM.

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

   1. Pilih instans.

   1. Pilih **Tindakan**, **Keamanan**, dan kemudian pilih **Ubah peran IAM**.

   1.  Untuk peran **IAM, lepaskan peran** IAM dengan memilih **No** IAM Role.

   1.  Pilih **Perbarui peran IAM**.

   1. Jalankan aplikasi lagi dan konfirmasikan bahwa ia mengembalikan kesalahan otorisasi.

# Menggunakan plugin TIP untuk mengakses Layanan AWS
<a name="access-tip"></a>

 Trusted Identity Propagation (TIP) adalah fitur AWS IAM Identity Center yang memungkinkan administrator Layanan AWS untuk memberikan izin berdasarkan atribut pengguna seperti asosiasi grup. Dengan propagasi identitas tepercaya, konteks identitas ditambahkan ke peran IAM untuk mengidentifikasi pengguna yang meminta akses ke sumber daya. AWS Konteks ini disebarkan ke yang lain Layanan AWS. 

 Konteks identitas terdiri dari informasi yang Layanan AWS digunakan untuk membuat keputusan otorisasi ketika mereka menerima permintaan akses. Informasi ini mencakup metadata yang mengidentifikasi pemohon (misalnya, pengguna Pusat Identitas IAM), Layanan AWS akses yang diminta (misalnya, Amazon Redshift), dan ruang lingkup akses (misalnya, akses baca saja). Penerima Layanan AWS menggunakan konteks ini, dan izin apa pun yang diberikan kepada pengguna, untuk mengotorisasi akses ke sumber dayanya. Untuk informasi selengkapnya, lihat di [ikhtisar propagasi identitas tepercaya](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overview.html) di Panduan AWS IAM Identity Center Pengguna. 

 Plugin TIP dapat digunakan dengan Layanan AWS dukungan propagasi identitas tepercaya. Sebagai kasus penggunaan referensi, lihat [Mengonfigurasi aplikasi Amazon Q Business menggunakan AWS IAM Identity Center](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/create-application.html) dalam *Panduan Pengguna Bisnis Amazon Q*. 

**catatan**  
 Jika Anda menggunakan Amazon Q Business, lihat [Mengonfigurasi aplikasi Amazon Q Business menggunakan AWS IAM Identity Center petunjuk](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/create-application.html) khusus layanan. 

## Prasyarat untuk menggunakan plugin TIP
<a name="prereq-tip"></a>

Sumber daya berikut diperlukan agar plugin berfungsi: 

1. Anda harus menggunakan salah satu AWS SDK untuk Java atau AWS SDK untuk JavaScript. 

1. Verifikasi bahwa layanan yang Anda gunakan mendukung propagasi identitas tepercaya.

   *Lihat kolom **Aktifkan propagasi identitas tepercaya melalui Pusat Identitas** IAM dari [aplikasi AWS terkelola yang terintegrasi dengan IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html) tabel di Panduan Pengguna.AWS IAM Identity Center * 

1. Aktifkan Pusat Identitas IAM dan propagasi identitas tepercaya.

   *Lihat [prasyarat dan pertimbangan TIP](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html) di Panduan Pengguna.AWS IAM Identity Center * 

1. Anda harus memiliki Identity-Center-integrated aplikasi. 

   Lihat [aplikasi AWS terkelola](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-quick-start-setting-up-identity-center-to-test-awsmanagedapps.html) atau [aplikasi yang dikelola Pelanggan](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html) di *Panduan AWS IAM Identity Center Pengguna*. 

1. Anda harus menyiapkan penerbit token tepercaya (TTI) dan menghubungkan layanan Anda ke IAM Identity Center. 

   *Lihat [Prasyarat untuk penerbit token tepercaya dan Tugas untuk menyiapkan penerbit](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-apps-with-trusted-token-issuer.html#trusted-token-issuer-prerequisites) [token tepercaya di Panduan Pengguna](https://docs.aws.amazon.com/singlesignon/latest/userguide/setuptrustedtokenissuer.html#setuptrustedtokenissuer-tasks).AWS IAM Identity Center *

## Untuk menggunakan plugin TIP dalam kode Anda
<a name="using-tip"></a>

1. Buat instance plugin propagasi identitas tepercaya.

1. Buat instance klien layanan untuk berinteraksi dengan Anda Layanan AWS dan sesuaikan klien layanan dengan menambahkan plugin propagasi identitas tepercaya. 

Plugin TIP mengambil parameter input berikut:
+ **`webTokenProvider`**: Fungsi yang diterapkan pelanggan untuk mendapatkan token OpenID dari penyedia identitas eksternal mereka. 
+ **`accessRoleArn`**: Peran IAM ARN akan diasumsikan oleh plugin dengan konteks identitas pengguna untuk mendapatkan kredensil yang ditingkatkan identitas. 
+ **`applicationArn`**: String pengenal unik untuk klien atau aplikasi. Nilai ini adalah aplikasi ARN yang memiliki OAuth hibah yang dikonfigurasi. 
+ **`ssoOidcClient`**: (Opsional) Klien SSO OIDC, seperti [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ssooidc/SsoOidcClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ssooidc/SsoOidcClient.html)untuk Java atau [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sso-oidc/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sso-oidc/)untuk JavaScript, dengan konfigurasi yang ditentukan pelanggan. Jika tidak disediakan, klien OIDC yang menggunakan `applicationRoleArn` akan dipakai dan digunakan. 
+  **`stsClient`**: (Opsional) AWS STS Klien dengan konfigurasi yang ditentukan pelanggan, digunakan untuk berasumsi `accessRoleArn` dengan konteks identitas pengguna. Jika tidak disediakan, AWS STS klien yang menggunakan `applicationRoleArn` akan dipakai dan digunakan. 
+ **`applicationRoleArn`**: (Opsional) Peran IAM ARN yang akan diasumsikan `AssumeRoleWithWebIdentity` sehingga OIDC AWS STS dan klien dapat di-bootstrap.
  + Jika tidak disediakan, **kedua** parameter `ssoOidcClient` dan `stsClient` parameter harus disediakan.
  + Jika disediakan, tidak `applicationRoleArn` bisa menjadi nilai yang sama dengan `accessRoleArn` parameter. `applicationRoleArn`digunakan untuk membangun STSClient, yang digunakan untuk mengasumsikan AccessRole. Jika peran yang sama digunakan untuk keduanya `applicationRole` dan`accessRole`, itu berarti menggunakan peran untuk mengasumsikan dirinya sendiri (asumsi peran diri), yang tidak disarankan oleh. AWS Lihat [pengumuman](https://aws.amazon.com/blogs/security/announcing-an-update-to-iam-role-trust-policy-behavior/) untuk lebih jelasnya.

### Pertimbangan untuk`ssoOidcClient`,`stsClient`, dan parameter `applicationRoleArn`
<a name="considerations-tip"></a>

Saat mengonfigurasi plugin TIP, pertimbangkan persyaratan izin berikut berdasarkan parameter mana yang Anda berikan:
+ Jika Anda menyediakan `ssoOidcClient` dan`stsClient`:
  + Kredensil pada `ssoOidcClient` harus memiliki `oauth:CreateTokenWithIAM` izin untuk memanggil pusat identitas untuk mendapatkan konteks pengguna khusus pusat identitas.
  + Kredensi pada `stsClient` harus memiliki`sts:AssumeRole`, dan `sts:SetContext` izin pada. `accessRole` `accessRole`juga perlu dikonfigurasi dengan hubungan kepercayaan dengan kredensil aktif. `stsClient`
+ Jika Anda menyediakan`applicationRoleArn`:
  + `applicationRole`harus memiliki`oauth:CreateTokenWithIAM`, `sts:AssumeRole` dan `sts:SetContext` izin pada sumber daya yang diperlukan (contoh IDC,`accessRole`) karena akan digunakan untuk membangun klien OIDC dan STS.
  + `applicationRole`harus memiliki hubungan kepercayaan dengan penyedia identitas yang digunakan untuk menghasilkan`webToken`, karena `webToken` akan digunakan untuk mengasumsikan ApplicationRole melalui [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)panggilan oleh plugin.

**Contoh ApplicationRole konfigurasi:**

Kebijakan Kepercayaan dengan penyedia token Web:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::ACCOUNT_ID:oidc-provider/IDENTITY_PROVIDER_URL"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "IDENTITY_PROVIDER_URL:aud": "CLIENT_ID_TO_BE_TRUSTED"
                }
            }
        }
    ]
}
```

Kebijakan Izin:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ],
            "Resource": [
                "accessRoleArn"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "sso-oauth:CreateTokenWithIAM"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

## Contoh kode menggunakan TIP
<a name="tip-code-example"></a>

Contoh di bawah ini menunjukkan bagaimana menerapkan plugin TIP dalam kode Anda menggunakan AWS SDK untuk Java atau AWS SDK untuk JavaScript.

------
#### [ Java ]

Untuk menggunakan plugin TIP dalam AWS SDK untuk Java proyek Anda, Anda perlu mendeklarasikannya sebagai dependensi dalam file proyek Anda. `pom.xml` 

```
<dependency>
<groupId>software.amazon.awsidentity.trustedIdentityPropagation</groupId>
<artifactId>aws-sdk-java-trustedIdentityPropagation-java-plugin</artifactId>
   <version>2.0.0</version>
</dependency>
```

Dalam kode sumber Anda, sertakan pernyataan paket yang diperlukan untuk`software.amazon.awssdk.trustedidentitypropagation`. 

Contoh berikut menunjukkan dua cara untuk membuat instance plugin propagasi identitas tepercaya dan menambahkannya ke klien layanan. Kedua contoh menggunakan Amazon S3 sebagai layanan dan digunakan `S3AccessGrantsPlugin` untuk mengelola izin khusus pengguna, tetapi dapat diterapkan ke semua Layanan AWS yang mendukung propagasi identitas tepercaya (TIP). 

**catatan**  
Untuk contoh ini, Anda perlu mengatur izin khusus pengguna dari S3 Access Grants. Lihat [dokumentasi Hibah Akses S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) untuk detail selengkapnya.

**Opsi 1: Bangun dan lewati klien OIDC dan STS**

```
SsoOidcClient oidcClient = SsoOidcClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(credentialsProvider).build();

StsClient stsClient = StsClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(credentialsProvider).build();

TrustedIdentityPropagationPlugin trustedIdentityPropagationPlugin = TrustedIdentityPropagationPlugin.builder()
        .webTokenProvider(() -> webToken)
        .applicationArn(idcApplicationArn)
        .accessRoleArn(accessRoleArn)
        .ssoOidcClient(oidcClient)
        .stsClient(stsClient)
        .build();

S3AccessGrantsPlugin accessGrantsPlugin = S3AccessGrantsPlugin.builder()
        .build();

S3Client s3Client =
        S3Client.builder().region(Region.US_EAST_1)
                .crossRegionAccessEnabled(true)
                .addPlugin(trustedIdentityPropagationPlugin)
                .addPlugin(accessGrantsPlugin)
                .build();

final var resp = s3Client.getObject(GetObjectRequest.builder()
        .key("path/to/object/fileName")
        .bucket("bucketName")
        .build());
```

**Opsi 2: Lulus applicationRoleArn dan tunda pembuatan klien ke plugin**

```
TrustedIdentityPropagationPlugin trustedIdentityPropagationPlugin = TrustedIdentityPropagationPlugin.builder()
        .webTokenProvider(() -> webToken)
        .applicationArn(idcApplicationArn)
        .accessRoleArn(accessRoleArn)
        .applicationRoleArn(applicationRoleArn)
        .build();

S3AccessGrantsPlugin accessGrantsPlugin = S3AccessGrantsPlugin.builder()
        .build();

S3Client s3Client =
        S3Client.builder().region(Region.US_EAST_1)
                .crossRegionAccessEnabled(true)
                .addPlugin(trustedIdentityPropagationPlugin)
                .addPlugin(accessGrantsPlugin)
                .build();

final var resp = s3Client.getObject(GetObjectRequest.builder()
        .key("path/to/object/fileName")
        .bucket("bucketName")
        .build());
```

Untuk detail dan sumber tambahan, lihat [ trusted-identity-propagation-java](https://github.com/aws-sdk-plugin/trusted-identity-propagation-java)di GitHub.

------
#### [ JavaScript ]

Jalankan perintah berikut untuk menginstal paket plugin otentikasi TIP dalam AWS SDK untuk JavaScript proyek Anda: 

```
$  npm i @aws-sdk-extension/trusted-identity-propagation
```

Final `package.json` harus mencakup ketergantungan yang mirip dengan yang berikut ini: 

```
  "dependencies": {
"@aws-sdk-extension/trusted-identity-propagation": "^2.0.0"
  },
```

 Dalam kode sumber Anda, impor `TrustedIdentityPropagationExtension` dependensi yang diperlukan. 

 Contoh berikut menunjukkan dua cara untuk membuat instance plugin propagasi identitas tepercaya dan menambahkannya ke klien layanan. Kedua contoh menggunakan Amazon S3 sebagai layanan dan memanfaatkan Amazon S3 Access Grants untuk mengelola izin khusus pengguna, tetapi dapat diterapkan ke semua yang mendukung propagasi identitas Layanan AWS tepercaya (TIP). 

**catatan**  
Untuk contoh ini, Anda perlu menyiapkan izin khusus pengguna dari Amazon S3 Access Grants, lihat dokumentasi Amazon S3 Access Grants untuk [detail selengkapnya](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html).

**Opsi 1: Bangun dan lewati klien OIDC dan STS**

```
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
import { S3ControlClient, GetDataAccessCommand } from "@aws-sdk/client-s3-control";
import { TrustedIdentityPropagationExtension } from "@aws-sdk-extension/trusted-identity-propagation";

const s3ControlClient = new S3ControlClient({
    region: "us-east-1",
    extensions: [
        TrustedIdentityPropagationExtension.create({
            webTokenProvider: async () => {
                return 'ID_TOKEN_FROM_YOUR_IDENTITY_PROVIDER';
            },
            ssoOidcClient: customOidcClient,
            stsClient: customStsClient,
            accessRoleArn: accessRoleArn,
            applicationArn: applicationArn,
        }),
    ],
});

const getDataAccessParams = {
  Target: "S3_URI_PATH",
  Permission: "READ",
  AccountId: ACCOUNT_ID,
  InstanceArn: S3_ACCESS_GRANTS_ARN,
  TargetType: "Object",
};

try {
  const command = new GetDataAccessCommand(getDataAccessParams);
  const response = await s3ControlClient.send(command);

  const credentials = response.Credentials;

  // Create a new S3 client with the temporary credentials
  const temporaryS3Client = new S3Client({
    region: "us-east-1",
    credentials: {
      accessKeyId: credentials.AccessKeyId,
      secretAccessKey: credentials.SecretAccessKey,
      sessionToken: credentials.SessionToken,
    },
  });

  // Use the temporary S3 client to perform the operation
  const s3Params = {
    Bucket: "BUCKET_NAME",
    Key: "S3_OBJECT_KEY",
  };
  const getObjectCommand = new GetObjectCommand(s3Params);
  const s3Object = await temporaryS3Client.send(getObjectCommand);

  const fileContent = await s3Object.Body.transformToString();

  // Process the S3 object data
  console.log("Successfully retrieved S3 object:", fileContent);
} catch (error) {
  console.error("Error accessing S3 data:", error);
}
```

**Opsi 2: Lulus applicationRoleArn dan tunda pembuatan klien ke plugin**

```
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
import { S3ControlClient, GetDataAccessCommand } from "@aws-sdk/client-s3-control";
import { TrustedIdentityPropagationExtension } from "@aws-sdk-extension/trusted-identity-propagation";

const s3ControlClient = new S3ControlClient({
    region: "us-east-1",
    extensions: [
        TrustedIdentityPropagationExtension.create({
            webTokenProvider: async () => {
                return 'ID_TOKEN_FROM_YOUR_IDENTITY_PROVIDER';
            },
            accessRoleArn: accessRoleArn,
            applicationRoleArn: applicationRoleArn,
            applicationArn: applicationArn,
        }),
    ],
});

// Same S3 AccessGrants workflow as Option 1
const getDataAccessParams = {
  Target: "S3_URI_PATH",
  Permission: "READ",
  AccountId: ACCOUNT_ID,
  InstanceArn: S3_ACCESS_GRANTS_ARN,
  TargetType: "Object",
};

try {
  const command = new GetDataAccessCommand(getDataAccessParams);
  const response = await s3ControlClient.send(command);

  const credentials = response.Credentials;

  const temporaryS3Client = new S3Client({
    region: "us-east-1",
    credentials: {
      accessKeyId: credentials.AccessKeyId,
      secretAccessKey: credentials.SecretAccessKey,
      sessionToken: credentials.SessionToken,
    },
  });

  const s3Params = {
    Bucket: "BUCKET_NAME",
    Key: "S3_OBJECT_KEY",
  };
  const getObjectCommand = new GetObjectCommand(s3Params);
  const s3Object = await temporaryS3Client.send(getObjectCommand);

  const fileContent = await s3Object.Body.transformToString();

  console.log("Successfully retrieved S3 object:", fileContent);
} catch (error) {
  console.error("Error accessing S3 data:", error);
}
```

Untuk detail dan sumber tambahan, lihat [trusted-identity-propagation-js](https://github.com/aws-sdk-plugin/trusted-identity-propagation-js)di GitHub.

------