Contoh kebijakan

Halaman ini berisi contoh kebijakan untuk Otorisasi Biner yang ditentukan dalam format YAML. Untuk mendapatkan petunjuk tentang cara mengonfigurasi kebijakan di Binary Authorization, 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 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 ALWAYS_ALLOW, yang menyebabkan Otorisasi Biner mengizinkan deployment semua image container. enforcementMode default disetel ke ENFORCED_BLOCK_AND_AUDIT_LOG, tetapi karena semua deployment diizinkan, tindakan ini tidak pernah dilakukan.

Memblokir (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) dapat dimulai dengan berhasil.

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 ALWAYS_DENY, yang menyebabkan Otorisasi Biner menolak deployment semua image container. enforcementMode disetel ke ENFORCED_BLOCK_AND_AUDIT_LOG, yang menyebabkan Binary Authorization memblokir deployment dan menulis ke log audit.

Mewajibkan pengesah untuk menandatangani sebelum deployment

Contoh berikut menunjukkan cara mewajibkan pengesah untuk mengizinkan rilis sebelum image container dapat di-deploy. Deployment diblokir jika semua pengesah 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 REQUIRE_ATTESTATION, yang menyebabkan Otorisasi Biner mengizinkan deployment hanya pada image yang telah diizinkan oleh pengesah yang diperlukan di requireAttestationsBy.

Mengizinkan deployment dalam mode uji coba

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

Contoh berikut menunjukkan cara mengizinkan semua gambar yang tidak sesuai untuk 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 sebesar DRYRUN_AUDIT_LOG_ONLY, yang memungkinkan deployment gambar yang belum diizinkan oleh pengesah 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 yang telah diizinkan oleh pengesah yang ditentukan untuk di-deploy:

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 pengesah sebelum image dapat di-deploy.

Menambahkan 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 tambahan yang dikecualikan adalah gcr.io/example-project-1/* dan gcr.io/example-project-2/my-app.