本頁面說明如何設定二進位授權,只允許部署 Cloud Build 建構的容器映像檔,確保軟體供應鏈安全無虞。
如要設定這項部署控制項,請在二進位授權政策中要求 built-by-cloud-build
驗證者。執行會產生映像檔的建構作業時,Cloud Build 會自動在專案中建立 built-by-cloud-build
簽署者。映像檔建構完成後,Cloud Build 會自動簽署映像檔並建立認證。在部署時,二進位授權會使用 built-by-cloud-build
驗證者驗證認證。經過驗證的圖片可供部署。
如果映像檔未通過驗證,系統就不會允許部署,並將失敗記錄在 Cloud 稽核記錄中。
如需端對端指南,瞭解如何使用 Cloud Build 記錄的中繼資料和二進位授權,請參閱「使用已簽署的來源和二進位授權」。
事前準備
如要使用這項功能,請先完成下列操作:
- 為平台設定二進位授權。
設定 Cloud Build 並建構映像檔。
設定政策
在本節中,您將設定二進位授權政策,要求使用 built-by-cloud-build
認證者。
如要只允許部署 Cloud Build 建構的映像檔,請執行下列步驟:
控制台
前往 Google Cloud 控制台的「二進位授權」頁面:
在「政策」分頁中,按一下「編輯政策」。
在「編輯政策」對話方塊中,選取「僅接受下列所有驗證者均核准的映像檔」。
按一下「新增認證者」。
在「新增認證者」對話方塊中,執行下列操作:
- 選取「依專案和驗證者名稱新增」,然後執行下列步驟:
- 在「專案名稱」欄位中,輸入您執行 Cloud Build 的專案。
- 按一下「認證者名稱」欄位,並注意
built-by-cloud-build
認證者是否可用。 - 按一下「
built-by-cloud-build
」。
或者,選取「依驗證者資源 ID 新增」。 在「驗證者資源 ID」中輸入
projects/PROJECT_ID/attestors/built-by-cloud-build
將
PROJECT_ID
替換為執行 Cloud Build 的專案。
- 選取「依專案和驗證者名稱新增」,然後執行下列步驟:
按一下「新增 1 位認證者」。
點選 [儲存政策]。
gcloud
使用下列指令將現有政策匯出至檔案:
gcloud container binauthz policy export > /tmp/policy.yaml
編輯政策檔案。
編輯下列任一規則:
defaultAdmissionRule
clusterAdmissionRules
istioServiceIdentityAdmissionRules
kubernetesServiceAccountAdmissionRules
如果規則中沒有
requireAttestationsBy
區塊,請新增一個。在
requireAttestationsBy
區塊中,新增projects/PROJECT_ID/attestors/built-by-cloud-build
將
PROJECT_ID
替換為執行 Cloud Build 的專案。儲存政策檔案。
匯入政策檔案。
gcloud container binauthz policy import /tmp/policy.yaml
以下是包含
built-by-cloud-build-attestor
參照的政策檔案範例:defaultAdmissionRule: evaluationMode: REQUIRE_ATTESTATION enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG requireAttestationsBy: - projects/PROJECT_ID/attestors/built-by-cloud-build name: projects/PROJECT_ID/policy
將
PROJECT_ID
替換為執行 Cloud Build 的專案 ID。
後續步驟
- 您可以使用模擬測試模式記錄政策違規事項,而不必禁止部署圖片。
- 在 Google Kubernetes Engine (GKE) 或 Cloud Run 中,查看遭拒圖片的稽核記錄事件。