查看 GKE 的稽核記錄

本頁說明如何在 Cloud 稽核記錄中,查看部署狀態和政策強制執行相關資訊。

如要進一步瞭解本頁面使用的 Cloud 稽核記錄使用者介面術語,請參閱「查看記錄」一文。

您可以在單一資訊主頁中評估應用程式安全狀態,包括在相互依存的 Google Cloud 產品中強制執行二進位授權政策。詳情請參閱「安全性監控」。

總覽

使用二進位授權將容器映像檔部署至 Google Kubernetes Engine (GKE) 時,GKE 會將部署作業的詳細資料寫入 Google Cloud Observability 的稽核記錄。這些稽核記錄項目包括強制執行狀態訊息。您可以在 Google Cloud 控制台中查看這些記錄項目,也可以使用 gcloud logging read 指令在指令列中查看。

在本指南稍後的搜尋中,您會存取 Cloud 稽核記錄,並選取含有要查看事件的專案。

如要一般存取 Cloud 稽核記錄,請按照下列步驟操作:

  1. 前往Google Cloud 控制台的「Google Cloud Observability Logging」>「Logs」(記錄) (記錄檔探索工具) 頁面:

    前往記錄檔探索工具

  2. 選擇要查看 Cloud 稽核記錄的 Google Cloud 專案。

強制執行狀態訊息

GKE 會在下列強制執行條件下,將訊息寫入稽核記錄:

  • 部署作業遭到封鎖:部署作業因二進位授權政策而遭到封鎖。
  • 急用權限事件:部署作業使用急用權限機制略過政策檢查。詳情請參閱「使用緊急存取權」。
  • 開放式失敗:二進位授權後端無法使用,因此允許部署。
  • 模擬測試:允許部署,但違反政策,因為二進位授權政策已設為模擬測試模式。

Cloud 稽核記錄中的部署事件遭到封鎖

如果容器映像檔違反二進位授權政策而遭到封鎖,您可以在 Cloud Audit Logs 中找到遭封鎖的部署事件。

查詢 Cloud 稽核記錄,找出遭封鎖的部署事件

本節說明如何查詢 Cloud 稽核記錄,找出遭封鎖的部署事件。

記錄檔探索工具

如要在 Cloud 稽核記錄的記錄探索工具中查看遭封鎖的部署事件,請執行下列操作:

  1. 前往「記錄檔探索工具」頁面

  2. 在「search-query」方塊中輸入下列查詢:

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
     protoPayload.methodName="io.k8s.core.v1.pods.update")
    protoPayload.response.status="Failure"
    (protoPayload.response.reason="VIOLATES_POLICY" OR
    protoPayload.response.reason="Forbidden")
    

  3. 時間範圍選取器中選取時間範圍。

gcloud

如要使用 Google Cloud CLI 查看過去一週的 Cloud 稽核記錄政策違規事件,請執行下列指令:

gcloud logging read --order="desc" --freshness=7d \
  'resource.type="k8s_cluster"
   logName:"cloudaudit.googleapis.com%2Factivity"
   (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update")
   protoPayload.response.status="Failure"
   (protoPayload.response.reason="VIOLATES_POLICY" OR
   protoPayload.response.reason="Forbidden")'

Cloud 稽核記錄中的急用權限事件

您可以在 Pod 規格中使用急用權限標籤,覆寫二進位授權政策。使用急用權限部署映像檔時,Binary Authorization 會在 Cloud 稽核記錄中記錄急用權限事件。下一節將說明如何查詢這些事件。

查詢指定中斷玻璃罩的 Pod 的 Cloud 稽核記錄

記錄檔探索工具

如要在 Cloud 稽核記錄的記錄檔探索工具中查看急用權限事件,請執行下列操作:

  1. 前往「記錄檔探索工具」頁面

  2. 在「search-query」(搜尋查詢) 方塊中輸入下列內容:

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update")
    "image-policy.k8s.io/break-glass"
    
  3. 時間範圍選取器中選取時間範圍。

gcloud

如要使用 gcloud CLI 查看過去一週的緊急存取事件,請執行下列指令:

gcloud logging read --order="desc" --freshness=7d \
  'resource.type="k8s_cluster" AND
  logName:"cloudaudit.googleapis.com%2Factivity" AND
  (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update") AND
  "image-policy.k8s.io/break-glass"'

Cloud 稽核記錄中的「Fail open」事件

如果嘗試部署容器映像檔時,二進位授權強制執行功能無法使用或逾時,但系統允許部署容器映像檔,就會發生「開放失敗」情況。

在這種情況下,驗證結果不明,且系統會記錄日誌項目。

查詢 Cloud 稽核記錄的「fail open」事件

記錄檔探索工具

如要在 Cloud 稽核記錄的記錄檔探索工具中查看故障開啟事件,請執行下列操作:

  1. 前往「記錄檔探索工具」頁面

  2. 在「search-query」(搜尋查詢) 方塊中輸入下列內容:

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
     protoPayload.methodName="io.k8s.core.v1.pods.update")
    ("image-policy.k8s.io/failed-open" OR
     "imagepolicywebhook.image-policy.k8s.io/failed-open" OR
     "failed-open.validating.webhook.admission.k8s.io")
    
  3. 時間範圍選取器中選取時間範圍。

gcloud

如要使用 gcloud CLI 在 Cloud 稽核記錄中查看過去一週的「故障時開啟」事件,請執行下列指令:

gcloud logging read --order="desc" --freshness=7d \
  'resource.type="k8s_cluster"
   logName:"cloudaudit.googleapis.com%2Factivity"
   (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
    protoPayload.methodName="io.k8s.core.v1.pods.update")
   ("image-policy.k8s.io/failed-open" OR
    "imagepolicywebhook.image-policy.k8s.io/failed-open" OR
    "failed-open.validating.webhook.admission.k8s.io")'

在 Cloud 稽核記錄中試用事件

模擬測試模式是政策中的強制執行模式,可讓系統部署不符規定的映像檔,但會將部署作業的詳細資料寫入稽核記錄。模擬測試模式可讓您在政策生效前,先在實際工作環境中測試政策。

如果容器映像檔未通過政策中的必要檢查,但允許以試執行模式部署,Cloud 稽核記錄會包含 imagepolicywebhook.image-policy.k8s.io/dry-run: "true"

查詢 Cloud 稽核記錄中的試執行事件

記錄檔探索工具

如要在 Cloud 稽核記錄的記錄檔探索工具中查看模擬執行事件,請執行下列操作:

  1. 前往「記錄檔探索工具」頁面

  2. 在「search-query」(搜尋查詢) 方塊中輸入下列內容:

    resource.type="k8s_cluster"
    logName:"cloudaudit.googleapis.com%2Factivity"
    (protoPayload.methodName="io.k8s.core.v1.pods.create" OR
     protoPayload.methodName="io.k8s.core.v1.pods.update")
    labels."imagepolicywebhook.image-policy.k8s.io/dry-run"="true"
    
  3. 時間範圍選取器中選取時間範圍。

gcloud

如要使用 gcloud CLI 在 Cloud 稽核記錄中查看過去一週的試執行部署事件,請執行下列指令:

gcloud logging read --order="desc" --freshness=7d \
  'labels."imagepolicywebhook.image-policy.k8s.io/dry-run"="true"'