

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

# Kelola set AWS IAM Identity Center izin sebagai kode dengan menggunakan AWS CodePipeline
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline"></a>

*Andre Cavalcante dan Claison Amorim, Amazon Web Services*

## Ringkasan
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-summary"></a>

AWS IAM Identity Center membantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi dan aplikasi Anda. Akun AWS Anda dapat membuat dan mengelola identitas pengguna di Pusat Identitas IAM, atau Anda dapat menghubungkan sumber identitas yang ada, seperti domain Microsoft Active Directory atau penyedia identitas eksternal (iDP). [IAM Identity Center menyediakan pengalaman administrasi terpadu untuk menentukan, menyesuaikan, dan menetapkan akses halus ke lingkungan Anda AWS dengan menggunakan set izin.](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) Set izin berlaku untuk pengguna dan grup federasi dari toko identitas Pusat Identitas IAM atau iDP eksternal Anda.

Pola ini membantu Anda mengelola set izin IAM Identity Center sebagai kode di lingkungan multi-akun Anda yang dikelola sebagai organisasi. AWS Organizations Dengan pola ini, Anda dapat mencapai yang berikut:
+ Membuat, menghapus, dan memperbarui set izin
+ Buat, perbarui, atau hapus penetapan set izin ke target Akun AWS, unit organisasi (OUs), atau root organisasi Anda.

Untuk mengelola izin dan penugasan Pusat Identitas IAM sebagai kode, solusi ini menerapkan pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang menggunakan dan. AWS CodeBuild AWS CodePipeline Anda mengelola set izin dan tugas dalam template JSON yang Anda simpan di repositori jarak jauh. Ketika EventBridge aturan Amazon mendeteksi perubahan pada repositori atau mendeteksi modifikasi pada akun di OU target, itu memulai fungsi. AWS Lambda Fungsi Lambda memulai CI/CD pipeline yang memperbarui set izin dan penetapan di IAM Identity Center.

## Prasyarat dan batasan
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-prereqs"></a>

**Prasyarat**
+ Lingkungan multi-akun yang dikelola sebagai organisasi di AWS Organizations. Untuk informasi selengkapnya, lihat [Membuat organisasi](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_create.html).
+ Pusat Identitas IAM, diaktifkan dan dikonfigurasi dengan sumber identitas. Untuk informasi selengkapnya, lihat [Memulai](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) di dokumentasi Pusat Identitas IAM.
+ Akun anggota yang terdaftar sebagai administrator yang didelegasikan untuk hal-hal berikut: Layanan AWS
  + Pusat Identitas IAM — Untuk petunjuk, lihat [Mendaftarkan akun anggota di dokumentasi](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html#delegated-admin-how-to-register) Pusat Identitas IAM.
  + AWS Organizations Untuk petunjuk, lihat [Administrator yang didelegasikan untuk AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_delegate_policies.html). Akun ini harus memiliki izin untuk membuat daftar dan mendeskripsikan akun dan OUs.
**catatan**  
Anda harus menggunakan akun yang sama dengan administrator yang didelegasikan untuk kedua layanan.
+ Izin untuk menerapkan AWS CloudFormation tumpukan di akun administrator yang didelegasikan Pusat Identitas IAM dan di akun manajemen organisasi. Untuk informasi selengkapnya, lihat [Mengontrol akses](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) dalam CloudFormation dokumentasi.
+ Bucket Amazon Simple Storage Service (Amazon S3) di akun administrator yang didelegasikan IAM Identity Center. Anda mengunggah kode artefak ke dalam ember ini. Untuk petunjuknya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di dokumentasi Amazon S3.
+ ID akun akun manajemen organisasi. Untuk petunjuk, lihat [Menemukan Akun AWS ID Anda](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
+ Sebuah repositori di host kode sumber Anda, seperti. GitHub

**Batasan**
+ Pola ini tidak dapat digunakan untuk mengelola atau menetapkan set izin untuk lingkungan akun tunggal atau untuk akun yang tidak dikelola sebagai organisasi. AWS Organizations
+ Izin menetapkan nama, penugasan IDs, dan tipe utama Pusat Identitas IAM dan IDs tidak dapat dimodifikasi setelah penerapan.
+ Pola ini membantu Anda membuat dan mengelola [izin khusus](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetcustom.html). Anda tidak dapat menggunakan pola ini untuk mengelola atau menetapkan izin yang [telah ditentukan sebelumnya](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetpredefined.html).
+ Pola ini tidak dapat digunakan untuk mengelola izin yang ditetapkan untuk akun manajemen organisasi.

## Arsitektur
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-architecture"></a>

**Arsitektur target**

![\[Menggunakan CI/CD pipeline untuk mengelola set izin di Pusat Identitas IAM.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/1f143bc4-c2c6-4ab6-8615-742fec617f18.png)


Diagram menunjukkan alur kerja berikut:

1. Seorang pengguna membuat salah satu dari perubahan berikut:
   + Melakukan satu atau beberapa perubahan ke repositori jarak jauh, seperti GitHub
   + Memodifikasi akun di OU di AWS Organizations

1. Jika pengguna melakukan perubahan ke repositori jarak jauh ke cabang utama, pipeline dimulai. 

   Jika pengguna memodifikasi akun di OU, maka `MoveAccount` EventBridge aturan mendeteksi perubahan dan memulai fungsi Lambda di akun manajemen organisasi.

1. Fungsi Lambda yang dimulai memulai pipeline masuk CI/CD . CodePipeline

1. CodePipeline memulai `TemplateValidation` CodeBuild proyek. `TemplateValidation` CodeBuild Proyek ini menggunakan skrip Python di repositori jarak jauh untuk memvalidasi template set izin. CodeBuild memvalidasi yang berikut:
   + Nama set izin unik.
   + Pernyataan penugasan IDs (`Sid`) unik.
   + Definisi kebijakan dalam `CustomPolicy` parameter dan valid. (Validasi ini menggunakan AWS Identity and Access Management Access Analyzer.)
   + Nama Sumber Daya Amazon (ARNs) dari kebijakan terkelola valid.

1. Grup `PermissionSet` tindakan dalam `Deploy` CodeBuild proyek digunakan AWS SDK untuk Python (Boto3) untuk menghapus, membuat, atau memperbarui set izin di Pusat Identitas IAM. Hanya set izin dengan `SSOPipeline:true` tag yang terpengaruh. Semua set izin yang dikelola melalui pipeline ini memiliki tag ini.

1. Grup `Assignments` tindakan dalam `Deploy` CodeBuild proyek menggunakan Terraform untuk menghapus, membuat, atau memperbarui tugas di Pusat Identitas IAM. File status backend Terraform disimpan dalam bucket Amazon S3 di akun yang sama.

1. CodeBuild memperbarui set izin dan tugas di IAM Identity Center.

**Otomatisasi dan skala**

Karena semua akun baru di lingkungan multi-akun dipindahkan ke unit organisasi tertentu di AWS Organizations, solusi ini secara otomatis berjalan dan memberikan set izin yang diperlukan ke semua akun yang Anda tentukan dalam templat penetapan. Tidak diperlukan otomatisasi tambahan atau tindakan penskalaan.

Di lingkungan yang besar, jumlah permintaan API ke IAM Identity Center dapat menyebabkan solusi ini berjalan lebih lambat. Terraform dan Boto3 secara otomatis mengelola pelambatan untuk meminimalkan penurunan kinerja apa pun.

## Alat
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-tools"></a>

**Layanan AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)adalah layanan build terkelola penuh yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan. 
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)membantu Anda dengan cepat memodelkan dan mengkonfigurasi berbagai tahapan rilis perangkat lunak dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)membantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)adalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa Akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.
+ [AWS SDK untuk Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)adalah kit pengembangan perangkat lunak yang membantu Anda mengintegrasikan aplikasi, perpustakaan, atau skrip Python Anda. Layanan AWS
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Repositori kode**

Kode untuk pola ini tersedia di repositori [aws-iam-identity-center-pipeline](https://github.com/aws-samples/aws-iam-identity-center-pipeline). Folder template dalam repositori menyertakan contoh template untuk set izin dan tugas. Ini juga mencakup AWS CloudFormation template untuk menyebarkan CI/CD pipeline dan AWS sumber daya di akun target.

## Praktik terbaik
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-best-practices"></a>
+ Sebelum Anda mulai memodifikasi set izin dan templat penetapan, sebaiknya Anda merencanakan set izin untuk organisasi Anda. Pertimbangkan izin apa yang seharusnya, akun atau OUs set izin mana yang harus diterapkan, dan prinsip Pusat Identitas IAM (pengguna atau grup) mana yang harus dipengaruhi oleh kumpulan izin. Izin menetapkan nama, asosiasi IDs, dan tipe utama Pusat Identitas IAM dan IDs tidak dapat dimodifikasi setelah penerapan.
+ Patuhi prinsip hak istimewa paling sedikit dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat [Memberikan hak istimewa terkecil](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) dan [praktik terbaik Keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) dalam dokumentasi AWS Identity and Access Management (IAM).

## Epik
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-epics"></a>

### Rencanakan set izin dan tugas
<a name="plan-permission-sets-and-assignments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori. | Dalam shell bash, masukkan perintah berikut. Ini mengkloning repositori [aws-iam-identity-center-pipeline](https://github.com/aws-samples/aws-iam-identity-center-pipeline) dari. GitHub<pre>git clone https://github.com/aws-samples/aws-iam-identity-center-pipeline.git</pre> | DevOps insinyur | 
| Tentukan set izin. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps insinyur | 
| Tentukan tugas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps insinyur | 

### Menyebarkan set izin dan tugas
<a name="deploy-the-permission-sets-and-assignments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan sumber daya di akun administrator yang didelegasikan IAM Identity Center. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps insinyur | 
| Menyebarkan sumber daya di akun AWS Organizations manajemen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps insinyur | 
| Selesaikan pengaturan repositori jarak jauh. | Ubah status AWS CodeConnections koneksi dari `PENDING` ke`AVAILABLE`. Koneksi ini dibuat saat Anda menerapkan CloudFormation tumpukan. Untuk petunjuk, lihat [Memperbarui koneksi yang tertunda](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) dalam CodeConnections dokumentasi.  | DevOps insinyur | 
| Unggah file ke repositori jarak jauh. | Unggah semua file yang telah Anda unduh dari `aws-samples` repositori dan edit pada langkah sebelumnya ke repositori jarak jauh. Perubahan pada `main` cabang memulai pipeline, yang membuat atau memperbarui set izin dan penugasan. | DevOps insinyur | 

### Memperbarui set izin dan tugas
<a name="updating-the-permission-sets-and-assignments"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui set izin dan tugas. | Saat EventBridge aturan `MoveAccount` Amazon mendeteksi modifikasi pada akun di organisasi, CI/CD pipeline akan dimulai secara otomatis dan memperbarui set izin. Misalnya, jika Anda menambahkan akun ke OU yang ditentukan dalam file JSON tugas, maka CI/CD pipeline akan menerapkan izin yang disetel ke akun baru.Jika Anda ingin memodifikasi set izin dan penetapan yang diterapkan, perbarui file JSON dan kemudian komit ke repositori jarak jauh. Perhatikan hal berikut saat menggunakan CI/CD pipeline untuk mengelola kumpulan izin dan asosiasi yang diterapkan sebelumnya:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps insinyur | 

## Pemecahan masalah
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Akses kesalahan ditolak | Konfirmasikan bahwa Anda memiliki izin yang diperlukan untuk menyebarkan CloudFormation templat dan sumber daya yang ditentukan di dalamnya. Untuk informasi selengkapnya, lihat [Mengontrol akses](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) dalam CloudFormation dokumentasi. | 
| Kesalahan saluran pipa dalam fase validasi | Kesalahan ini muncul jika ada kesalahan dalam set izin atau templat penugasan.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | 

## Sumber daya terkait
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-resources"></a>
+ [Set izin](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (dokumentasi Pusat Identitas IAM)