Menguji perubahan kebijakan organisasi dengan Policy Simulator

Simulator Kebijakan untuk Kebijakan Organisasi memungkinkan Anda melihat pratinjau dampak batasan khusus atau kebijakan organisasi baru yang menerapkan batasan kustom sebelum diterapkan di lingkungan produksi Anda. Policy Simulator menyediakan daftar resource yang melanggar kebijakan yang diusulkan sebelum diterapkan, sehingga Anda dapat mengonfigurasi ulang resource tersebut, meminta pengecualian, atau mengubah cakupan kebijakan organisasi, semuanya tanpa mengganggu developer atau menurunkan lingkungan Anda.

Halaman ini menjelaskan cara menguji perubahan pada kebijakan organisasi menggunakan Simulator Kebijakan. Panduan ini juga menjelaskan cara menafsirkan hasil simulasi dan cara menerapkan kebijakan organisasi yang diuji jika Anda memilihnya.

Sebelum memulai

  • Jika Anda menggunakan Google Cloud CLI, tetapkan project yang ingin digunakan untuk melakukan panggilan API:

    gcloud config set project PROJECT_ID

    Ganti PROJECT_ID dengan nama atau ID project.

  • Enable the Policy Simulator and Resource Manager APIs.

    Enable the APIs

  • Opsional: Dapatkan pengantar untuk Organization Policy Service.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menjalankan dan mengakses simulasi, minta administrator Anda untuk memberi Anda peran IAM OrgPolicy Simulator Admin (roles/policysimulator.orgPolicyAdmin) di organisasi. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menjalankan dan mengakses simulasi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menjalankan dan mengakses simulasi:

  • orgpolicy.constraints.list
  • orgpolicy.customConstraints.get
  • orgpolicy.policies.list
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.listResource
  • cloudasset.assets.listOrgPolicy
  • policysimulator.orgPolicyViolationsPreviews.list
  • policysimulator.orgPolicyViolationsPreviews.get
  • policysimulator.orgPolicyViolationsPreviews.create
  • policysimulator.orgPolicyViolations.list

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

Menguji perubahan kebijakan

Anda dapat menguji perubahan pada batasan kustom, kebijakan organisasi yang menerapkan batasan kustom, atau keduanya secara bersamaan.

Konsol

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Pilih pemilih project di bagian atas halaman.

  3. Dari pemilih project, pilih resource yang perubahannya ingin Anda uji pada kebijakan organisasi. Untuk menguji perubahan pada batasan khusus, Anda harus memilih resource organisasi.

  4. Jika Anda ingin menguji batasan kustom baru, klik Custom constraint. Jika Anda ingin membuat perubahan pada batasan kustom yang sudah ada, pilih batasan tersebut dari daftar di halaman Organization policies, lalu klik Edit constraint.

  5. Buat atau perbarui batasan kustom yang ingin Anda uji.

    Misalnya, untuk menentukan batasan kustom yang membatasi pembuatan resource cluster Google Kubernetes Engine tempat Otorisasi Biner tidak diaktifkan, lakukan hal berikut:

    1. Di kotak Resource type, pilih container.googleapis.com/Cluster.

    2. Di bagian Metode penerapan, pilih Terapkan saat buat.

    3. Klik Edit kondisi.

    4. Di panel Add condition, masukkan resource.binaryAuthorization.enabled == true.

    5. Klik Simpan.

    6. Di bagian Tindakan, pilih Izinkan.

    Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola batasan kustom.

  6. Klik Batasan pengujian.

  7. Jika ini adalah batasan baru atau batasan yang tidak diterapkan oleh kebijakan organisasi, Anda harus menentukan kebijakan organisasi.

    1. Di kotak Select scope, pilih resource yang ingin Anda uji batasan kustom ini.

    2. Klik Sesuaikan.

    3. Klik Tambahkan aturan.

    4. Di bagian Penegakan, pilih Aktif, lalu klik Selesai.

    5. Klik Lanjutkan.

Halaman Simulation history akan muncul, dengan daftar simulasi yang Anda lakukan dalam 14 hari terakhir. Lihat hasil Simulator Kebijakan di halaman ini untuk mengetahui informasi selengkapnya.

gcloud

  1. Untuk menguji batasan kustom, buat file JSON atau YAML yang menentukan batasan kustom yang ingin Anda uji.

    Misalnya, batasan kustom yang membatasi pembuatan resource cluster Google Kubernetes Engine yang tidak mengaktifkan Otorisasi Biner seperti berikut:

    name: "organizations/ORGANIZATION_ID/customConstraints/custom.EnforceGKEBinaryAuthz"
    resource_types: "container.googleapis.com/Cluster"
    method_types: CREATE
    condition: "resource.binaryAuthorization.enabled == true"
    action_type: ALLOW
    

    Ganti ORGANIZATION_ID dengan ID organisasi Anda, seperti 1234567890123.

    Untuk mengetahui informasi selengkapnya tentang cara membuat batasan kustom, lihat Membuat dan mengelola batasan kustom.

  2. Untuk menguji kebijakan organisasi yang menerapkan batasan kustom secara bersyarat berdasarkan keberadaan tag tertentu, buat file JSON atau YAML yang menentukan kebijakan organisasi yang ingin Anda uji.

    Misalnya, kebijakan organisasi berikut membatasi pembuatan resource cluster Google Kubernetes Engine yang tidak mengaktifkan Otorisasi Biner, kecuali pada resource yang memiliki tag env=dev terlampir.

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
        rules:
       - condition:
           expression: resource.matchTag('env', 'dev')
         enforce: false
       - enforce: true
    

    Ganti ORGANIZATION_ID dengan ID organisasi Anda, seperti 1234567890123.

    Untuk informasi selengkapnya tentang kebijakan organisasi bersyarat, lihat Menetapkan kebijakan organisasi dengan tag.

  3. Untuk menguji kebijakan organisasi yang menerapkan batasan kustom, buat file JSON atau YAML yang menentukan kebijakan organisasi yang ingin Anda uji.

    Misalnya, kebijakan organisasi yang membatasi pembuatan resource cluster Google Kubernetes Engine yang tidak mengaktifkan Otorisasi Biner serupa dengan kebijakan berikut:

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
        rules:
        - enforce: true
    

    Ganti ORGANIZATION_ID dengan ID organisasi Anda, seperti 1234567890123.

  4. Untuk menguji penghapusan kebijakan organisasi yang menerapkan batasan khusus, buat file JSON atau YAML yang menentukan kebijakan organisasi, tetapi tidak menetapkan aturan, dan mewarisi kebijakan dari resource induknya.

    Misalnya, kebijakan organisasi berikut akan menyimulasikan penghapusan batasan kustom custom.EnforceGKEBinaryAuthz yang ada.

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
          inheritFromParent: true
    
  5. Jalankan perintah berikut untuk menyimulasikan perubahan pada batasan kustom, kebijakan organisasi, atau keduanya:

    gcloud beta policy-intelligence simulate orgpolicy \
       --organization=ORGANIZATION_ID \
       --custom-constraints=CONSTRAINT_PATH \
       --policies=POLICY_PATH
    

Ganti kode berikut:

  • ORGANIZATION_ID: ID organisasi Anda, seperti 1234567890123. Simulasi perubahan pada beberapa organisasi tidak didukung.

  • CONSTRAINT_PATH: jalur lengkap ke batasan kustom yang telah Anda buat atau perbarui. Misalnya, tmp/constraint.yaml Jika menetapkan tanda --policies, Anda tidak perlu menetapkan tanda --custom-constraints.

  • POLICY_PATH: jalur lengkap ke kebijakan organisasi yang telah Anda buat atau perbarui. Misalnya, tmp/policy.yaml Jika menetapkan tanda --custom-constraints, Anda tidak perlu menetapkan tanda --policies.

Setelah beberapa menit, perintah tersebut mencetak daftar resource yang akan melanggar perubahan pada batasan kustom, kebijakan organisasi, atau keduanya.

Hasilnya juga dapat dilihat di Konsol Google Cloud. Lihat Hasil Simulator Kebijakan di halaman ini untuk mempelajari cara membaca hasilnya.

Berikut adalah contoh respons untuk simulasi kebijakan organisasi. Simulasi ini melibatkan batasan kustom yang membatasi pembuatan resource cluster Google Kubernetes Engine yang tidak mengaktifkan Otorisasi Biner. Dalam hal ini, jika perubahan yang diusulkan diterapkan, dua resource cluster akan melanggar kebijakan: orgpolicy-test-cluster pada project simulator-test-project, dan autopilot-cluster-1 pada project orgpolicy-test-0.

Waiting for operation [organizations/012345678901/locations/global/orgPolic
yViolationsPreviews/85be9a2d-8c49-470d-a65a-d0cb9ffa8f83/operations/1883a83
c-c448-42e5-a7c5-10a850928f06] to complete...done.
---
customConstraint:
  actionType: ALLOW
  condition: resource.binaryAuthorization.enabled == true
  methodTypes:
  - CREATE
  name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
  resourceTypes:
  - container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/b9fd23a5-7163-46de-9fec-7b9aa6af1113
resource:
  ancestors:
  - organizations/012345678901
  - projects/456789012345
  assetType: container.googleapis.com/Cluster
  resource: //container.googleapis.com/projects/simulator-test-project/locations/us-central1/clusters/orgpolicy-test-cluster
---
customConstraint:
  actionType: ALLOW
  condition: resource.binaryAuthorization.enabled == true
  methodTypes:
  - CREATE
  name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
  resourceTypes:
  - container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/e73896e6-7613-4a8d-8436-5df7a6455121
resource:
  ancestors:
  - organizations/012345678901
  - folders/789012345678
  - projects/456789012345
  assetType: container.googleapis.com/Cluster
  resource: //container.googleapis.com/projects/orgpolicy-test-0/locations/us-central1/clusters/autopilot-cluster-1

Hasil Policy Simulator

Policy Simulator melaporkan hasil perubahan batasan kustom atau kebijakan organisasi sebagai daftar pelanggaran kebijakan yang disimulasikan. Konsol Google Cloud menyimpan hasil simulasi yang Anda buat dalam 14 hari terakhir.

Untuk melihat hasil simulasi, buka halaman Histori simulasi.

Buka Histori simulasi

Pilih simulasi untuk melihat detailnya. Di halaman Laporan simulasi, Anda dapat melihat pratinjau pelanggaran, yang mencantumkan jumlah total pelanggaran yang disebabkan oleh batasan khusus atau kebijakan organisasi yang baru, jumlah resource yang diperiksa dalam cakupan simulasi, dan waktu simulasi selesai.

Jika menyimulasikan batasan kustom, Anda dapat mengklik Constraint details untuk melihat konfigurasi tertentu yang disimulasikan. Jika Anda menyimulasikan kebijakan organisasi, tab Detail kebijakan akan menampilkan konfigurasi yang disimulasikan.

Semua pelanggaran tercantum dalam tabel referensi. Setiap resource yang melanggar batasan khusus atau kebijakan organisasi yang baru dicantumkan dengan link ke entri resource di Inventaris Aset Cloud. Resource project, folder, dan organisasi ditampilkan dengan jumlah total resource di bawahnya dalam hierarki yang melanggar batasan khusus atau kebijakan organisasi yang baru.

Terapkan perubahan kebijakan yang telah diuji

Setelah menguji batasan kustom, kebijakan organisasi, atau keduanya, Anda dapat menyiapkan batasan kustom dan menerapkan kebijakan organisasi. Anda dapat melihat semua hasil Policy Simulator di Konsol Google Cloud, terlepas dari cara hasil tersebut dibuat. Jika laporan simulasi menyertakan perubahan pada maksimal satu kebijakan organisasi, Anda dapat menerapkan kebijakan organisasi secara langsung melalui hasil simulasi. Untuk menerapkan perubahan pengujian di beberapa kebijakan organisasi, gunakan Google Cloud CLI.

Konsol

  1. Untuk menerapkan hasil Simulator Kebijakan batasan kustom, buka halaman Histori simulasi.

    Buka Histori simulasi

  2. Pilih laporan simulasi untuk batasan kustom atau kebijakan organisasi yang ingin Anda terapkan.

  3. Jika laporan simulasi ini menyertakan batasan kustom, klik Save constraint.

  4. Jika laporan simulasi ini menyertakan perubahan pada maksimal satu kebijakan organisasi, Anda dapat menerapkan kebijakan organisasi tersebut sebagai kebijakan uji coba untuk memantau perilaku dalam produksi tanpa menimbulkan risiko dengan memilih Tetapkan kebijakan uji coba. Halaman Detail kebijakan untuk halaman kebijakan organisasi yang baru akan muncul.

    Anda dapat langsung menerapkan kebijakan organisasi dengan mengklik , lalu memilih Tetapkan kebijakan.

gcloud

  1. Untuk menerapkan batasan kustom, Anda harus menyiapkannya agar tersedia untuk kebijakan organisasi di organisasi Anda. Untuk menyiapkan batasan kustom, gunakan perintah gcloud org-policies set-custom-constraint:

    gcloud org-policies set-custom-constraint CONSTRAINT_PATH
    

    Ganti CONSTRAINT_PATH dengan jalur lengkap ke file batasan kustom Anda. Contoh, /home/user/customconstraint.yaml.

    Setelah proses ini selesai, batasan khusus Anda akan tersedia di daftar kebijakan organisasi Google Cloud.

  2. Untuk menerapkan kebijakan organisasi yang berisi batasan kustom, gunakan perintah gcloud org-policies set-policy:

    gcloud org-policies set-policy POLICY_PATH
    

    Ganti POLICY_PATH dengan jalur lengkap ke file YAML kebijakan organisasi Anda.

    Kebijakan memerlukan waktu hingga 15 menit untuk diterapkan.

Simpan hasil simulasi

Konsol

Jika menggunakan konsol Google Cloud, Anda dapat menyimpan hasil Policy Simulator sebagai file CSV.

  1. Untuk menyimpan hasil Policy Simulator, buka halaman Histori simulasi.

    Buka Histori simulasi

  2. Pilih laporan simulasi yang ingin Anda simpan.

  3. Klik Ekspor hasil lengkap.

gcloud

Jika menggunakan gcloud CLI, Anda dapat menyimpan hasil Simulator Kebijakan sebagai file JSON atau YAML.

Secara default, hasil pengujian di Google Cloud CLI merupakan output dalam format YAML. Untuk menyimpan hasil pengujian sebagai file YAML, alihkan output perintah simulate orgpolicy saat menjalankan simulasi:

> FILENAME

Ganti FILENAME dengan nama untuk file output.

Untuk menyimpan hasil pengujian sebagai file JSON, tambahkan flag berikut ke perintah simulate orgpolicy saat menjalankan simulasi:

--format=json > FILENAME

Ganti FILENAME dengan nama untuk file output.

Langkah selanjutnya