本頁內容適用於舊版持續驗證 (舊版 CV) 的使用者 (已淘汰)。
舊版持續驗證是二進位授權的一項功能,可定期檢查與執行中 Pod 相關聯的容器映像檔,確保持續符合二進位授權專案單例政策。舊版 CV 會將發現項目記錄至 Cloud Logging。
舊版 CV 不會終止正在執行的 Pod。
限制
舊版 CV 具有下列限制:
- 舊版 CV 只支援部署在 Google Kubernetes Engine (GKE) 上的 Pod。
- 舊版 CV 不支援指定 Cloud Service Mesh 服務 ID、Kubernetes 服務帳戶或 Kubernetes 命名空間特定規則的二進位授權政策。
事前準備
請確保您已在專案中設定 Google Kubernetes Engine 的二進位授權。專案中所有叢集的 Pod 都會產生舊版 CV 記錄政策一致性事件。
確認 gcloud CLI 已更新至最新版本
所需權限
身分與存取權管理 (IAM) 角色包含權限,可以指派給使用者、群組和服務帳戶。以下角色包含列出的 CV 權限:
角色名稱 | 舊版 CV 權限 | 說明 |
---|---|---|
roles/binaryauthorization.policyEditor |
binaryauthorization.continuousValidationConfig.update |
啟用及停用 CV。 |
binaryauthorization.continuousValidationConfig.update
如要設定必要 IAM 權限,請執行下列指令:
PROJECT_NUMBER=$(gcloud projects list \
--filter="projectId:ATTESTATION_PROJECT_ID" \
--format="value(PROJECT_NUMBER)")
SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding ATTESTATION_PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role='roles/containeranalysis.occurrences.viewer'
啟用舊版 CV
主控台
如要使用 Google Cloud 控制台啟用舊版 CV,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「Binary Authorization」(二進位授權) 「Policy」(政策) 頁面。
按一下「政策」分頁標籤。
按一下「編輯政策」。
展開「GKE 和 Anthos 部署作業的其他設定」部分。
勾選「啟用連續驗證功能」核取方塊。
點選 [儲存政策]。
REST API
如要使用 REST API 啟用舊版 CV,請按照下列步驟操作:
儲存專案 ID:
DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
將
DEPLOYER_PROJECT_ID
替換為執行 GKE 的專案 ID。取得 Google Cloud的 OAuth 權杖。
BEARER_TOKEN=$(gcloud auth print-access-token)
憑證的效期很短。
啟用舊版 CV:
curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "true"}}'
舊版 CV 現已設定為記錄事件。
Logging 記錄項目類似下列範例:
{
"insertId": "6054e143-0000-2562-aa64-883d24f57e70",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
"podEvent": {
"images": [
{
"description": "Image <var>IMAGE_NAME@IMAGE_DIGEST</var> denied by
attestor projects/<var>ATTESTOR_PROJECT_ID</var>/attestors/<var>ATTESTOR_NAME</var>:
No attestations found that were valid and signed by a key trusted by
the attestor",
"image": "<var>IMAGE_NAME@IMAGE_DIGEST</var>",
"result": "DENY"
}
],
"verdict": "VIOLATES_POLICY",
"deployTime": "2021-03-19T17:00:08Z",
"pod": "<var>POD_NAME</var>"
}
},
"resource": {
"type": "k8s_cluster",
"labels": {
"cluster_name": "<var>CLUSTER_NAME</var>",
"location": "<var>CLUSTER_LOCATION</var>",
"project_id": "<var>DEPLOYER_PROJECT_ID</var>"
}
},
"timestamp": "2021-03-19T17:15:43.872702342Z",
"severity": "WARNING",
"logName": "projects/<var>DEPLOYER_PROJECY_ID</var>/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
"receiveTimestamp": "2021-03-19T17:57:00.432116179Z"
}
如要瞭解如何查詢舊版 CV 事件,請參閱「在 Cloud Logging 中查看舊版 CV 事件」。
疑難排解
舊版 CV 使用其他 Google Cloud 服務,例如 Cloud Asset Inventory 和 Pub/Sub。如果舊版 CV 失敗,您可以在 Cloud Logging 中檢查 Cloud Asset Inventory 錯誤。
此外,舊版 CV 會建立名為 binauthz-cv-cai-feed
的動態饋給資源。刪除或修改動態饋給可能會導致舊版 CV 失敗。舊版 CV 會自動還原遺失或變更的動態消息,但可能無法記錄發現項目,直到還原完成為止。
停用 CV
主控台
如要使用 Google Cloud 控制台停用舊版 CV,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「Binary Authorization」(二進位授權) 頁面:
按一下「政策」分頁標籤。
按一下「編輯政策」。
取消勾選「啟用連續驗證功能」核取方塊。
點選 [儲存政策]。
REST API
如要使用 REST API 停用舊版 CV,請按照下列步驟操作:
儲存專案 ID:
DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
將
DEPLOYER_PROJECT_ID
替換為執行 GKE 的專案 ID。取得 Google Cloud的 OAuth 權杖。
BEARER_TOKEN=$(gcloud auth print-access-token)
憑證的效期很短。
使用下列指令停用舊版 CV:
curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "false"}}'
在 Cloud Logging 中查看舊版 CV 事件
啟用 CV 後,系統會定期將所有違反二進位授權政策的 Pod 記錄到 Cloud Logging。
這些記錄項目包含下列記錄名稱:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
記錄檔探索工具
如要在 Cloud Logging 中使用記錄檔探索工具查看舊版 CV 事件,請按照下列步驟操作:
選取已啟用 Google Cloud Observability 的專案 ID。
在「search-query」方塊中輸入下列查詢:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
在時間範圍選取器中選取時間範圍。
舊版記錄檢視器
如要使用記錄檔探索工具在 Cloud Logging 中查看舊版 CV 事件,請按照下列步驟操作:
從「選項」下拉式選單中選取「返回舊版記錄檢視器」。
選擇您設定 Google Cloud Observability 的 Google Cloud 專案。
在搜尋查詢方塊中輸入下列查詢:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
在時間範圍選取器中選取時間範圍。
gcloud
如要在 Cloud Logging 中查看過去一週的舊版 CV 事件,請執行下列指令:gcloud
gcloud logging read --order="desc" --freshness=7d \
'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'