本頁面提供以 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 要求的映像檔。預設規則的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
在這裡,預設規則的 evaluationMode
為 REQUIRE_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
在此,預設規則具有 enforcementMode
的 DRYRUN_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
。