查看 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」(Logs Explorer) 頁面:

    前往 Logs Explorer

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

強制執行狀態訊息

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

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

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

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

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

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

Logs Explorer

如要在 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 規格中使用急用權限標籤,覆寫二進位授權政策。使用急用權限部署映像檔時,二進位授權會在 Cloud 稽核記錄中記錄急用權限事件。下一節將說明如何查詢這些事件。

查詢指定緊急存取權的 Pod 的 Cloud 稽核記錄

Logs Explorer

如要在 Cloud 稽核記錄的 Logs Explorer 中查看急用權限事件,請執行下列操作:

  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 稽核記錄的「開放失敗」事件

Logs Explorer

如要在 Cloud 稽核記錄的 Logs Explorer 中查看故障開啟事件,請執行下列操作:

  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 稽核記錄中的試執行事件

Logs Explorer

如要在 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"'