設定檔適用性:等級 2
二進位授權透過僅允許具有可驗證加密簽名元資料的映像進入叢集來幫助保護供應鏈安全。
二進位授權為從 Google Container Registry (GCR) 或其他容器映像檔註冊表部署到 GKE 的映像檔提供軟體供應鏈安全性。
二進位授權要求在開發過程中由受信任的機構對映像進行簽名。這些簽名會在部署時進行驗證。透過強制驗證,可以更嚴密地控制容器環境,確保只有已驗證的映像被整合到構建和發布過程中。
![]() |
注意預設情況下,二進位授權是停用的。
|
影響
在定義政策時必須謹慎,以防止意外拒絕容器映像部署。根據政策,可能需要在重新部署或作為 pod 變動的一部分拉取這些映像之前,為集群中運行的現有容器映像創建證明。
為防止關鍵系統映像被拒絕部署,請考慮使用全域政策評估模式,該模式使用 Google 提供的全域政策,並豁免 Google 提供的系統映像列表免於進一步的政策評估。
稽核
使用 Google 雲端主控台:
要檢查 GKE 叢集是否已啟動二進位授權:
- 前往Kubernetes Engine 網站。
- 選擇已停用二進位授權的叢集。
- 在詳細資訊窗格的安全性部分,確保二進位授權已設為已啟動。然後,評估政策的內容。
- 前往二進位授權。
- 確保已定義政策,且專案預設規則未配置為允許所有映像。
使用命令列:
要檢查 GKE 叢集是否已啟動二進位授權:
gcloud container clusters describe <cluster_name> --zone <compute_zone> --format json | jq .binaryAuthorization
如果已啟動二進位授權,則上述命令輸出將如下所示:
{ "enabled": true }
然後,評估政策的內容:
gcloud container binauthz policy export > current-policy.yaml
確保當前策略未配置為允許所有影像(
評估模式:ALWAYS_ALLOW
):cat current-policy.yaml ... defaultAdmissionRule: evaluationMode: ALWAYS_ALLOW
補救
使用 Google 雲端主控台:
- 前往二進位授權。
- 啟用二進位授權 API(如果已停用)。
- 為叢集建立適當的政策。請參閱Google 政策參考以獲取指導。
- 前往Kubernetes Engine 網站。
- 選擇已停用二進位授權的叢集。
- 在詳細資訊窗格的安全性部分,點擊名為編輯二進位授權的鉛筆圖示。
- 勾選旁邊的方框以啟用二進位授權。
- 選擇強制執行政策並提供要使用的政策目錄。
- 點擊SAVE CHANGES。
使用命令列:
更新叢集以啟用二進位授權:
gcloud container cluster update <cluster_name> --zone <compute_zone> --binauthz-evaluation-mode=<evaluation_mode> Example: gcloud container clusters update $CLUSTER_NAME --zone $COMPUTE_ZONE --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
請參閱 Google 叢集 以了解更多關於可用評估模式的詳細資訊。
使用二進位授權政策參考作為指導來建立二進位授權政策。
將政策檔案匯入二進位授權:
gcloud container binauthz policy import <yaml_policy>