Cloud 稽核記錄總覽

本文提供 Cloud 稽核記錄的概念總覽。

Google Cloud 服務會寫入稽核記錄,記錄 Google Cloud 資源中的管理活動和存取動作。稽核記錄可協助您瞭解 Google Cloud 資源中「人事時地物」的問題,透明度與地端部署環境相同。啟用稽核記錄功能後,安全性、稽核和法規遵循實體就能監控Google Cloud 資料與系統,防範可能的安全漏洞或外部資料濫用情形。

Google Cloud 產生稽核記錄的服務

如需提供稽核記錄的 Google Cloud 服務清單,請參閱Google Cloud 含有稽核記錄的服務。未來所有Google Cloud 服務都會提供稽核記錄。

Google Cloud MCP 伺服器會寫入資料存取稽核記錄。Google Cloud MCP 伺服器 API 呼叫所寫入的資料存取稽核記錄為服務專屬,且採用 SERVICE_NAME.googleapis.com/mcp 格式。如要啟用這些資料存取記錄,請在 IAM AuditConfig 物件中開啟 mcp.googleapis.com 的稽核記錄。如要進一步瞭解 Google Cloud MCP 伺服器的稽核記錄,請參閱「Google Cloud MCP 伺服器稽核記錄」。

如要瞭解 Google Workspace 稽核記錄的總覽資訊,請參閱「Google Workspace 稽核記錄」。

必要的角色

如要查看稽核記錄,您必須具備適當的 Identity and Access Management (IAM) 權限和角色:

  • 如要取得管理員活動、政策遭拒和系統事件稽核記錄的唯讀存取權,請要求管理員授予您專案的「記錄檢視者」 (roles/logging.viewer) IAM 角色。

    如果您只有「記錄檢視者」角色 (roles/logging.viewer),就無法查看 _Default bucket 中的資料存取稽核記錄。

  • 如要取得存取 _Required_Default bucket 中所有記錄 (包括資料存取記錄) 的權限,請要求管理員在專案中授予您「私密記錄檢視者 」(roles/logging.privateLogViewer) IAM 角色。

    「私密記錄檢視者」角色 (roles/logging.privateLogViewer) 包含「記錄檢視者」角色 (roles/logging.viewer) 中的權限,以及讀取 _Default bucket 中資料存取稽核記錄所需的權限。

如要進一步瞭解適用於稽核記錄資料的 IAM 權限與角色,請參閱「使用 IAM 控管存取」。

稽核記錄類型

Cloud 稽核記錄會為每個Google Cloud 專案、資料夾和機構提供下列稽核記錄:

管理員活動稽核記錄

管理員活動稽核記錄是由使用者驅動的 API 呼叫或其他動作所寫入的記錄項目,這些動作會修改資源的設定或中繼資料。舉例來說,這類記錄會記下使用者於何時建立 VM 執行個體或變更 Identity and Access Management 權限。

系統一律會寫入管理員活動稽核記錄,且該記錄無法設定、排除或停用。即使停用 Cloud Logging API,系統仍會產生管理員活動稽核記錄。

如需會寫入管理員活動稽核記錄的服務清單,以及哪些活動會產生這些記錄的詳細資訊,請參閱Google Cloud 含有稽核記錄的服務

資料存取稽核記錄

資料存取稽核記錄是由讀取資源設定或中繼資料的 API 呼叫所寫入的記錄項目。使用者驅動的 API 呼叫也會寫入這類記錄,包括建立、修改或讀取使用者提供的資源資料。

如果公開資源具有 Identity and Access Management 政策 allAuthenticatedUsersallUsers,就不會產生稽核記錄。如果資源可在不登入 Google Cloud、Google Workspace、Cloud Identity 或 Drive Enterprise 帳戶的情況下存取,就不會產生稽核記錄。這有助於保護使用者身分和資訊。

資料存取稽核記錄 (BigQuery 資料存取稽核記錄除外) 預設為停用,因為稽核記錄可能相當龐大。如要為 BigQuery 以外的 Google Cloud 服務寫入「資料存取」稽核記錄,您必須明確加以啟用。資料存取稽核記錄會寫入 Google Cloud 存取資料的專案。啟用這些記錄可能會導致專案產生額外的記錄使用費。 Google Cloud 如要瞭解如何啟用及設定資料存取稽核記錄,請參閱「啟用資料存取稽核記錄」。

如需寫入資料存取稽核記錄的服務清單,以及哪些活動會產生這些記錄的詳細資訊,請參閱Google Cloud 含有稽核記錄的服務

除非您已將資料存取稽核記錄轉送至其他位置,否則這些記錄會儲存在 _Default 記錄檔 bucket 中。詳情請參閱本頁面的「儲存及轉送稽核記錄」一節。

系統事件稽核記錄

系統事件稽核記錄是由 Google Cloud 系統寫入的記錄項目,用於記錄資源設定的變更。系統事件稽核記錄不是由使用者直接操作所驅動,舉例來說,如果自動調度資源功能自動在代管執行個體群組 (MIG) 中新增或移除 VM,系統就會寫入系統事件稽核記錄。

系統一律會寫入系統事件稽核記錄,且該記錄無法設定、排除或停用。

如需會寫入系統事件稽核記錄的服務清單,以及哪些活動會產生這些記錄的詳細資訊,請參閱Google Cloud 含有稽核記錄的服務

政策遭拒稽核記錄

當 Google Cloud 服務因使用者或服務帳戶違反安全性政策而拒絕存取要求時,系統會寫入「政策遭拒」稽核記錄。

系統預設會產生政策遭拒稽核記錄,且Google Cloud 專案會收取記錄儲存空間費用。您無法停用「政策遭拒」稽核記錄,但可以使用排除篩選器,防止「政策遭拒」稽核記錄儲存在 Cloud Logging 中。

如需寫入「拒絕政策」稽核記錄的服務清單,以及哪些活動會產生這些記錄的詳細資訊,請參閱Google Cloud 含有稽核記錄的服務

稽核記錄項目結構

Cloud Logging 中的每個稽核記錄項目都是 LogEntry 類型的物件。稽核記錄項目與其他記錄項目的區別在於 protoPayload 欄位;這個欄位包含儲存稽核記錄資料的 AuditLog 物件。

如要瞭解如何讀取及解讀稽核記錄項目,並查看稽核記錄項目範例,請參閱「瞭解稽核記錄」一文。

記錄檔名稱

Cloud 稽核記錄的記錄名稱包括:

  • 資源 ID,指出擁有稽核記錄的 Google Cloud 專案或其他 Google Cloud 實體。

  • 字串 cloudaudit.googleapis.com

  • 字串,指出記錄是否包含管理員活動、資料存取、政策遭拒或系統事件稽核記錄資料。

以下是稽核記錄名稱,包括資源 ID 的變數:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

稽核記錄中的呼叫端身分

稽核記錄會記錄對Google Cloud 資源執行記錄作業的身分。呼叫端的 ID 會儲存在 AuditLog 物件的 AuthenticationInfo 欄位中。

對於任何成功存取或寫入作業,稽核記錄不會遮蓋呼叫端的 Principal 電子郵件地址。

如果唯讀作業失敗並出現「權限遭拒」錯誤,稽核記錄可能會遮蓋呼叫者的主要電子郵件地址,除非呼叫者是服務帳戶。

除了上述條件外,下列事項適用於特定Google Cloud 服務:

  • BigQuery:系統會遮蓋稽核記錄中的呼叫者身分和 IP 位址,以及部分資源名稱,除非符合特定條件。

  • Cloud Storage:啟用 Cloud Storage 使用記錄後,Cloud Storage 會將使用資料寫入 Cloud Storage bucket,並為該 bucket 產生資料存取稽核記錄。產生的資料存取稽核記錄會遮蓋呼叫端身分。

  • Firestore:如果使用 JSON Web Token (JWT) 進行第三方驗證,thirdPartyPrincipal 欄位會包含權杖的標頭和酬載。舉例來說,使用 Firebase 驗證 驗證的要求稽核記錄,會包含該要求的驗證權杖
  • VPC Service Controls:對於「政策遭拒」稽核記錄,系統會進行下列遮蓋:

    • 系統可能會遮蓋來電者電子郵件地址的部分內容,並以三個半形句點 ... 取代。

    • 網域 google.com 的部分來電者電子郵件地址會經過遮蓋,並替換為 google-internal

  • 機構政策: 來電者電子郵件地址的部分內容可能會經過遮蓋,並以三個半形句點 ... 取代。

稽核記錄中的呼叫端 IP 位址

呼叫端的 IP 位址會儲存在 AuditLog 物件的 RequestMetadata.callerIp 欄位中:

  • 如果是來自網際網路的呼叫端,這會是公開 IPv4 或 IPv6 位址。
  • 如果是從內部正式環境網路發出,從一個Google Cloud 服務呼叫另一個服務,則 callerIp 會經過修訂,顯示為「private」。這包括 Google 擁有的服務帳戶 (服務代理程式) 發出的呼叫,即使是由使用者發起,或是 Google 內部基礎架構發起的呼叫也一樣。
  • 如果是來自具有外部 IP 位址的 Compute Engine VM,callerIp 是 VM 的外部位址。這適用於標準 VM 和 Google 管理的 VM,例如 Google Kubernetes Engine 節點。在多項服務流程中 (例如 Cloud Logging 呼叫 Cloud KMS),除非有明確的身分委派,否則服務可能會傳播直接呼叫端的來源,且顯示外部位址而非「私人」。
  • 如果呼叫者來自沒有外部 IP 位址的 Compute Engine VM,且該 VM 與存取的資源位於相同機構或專案,則 callerIp 是 VM 的內部 IPv4 位址。否則,callerIp 會遮蓋為「gce-internal-ip」。詳情請參閱 虛擬私有雲網路總覽

查看稽核記錄

您可以查詢所有稽核記錄,也可以依稽核記錄名稱查詢記錄檔。稽核記錄名稱包含您要查看稽核記錄資訊的 Google Cloud 專案、資料夾、帳單帳戶或組織的資源 ID。查詢可以指定已建立索引的 LogEntry 欄位。如要進一步瞭解如何查詢記錄檔,請參閱「透過 Logs Explorer 建構查詢」。

您可以使用 Logs Explorer 檢視及篩選個別記錄項目。如要使用 SQL 分析記錄項目群組,請使用「記錄檔分析」頁面。如需詳細資訊,請參閱:

使用Google Cloud 控制台、Google Cloud CLI 或 Logging API,在 Cloud Logging 中查看大部分的稽核記錄。不過,如要查看與帳單相關的稽核記錄,只能使用 Google Cloud CLI 或 Logging API。

控制台

在 Google Cloud 控制台中,可以使用 Logs Explorer 擷取 Google Cloud 專案、資料夾或組織的稽核記錄項目:

  1. 前往 Google Cloud 控制台的 「Logs Explorer」頁面

    前往「Logs Explorer」(記錄檔探索工具)

    如果是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 選取現有的 Google Cloud 專案、資料夾或組織。

  3. 如要顯示所有稽核記錄,請在查詢編輯器欄位中輸入下列任一查詢,然後按一下「Run query」(執行查詢)

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. 如要顯示特定資源和稽核記錄類型的稽核記錄,請在「Query builder」(查詢建立工具) 窗格中執行下列操作:

    • 在「Resource type」(資源類型) 中,選取要查看稽核記錄的 Google Cloud 資源。

    • 在「Log name」(記錄檔名稱) 中,選取要查看的稽核記錄類型:

      • 如要查看管理員活動稽核記錄,請選取「activity」(活動)
      • 如要查看資料存取稽核記錄,請選取「data_access」
      • 如要查看系統事件稽核記錄,請選取「system_event」
      • 如要查看政策遭拒稽核記錄,請選取「policy」(政策)
    • 按一下「Run query」(執行查詢)

    如果沒有看到這些選項,表示 Google Cloud 專案、資料夾或組織中沒有這類型的稽核記錄。

    如果無法在 Logs Explorer 中查看記錄檔,請參閱疑難排解資訊。

    如要進一步瞭解如何使用 Logs Explorer 查詢,請參閱「透過 Logs Explorer 建構查詢」。

gcloud

Google Cloud CLI 提供 Logging API 的指令列介面,並在每個記錄檔名稱中提供有效的資源 ID。例如,如果查詢包含 PROJECT_ID,則您提供的專案 ID 必須參照目前選取的Google Cloud 專案。

如要讀取 Google Cloud 專案層級的稽核記錄項目,請執行下列指令:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

如要讀取資料夾層級的稽核記錄項目,請執行下列指令:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

如要讀取組織層級的稽核記錄項目,請執行下列指令:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

如要讀取 Cloud Billing 帳戶層級的稽核記錄項目,請執行下列指令:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

在指令中加入 --freshness 旗標,即可讀取超過 1 天的記錄檔。

如要進一步瞭解如何使用 gcloud CLI,請參閱 gcloud logging read

REST

建構查詢時,請在每個記錄檔名稱中提供有效的資源 ID。例如,如果查詢包含 PROJECT_ID,則您提供的專案 ID 必須參照目前選取的Google Cloud 專案。

例如,如要使用 Logging API 查看專案層級的稽核記錄項目,請按照下列步驟操作:

  1. 前往 entries.list 方法說明文件中的「Try this API」(試用這個 API) 部分。

  2. 將下列內容放入「Try this API」(試用這個 API) 表單的「Request body」(要求主體) 部分。按一下這份已預先填入資料的表單就能自動填入要求主體,但您必須在每個記錄檔名稱中提供有效的 PROJECT_ID

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. 按一下「Execute」(執行)

儲存及轉送稽核記錄

Cloud Logging 使用記錄檔 bucket 做為容器,儲存及管理記錄檔資料。針對每個帳單帳戶、Google Cloud 專案、資料夾和機構,Logging 會自動建立兩個記錄檔 bucket (_Required_Default),以及相應命名的接收器

Cloud Logging _Required buckets 會儲存管理員活動稽核記錄和系統事件稽核記錄。您無法禁止系統儲存管理員活動或系統事件稽核記錄。您也無法設定將記錄項目轉送至 _Required bucket 的接收器。

管理員活動稽核記錄和系統事件稽核記錄一律會儲存在產生記錄的專案中。_Required

如果您將「管理員活動」稽核記錄和「系統事件」稽核記錄轉送至其他專案,這些記錄就不會通過目的地專案的 _Default_Required 接收器。因此,這些記錄不會儲存在目的地專案的 _Default 記錄 bucket 或 _Required 記錄 bucket 中。如要儲存這些記錄,請在目的地專案中建立記錄接收器。詳情請參閱「將記錄轉送至支援的目的地」。

根據預設,_Default bucket 會儲存所有已啟用的資料存取稽核記錄,以及政策遭拒稽核記錄。如要防止資料存取稽核記錄儲存在 _Default bucket 中,可以停用這類記錄。如要防止任何政策遭拒稽核記錄儲存在 _Default bucket 中,可以修改接收器的篩選器來排除這類記錄。

您也可以在 Google Cloud 專案層級,將稽核記錄項目轉送至使用者定義的 Cloud Logging 值區,或使用接收器轉送至 Logging 以外的支援目的地。如需轉送記錄檔的操作說明,請參閱「將記錄檔轉送至支援的目的地」。

設定記錄接收器的篩選條件時,您需要指定要轉送的稽核記錄類型;如需篩選條件範例,請參閱「安全性記錄查詢」。

如要為 Google Cloud 機構、資料夾或帳單帳戶及其子項資源,設定稽核記錄項目的路由,請參閱「匯總接收器總覽」。

稽核記錄保留期

如要進一步瞭解 Logging 保留記錄項目的時間長度,請參閱配額與限制:記錄保留期限中的保留說明。

存取控管

IAM 權限和角色會決定您能否在 Logging APILogs ExplorerGoogle Cloud CLI 中存取稽核記錄資料。

如要進一步瞭解您可能需要的 IAM 權限和角色,請參閱「使用 IAM 控管存取權」。

配額與限制

如要瞭解記錄的使用限制 (包括稽核記錄的大小上限),請參閱「配額與限制」。

定價

如需定價資訊,請參閱「Google Cloud Observability 定價」頁面。如果將記錄檔資料傳送至其他 Google Cloud 服務,請參閱下列文件:

後續步驟