Membuat kebijakan organisasi dalam mode uji coba

Halaman ini menunjukkan cara menggunakan kebijakan organisasi dalam mode uji coba untuk memantau dampak perubahan kebijakan terhadap alur kerja Anda sebelum diterapkan.

Kebijakan organisasi dalam mode uji coba dibuat dan diterapkan dengan cara yang sama seperti kebijakan organisasi lainnya, dan pelanggaran kebijakan dicatat ke dalam log audit, tetapi tindakan yang melanggar tidak ditolak.

Sebelum memulai

Untuk menggunakan kebijakan organisasi dalam mode uji coba, Anda harus mengaktifkan penagihan untuk project Google Cloud Anda. Untuk informasi tentang cara memeriksa apakah penagihan diaktifkan untuk project, lihat Memverifikasi status penagihan project.

Untuk mengetahui informasi selengkapnya tentang kebijakan dan batasan organisasi serta cara kerjanya, lihat Pengantar Layanan Kebijakan Organisasi.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola kebijakan organisasi, minta administrator untuk memberi Anda peran IAM Administrator kebijakan organisasi (roles/orgpolicy.policyAdmin) 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 mengelola kebijakan organisasi. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengelola kebijakan organisasi:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Batasan

Satu-satunya batasan kebijakan organisasi yang tersedia untuk digunakan dalam kebijakan organisasi uji coba adalah:

Mencoba membuat kebijakan organisasi dalam mode uji coba menggunakan batasan lain akan mengakibatkan error.

Membuat kebijakan organisasi dalam mode uji coba

Batasan daftar

Anda dapat membuat kebijakan organisasi dalam mode uji coba untuk batasan daftar menggunakan konsol Google Cloud atau Google Cloud CLI. Contoh berikut menunjukkan cara membuat kebijakan organisasi dalam mode uji coba yang mengaudit efek batasan daftar gcp.restrictServiceUsage.

Konsol

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

    Buka Organization policies

  2. Dari pemilih project, pilih resource yang ingin Anda tetapkan kebijakan organisasinya.

  3. Pilih batasan Batasi Penggunaan Layanan Resource dari daftar di halaman Organization policies.

  4. Pilih tab Pengujian coba.

  5. Klik Kelola kebijakan uji coba.

  6. Di halaman Edit dry run policy, pilih Override parent's policy.

  7. Di bagian Policy enforcement, klik Replace.

  8. Klik Tambahkan Aturan.

  9. Dari Policy values, pilih Custom.

  10. Dari Jenis kebijakan, pilih Tolak.

  11. Di kotak Custom values, masukkan compute.googleapis.com, lalu klik Done.

  12. Jika ini adalah batasan kustom, Anda dapat mengklik Test changes untuk menyimulasikan efek kebijakan organisasi ini. Untuk mengetahui informasi selengkapnya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.

  13. Untuk menerapkan kebijakan organisasi dalam mode uji coba, klik Set dry run policy. Anda juga dapat menetapkan kebijakan aktif dengan mengklik Tetapkan kebijakan.

Anda dapat memverifikasi status kebijakan organisasi dalam mode uji coba dengan membuka tab Uji coba pada batasan kebijakan organisasi.

Untuk project yang memiliki kebijakan organisasi dalam mode uji coba yang diterapkan ke project tersebut, Anda dapat melihat log audit dengan mengklik Lihat log penolakan. Untuk kebijakan organisasi ini, log audit menampilkan pelanggaran seolah-olah batasan Batasi Penggunaan Layanan Resource diterapkan untuk menolak compute.googleapis.com.

gcloud

Untuk membuat kebijakan organisasi dalam mode uji coba, buat file YAML yang menentukan batasan dengan dryRunSpec. Contoh:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
    - values:
        deniedValues:
        - compute.googleapis.com

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.

Kebijakan organisasi ini tidak akan menerapkan batasan gcp.restrictServiceUsage, tetapi log audit akan menampilkan pelanggaran seolah-olah kebijakan tersebut diterapkan.

Anda dapat menetapkan kebijakan organisasi aktif dan kebijakan organisasi uji coba dalam file YAML yang sama, jika Anda menentukan spec dan dryRunSpec. Misalnya:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
spec:
  rules:
  - values:
      allowedValues:
      - container.googleapis.com

dryRunSpec:
  rules:
  - values:
      allowedValues:
      - compute.googleapis.com
      - appengine.googleapis.com

Untuk menerapkan kebijakan organisasi dalam mode uji coba, gunakan perintah org-policies set policy. Untuk memperbarui kebijakan organisasi yang ada dalam mode uji coba dengan batasan baru, gunakan flag --update-mask. Misalnya:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Ganti kode berikut:

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

  • UPDATE_MASK dengan spec untuk hanya memperbarui kebijakan aktif, atau dryRunSpec untuk hanya memperbarui kebijakan organisasi dalam mode uji coba. Anda juga dapat menggunakan * untuk memperbarui kolom spec dan dryRunSpec. Jika kolom ini tidak ditetapkan saat memperbarui kebijakan organisasi yang ada, perintah ini akan menghasilkan error dan kebijakan organisasi tidak akan diperbarui.

Anda dapat memverifikasi bahwa kebijakan organisasi dalam mode uji coba ditetapkan menggunakan perintah org-policies describe. Kolom dryRunSpec hanya muncul jika ada dalam kebijakan organisasi.

Kebijakan organisasi ini akan menerapkan batasan gcp.restrictServiceUsage sehingga hanya container.googleapis.com yang diizinkan. Namun, log audit juga menampilkan pelanggaran terhadap compute.googleapis.com dan appengine.googleapis.com.

Batasan Boolean

Anda dapat membuat kebijakan organisasi dalam mode uji coba untuk batasan boolean menggunakan konsol Google Cloud atau Google Cloud CLI. Contoh berikut menunjukkan cara membuat kebijakan organisasi dalam mode uji coba yang mengaudit efek kebijakan organisasi kustom boolean.

Konsol

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

    Buka Organization policies

  2. Dari pemilih project, pilih resource yang ingin Anda tetapkan kebijakan organisasinya.

  3. Pilih kebijakan organisasi kustom yang ingin Anda terapkan dari daftar di halaman Kebijakan organisasi.

  4. Pilih tab Pengujian coba.

  5. Klik Kelola kebijakan uji coba.

  6. Di halaman Edit dry run policy, pilih Override parent's policy.

  7. Klik Tambahkan Aturan.

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

  9. Untuk menerapkan kebijakan organisasi dalam mode uji coba, klik Set dry run policy. Setelah memverifikasi bahwa kebijakan organisasi dalam mode uji coba berfungsi sebagaimana mestinya, Anda dapat menetapkan kebijakan aktif dengan mengklik Tetapkan kebijakan.

Anda dapat memverifikasi status kebijakan organisasi dalam mode uji coba dengan membuka tab Uji coba pada batasan kebijakan organisasi.

Untuk project yang memiliki kebijakan organisasi dalam mode uji coba yang diterapkan ke project tersebut, Anda dapat melihat log audit dengan mengklik Lihat log penolakan. Untuk kebijakan organisasi ini, log audit menampilkan pelanggaran seolah-olah kebijakan organisasi kustom diterapkan.

gcloud

Untuk membuat kebijakan organisasi dalam mode uji coba, buat file YAML yang menentukan batasan dengan dryRunSpec. Contoh:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
  dryRunSpec:
    rules:
    - enforce: true

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 kustom Anda. Contoh, custom.disableGkeAutoUpgrade.

Kebijakan organisasi ini tidak akan menerapkan batasan kustom, tetapi log audit menampilkan pelanggaran seolah-olah menerapkannya.

Anda dapat menetapkan kebijakan organisasi aktif dan kebijakan organisasi dalam mode uji coba di file YAML yang sama, jika Anda menentukan spec dan dryRunSpec. Contoh:

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

dryRunSpec:
  rules:
  - enforce: true

Untuk menerapkan kebijakan organisasi dalam mode uji coba, gunakan perintah org-policies set policy. Untuk memperbarui kebijakan organisasi yang ada dalam mode uji coba dengan batasan baru, gunakan flag --update-mask. Misalnya:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Ganti kode berikut:

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

  • UPDATE_MASK dengan spec untuk hanya memperbarui kebijakan aktif, atau dryRunSpec untuk hanya memperbarui kebijakan organisasi dalam mode uji coba. Anda juga dapat menggunakan * untuk memperbarui kolom spec dan dryRunSpec. Jika kolom ini tidak ditetapkan saat memperbarui kebijakan organisasi yang ada, perintah ini akan menghasilkan error dan kebijakan organisasi tidak akan diperbarui.

Anda dapat memverifikasi bahwa kebijakan organisasi dalam mode uji coba ditetapkan menggunakan perintah org-policies describe. Kolom dryRunSpec hanya muncul jika ada dalam kebijakan organisasi.

Kebijakan organisasi ini tidak menerapkan batasan kustom. Namun, log audit menampilkan pelanggaran terhadap batasan kustom.

Membuat kebijakan organisasi dalam mode uji coba dari kebijakan aktif

Anda dapat menggunakan kebijakan organisasi yang ada sebagai titik awal untuk kebijakan organisasi dalam mode uji coba. Anda dapat melakukannya untuk melihat dampak perubahan pada kebijakan yang ada terhadap lingkungan Anda.

Anda dapat membuat kebijakan organisasi dalam mode uji coba berdasarkan kebijakan yang ada menggunakan konsol Google Cloud atau Google Cloud CLI.

Konsol

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

    Buka Organization policies

  2. Dari pemilih project, pilih resource yang sudah mengonfigurasi batasan Batasi Penggunaan Layanan Resource.

  3. Pilih batasan Batasi Penggunaan Layanan Resource dari daftar di halaman Organization policies.

  4. Pilih tab Live.

  5. Klik Manage Policy.

  6. Klik Tambahkan Aturan.

  7. Dari Policy values, pilih Custom.

  8. Dari Jenis kebijakan, pilih Tolak.

  9. Di kotak Custom values, masukkan appengine.googleapis.com.

  10. Klik Done, lalu Set dry run policy.

gcloud

Untuk membuat kebijakan organisasi dalam mode uji coba berdasarkan kebijakan organisasi aktif yang ada, dapatkan kebijakan saat ini di resource menggunakan perintah org-policies describe. Contoh:

gcloud org-policies describe gcp.restrictServiceUsage \
  --project=PROJECT_ID

Ganti PROJECT_ID dengan project ID atau nomor project tempat kebijakan organisasi ini dikonfigurasi.

Output-nya akan terlihat seperti berikut:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  spec:
    etag: CJy93KEGEKCJw/QB
    rules:
    - values:
        allowedValues:
        - compute.googleapis.com
  updateTime: '2023-04-12T21:11:56.512804Z'

Salin output perintah ini ke dalam file sementara. Edit file ini untuk menghapus kolom etag dan updateTime, serta mengubah kolom spec menjadi dryRunSpec. Lakukan perubahan pada konfigurasi batasan yang ingin Anda uji dalam kebijakan organisasi dalam mode uji coba.

File YAML yang sudah selesai akan terlihat seperti berikut:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
    - values:
        allowedValues:
        - compute.googleapis.com
        - appengine.googleapis.com

Untuk menerapkan kebijakan organisasi dalam mode uji coba, gunakan org-policies set policy dengan tanda --update-mask. Contoh:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

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

Menghapus kebijakan organisasi dalam mode uji coba

Anda dapat menghapus kebijakan organisasi dalam mode uji coba menggunakan Konsol Google Cloud atau Google Cloud CLI.

Konsol

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

    Buka Organization policies

  2. Dari pemilih project, pilih resource yang ingin Anda tetapkan kebijakan organisasinya.

  3. Pilih batasan Batasi Penggunaan Layanan Resource dari daftar di halaman Organization policies.

  4. Pilih tab Pengujian coba.

  5. Klik Delete dry run policy.

gcloud

Untuk menghapus kebijakan organisasi dalam mode uji coba, buat file YAML yang menentukan kebijakan organisasi tanpa spesifikasi uji coba. Misalnya:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  spec:
    rules:
    - values:
        allowedValues:
        - container.googleapis.com

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.

Kemudian, gunakan perintah org-policies set policy dengan flag --update-mask yang ditetapkan ke dryRunSpec. Contoh:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

Tindakan ini akan memperbarui kebijakan organisasi yang ada untuk menghapus spesifikasi uji coba dan mengabaikan bagian aktif dari spesifikasi.

Untuk menghapus kebijakan organisasi aktif dan kebijakan organisasi dalam mode uji coba secara bersamaan, gunakan perintah org-policies delete. Misalnya:

gcloud org-policies delete CONSTRAINT_NAME \
  --RESOURCE_TYPE=RESOURCE_ID

Ganti kode berikut:

  • CONSTRAINT_NAME dengan nama batasan yang ingin Anda hapus. Contoh, gcp.restrictServiceUsage.

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

Evaluasi kebijakan organisasi yang efektif dalam mode uji coba

Kebijakan organisasi dalam mode uji coba diwarisi dengan cara yang sama seperti kebijakan organisasi lainnya. Jika kebijakan organisasi dalam mode uji coba ditetapkan pada resource organisasi, kebijakan tersebut akan diwarisi oleh semua resource turunan, kecuali jika diganti di tingkat yang lebih rendah dalam hierarki.

Evaluasi kebijakan yang efektif menunjukkan hasil kebijakan organisasi yang digabungkan di resource tersebut. Oleh karena itu, penyesuaian pada kebijakan organisasi aktif akan tercermin dalam kebijakan organisasi yang efektif dalam mode uji coba, jika kebijakan mode uji coba diwariskan, bukan ditetapkan secara lokal.

Mengubah kebijakan organisasi aktif project juga akan mengubah kebijakan organisasi yang efektif dalam mode uji coba.

Misalnya, pertimbangkan resource organisasi, Organization A, dengan kebijakan organisasi aktif yang ditetapkan ke enforced: false, dan kebijakan organisasi dalam mode uji coba yang ditetapkan ke enforced: true. Resource turunan, Folder B, juga menetapkan kebijakan organisasi aktif ke enforced: false, dan mewarisi kebijakan organisasi dalam mode uji coba. Pada Folder B, kebijakan aktif yang ditetapkan berarti evaluasi kebijakan yang efektif dari kebijakan organisasi dalam mode uji coba juga enforce: false, yang mengganti kebijakan organisasi dalam mode uji coba yang ditetapkan di organisasi induknya.

Resource turunan Folder B, Project X, menetapkan kebijakan aktif ke enforced: true. Serupa dengan perilaku di Folder B, evaluasi kebijakan organisasi yang efektif dalam mode uji coba untuk Project X adalah enforced: true, karena kebijakan aktif ditetapkan.

Resource turunan lain dari Folder B, Project Y, menetapkan kebijakan organisasi dalam mode uji coba ke enforced: true. Resource ini mewarisi kebijakan organisasi dari resource induknya, sehingga evaluasi yang efektif adalah enforced: false untuk kebijakan aktif, dan enforced: true untuk kebijakan organisasi dalam mode uji coba.

Resource Menetapkan kebijakan organisasi aktif Kebijakan organisasi live yang efektif Menetapkan kebijakan organisasi dalam mode uji coba Kebijakan organisasi yang efektif dalam mode uji coba
Organisasi A enforced: false enforced: false enforced: true enforced: true
Folder B enforced: false enforced: false Tidak ada enforced: false
Folder C Tidak ada enforced: false Tidak ada enforced: true
Project X enforced: true enforced: true Tidak ada enforced: true
Project Y Tidak ada enforced: false enforced: true enforced: true

Menganalisis efek kebijakan organisasi dalam mode uji coba

Kebijakan organisasi dalam mode uji coba tidak memblokir operasi apa pun saat diterapkan. Untuk melihat pengaruh kebijakan organisasi, Anda dapat memeriksa log audit kebijakan organisasi.

Log audit kebijakan organisasi untuk kebijakan organisasi aktif dan kebijakan organisasi dalam mode uji coba dibuat berdasarkan apakah operasi diizinkan atau ditolak oleh kebijakan yang diterapkan pada resource tertentu. Tabel berikut menjelaskan situasi saat log audit kebijakan organisasi dibuat:

Kebijakan organisasi aktif Kebijakan organisasi dalam mode uji coba Log audit dibuat
Izinkan Izinkan Tidak
Izinkan Tolak Log audit hanya dalam mode uji coba
Tolak Izinkan Log audit dalam mode live dan dry run
Tolak Tolak Log audit dalam mode live dan dry run

Pelanggaran kebijakan organisasi dalam mode uji coba muncul bersama pelanggaran dalam mode aktif di log audit. Contoh:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 7,
      "message": "PERMISSION_DENIED"
    },
    "authenticationInfo": {},
    "requestMetadata": {
      "callerIp": "1.2.3.4",
      "requestAttributes": {},
      "destinationAttributes": {}
    },
    "serviceName": "appengine.googleapis.com",
    "methodName": "google.api.appengine.v1.appengine.apps.services.get",
    "resourceName": "projects/sur-project-test-3",
    "metadata": {
      "constraint": "constraints/gcp.restrictServiceUsage",
      "checkedValue": "appengine.googleapis.com",
      "liveResult": "ALLOWED",
      "@type": "type.googleapis.com/google.cloud.audit.OrgPolicyDryRunAuditMetadata",
      "dryRunResult": "DENIED"
    }
  },
  "insertId": "1f2bvoxcmg1",
  "resource": {
    "type": "audited_resource",
    "labels": {
      "project_id": "sur-project-test-3",
      "service": "appengine.googleapis.com",
      "method": "google.api.appengine.v1.appengine.apps.services.get"
    }
  },
  "timestamp": "2022-06-16T19:42:58.244990928Z",
  "severity": "WARNING",
  "logName": "projects/sur-project-test-3/logs/cloudaudit.googleapis.com%2Fpolicy",
  "receiveTimestamp": "2022-06-16T19:42:59.572025716Z"
}

Anda dapat menggunakan Logs Explorer untuk membuat kueri hanya pada pelanggaran kebijakan organisasi dalam mode uji coba.

Konsol

Di Konsol Google Cloud, Anda dapat menggunakan Logs Explorer guna mengambil entri log audit untuk project, folder, atau organisasi Google Cloud Anda:

  1. Di konsol Google Cloud, buka halaman Logging> Logs Explorer.

    Buka Logs Explorer

  2. Pilih project, folder, atau organisasi Google Cloud yang sudah ada.

  3. Di panel Builder kueri, lakukan hal berikut:

    • Di Jenis resource, pilih resource Google Cloud yang log auditnya ingin Anda lihat.

    • Di Log name, pilih jenis log audit policy.

    • Di panel Query, masukkan hal berikut: protoPayload.metadata.dryRunResult = "DENIED" AND \ protoPayload.metadata.liveResult = "ALLOWED"

    Jika mengalami masalah saat mencoba melihat log di Logs Explorer, lihat informasi pemecahan masalah.

    Untuk mengetahui informasi selengkapnya tentang pembuatan kueri menggunakan Logs Explorer, lihat Membangun kueri di Logs Explorer.

gcloud

Google Cloud CLI menyediakan antarmuka command line ke Logging API. Berikan ID resource yang valid di setiap nama log. Misalnya, jika kueri Anda menyertakan project ID, ID project yang Anda berikan harus merujuk ke nama project yang saat ini dipilih.

Untuk membaca entri log audit untuk pelanggaran kebijakan organisasi dalam mode uji coba, jalankan perintah berikut:

gcloud logging read protoPayload.metadata.dryRunResult = "DENIED" AND \
      protoPayload.metadata.liveResult = "ALLOWED" \
    --RESOURCE_TYPE=RESOURCE_ID \

Ganti kode berikut:

  • RESOURCE_TYPE dengan organization, folder, atau project.

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

Tambahkan flag --freshness ke perintah Anda untuk membaca log yang berusia lebih dari 1 hari.

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud CLI, lihat gcloud logging read.

Jika memiliki banyak project dalam organisasi, Anda dapat menggunakan sink gabungan untuk menggabungkan dan merutekan entri log audit dari semua project dalam organisasi ke tabel BigQuery. Untuk informasi selengkapnya tentang cara membuat sink gabungan, lihat Menggabungkan dan merutekan log tingkat organisasi ke tujuan yang didukung.

Langkah selanjutnya

Untuk mengetahui informasi selengkapnya tentang cara membuat dan mengelola batasan kebijakan organisasi, lihat Menggunakan batasan.