本頁面適用於舊版持續驗證 (舊版 CV) (已淘汰) 的使用者。
舊版持續驗證是二進位授權的一項功能,可定期檢查與執行中 Pod 相關聯的容器映像檔,確保這些映像檔持續符合二進位授權專案單例模式政策。舊版 CV 會將發現項目記錄到 Cloud Logging。
舊版持續驗證不會終止執行中的 Pod。
限制
舊版 CV 有下列限制:
- 舊版 CV 僅支援部署在 Google Kubernetes Engine (GKE) 的 Pod。
- 舊版 CV 不支援為 Cloud Service Mesh 服務身分、Kubernetes 服務帳戶或 Kubernetes 命名空間指定特定規則的二進位授權政策。
事前準備
請確認您已在專案中設定 Google Kubernetes Engine 的二進位授權。舊版 CV 會記錄專案中所有叢集內 Pod 的政策遵循事件。
確認 gcloud CLI 已更新至最新版本
所需權限
Identity and Access Management (IAM) 角色包含權限,可指派給使用者、群組和服務帳戶。下列角色包含列出的 CV 權限:
| 角色名稱 | 舊版 CV 權限 | 說明 |
|---|---|---|
roles/binaryauthorization.policyEditor |
binaryauthorization.continuousValidationConfig.update |
啟用及停用 CV。 |
執行下列指令,設定必要的 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"}}'
舊版持續驗證功能現已設為記錄事件。
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」(二進位授權) 頁面:
按一下「政策」分頁標籤。
點選「編輯政策」。
取消勾選「Enable Continuous Validation」(啟用持續驗證) 核取方塊。
點選 [儲存政策]。
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"
Logs Explorer
如要使用 Logs Explorer,在 Cloud Logging 查看舊版 CV 事件,請按照下列步驟操作:
選取已啟用 Google Cloud Observability 的專案 ID。
在「搜尋查詢」方塊中輸入下列查詢:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"在日期範圍選取器中選取日期範圍。
舊版記錄檢視器
如要使用記錄檔探索工具在 Cloud Logging 中查看舊版 CV 事件,請按照下列步驟操作:
從「Options」(選項) 下拉式選單中,選取「Go back to the Legacy Logs Viewer」(返回舊版記錄檢視器)。
選擇您設定 Google Cloud Observability 的 Google Cloud 專案。
在搜尋查詢方塊中輸入下列查詢:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"在日期範圍選取器中選取日期範圍。
gcloud
如要使用 gcloud 在 Cloud Logging 中查看過去一週的舊版 CV 事件,請執行下列指令:
gcloud logging read --order="desc" --freshness=7d \
'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'