Menguji perubahan kebijakan organisasi dengan Policy Simulator

Policy Simulator untuk Kebijakan Organisasi memungkinkan Anda melihat pratinjau dampak batasan kustom atau kebijakan organisasi baru yang menerapkan batasan kustom atau dikelola sebelum diterapkan di lingkungan produksi Anda. Policy Simulator memberikan 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 menonaktifkan lingkungan Anda.

Halaman ini menjelaskan cara menguji perubahan pada kebijakan organisasi menggunakan Policy Simulator. 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 Anda gunakan 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 Layanan Kebijakan Organisasi.

Peran yang diperlukan

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

Peran bawaan ini berisi izin yang diperlukan untuk menjalankan dan mengakses simulasi. Untuk melihat izin yang benar-benar diperlukan, luaskan 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 mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Menguji perubahan kebijakan

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

Menguji perubahan pada batasan kustom

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 organisasi Anda.

  4. Jika Anda ingin menguji batasan kustom baru, klik Custom constraint. Jika Anda ingin melakukan perubahan pada batasan kustom yang 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 jika Otorisasi Biner tidak diaktifkan, lakukan hal berikut:

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

    2. Di bagian Enforcement method, pilih Enforce on create.

    3. Klik Edit condition.

    4. Di panel Tambahkan kondisi, 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 Test constraint.

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

    2. Klik Sesuaikan.

    3. Klik Add a rule.

    4. Di bagian Enforcement, pilih On, lalu klik Done.

    5. Klik Lanjutkan.

Halaman Histori simulasi akan muncul, dengan daftar simulasi yang dilakukan oleh Anda dalam 14 hari terakhir. Lihat Hasil Policy Simulator 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 jika Otorisasi Biner tidak diaktifkan mirip dengan hal 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, buat file JSON atau YAML yang menentukan kebijakan organisasi yang ingin Anda uji.

    • Misalnya, kebijakan organisasi yang membatasi pembuatan resource cluster Google Kubernetes Engine jika Otorisasi Biner tidak diaktifkan mirip dengan berikut:

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

      Ganti ORGANIZATION_ID dengan ID organisasi Anda, seperti 1234567890123.

    • Anda dapat menguji kebijakan organisasi yang secara bersyarat menerapkan batasan kustom berdasarkan keberadaan tag tertentu dengan menyertakan kondisi dalam file JSON atau YAML yang menentukan kebijakan organisasi.

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

      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 mengetahui informasi selengkapnya tentang kebijakan organisasi bersyarat, lihat Menetapkan kebijakan organisasi dengan tag.

    • Anda dapat menguji efek penghapusan kebijakan organisasi yang menerapkan batasan kustom dengan membuat file JSON atau YAML yang menentukan kebijakan organisasi tanpa aturan yang ditetapkan, kecuali untuk 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
      
  3. Jalankan perintah berikut untuk menyimulasikan perubahan pada batasan kustom, kebijakan organisasi, atau keduanya:

    gcloud 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 di beberapa organisasi tidak didukung.

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

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

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

Hasil juga dapat dilihat di konsol Google Cloud. Lihat Hasil Policy Simulator 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 jika Otorisasi Biner tidak diaktifkan. Dalam hal ini, jika perubahan yang diusulkan diterapkan, dua resource cluster akan melanggar kebijakan: orgpolicy-test-cluster di bagian project simulator-test-project, dan autopilot-cluster-1 di bagian 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

Menguji perubahan pada batasan terkelola

Konsol

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

Buka Organization policies

  1. Dari pemilih project, pilih project, folder, atau organisasi yang ingin Anda edit kebijakan organisasinya.

  2. Halaman Organization policies menampilkan daftar batasan kebijakan organisasi yang dapat difilter dan tersedia untuk resource ini.

  3. Pilih batasan terkelola yang ingin Anda perbarui kebijakan organisasinya dari daftar. Di halaman Policy details, Anda dapat melihat sumber kebijakan organisasi ini, evaluasi kebijakan yang efektif pada resource ini, dan detail selengkapnya tentang batasan terkelola.

  4. Untuk memperbarui kebijakan organisasi untuk resource ini, klik Manage policy.

  5. Di halaman Edit policy, pilih Override parent's policy.

  6. Pilih Tambahkan aturan.

  7. Di bagian Enforcement, pilih apakah penerapan kebijakan organisasi ini harus diaktifkan atau dinonaktifkan.

  8. Secara opsional, untuk membuat kebijakan organisasi bersyarat pada tag, klik Tambahkan kondisi. Jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk mengetahui detail selengkapnya, lihat Menetapkan kebijakan organisasi dengan tag.

  9. Klik Uji perubahan.

Halaman Histori simulasi akan muncul, dengan daftar simulasi yang dilakukan oleh Anda dalam 14 hari terakhir. Lihat Hasil Policy Simulator di halaman ini untuk mengetahui informasi selengkapnya.

gcloud

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

    name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - enforce: ENFORCEMENT_STATE
    

    Ganti kode berikut:

    • RESOURCE_TYPE dengan organizations, folders, atau projects.

    • RESOURCE_ID dengan ID organisasi, ID folder, ID project, atau nomor project, bergantung pada jenis resource yang ditentukan di RESOURCE_TYPE.

    • CONSTRAINT_NAME dengan nama batasan terkelola yang ingin Anda uji. Contoh, iam.managed.disableServiceAccountKeyCreation.

    • ENFORCEMENT_STATE dengan true untuk menerapkan kebijakan organisasi ini saat ditetapkan, atau false untuk menonaktifkannya saat ditetapkan.

    Secara opsional, untuk membuat kebijakan organisasi bersyarat pada tag, tambahkan blok condition ke rules. Jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk mengetahui detail selengkapnya, lihat Menetapkan kebijakan organisasi dengan tag.

    Untuk menguji penghapusan kebijakan organisasi yang menerapkan batasan terkelola, file JSON atau YAML yang menentukan kebijakan organisasi tidak boleh menetapkan aturan kecuali untuk mewarisi kebijakan dari resource induk.

    Misalnya, kebijakan organisasi berikut akan menyimulasikan penghapusan batasan dikelola iam.managed.disableServiceAccountKeyCreation yang ada.

    name: organizations/ORGANIZATION_ID/policies/iam.managed.disableServiceAccountKeyCreation
    spec:
      inheritFromParent: true
    
  2. Jalankan perintah policy-intelligence simulate orgpolicy :

    gcloud policy-intelligence simulate orgpolicy \
      --organization=ORGANIZATION_ID \
      --policies=POLICY_PATH
    

    Ganti kode berikut:

    • ORGANIZATION_ID dengan ID organisasi Anda, seperti 1234567890123. Simulasi perubahan di beberapa organisasi tidak didukung.

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

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

    Hasil juga dapat dilihat di konsol Google Cloud. Lihat Hasil Policy Simulator di halaman ini untuk mempelajari cara membaca hasilnya.

Hasil Policy Simulator

Policy Simulator melaporkan hasil perubahan pada 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 kustom atau kebijakan organisasi baru, jumlah resource yang diperiksa dalam cakupan simulasi, dan waktu saat simulasi selesai.

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

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

Menerapkan perubahan kebijakan yang telah diuji

Setelah menguji batasan khusus, kebijakan organisasi, atau keduanya, Anda dapat menyiapkan batasan khusus dan menerapkan kebijakan organisasi. Anda dapat melihat semua hasil Simulator Kebijakan di konsol Google Cloud, terlepas dari cara pembuatannya. Jika laporan simulasi Anda tidak menyertakan perubahan pada lebih dari satu kebijakan organisasi, Anda dapat menerapkan kebijakan organisasi 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 Simpan batasan.

  4. Jika laporan simulasi ini menyertakan perubahan pada tidak lebih dari 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 Policy details untuk halaman kebijakan organisasi baru akan muncul.

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

gcloud

  1. Untuk menerapkan batasan khusus, 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 selesai, batasan khusus Anda akan tersedia dalam daftar kebijakan organisasi Google Cloud Anda.

  2. Untuk menetapkan kebijakan organisasi, 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 ini memerlukan waktu hingga 15 menit untuk diterapkan.

Menyimpan hasil simulasi

Konsol

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

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

    Buka Histori simulasi

  2. Pilih laporan simulasi yang ingin disimpan.

  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 akan ditampilkan 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 tanda berikut ke perintah simulate orgpolicy saat menjalankan simulasi:

--format=json > FILENAME

Ganti FILENAME dengan nama untuk file output.

Langkah selanjutnya