Contoh kebijakan

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

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

Memblokir (hampir) semua deployment

Contoh berikut menunjukkan cara memblokir semua image penampung 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 penegakan kebijakan. Aturan default memiliki evaluationMode ALWAYS_DENY, yang menyebabkan Otorisasi Biner menolak deployment semua image container. enforcementMode ditetapkan ke ENFORCED_BLOCK_AND_AUDIT_LOG, yang menyebabkan Otorisasi Biner memblokir deployment dan menulis ke log audit.

Mewajibkan pengautentikasi untuk menandatangani sebelum deployment

Contoh berikut menunjukkan cara mewajibkan penanda tangan untuk memberikan otorisasi rilis sebelum image container dapat di-deploy. Deployment diblokir jika semua pengautentikasi 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 hanya mengizinkan deployment image yang telah diotorisasi oleh pengautentikasi yang diperlukan di requireAttestationsBy.

Mengizinkan deployment dalam mode uji coba

Mode uji coba adalah mode penerapan dalam kebijakan yang memungkinkan deployment gambar yang tidak sesuai, tetapi menulis detail tentang pelanggaran kebijakan dan deployment ke log audit. Mode uji coba memungkinkan Anda menguji kebijakan di lingkungan produksi sebelum kebijakan tersebut 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 dari DRYRUN_AUDIT_LOG_ONLY, yang memungkinkan deployment image yang belum diberi otorisasi oleh pengautentikasi 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 di-deploy yang telah diotorisasi oleh penanda tangan 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 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 pencocokan untuk gambar tambahan yang dikecualikan adalah gcr.io/example-project-1/* dan gcr.io/example-project-2/my-app.