Contoh kebijakan

Halaman ini berisi contoh kebijakan untuk Otorisasi Biner yang ditentukan dalam format YAML. Untuk mengetahui petunjuk tentang cara mengonfigurasi kebijakan di Otorisasi Biner, lihat Mengonfigurasi kebijakan menggunakan Google Cloud CLI atau Mengonfigurasi kebijakan menggunakan Konsol Google Cloud.

Izinkan semua deployment

Contoh berikut menunjukkan cara mengizinkan semua image container untuk di-deploy tanpa batasan.

name: projects/example-project/policy
defaultAdmissionRule:
  evaluationMode: ALWAYS_ALLOW
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Di sini, aturan default memiliki evaluationMode dari ALWAYS_ALLOW, yang menyebabkan Otorisasi Biner mengizinkan deployment semua image container. enforcementMode default ditetapkan ke ENFORCED_BLOCK_AND_AUDIT_LOG, tetapi karena semua deployment diizinkan, tindakan ini tidak pernah dilakukan.

Blokir (hampir) semua deployment

Contoh berikut menunjukkan cara memblokir semua image container agar tidak di-deploy, sekaligus mengizinkan image sistem yang dikelola Google. Image container ini diperlukan agar sebagian besar cluster Google Kubernetes Engine (GKE) berhasil dimulai.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Di sini, globalPolicyEvaluationMode diaktifkan sehingga image yang diperlukan oleh GKE tidak diblokir oleh penerapan kebijakan. Aturan default memiliki evaluationMode dari ALWAYS_DENY, yang menyebabkan Otorisasi Biner menolak deployment semua image container. enforcementMode disetel ke ENFORCED_BLOCK_AND_AUDIT_LOG, yang menyebabkan Otorisasi Biner memblokir deployment dan menulis ke log audit.

Wajibkan attestor untuk ditandatangani sebelum deployment

Contoh berikut menunjukkan cara mewajibkan attestor untuk mengizinkan rilis sebelum image container dapat di-deploy. Deployment akan diblokir jika semua attestor belum menandatangani.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

Di sini, aturan default memiliki evaluationMode dari REQUIRE_ATTESTATION, yang menyebabkan Otorisasi Biner mengizinkan deployment hanya untuk image yang telah diotorisasi oleh attestor yang diperlukan di requireAttestationsBy.

Izinkan deployment dalam mode uji coba

Mode uji coba adalah mode penerapan dalam kebijakan yang memungkinkan image yang tidak sesuai untuk di-deploy, tetapi menulis detail tentang pelanggaran kebijakan dan deployment ke log audit. Dengan mode uji coba, Anda dapat menguji kebijakan di lingkungan produksi sebelum kebijakan tersebut diberlakukan.

Contoh berikut menunjukkan cara mengizinkan semua gambar yang tidak sesuai di-deploy dalam mode uji coba.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: DRYRUN_AUDIT_LOG_ONLY
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

Di sini, aturan default memiliki enforcementMode dari DRYRUN_AUDIT_LOG_ONLY, yang memungkinkan deployment image yang belum diotorisasi oleh attestor yang ditentukan untuk di-deploy, tetapi menulis informasi tentang deployment yang tidak sesuai ke log audit.

Menggunakan aturan khusus cluster

Contoh berikut menunjukkan aturan khusus cluster yang hanya mengizinkan image container tersebut untuk di-deploy yang telah diotorisasi oleh attestor yang ditentukan:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
clusterAdmissionRules:
  us-east1-a.prod-cluster:
    evaluationMode: REQUIRE_ATTESTATION
    enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
    requireAttestationsBy:
    - projects/example-project/attestors/secure-build
    - projects/example-project/attestors/prod-qualified

Di sini, aturan khusus cluster hanya berlaku untuk image container yang di-deploy ke us-east1-a.prod-cluster. Aturan ini memerlukan pengesahan oleh dua attestor sebelum image dapat di-deploy.

Tambahkan gambar yang dikecualikan

Contoh berikut menunjukkan cara menambahkan jalur tambahan di Container Registry atau registry lain ke daftar image yang dikecualikan dari kebijakan:

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
admissionWhitelistPatterns:
- namePattern: gcr.io/example-project-1/*
- namePattern: gcr.io/example-project-2/my-app
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Di sini, pola yang cocok untuk gambar yang dikecualikan tambahan adalah gcr.io/example-project-1/* dan gcr.io/example-project-2/my-app.