範例政策

本頁面提供以 YAML 格式指定的二進位授權政策範例。如需二進位授權政策的設定說明,請參閱使用 Google Cloud CLI 設定政策使用 Google Cloud 控制台設定政策

允許所有部署作業

以下範例說明如何允許部署所有容器映像檔,且沒有任何限制。

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

在此,「預設規則」具有 evaluationMode ALWAYS_ALLOW,因此二進位授權會允許部署所有容器映像檔。預設 enforcementMode 設為 ENFORCED_BLOCK_AND_AUDIT_LOG,但由於系統允許所有部署作業,因此不會採取這項動作。

封鎖 (幾乎) 所有部署作業

以下範例說明如何禁止部署所有容器映像檔,但允許部署 Google 維護的系統映像檔。大多數 Google Kubernetes Engine (GKE) 叢集都必須使用這些容器映像檔,才能順利啟動。

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

這裡已啟用 globalPolicyEvaluationMode,因此政策強制執行不會封鎖 GKE 要求的映像檔。預設規則evaluationModeALWAYS_DENY,這會導致二進位授權拒絕部署所有容器映像檔。 enforcementMode 設為 ENFORCED_BLOCK_AND_AUDIT_LOG,導致二進位授權封鎖部署作業,並寫入稽核記錄

要求認證者在部署前簽署

以下範例說明如何要求認證者授權發布,才能部署容器映像檔。如果所有認證者都未簽署,部署作業就會遭到封鎖。

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

在這裡,預設規則的 evaluationModeREQUIRE_ATTESTATION,因此二進位授權只允許部署已由 requireAttestationsBy 中必要驗證者授權的映像檔。

允許在模擬測試模式下部署

模擬測試模式是政策中的強制執行模式,允許部署不符合規定的映像檔,但會將違反政策和部署的詳細資料寫入稽核記錄。在政策生效前,您可以在正式環境中測試政策,

以下範例說明如何在模擬執行模式中,允許部署所有不符規定的映像檔。

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

在此,預設規則具有 enforcementModeDRYRUN_AUDIT_LOG_ONLY,允許部署未經指定認證者授權的映像檔,但會將不符規定的部署作業資訊寫入稽核記錄。

使用叢集專屬規則

下列範例顯示叢集專屬規則,只允許部署經指定驗證者授權的容器映像檔:

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

在這裡,叢集專屬規則只會套用至部署到 us-east1-a.prod-cluster 的容器映像檔。這項規則要求圖片必須經過兩位認證者認證,才能部署。

新增豁免圖片

以下範例說明如何在 Container Registry 或其他登錄檔中新增其他路徑,加入豁免政策的映像檔清單:

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

在此,其他可免除檢查的圖片相符模式為 gcr.io/example-project-1/*gcr.io/example-project-2/my-app