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 mirip dengan kebijakan organisasi lainnya, dan pelanggaran kebijakan akan dicatat ke dalam log audit, tetapi tindakan yang melanggar tidak akan ditolak.

Sebelum memulai

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

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

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk mengelola kebijakan organisasi. Untuk melihat izin yang benar-benar diperlukan, perluas 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 mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

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 lainnya akan menghasilkan 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 kebijakan organisasinya ingin Anda tetapkan.

  3. Pilih batasan Restrict Resource Service Usage dari daftar di halaman Organization policies.

  4. Pilih tab Dry run.

  5. Klik Kelola kebijakan uji coba.

  6. Di halaman Edit kebijakan uji coba, pilih Ganti kebijakan induk.

  7. Di bagian Penegakan kebijakan, klik Ganti.

  8. Klik Tambahkan Aturan.

  9. Dari Nilai kebijakan, pilih Kustom.

  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 Tetapkan kebijakan uji coba. Anda juga dapat menetapkan kebijakan aktif dengan mengklik Set policy.

Anda dapat memverifikasi status kebijakan organisasi dalam mode uji coba dengan membuka tab Dry run untuk batasan kebijakan organisasi.

Untuk project dengan kebijakan organisasi dalam mode uji coba yang diterapkan pada project tersebut, Anda dapat melihat log audit dengan mengklik View penolakan log. 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:
      denied_values:
      - 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 Anda, bergantung pada jenis resource yang ditentukan di RESOURCE_TYPE.

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

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 hanya untuk 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 disetel saat memperbarui kebijakan organisasi yang ada, perintah ini akan menyebabkan error dan kebijakan organisasi tidak akan diperbarui.

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

Kebijakan organisasi di atas akan menerapkan batasan gcp.restrictServiceUsage sehingga hanya container.googleapis.com yang diizinkan. Namun, log audit juga menampilkan pelanggaran 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 kebijakan organisasinya ingin Anda tetapkan.

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

  4. Pilih tab Dry run.

  5. Klik Kelola kebijakan uji coba.

  6. Di halaman Edit kebijakan uji coba, pilih Ganti kebijakan induk.

  7. Klik Tambahkan Aturan.

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

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

Anda dapat memverifikasi status kebijakan organisasi dalam mode uji coba dengan membuka tab Dry run untuk batasan kebijakan organisasi.

Untuk project dengan kebijakan organisasi dalam mode uji coba yang diterapkan pada project tersebut, Anda dapat melihat log audit dengan mengklik View penolakan log. 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 Anda, 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 melanggar.

Anda dapat menetapkan kebijakan organisasi aktif dan kebijakan organisasi dalam mode uji coba dalam 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 hanya untuk 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 disetel saat memperbarui kebijakan organisasi yang ada, perintah ini akan menyebabkan error dan kebijakan organisasi tidak akan diperbarui.

Anda dapat memverifikasi bahwa kebijakan organisasi dalam mode uji coba telah disetel 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 batasan kustom.

Membuat kebijakan organisasi dalam mode uji coba dari kebijakan aktif

Anda dapat menggunakan kebijakan organisasi yang sudah ada sebagai titik awal untuk kebijakan organisasi dalam mode uji coba. Anda mungkin perlu melakukan ini untuk melihat dampak perubahan 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 memiliki batasan Restrict Resource Service Usage, yang dikonfigurasi pada resource tersebut.

  3. Pilih batasan Restrict Resource Service Usage dari daftar di halaman Organization policies.

  4. Pilih tab Live.

  5. Klik Manage Policy.

  6. Klik Tambahkan Aturan.

  7. Dari Nilai kebijakan, pilih Kustom.

  8. Dari Jenis kebijakan, pilih Tolak.

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

  10. Klik Selesai, lalu Tetapkan kebijakan uji coba.

gcloud

Untuk membuat kebijakan organisasi dalam mode uji coba berdasarkan kebijakan organisasi live yang sudah 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 ubah kolom spec menjadi dryRunSpec. Buat perubahan pada konfigurasi batasan yang ingin Anda uji di 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 flag --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 kebijakan organisasinya ingin Anda tetapkan.

  3. Pilih batasan Restrict Resource Service Usage dari daftar di halaman Organization policies.

  4. Pilih tab Dry run.

  5. Klik Hapus kebijakan uji coba.

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 Anda, 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 spesifikasi.

Untuk menghapus kebijakan organisasi yang 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 Anda, bergantung pada jenis resource yang ditentukan di RESOURCE_TYPE.

Evaluasi efektif terhadap kebijakan organisasi dalam mode uji coba

Kebijakan organisasi dalam mode uji coba diwariskan, mirip dengan kebijakan organisasi lainnya. Jika kebijakan organisasi dalam mode uji coba ditetapkan pada resource organisasi, kebijakan tersebut akan diwarisi oleh semua resource turunan, kecuali diganti pada level yang lebih rendah dalam hierarki.

Evaluasi kebijakan yang efektif menunjukkan hasil dari kebijakan organisasi yang digabungkan pada resource tersebut. Oleh karena itu, penyesuaian pada kebijakan organisasi live tercermin dalam kebijakan organisasi yang efektif dalam mode uji coba jika kebijakan mode uji coba diwariskan, bukan disetel secara lokal.

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

Misalnya, pertimbangkan resource organisasi, Organization A, dengan kebijakan organisasi live yang ditetapkan ke enforced: false, dan kebijakan organisasi dalam mode uji coba ditetapkan ke enforced: true. Resource turunan, Folder B, juga menetapkan kebijakan organisasi langsung ke enforced: false, dan mewarisi kebijakan organisasi dalam mode uji coba. Di Folder B, kebijakan aktif yang ditetapkan berarti evaluasi kebijakan yang efektif terhadap kebijakan organisasi dalam mode uji coba juga bernilai enforce: false, yang menggantikan 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 efektif terhadap kebijakan organisasi dalam mode uji coba untuk Project X adalah enforced: true, karena kebijakan langsung disetel.

Resource turunan lainnya dari Folder B, Project Y, menetapkan kebijakan organisasi dalam mode uji coba ke enforced: true. Class 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 Tetapkan 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
Proyek X enforced: true enforced: true Tidak ada enforced: true
Proyek 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 dampak kebijakan organisasi, Anda dapat memeriksa log audit kebijakan organisasi.

Log audit kebijakan organisasi untuk kebijakan organisasi yang 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 live 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 uji coba
Tolak Tolak Log audit dalam mode live dan uji coba

Kebijakan organisasi dalam pelanggaran 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 terhadap kebijakan organisasi dalam pelanggaran 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 Query builder, 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 perintah 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, project ID yang Anda berikan harus merujuk ke nama project yang saat ini dipilih.

Guna membaca entri log audit untuk kebijakan organisasi dalam pelanggaran 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 Anda, 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 mengarahkan entri log audit dari semua project dalam organisasi Anda ke tabel BigQuery. Untuk mengetahui informasi selengkapnya tentang cara membuat sink gabungan, lihat Mengompilasi 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.