Secara otomatis memvalidasi dan menerapkan kebijakan dan peran IAM dengan menggunakan CodePipeline, IAM Access Analyzer, dan makro AWS CloudFormation - AWS Prescriptive Guidance

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 RolesPipeline pipa. 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 ReadMefile di repositori GithubIAM 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

Langkah-langkah untuk memvalidasi dan menerapkan kebijakan dan peran IAM di akun AWS.

Diagram menunjukkan alur kerja berikut:

  1. Pengembang menulis file JSON yang berisi definisi untuk kebijakan dan peran IAM. Pengembang mendorong kode ke CodeCommit repositori dan CodePipeline kemudian memulai pipeline. RolesPipeline

  2. CodeBuild memvalidasi file JSON dengan menggunakan IAM Access Analyzer. Jika ada keamanan atau temuan terkait kesalahan, proses penyebaran dihentikan.

  3. Jika tidak ada keamanan atau temuan terkait kesalahan, file JSON dikirim ke bucket S3. RolesBucket

  4. CloudFormation Makro AWS yang diimplementasikan sebagai fungsi AWS Lambda kemudian membaca file JSON dari bucket dan mengubahnya menjadi RolesBucket tipe sumber daya CloudFormation AWS IAM.

  5. 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

Kode

Kode sumber dan template untuk pola ini tersedia di repositori pipeline peran GitHub IAM.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori sampel.

Kloning repositori pipeline peran GitHub IAM ke mesin lokal Anda.

Pengembang aplikasi, AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan pipa.

  1. Arahkan ke direktori yang berisi repositori kloning.

  2. penting

    Jalankan make deploy bucket=<bucket_name> perintah.: Anda harus mengganti <bucket_name> dengan nama bucket untuk bucket S3 yang ada.

  3. Jalankan aws codepipeline get-pipeline –name RolesPipeline perintah untuk memeriksa apakah penerapan Anda berhasil.

Pengembang aplikasi, AWS Umum

Kloning repositori pipeline.

  1. CloudFormation Tumpukan RolesPipeline AWS membuat roles-pipeline-repo CodeCommit repositori.

  2. Masuk ke AWS Management Console, buka CodeCommit konsol AWS, lalu salin URL CodeCommit repositori untuk mengkloningnya ke mesin lokal Anda. Untuk informasi selengkapnya tentang ini, lihat Connect ke CodeCommit repositori AWS di dokumentasi CodeCommit AWS.

Pengembang aplikasi, AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Uji RolesPipeline pipeline dengan kebijakan dan peran IAM yang valid.

  1. Buat file JSON untuk kebijakan dan peran IAM Anda. Anda dapat menggunakan sampel dalam role-example direktori dari GitHub IAM roles pipeline repositori.

  2. penting

    Tentukan kebijakan dan peran IAM Anda dengan konfigurasi yang diperlukan. : Pastikan Anda mengikuti format yang dijelaskan dalam ReadMe file dari GitHub IAM roles pipeline repositori.

  3. Dorong modifikasi ke dalam roles-pipeline-repo CodeCommit repositori.

  4. Verifikasi implementasi RolesPipeline pipa.

  5. Pastikan bahwa kebijakan dan peran IAM diterapkan dengan benar di akun.

  6. Validasi jika ada batas izin yang terkait dengan kebijakan atau peran IAM. Untuk informasi selengkapnya tentang ini, lihat Batas izin untuk entitas IAM dalam dokumentasi IAM.

Pengembang aplikasi, AWS Umum

Uji RolesPipeline pipeline dengan kebijakan dan peran IAM yang tidak valid.

  1. Ubah roles-pipeline-repo CodeCommit repositori dan sertakan peran atau kebijakan IAM yang tidak valid. Misalnya, Anda dapat menggunakan tindakan yang tidak ada atau versi kebijakan IAM yang tidak valid.

  2. Verifikasi implementasi pipeline. IAM Access Analyzer menghentikan pipeline selama tahap validasi jika mendeteksi kebijakan atau peran IAM yang tidak valid.

Pengembang aplikasi, AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Bersiaplah untuk pembersihan.

Kosongkan bucket S3 dan kemudian jalankan perintah. destroy

Pengembang aplikasi, AWS Umum

Hapus RolesStack tumpukan.

  1. RolesPipelinePipeline membuat CloudFormation tumpukan RolesStack AWS yang menerapkan kebijakan dan peran IAM. Anda harus menghapus tumpukan ini sebelum menghapus RolesPipeline pipeline.

  2. Masuk ke AWS Management Console, buka CloudFormation konsol AWS, lalu pilih RolesStack tumpukan dan pilih Hapus.

Pengembang aplikasi, AWS Umum

Hapus RolesPipeline tumpukan.

Untuk menghapus CloudFormation tumpukan RolesPipeline AWS, ikuti instruksi dari ReadMefile di repositori GithubIAM roles pipeline.

Pengembang aplikasi, AWS Umum

Sumber daya terkait