本頁面提供操作說明,說明如何使用 Google Cloud 控制台設定二進位授權政策。您也可以使用 Google Cloud CLI 或 REST API 執行這些工作。此步驟屬於設定二進位授權流程的一部分。
政策是一組規則,可控管一或多個容器映像檔的部署作業。
事前準備
為平台啟用二進位授權:
Google Kubernetes Engine (GKE) 使用者:建立叢集並啟用二進位授權。
Cloud Run 使用者: 在服務上啟用二進位授權。
如果您打算使用認證,建議先建立認證者,再設定政策。您可以使用 Google Cloud 主控台或指令列工具建立驗證者。
選取您已啟用 Binary Authorization 的專案專案 ID。
設定預設規則
本節適用於 GKE、GKE Multi-Cloud、Distributed Cloud、Cloud Run 和 Cloud Service Mesh。
規則是政策的一部分,可定義映像檔必須滿足的限制條件,才能部署。預設規則會定義適用於所有非豁免容器映像檔的限制,這些映像檔沒有自己的叢集專屬規則。每項政策都有預設規則。
如要設定預設規則,請按照下列步驟操作:
前往 Google Cloud 控制台的「Binary Authorization」(二進位授權) 頁面。
按一下「政策」分頁標籤。
按一下「編輯政策」。
設定預設規則的評估模式。
評估模式會指定二進位授權在部署時強制執行的限制類型。如要設定評估模式,請選取下列其中一個選項:
- 允許所有映像檔:允許部署所有映像檔。
- 拒絕所有映像檔:禁止部署所有映像檔。
- 僅接受下列驗證者均核准的映像檔: 如果映像檔有一或多個認證,且您新增至這項規則的所有驗證者都能驗證這些認證,系統就會允許部署該映像檔。 如要瞭解如何建立驗證者,請參閱建立驗證者。
如果您選取「僅接受下列驗證者均核准的映像檔」:
取得驗證者的名稱或資源 ID。
在 Google Cloud 控制台的「Attestors」(認證者) 頁面中,您可以查看現有的認證者,或建立新的認證者。
按一下「新增認證者」。
選取下列選項之一:
依專案和驗證者名稱新增
專案是指儲存稽核者的專案 ID。驗證者名稱範例:
build-qa
。依驗證者資源 ID 新增
資源 ID 的格式如下:
projects/PROJECT_ID/attestors/ATTESTOR_NAME
在「認證者」下方,為所選選項輸入適當的值。
如要新增其他認證者,請按一下「Add Another Attestor」。
按一下「新增認證者」即可儲存規則。
如要啟用模擬測試模式,請按照下列步驟操作:
選取「模擬測試模式」。
點選 [儲存政策]。
設定叢集專屬規則 (選用)
本節適用於 GKE、Distributed Cloud 和 Cloud Service Mesh。
政策也可以有一或多項叢集專屬規則。 這類規則僅適用於要部署至特定 Google Kubernetes Engine (GKE) 叢集的容器映像檔。叢集專屬規則是政策的選用部分。
新增叢集專屬規則 (GKE)
本節適用於 GKE 和 Distributed Cloud。
如要為 GKE 叢集新增叢集專屬規則,請按照下列步驟操作:
前往 Google Cloud 控制台的「Binary Authorization」(二進位授權) 頁面。
按一下「政策」分頁標籤。
按一下「編輯政策」。
展開「GKE 和 GKE Enterprise 部署作業的其他設定」部分。
如果未設定特定規則類型,請按一下「建立專屬規則」。
如要選取規則類型,請按一下「專屬規則類型」。
如要變更規則類型,請按一下「變更」。
按一下「新增專屬規則」。
在「叢集資源 ID」欄位中,輸入叢集的資源 ID。
叢集的資源 ID 格式為
LOCATION.NAME
,例如us-central1-a.test-cluster
。設定預設規則的評估模式。
評估模式會指定二進位授權在部署時強制執行的限制類型。如要設定評估模式,請選取下列其中一個選項:
- 允許所有映像檔:允許部署所有映像檔。
- 拒絕所有映像檔:禁止部署所有映像檔。
- 僅接受下列驗證者均核准的映像檔: 如果映像檔有一或多個認證,且您新增至這項規則的所有驗證者都能驗證這些認證,系統就會允許部署該映像檔。 如要瞭解如何建立驗證者,請參閱建立驗證者。
如果您選取「僅接受下列驗證者均核准的映像檔」:
取得驗證者的名稱或資源 ID。
在 Google Cloud 控制台的「Attestors」(認證者) 頁面中,您可以查看現有的認證者,或建立新的認證者。
按一下「新增認證者」。
選取下列選項之一:
依專案和驗證者名稱新增
專案是指儲存稽核者的專案 ID。驗證者名稱範例:
build-qa
。依驗證者資源 ID 新增
資源 ID 的格式如下:
projects/PROJECT_ID/attestors/ATTESTOR_NAME
在「認證者」下方,為所選選項輸入適當的值。
如要新增其他認證者,請按一下「Add Another Attestor」。
按一下「新增認證者」即可儲存規則。
按一下「新增」,新增叢集專屬規則。
你可能會看到「這個叢集似乎不存在。不過日後如果 GKE 提供這個叢集,這項規則仍會生效。」如果是,請再次按一下「新增」儲存規則。
如要啟用模擬測試模式,請選取「模擬測試模式」。
點選 [儲存政策]。
新增叢集專屬規則 (GKE Multi-Cloud、Distributed Cloud)
本節適用於 Distributed Cloud。
如要為 GKE 叢集新增叢集專屬規則,請按照下列步驟操作:
前往 Google Cloud 控制台的「Binary Authorization」(二進位授權) 頁面。
按一下「政策」分頁標籤。
按一下「編輯政策」。
展開「GKE 和 GKE Enterprise 部署作業的其他設定」部分。
如果未設定特定規則類型,請按一下「建立專屬規則」。
如要選取規則類型,請按一下「專屬規則類型」。
如要更新規則類型,請按一下「變更」。
按一下「新增專屬規則」。
在「叢集資源 ID」欄位中,輸入叢集的資源 ID。
- 如果是 GKE 附加叢集和 GKE on AWS,格式為
CLUSTER_LOCATION.CLUSTER_NAME
,例如us-central1-a.test-cluster
。 - 如果是 Google Distributed Cloud 和 Google Distributed Cloud,格式為
FLEET_MEMBERSHIP_LOCATION.FLEET_MEMBERSHIP_ID
,例如global.test-membership
。
- 如果是 GKE 附加叢集和 GKE on AWS,格式為
設定預設規則的評估模式。
評估模式會指定二進位授權在部署時強制執行的限制類型。如要設定評估模式,請選取下列其中一個選項:
- 允許所有映像檔:允許部署所有映像檔。
- 拒絕所有映像檔:禁止部署所有映像檔。
- 僅接受下列驗證者均核准的映像檔: 如果映像檔有一或多個認證,且您新增至這項規則的所有驗證者都能驗證這些認證,系統就會允許部署該映像檔。 如要瞭解如何建立驗證者,請參閱建立驗證者。
如果您選取「僅接受下列驗證者均核准的映像檔」:
取得驗證者的名稱或資源 ID。
在 Google Cloud 控制台的「Attestors」(認證者) 頁面中,您可以查看現有的認證者,或建立新的認證者。
按一下「新增認證者」。
選取下列選項之一:
依專案和驗證者名稱新增
專案是指儲存稽核者的專案 ID。驗證者名稱範例:
build-qa
。依驗證者資源 ID 新增
資源 ID 的格式如下:
projects/PROJECT_ID/attestors/ATTESTOR_NAME
在「認證者」下方,為所選選項輸入適當的值。
如要新增其他認證者,請按一下「Add Another Attestor」。
按一下「新增認證者」即可儲存規則。
按一下「新增」即可儲存規則。
你可能會看到「這個叢集似乎不存在。不過日後如果 GKE 提供這個叢集,這項規則仍會生效。在此情況下,請再次按一下「新增」儲存規則。
如要啟用模擬測試模式,請選取「模擬測試模式」。
點選 [儲存政策]。
新增專屬規則
您可以建立規則,範圍限定為網格服務身分、Kubernetes 服務帳戶或 Kubernetes 命名空間。如要新增或修改特定規則,請按照下列步驟操作:
前往 Google Cloud 控制台的「Binary Authorization」(二進位授權) 頁面。
按一下「政策」分頁標籤。
按一下「編輯政策」。
展開「GKE 和 Anthos 部署作業的其他設定」部分。
如果未設定特定規則類型,請按一下「建立專屬規則」。
按一下「特定規則類型」,選取規則類型。
按一下「變更」即可更新規則類型。
如果存在專屬規則類型,您可以點選「編輯類型」來變更規則類型。
如要新增專屬規則,請按一下「新增專屬規則」。視您選擇的規則類型而定,輸入 ID 的方式如下:
- ASM 服務身分:輸入 ASM 服務身分,格式如下: PROJECT_ID.svc.id.goog/ns/NAMESPACE/sa/SERVICE_ACCOUNT
- Kubernetes 服務帳戶:輸入 Kubernetes 服務帳戶,格式如下:NAMESPACE:SERVICE_ACCOUNT。
- Kubernetes 命名空間:輸入 Kubernetes 命名空間,格式如下:NAMESPACE
視規則類型而定,視需要取代下列項目:
- PROJECT_ID:您定義 Kubernetes 資源的專案 ID。
- NAMESPACE:Kubernetes 命名空間。
- SERVICE_ACCOUNT:服務帳戶。
設定預設規則的評估模式。
評估模式會指定二進位授權在部署時強制執行的限制類型。如要設定評估模式,請選取下列其中一個選項:
- 允許所有映像檔:允許部署所有映像檔。
- 拒絕所有映像檔:禁止部署所有映像檔。
- 僅接受下列驗證者均核准的映像檔: 如果映像檔有一或多個認證,且您新增至這項規則的所有驗證者都能驗證這些認證,系統就會允許部署該映像檔。 如要瞭解如何建立驗證者,請參閱建立驗證者。
如果您選取「僅接受下列驗證者均核准的映像檔」:
取得驗證者的名稱或資源 ID。
在 Google Cloud 控制台的「Attestors」(認證者) 頁面中,您可以查看現有的認證者,或建立新的認證者。
按一下「新增認證者」。
選取下列選項之一:
依專案和驗證者名稱新增
專案是指儲存稽核者的專案 ID。驗證者名稱範例:
build-qa
。依驗證者資源 ID 新增
資源 ID 的格式如下:
projects/PROJECT_ID/attestors/ATTESTOR_NAME
在「認證者」下方,為所選選項輸入適當的值。
如要新增其他認證者,請按一下「Add Another Attestor」。
按一下「新增認證者」即可儲存規則。
按一下「模擬測試模式」即可啟用模擬測試模式。
按一下「新增」,儲存特定規則。
點選 [儲存政策]。
管理排除的圖片
本節適用於 GKE、Distributed Cloud、Cloud Run 和 Cloud Service Mesh。
豁免圖片是指由路徑指定的圖片,可免於政策規則限制。二進位授權一律允許部署豁免映像檔。
這個路徑可以指定 Container Registry 或其他容器映像檔登錄檔中的位置。
Cloud Run
本節適用於 Cloud Run。
您無法直接指定含有標記的圖片名稱。舉例來說,您無法指定 IMAGE_PATH
:latest。
如要指定含有標記的映像檔名稱,請務必使用萬用字元指定映像檔名稱,如下所示:
*
適用於單一圖片的所有版本,例如us-docker.pkg.dev/myproject/container/hello@*
**
,適用於專案中的所有圖片,例如us-docker.pkg.dev/myproject/**
您可以使用路徑名稱,以 IMAGE_PATH
@DIGEST
格式指定摘要。
啟用系統政策
本節適用於 GKE 和 Distributed Cloud。
「信任 Google 提供的所有系統映像檔」政策設定會啟用二進位授權系統政策。在部署時啟用這項設定後,二進位授權會免除對 GKE 要求的 Google 維護系統映像檔清單進行進一步的政策評估。系統政策的評估順序優先於其他政策設定。
如要啟用系統政策,請按照下列步驟操作:
前往 Google Cloud 控制台的「Binary Authorization」(二進位授權) 頁面。
按一下「編輯政策」。
展開「GKE 和 Anthos 部署作業的其他設定」部分。
在「Google system image exemption」(豁免 Google 系統映像檔) 區段中,選取「Trust all Google provided system images」(信任 Google 提供的所有系統映像檔)。
如要查看系統政策豁免的圖片,請按一下「查看詳細資料」。
。如要手動指定其他豁免圖片,請展開「不受這項政策規範的映像檔」下方的「自訂豁免規則」部分。
然後按一下「新增圖片模式」,並輸入要排除的任何其他圖片的登錄路徑。
點選 [儲存政策]。
後續步驟
- 使用
built-by-cloud-build
驗證者僅部署由 Cloud Build 建構的映像檔 (搶先版)。 - 使用認證。
- 部署 GKE 映像檔。
- 查看 Cloud 稽核記錄事件。
- 使用連續驗證。
- 使用舊版持續驗證 (已淘汰) 檢查是否符合政策規定。