Cloud 稽核記錄總覽

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

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

Google Cloud 產生稽核記錄的服務

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

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

必要的角色

如要查看稽核記錄,您必須具備適當的身分與存取權管理 (IAM) 權限和角色:

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

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

  • 如要取得存取 _Required_Default 值區中所有記錄 (包括資料存取記錄) 所需的權限,請要求管理員為您授予專案的私密記錄檢視者 (roles/logging.privateLogViewer) 身分與存取權管理角色。

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

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

稽核記錄類型

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

管理員活動稽核記錄

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

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

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

資料存取稽核記錄

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

如果公開資源具有身分與存取權管理政策 allAuthenticatedUsersallUsers,就不會產生稽核記錄。如果存取資源時不需要登入 Google Workspace、Cloud Identity 或雲端硬碟企業版帳戶,系統就不會產生稽核記錄。 Google Cloud這有助於保護使用者身分和資訊。

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

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

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

系統事件稽核記錄

系統事件稽核記錄是由 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 欄位中。

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

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

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

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

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

  • 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」。
  • 如果呼叫端是具備外部 IP 位址的 Compute Engine VM,則 callerIp 是 VM 的外部位址。
  • 如果呼叫者來自沒有外部 IP 位址的 Compute Engine VM,且該 VM 與存取的資源位於相同機構或專案,則 callerIp 是 VM 的內部 IPv4 位址。否則,callerIp 會經過修訂,顯示為「gce-internal-ip」。詳情請參閱虛擬私有雲網路總覽

查看稽核記錄

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

您可以使用記錄檔探索工具,查看及篩選個別記錄項目。如要使用 SQL 分析記錄檔項目群組,請使用「記錄檔分析」頁面。如需詳細資訊,請參閱:

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

控制台

在 Google Cloud 控制台中,您可以使用「記錄檔探索工具」擷取 Google Cloud 專案、資料夾或機構的稽核記錄項目:

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

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

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

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

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

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

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

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

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

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

    如果無法在記錄檔探索工具中查看記錄,請參閱疑難排解資訊。

    如要進一步瞭解如何使用記錄檔探索工具查詢,請參閱「在記錄檔探索工具中建構查詢」。

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 會自動建立兩個記錄檔值區 (_Required_Default),以及相應名稱的接收器

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

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

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

根據預設,_Default 值區會儲存所有已啟用的資料存取稽核記錄,以及政策拒絕稽核記錄。如要避免資料存取稽核記錄儲存在 _Default 值區中,可以停用這項功能。如要避免將任何「政策拒絕」稽核記錄儲存在 _Default bucket 中,可以修改接收器的篩選器來排除這些記錄。

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

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

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

稽核記錄保留期

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

存取權控管

IAM 權限和角色會決定您在 Logging API記錄檔探索工具Google Cloud CLI 中存取稽核記錄資料的權限。

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

配額與限制

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

定價

Cloud Logging 不會收取將記錄檔轉送至支援目的地的費用,但目的地可能會收取費用。除了 _Required 記錄檔值區,Cloud Logging 會針對將記錄檔串流至記錄檔值區,以及儲存時間超過記錄檔值區預設保留期限的記錄檔收費。

Cloud Logging 不會收取複製記錄、建立記錄範圍分析檢視區塊的費用,也不會收取透過 Logs Explorer記錄檔分析頁面發出查詢的費用。

如需詳細資訊,請參閱下列文件:

後續步驟