Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola set AWS IAM Identity Center izin sebagai kode dengan menggunakan AWS CodePipeline
Andre Cavalcante dan Claison Amorim, Amazon Web Services
Ringkasan
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. 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
Prasyarat
Lingkungan multi-akun yang dikelola sebagai organisasi di AWS Organizations. Untuk informasi selengkapnya, lihat Membuat organisasi.
Pusat Identitas IAM, diaktifkan dan dikonfigurasi dengan sumber identitas. Untuk informasi selengkapnya, lihat Memulai 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 Pusat Identitas IAM.
AWS Organizations Untuk petunjuk, lihat Administrator yang didelegasikan untuk AWS Organizations. 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 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 di dokumentasi Amazon S3.
ID akun akun manajemen organisasi. Untuk petunjuk, lihat Menemukan Akun AWS ID Anda.
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. Anda tidak dapat menggunakan pola ini untuk mengelola atau menetapkan izin yang telah ditentukan sebelumnya.
Pola ini tidak dapat digunakan untuk mengelola izin yang ditetapkan untuk akun manajemen organisasi.
Arsitektur
Arsitektur target

Diagram menunjukkan alur kerja berikut:
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
Jika pengguna melakukan perubahan ke repositori jarak jauh ke cabang utama, pipeline dimulai.
Jika pengguna memodifikasi akun di OU, maka
MoveAccountEventBridge aturan mendeteksi perubahan dan memulai fungsi Lambda di akun manajemen organisasi.Fungsi Lambda yang dimulai memulai pipeline masuk CI/CD . CodePipeline
CodePipeline memulai
TemplateValidationCodeBuild proyek.TemplateValidationCodeBuild 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
CustomPolicyparameter dan valid. (Validasi ini menggunakan AWS Identity and Access Management Access Analyzer.)Nama Sumber Daya Amazon (ARNs) dari kebijakan terkelola valid.
Grup
PermissionSettindakan dalamDeployCodeBuild proyek digunakan AWS SDK untuk Python (Boto3) untuk menghapus, membuat, atau memperbarui set izin di Pusat Identitas IAM. Hanya set izin denganSSOPipeline:truetag yang terpengaruh. Semua set izin yang dikelola melalui pipeline ini memiliki tag ini.Grup
Assignmentstindakan dalamDeployCodeBuild 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.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 ada otomatisasi tambahan atau tindakan penskalaan yang diperlukan.
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
Layanan AWS
AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
AWS CodeBuildadalah layanan build terkelola penuh yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
AWS CodePipelinemembantu 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 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 Centermembantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.
AWS Organizationsadalah 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)
adalah kit pengembangan perangkat lunak yang membantu Anda mengintegrasikan aplikasi, perpustakaan, atau skrip Python Anda. Layanan AWS Amazon Simple Storage Service (Amazon S3) 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
Praktik terbaik
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 dan praktik terbaik Keamanan dalam dokumentasi AWS Identity and Access Management (IAM).
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning repositori. | Dalam shell bash, masukkan perintah berikut. Ini mengkloning repositori aws-iam-identity-center-pipeline
| DevOps insinyur |
Tentukan set izin. |
| DevOps insinyur |
Tentukan tugas. |
| DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menyebarkan sumber daya di akun administrator yang didelegasikan IAM Identity Center. |
| DevOps insinyur |
Menyebarkan sumber daya di akun AWS Organizations manajemen. |
| DevOps insinyur |
Selesaikan pengaturan repositori jarak jauh. | Ubah status AWS CodeConnections koneksi dari | DevOps insinyur |
Unggah file ke repositori jarak jauh. | Unggah semua file yang telah Anda unduh dari | DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Perbarui set izin dan tugas. | Saat EventBridge aturan 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:
| DevOps insinyur |
Pemecahan Masalah
| 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 dalam CloudFormation dokumentasi. |
Kesalahan saluran pipa dalam fase validasi | Kesalahan ini muncul jika ada kesalahan dalam set izin atau templat penugasan.
|
Sumber daya terkait
Set izin (dokumentasi Pusat Identitas IAM)