Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Secara otomatis memvalidasi dan menerapkan kebijakan dan peran IAM dengan menggunakan CodePipeline, IAM Access Analyzer, dan makro AWS CloudFormation
Helton Ribeiro dan Guilherme Simoes, Amazon Web Services
Ringkasan
Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan AWS yang sudah ada CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Pola ini menjelaskan langkah-langkah dan menyediakan kode untuk membuat pipeline penerapan yang memungkinkan tim pengembangan Anda membuat kebijakan dan peran AWS Identity and Access Management (IAM) di akun Amazon Web Services (AWS) Anda. Pendekatan ini membantu organisasi Anda mengurangi biaya overhead untuk tim operasional Anda dan mempercepat proses penyebaran. Ini juga membantu pengembang Anda untuk membuat peran dan kebijakan IAM yang kompatibel dengan tata kelola dan kontrol keamanan yang ada.
Pendekatan pola ini menggunakan AWS Identity and Access Management Access Analyzer untuk memvalidasi kebijakan IAM yang ingin Anda lampirkan ke peran IAM dan menggunakan AWS CloudFormation untuk menerapkan peran IAM. Namun, alih-alih mengedit file CloudFormation template AWS secara langsung, tim pengembangan Anda membuat kebijakan dan peran IAM berformat JSON. CloudFormation Makro AWS mengubah file kebijakan berformat JSON ini menjadi tipe sumber daya CloudFormation AWS IAM sebelum memulai penerapan.
Pipeline penerapan (RolesPipeline) memiliki tahapan sumber, validasi, dan penerapan. Selama tahap sumber, tim pengembangan Anda mendorong file JSON yang berisi definisi peran dan kebijakan IAM ke repositori AWS. CodeCommit AWS CodeBuild kemudian menjalankan skrip untuk memvalidasi file-file tersebut dan menyalinnya ke bucket Amazon Simple Storage Service (Amazon S3). Karena tim pengembangan Anda tidak memiliki akses langsung ke file CloudFormation template AWS yang disimpan dalam bucket S3 terpisah, mereka harus mengikuti proses pembuatan dan validasi file JSON.
Terakhir, selama fase penerapan, AWS CodeDeploy menggunakan CloudFormation tumpukan AWS untuk memperbarui atau menghapus kebijakan dan peran IAM dalam akun.
penting
Alur kerja pola ini adalah bukti konsep (POC) dan kami menyarankan Anda hanya menggunakannya di lingkungan pengujian. Jika Anda ingin menggunakan pendekatan pola ini di lingkungan produksi, lihat Praktik terbaik keamanan di IAM dalam dokumentasi IAM dan buat perubahan yang diperlukan pada peran IAM dan layanan AWS Anda.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif.
Bucket S3 baru atau yang sudah ada untuk
RolesPipelinepipa. Pastikan kredenal akses yang Anda gunakan memiliki izin untuk mengunggah objek ke bucket ini.AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang ini, lihat Menginstal, memperbarui, dan menghapus instalan AWS CLI dalam dokumentasi AWS CLI.
AWS Serverless Application Model (AWS SAM) CLI, diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang ini, lihat Menginstal AWS SAM CLI di dokumentasi AWS SAM.
Python 3, diinstal pada mesin lokal Anda. Untuk informasi lebih lanjut tentang ini, lihat dokumentasi Python
. Klien Git, diinstal dan dikonfigurasi.
GitHub
IAM roles pipelineRepositori, dikloning ke mesin lokal Anda.Kebijakan dan peran IAM berformat JSON yang ada. Untuk informasi lebih lanjut tentang ini, lihat ReadMe
file di repositori Github IAM roles pipeline.Tim pengembang Anda tidak boleh memiliki izin untuk mengedit AWS CodePipeline CodeBuild, dan CodeDeploy sumber daya solusi ini.
Batasan
Alur kerja pola ini adalah bukti konsep (POC) dan kami menyarankan Anda hanya menggunakannya di lingkungan pengujian. Jika Anda ingin menggunakan pendekatan pola ini di lingkungan produksi, lihat Praktik terbaik keamanan di IAM dalam dokumentasi IAM dan buat perubahan yang diperlukan pada peran IAM dan layanan AWS Anda.
Arsitektur
Diagram berikut menunjukkan kepada Anda cara memvalidasi dan menerapkan peran dan kebijakan IAM secara otomatis ke akun dengan menggunakan CodePipeline, IAM Access Analyzer, dan makro AWS. CloudFormation

Diagram menunjukkan alur kerja berikut:
Pengembang menulis file JSON yang berisi definisi untuk kebijakan dan peran IAM. Pengembang mendorong kode ke CodeCommit repositori dan CodePipeline kemudian memulai pipeline.
RolesPipelineCodeBuild memvalidasi file JSON dengan menggunakan IAM Access Analyzer. Jika ada keamanan atau temuan terkait kesalahan, proses penyebaran dihentikan.
Jika tidak ada keamanan atau temuan terkait kesalahan, file JSON dikirim ke bucket S3.
RolesBucketCloudFormation Makro AWS yang diimplementasikan sebagai fungsi AWS Lambda kemudian membaca file JSON dari bucket dan mengubahnya menjadi
RolesBuckettipe sumber daya CloudFormation AWS IAM.CloudFormation Stack AWS yang telah ditentukan sebelumnya menginstal, memperbarui, atau menghapus kebijakan dan peran IAM di akun.
Otomatisasi dan skala
CloudFormation Template AWS yang secara otomatis menerapkan pola ini disediakan di repositori pipeline peran GitHub IAM
Alat
AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
IAM Access Analyzer membantu Anda mengidentifikasi sumber daya di organisasi dan akun Anda, seperti bucket S3 atau peran IAM, yang dibagikan dengan entitas eksternal. Ini membantu Anda mengidentifikasi akses yang tidak diinginkan ke sumber daya dan data Anda.
AWS Serverless Application Model (AWS SAM) adalah kerangka kerja sumber terbuka yang membantu Anda membangun aplikasi tanpa server di AWS Cloud.
Kode
Kode sumber dan template untuk pola ini tersedia di repositori pipeline peran GitHub IAM
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning repositori sampel. | Kloning repositori pipeline peran GitHub IAM | Pengembang aplikasi, AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menyebarkan pipa. |
| Pengembang aplikasi, AWS Umum |
Kloning repositori pipeline. |
| Pengembang aplikasi, AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Uji RolesPipeline pipeline dengan kebijakan dan peran IAM yang valid. |
| Pengembang aplikasi, AWS Umum |
Uji RolesPipeline pipeline dengan kebijakan dan peran IAM yang tidak valid. |
| Pengembang aplikasi, AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Bersiaplah untuk pembersihan. | Kosongkan bucket S3 dan kemudian jalankan perintah. | Pengembang aplikasi, AWS Umum |
Hapus RolesStack tumpukan. |
| Pengembang aplikasi, AWS Umum |
Hapus RolesPipeline tumpukan. | Untuk menghapus CloudFormation tumpukan | Pengembang aplikasi, AWS Umum |