Mengelola AWS Organizations kebijakan sebagai kode dengan menggunakan AWS CodePipeline dan Amazon Bedrock - AWS Prescriptive Guidance

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

Mengelola AWS Organizations kebijakan sebagai kode dengan menggunakan AWS CodePipeline dan Amazon Bedrock

Andre Cavalcante dan Mariana Pessoa de Queiroz, Amazon Web Services

Ringkasan

Anda dapat menggunakan kebijakan otorisasi AWS Organizations untuk mengonfigurasi dan mengelola akses untuk prinsipal dan sumber daya secara terpusat di akun anggota Anda. Kebijakan kontrol layanan (SCPs) menentukan izin maksimum yang tersedia untuk peran AWS Identity and Access Management (IAM) dan pengguna di organisasi Anda. Kebijakan kontrol sumber daya (RCPs) menentukan izin maksimum yang tersedia untuk sumber daya di organisasi Anda.

Pola ini membantu Anda mengelola SCPs dan RCPs sebagai infrastruktur sebagai kode (IAc) yang Anda terapkan melalui pipeline integrasi berkelanjutan dan penerapan berkelanjutan (CI/CD). Dengan menggunakan AWS CloudFormation atau Hashicorp Terraform untuk mengelola kebijakan ini, Anda dapat mengurangi beban yang terkait dengan membangun dan memelihara beberapa kebijakan otorisasi.

Pola ini mencakup fitur-fitur berikut:

  • Anda membuat, menghapus, dan memperbarui kebijakan otorisasi dengan menggunakan file manifes (scp-management.jsondanrcp-management.json).

  • Anda bekerja dengan pagar pembatas alih-alih kebijakan. Anda menentukan pagar pembatas dan targetnya dalam file manifes.

  • Pipeline, yang menggunakan AWS CodeBuild dan AWS CodePipeline, menggabungkan dan mengoptimalkan pagar pembatas dalam file manifes. Untuk setiap pernyataan dalam file manifes, pipeline menggabungkan pagar pembatas menjadi satu SCP atau RCP dan kemudian menerapkannya ke target yang ditentukan.

  • AWS Organizations menerapkan kebijakan untuk target Anda. Target dapat berupa Akun AWS, unit organisasi (OU), lingkungan (yang merupakan grup akun atau OUs yang Anda tentukan dalam environments.json file), atau sekelompok akun yang berbagi AWS tag.

  • Amazon Bedrock membaca log pipeline dan merangkum semua perubahan kebijakan.

  • Pipa membutuhkan persetujuan manual. Penyetuju dapat meninjau ringkasan eksekutif yang disiapkan Amazon Bedrock, yang membantu mereka memahami perubahan.

Prasyarat dan batasan

Prasyarat

Batasan

  • Anda tidak dapat menggunakan pola ini untuk mengelola SCPs atau RCPs yang dibuat di luar CI/CD pipeline ini. Namun, Anda dapat membuat ulang kebijakan yang ada melalui pipeline. Untuk informasi selengkapnya, lihat Memigrasi kebijakan yang ada ke pipeline di bagian Informasi tambahan pada pola ini.

  • Jumlah akun OUs, dan kebijakan di setiap akun tunduk pada kuota dan batas layanan untuk AWS Organizations.

  • Pola ini tidak dapat digunakan untuk mengonfigurasi kebijakan manajemen AWS Organizations, seperti kebijakan cadangan, kebijakan tag, kebijakan aplikasi obrolan, atau kebijakan deklaratif.

Arsitektur

Diagram berikut menunjukkan alur kerja pipa manajemen kebijakan dan sumber daya yang terkait.

Melepaskan SCPs dan RCPs melalui jalur manajemen kebijakan.

Diagram menunjukkan alur kerja berikut:

  1. Seorang pengguna melakukan perubahan pada file scp-management.json atau rcp-management.json manifes di cabang utama repositori jarak jauh.

  2. Perubahan ke main cabang memulai pipa di AWS CodePipeline.

  3. CodePipeline memulai Validate-Plan CodeBuild proyek. Proyek ini menggunakan skrip Python di repositori jarak jauh untuk memvalidasi kebijakan dan file manifes kebijakan. CodeBuild Proyek ini melakukan hal berikut:

    1. Memeriksa bahwa file manifes SCP dan RCP berisi pernyataan unik IDs ()Sid.

    2. Menggunakan skrip scp-policy-processor/main.py dan rcp-policy-processor/main.py Python untuk menggabungkan pagar pembatas di folder pagar pembatas menjadi satu kebijakan RCP atau SCP. Ini menggabungkan pagar pembatas yang memiliki hal yang samaResource,Action, dan. Condition

    3. Menggunakan AWS Identity and Access Management Access Analyzer untuk memvalidasi kebijakan akhir yang dioptimalkan. Jika ada temuan, pipa berhenti.

    4. Membuat scps.json dan rcps.json file, yang digunakan Terraform untuk membuat sumber daya.

    5. Menjalankan terraform plan perintah, yang membuat rencana eksekusi Terraform.

  4. (Opsional) Validate-Plan CodeBuild Proyek ini menggunakan bedrock-prompt/prompt.py skrip untuk mengirim prompt ke Amazon Bedrock. Anda menentukan prompt dalam bedrock-prompt/prompt.txt file. Amazon Bedrock menggunakan Anthropic Claude Sonnet 3.5 untuk menghasilkan ringkasan perubahan yang diusulkan dengan menganalisis log Terraform dan Python.

  5. CodePipeline menggunakan topik Amazon Simple Notification Service (Amazon SNS) untuk memberi tahu pemberi persetujuan bahwa perubahan harus ditinjau. Jika Amazon Bedrock menghasilkan ringkasan perubahan, notifikasi menyertakan ringkasan ini.

  6. Penyetuju kebijakan menyetujui tindakan tersebut. CodePipeline Jika Amazon Bedrock membuat ringkasan perubahan, pemberi persetujuan dapat meninjau ringkasan CodePipeline sebelum menyetujui.

  7. CodePipeline memulai Apply CodeBuild proyek. Proyek ini menggunakan Terraform untuk menerapkan perubahan RCP dan SCP di. AWS Organizations

Template IAc yang terkait dengan arsitektur ini juga menyebarkan sumber daya berikut yang mendukung pipeline manajemen kebijakan:

  • Bucket Amazon S3 untuk menyimpan CodePipeline artefak dan skrip, seperti dan scp-policy-processor/main.py bedrock-prompt/prompt.py

  • Kunci AWS Key Management Service (AWS KMS) yang mengenkripsi sumber daya yang dibuat oleh solusi ini

Alat

Layanan AWS

  • Amazon Bedrock adalah layanan AI yang dikelola sepenuhnya yang membuat banyak model fondasi berkinerja tinggi tersedia untuk digunakan melalui API terpadu.

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

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

Alat lainnya

  • HashiCorp Terraform adalah alat IAc yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud.

Repositori kode

Kode untuk pola ini tersedia di organizations-policy-pipeline GitHub repositori. Berikut ini adalah file kunci yang terdapat dalam sample-repository folder:

  • Dalam environments folder, environments.json berisi daftar lingkungan. Lingkungan adalah sekelompok target, dan mereka dapat berisi Akun AWS IDs atau unit organisasi (OUs).

  • Dalam rcp-management folder:

    • guardrailsFolder berisi pagar pembatas individual untuk Anda RCPs

    • policiesFolder berisi individu RCPs

    • File rcp-management.json manifes membantu Anda mengelola pagar pembatas RCP, penuh RCPs, dan target terkaitnya.

  • Dalam scp-management folder:

    • guardrailsFolder berisi pagar pembatas individual untuk Anda SCPs

    • policiesFolder berisi individu SCPs

    • File scp-management.json manifes membantu Anda mengelola pagar pembatas SCP, penuh SCPs, dan target terkaitnya.

  • utilsFolder berisi skrip yang dapat membantu Anda memigrasikan saat ini SCPs RCPs sehingga Anda dapat mengelolanya melalui pipeline. Untuk informasi selengkapnya, lihat bagian Informasi tambahan dari pola ini.

Praktik terbaik

  • Sebelum Anda mengatur pipeline, kami sarankan Anda memverifikasi bahwa Anda belum mencapai batas AWS Organizations kuota Anda.

  • Kami menyarankan Anda menggunakan akun AWS Organizations manajemen hanya untuk tugas-tugas yang harus dilakukan di akun itu. Untuk informasi selengkapnya, lihat Praktik terbaik untuk akun manajemen.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat repositori.

Buat repositori tempat tim operasi keamanan Anda akan mengelola kebijakan. Gunakan salah satu penyedia repositori pihak ketiga yang AWS CodeConnections mendukung.

DevOps insinyur

Delegasikan administrasi kebijakan.

Delegasikan administrasi AWS Organizations kebijakan ke akun anggota tempat Anda menerapkan pipeline. Untuk petunjuknya, lihat Membuat kebijakan delegasi berbasis sumber daya dengan. AWS Organizations Untuk kebijakan sampel, lihat Contoh kebijakan delegasi berbasis sumber daya di bagian Informasi tambahan dari pola ini.

Administrator AWS

(Opsional) Aktifkan model pondasi.

Jika Anda ingin membuat ringkasan perubahan kebijakan, aktifkan akses ke model dasar Anthropic Claude 3.5 Sonnet di Amazon Bedrock di Akun AWS tempat Anda menerapkan pipeline. Untuk petunjuknya, lihat Menambahkan atau menghapus akses ke model foundation Amazon Bedrock.

AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori.

Masukkan perintah berikut untuk mengkloning organizations-policy-pipeline repositori dari: GitHub

git clone https://github.com/aws-samples/organizations-policy-pipeline.git

DevOps insinyur

Tentukan metode penerapan Anda.

  1. Di repositori kloning, buka file. variables.tf

  2. Untukproject_name, masukkan awalan yang ingin Anda terapkan ke nama sumber daya yang digunakan.

  3. Untukprovider_type, masukkan penyedia repositori jarak jauh. Nilai yang valid disediakan dalam file.

  4. Untukfull_repository_name, masukkan nama repositori jarak jauh.

  5. Untukbranch_name, masukkan nama cabang Git yang akan Anda gunakan untuk menyebarkan kebijakan. Dorongan atau penggabungan di cabang ini memulai pipa. Biasanya, ini adalah cabang utama.

  6. Untukterraform_version, masukkan versi Terraform yang Anda gunakan.

  7. Untukenable_bedrock, masukkan true jika Anda ingin Amazon Bedrock meringkas perubahan. Masukkan false jika Anda tidak ingin menghasilkan ringkasan perubahan.

  8. Untuktags, masukkan pasangan kunci-nilai yang ingin Anda tetapkan sebagai tag ke sumber daya yang diterapkan.

  9. Simpan dan tutup file variables.tf.

DevOps insinyur

Menyebarkan pipa.

  1. Masukkan perintah berikut untuk membuat rencana dan meninjau perubahan:

    terraform plan
  2. Masukkan perintah berikut untuk menerapkan rencana dan membuat infrastruktur pipa:

    terraform apply
DevOps insinyur, Terraform

Hubungkan repositori jarak jauh.

Pada langkah sebelumnya, Terraform membuat CodeConnections koneksi ke repositori pihak ketiga. Di konsol Alat AWS Pengembang, ubah status koneksi dari PENDING keAVAILABLE. Untuk petunjuk, lihat Memperbarui koneksi yang tertunda.

AWS DevOps

Langganan topik Amazon SNS.

Terraform membuat topik Amazon SNS. Berlangganan titik akhir ke topik dan konfirmasikan langganan sehingga pemberi persetujuan menerima pemberitahuan tentang tindakan persetujuan yang tertunda dalam pipeline. Untuk petunjuknya, lihat Membuat langganan ke topik Amazon SNS.

AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Isi repositori jarak jauh.

Dari repositori kloning, salin isi sample-repository folder ke repositori jarak jauh Anda. Ini termasukenvironments,rcp-management,scp-management, dan utils folder.

DevOps insinyur

Tentukan lingkungan Anda.

  1. Di environments folder, buka environments.json file. Ini adalah file di mana Anda menentukan target Akun AWS dan OUs untuk Anda RCPs dan SCPs.

  2. Hapus contoh lingkungan.

  3. Tambahkan lingkungan target Anda dalam format berikut:

    [ { "ID": "<environment-name>", "Target": [ "<ou-name>:<ou-id>", "<account-name>:<account-id>" ] } ]

    Di mana:

    • <environment-name>adalah nama yang Anda tetapkan ke grup OUs dan akun AWS. Anda dapat menggunakan nama ini dalam file manifes untuk menentukan di mana Anda ingin menerapkan kebijakan Anda.

    • <ou-name>adalah nama target OU.

    • <ou-id>adalah ID dari target OU.

    • <account-name>adalah nama targetnya Akun AWS.

    • <account-id>adalah ID target Akun AWS.

    Sebagai contoh, lihat repositori kode sumber.

  4. Simpan dan tutup file environments.json.

DevOps insinyur

Tentukan pagar pembatas Anda.

  1. Arahkan ke rcp-management/guardrails folder di repositori jarak jauh Anda. Ini adalah folder tempat Anda menentukan pagar pembatas untuk file manifes RCP Anda. Setiap pagar pembatas harus dalam file individual. File guardrail dapat berisi satu atau lebih pernyataan.

    catatan

    Anda dapat menggunakan pagar pembatas yang sama dalam beberapa pernyataan dalam file manifes untuk SCPs dan. RCPs Jika Anda memodifikasi pagar pembatas, kebijakan apa pun yang mencakup pagar pembatas ini akan terpengaruh.

  2. Hapus semua contoh pagar pembatas yang disalin dari repositori kode sumber.

  3. Buat file.json baru dan beri nama deskriptif.

  4. Buka file.json yang Anda buat.

  5. Tentukan pagar pembatas dalam format berikut:

    [ { "Sid": "<guardrail-name>", "Effect": "<effect-value>", "Action": [ "<action-name>" ], "Resource": "<resource-arn>", "Condition": { "<condition-operator>": { "<condition-key>": [ "<condition-value>" ] } } } ]

    Di mana:

    • <guardrail-name>adalah nama unik untuk pagar pembatas. Nama ini tidak dapat digunakan untuk pagar pembatas lainnya.

    • <effect-value>harus Allow atauDeny. Untuk informasi lebih lanjut, lihat Efek.

    • <action-name>harus merupakan nama yang valid dari tindakan yang didukung layanan. Untuk informasi selengkapnya, lihat Tindakan.

    • <resource-arn>adalah Nama Sumber Daya Amazon (ARN) dari sumber daya yang berlaku untuk pagar pembatas. Anda juga dapat menggunakan karakter wildcard, seperti * atau?. Untuk informasi selengkapnya, lihat Sumber Daya.

    • <condition-operator>adalah operator kondisi yang valid. Untuk informasi selengkapnya, lihat Operator kondisi.

    • <condition-key>adalah kunci konteks kondisi global yang valid atau kunci konteks khusus layanan. Untuk informasi lebih lanjut, lihat Kondisi.

    • <condition-value>adalah nilai spesifik yang digunakan dalam suatu kondisi untuk mengevaluasi apakah pagar pembatas berlaku. Untuk informasi lebih lanjut, lihat Kondisi.

    Misalnya pagar pembatas RCP, lihat repositori kode sumber.

  6. Simpan dan tutup file.json.

  7. Ulangi langkah-langkah ini untuk membuat pagar pembatas RCP sebanyak yang diperlukan.

  8. Ulangi langkah-langkah ini di scp-management/guardrails folder untuk membuat pagar pembatas sebanyak yang Anda butuhkan untuk Anda. SCPs Misalnya pagar pembatas SCP, lihat repositori kode sumber.

DevOps insinyur

Tentukan kebijakan Anda.

  1. Arahkan ke rcp-management/policies folder di repositori jarak jauh Anda. Ini adalah folder tempat Anda menentukan kebijakan lengkap untuk file manifes RCP Anda. Setiap kebijakan harus berupa file individual.

    catatan

    Jika Anda mengubah kebijakan di folder ini, perubahan kebijakan akan memengaruhi akun apa pun atau OUs kebijakan ini diterapkan, sebagaimana didefinisikan dalam file manifes.

  2. Hapus kebijakan contoh apa pun yang disalin dari repositori kode sumber.

  3. Buat file.json baru dan beri nama deskriptif.

  4. Buka file.json yang Anda buat.

  5. Tentukan RCP. Misalnya RCPs, lihat repositori kode sumber atau lihat Contoh kebijakan kontrol sumber daya dalam dokumentasi. AWS Organizations

  6. Simpan dan tutup file.json.

  7. Ulangi langkah-langkah ini untuk membuat RCPs sebanyak yang diperlukan.

  8. Ulangi langkah-langkah ini di scp-management/policies folder untuk membuat SCPs sebanyak yang diperlukan. Misalnya SCPs, lihat repositori kode sumber atau lihat Contoh kebijakan kontrol layanan dalam dokumentasi. AWS Organizations

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan file manifes.

  1. Di rcp-management folder, buka rcp-management.json file. Ini adalah file tempat Anda menentukan pagar pembatas RCP mana dan sepenuhnya RCPs berlaku untuk lingkungan target Anda. Untuk contoh file ini, lihat repositori kode sumber.

  2. Hapus pernyataan contoh.

  3. Tambahkan pernyataan baru dalam format berikut:

    [ { "SID": "<statement-name>", "Target": { "Type": "<target-type>", "ID": "<target-name>" }, "Guardrails": [ "<guardrail-name>" ], "Policy": "<policy-name>", "Comments": "<comment-text>" } ]

    Di mana:

    • <statement-name>adalah nama unik untuk pernyataan itu.

    • <target-type>adalah jenis target di mana Anda ingin menerapkan kebijakan. Nilai yang valid adalah Account, OU, Environment, atau Tag.

    • <target-name>adalah pengenal target di mana Anda ingin menerapkan kebijakan. Masukkan salah satu dari berikut ini:

      • Untuk Akun AWS, masukkan pengenal sebagai<account-name>:<account-id>.

      • Untuk OU, masukkan pengenal sebagai<OU-name>:<ou-id>.

      • Untuk lingkungan, masukkan nama unik yang Anda tentukan dalam environments.json file.

      • Untuk tag, masukkan pasangan kunci-nilai sebagai. <tag-key>:<tag-value>

    • <guardrail-name>adalah nama unik dari pagar pembatas RCP yang Anda tentukan di folder. rcp-management/guardrails Anda dapat menambahkan beberapa pagar pembatas dalam elemen ini. Anda dapat membiarkan bidang ini kosong jika Anda tidak ingin menerapkan pagar pembatas.

    • <policy-name>adalah nama unik dari RCP yang Anda tentukan di rcp-management/policies folder. Anda hanya dapat menambahkan satu kebijakan dalam elemen ini. Anda dapat membiarkan bidang ini kosong jika Anda tidak ingin menerapkan kebijakan.

    • <comment-text>adalah deskripsi yang dapat Anda masukkan untuk tujuan dokumentasi. Bidang ini tidak digunakan selama pemrosesan pipa. Anda dapat membiarkan bidang ini kosong jika Anda tidak ingin menambahkan komentar.

  4. Ulangi langkah-langkah ini untuk menambahkan pernyataan sebanyak yang diperlukan RCPs untuk mengonfigurasi organisasi Anda.

  5. Simpan dan tutup file rcp-management.json.

  6. Di scp-management folder, ulangi langkah-langkah ini dalam scp-management.json file. Ini adalah file tempat Anda menentukan pagar pembatas SCP mana dan sepenuhnya SCPs berlaku untuk lingkungan target Anda. Untuk contoh file ini, lihat repositori kode sumber.

DevOps insinyur

Mulai pipa.

Komit dan dorong perubahan ke cabang repositori jarak jauh yang Anda tentukan dalam file. variables.tf Biasanya, ini adalah main cabang. CI/CD Pipa secara otomatis dimulai. Jika ada kesalahan pipeline, lihat bagian Pemecahan Masalah dari pola ini.

DevOps insinyur

Menyetujui perubahan.

Ketika Validate-Plan CodeBuild proyek selesai, pemberi persetujuan kebijakan menerima pemberitahuan melalui topik Amazon SNS yang sebelumnya Anda konfigurasikan. Lakukan hal-hal berikut:

  1. Buka pesan notifikasi.

  2. Jika tersedia, tinjau ringkasan perubahan kebijakan.

  3. Ikuti instruksi di Menyetujui atau menolak tindakan persetujuan di. CodePipeline

AWS Umum, Penyetuju kebijakan

Validasi penerapan.

  1. Masuk ke AWS Organizations konsol di akun yang merupakan administrator yang didelegasikan. AWS Organizations

  2. Pada halaman Kebijakan kontrol layanan, konfirmasikan SCPs bahwa yang Anda buat terdaftar.

  3. Pilih SCP yang dikelola melalui pipeline dan konfirmasikan bahwa itu berlaku untuk target yang dimaksud.

  4. Pada halaman Kebijakan kontrol sumber daya, konfirmasikan RCPs bahwa yang Anda buat terdaftar.

  5. Pilih RCP yang dikelola melalui pipeline dan konfirmasikan bahwa itu berlaku untuk target yang dimaksud.

AWS Umum

Pemecahan Masalah

IsuSolusi

Kesalahan file manifes dalam Validate-Plan fase pipa

Pesan “Kesalahan pipa dalam fase Validasi & Rencana untuk file manifes” muncul di output pipeline jika ada kesalahan dalam rcp-management.json file scp-management.json atau. Kemungkinan kesalahan termasuk nama lingkungan yang salah, kolom atau nilai duplikat SIDs, atau tidak valid. Lakukan hal-hal berikut:

  1. Ikuti petunjuk di Lihat detail build di AWS CodeBuild.

  2. Di log build, temukan kesalahan validasi. Kesalahan memberikan informasi lebih lanjut tentang apa yang menyebabkan build gagal.

  3. Perbarui file.json yang sesuai.

  4. Komit dan dorong file yang diperbarui ke repositori jarak jauh. Pipa restart.

  5. Pantau status untuk mengonfirmasi bahwa kesalahan validasi teratasi.

Temuan IAM Access Analyzer dalam Validate-Plan fase pipa

Pesan “Temuan di IAM Access Analyzer selama fase Validasi & Rencana” muncul di output pipeline jika ada kesalahan dalam pagar pembatas atau definisi kebijakan. Pola ini menggunakan IAM Access Analyzer untuk memvalidasi kebijakan akhir. Lakukan hal-hal berikut:

  1. Ikuti petunjuk di Lihat detail build di AWS CodeBuild.

  2. Di log build, temukan error validasi IAM Access Analyzer. Kesalahan memberikan informasi lebih lanjut tentang apa yang menyebabkan build gagal. Untuk informasi selengkapnya tentang jenis temuan, lihat referensi pemeriksaan validasi kebijakan IAM.

  3. Perbarui file.json yang sesuai untuk pagar pembatas atau kebijakan.

  4. Komit dan dorong file yang diperbarui ke repositori jarak jauh. Pipa restart.

  5. Pantau status untuk mengonfirmasi bahwa kesalahan validasi teratasi.

Sumber daya terkait

Informasi tambahan

Contoh kebijakan delegasi berbasis sumber daya

Berikut ini adalah contoh kebijakan delegasi berbasis sumber daya untuk. AWS Organizations Ini memungkinkan akun pengelola yang didelegasikan untuk mengelola SCPs dan RCPs untuk organisasi. Dalam contoh kebijakan berikut, ganti <MEMBER_ACCOUNT_ID> dengan ID akun tempat Anda menerapkan pipeline manajemen kebijakan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DelegationToAudit", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<MEMBER_ACCOUNT_ID>:root" }, "Action": [ "organizations:ListTargetsForPolicy", "organizations:CreatePolicy", "organizations:DeletePolicy", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DisablePolicyType", "organizations:EnablePolicyType", "organizations:UpdatePolicy", "organizations:DescribeEffectivePolicy", "organizations:DescribePolicy", "organizations:DescribeResourcePolicy" ], "Resource": "*" } ] }

Migrasi kebijakan yang ada ke pipeline

Jika Anda sudah ada SCPs atau RCPs yang ingin Anda migrasi dan kelola melalui pipeline ini, Anda dapat menggunakan skrip Python di folder sample-repository/utils repositori kode. Skrip ini meliputi:

  • check-if-scp-exists-in-env.py— Skrip ini memeriksa apakah kebijakan tertentu berlaku untuk target apa pun di lingkungan tertentu, yang Anda tentukan dalam environments.json file. Masukkan perintah berikut untuk menjalankan skrip ini:

    python3 check-if-scp-exists-in-env.py \ --policy-type <POLICY_TYPE> \ --policy-name <POLICY_NAME> \ --env-id <ENV_ID>

    Ganti yang berikut ini dalam perintah ini:

    • <POLICY_TYPE>adalah scp atau rcp

    • <POLICY_NAME>adalah nama SCP atau RCP

    • <ENV_ID>adalah ID lingkungan yang Anda tentukan dalam environments.json file

  • create-environments.py— Skrip ini membuat file environments.json berdasarkan saat ini SCPs dan RCPs di lingkungan Anda. Ini tidak termasuk kebijakan yang diterapkan melalui. AWS Control Tower Masukkan perintah berikut untuk menjalankan skrip ini, di <POLICY_TYPE> mana scp ataurcp:

    python create-environments.py --policy-type <POLICY_TYPE>
  • verify-policies-capacity.py— Skrip ini memeriksa setiap lingkungan yang Anda tentukan untuk menentukan berapa banyak kapasitas yang tersisa untuk setiap kuota AWS Organizations terkait kebijakan. Anda menentukan lingkungan untuk memeriksa dalam environments.json file. Masukkan perintah berikut untuk menjalankan skrip ini, di <POLICY_TYPE> mana scp ataurcp:

    python verify-policies-capacity.py --policy-type <POLICY_TYPE>