範例政策

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

允許所有部署作業

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

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

在這裡,預設規則具有 evaluationModeALWAYS_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 要求的映像檔。預設規則evaluationMode值為 ALWAYS_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