稽核記錄

本頁面說明由 Cloud Search 建立的稽核記錄,該記錄屬於 Cloud 稽核記錄的一部分。

總覽

Google Cloud 服務會寫入稽核記錄,協助您瞭解資源中有關「人事時地物」的問題。您的 Cloud 專案只包含直接隸屬於專案的資源稽核記錄。資料夾、機構和 Cloud Billing 帳戶等其他實體也各有其專屬的稽核記錄。

如需 Cloud 稽核記錄的概要總覽,請參閱「Cloud 稽核記錄」。如要深入瞭解 Cloud 稽核記錄,請參閱「瞭解稽核記錄」一文。

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

  • 管理員活動稽核記錄包含對應於執行管理員寫入作業的方法的項目。接下來會介紹與「管理員活動:管理員寫入作業」相對應的方法,請參閱已稽核的作業一節。
  • 資料存取稽核記錄,其中包含對應於執行管理員讀取、資料寫入和資料讀取作業的方法的項目。接下來會介紹與「資料存取:管理員讀取」、「資料存取:資料寫入」、「資料存取:資料讀取」作業相對應的方法,詳情請見「已稽核的作業」一節。
  • 系統事件稽核記錄
  • 政策遭拒的稽核記錄

Cloud Search 會寫入管理員活動稽核記錄,其中會記錄修改資源設定或中繼資料的作業。您無法停用管理員活動稽核記錄。

只有在明確啟用時,Cloud Search 才會寫入資料存取權稽核記錄。資料存取稽核記錄包含讀取資源設定或中繼資料的 API 呼叫,以及建立、修改或讀取使用者所提供資源資料的使用者驅動 API 呼叫。

Cloud Search 不會寫入系統事件稽核記錄。

Cloud Search 不會寫入政策遭拒稽核記錄。

已稽核的作業

以下概述與 Cloud Search 中各稽核記錄類型對應的 API 作業:

稽核記錄類別 Cloud Search 作業
管理員活動:管理員寫入 indexing.datasources.updateSchema
indexing.datasources.deleteSchema
settings.datasources.create
settings.datasources.delete
settings.datasources.update
settings.searchapplications.create
settings.searchapplications.delete
settings.searchapplications.reset
settings.searchapplications.update
settings.updateCustomer
cloudsearch.IdentitySourceService.create
cloudsearch.IdentitySourceService.update
cloudsearch.IdentitySourceService.delete
資料存取:管理員讀取 indexing.datasources.getSchema
settings.datasources.get
settings.datasources.list
settings.searchapplications.get
settings.searchapplications.list
settings.getCustomer
cloudsearch.IdentitySourceService.get
cloudsearch.IdentitySourceService.list
資料存取權:寫入資料 indexing.datasources.items.delete
indexing.datasources.items.deleteQueueItems
indexing.datasources.items.index
indexing.datasources.items.poll
indexing.datasources.items.push
indexing.datasources.items.unreserve
indexing.datasources.items.upload
media.upload
資料存取權:讀取資料 indexing.datasources.items.get
indexing.datasources.items.list
operations.get
operations.list
debug.datasources.items.checkAccess
debug.datasources.items.searchByViewUrl
stats.getIndex
stats.getQuery
stats.getSession
stats.getUser
stats.index.datasources.get
stats.query.searchapplications.get
stats.session.searchapplications.get
stats.user.search applications.get
debug.identitysources.items.listForunmappedidentity
debug.identitysources.unmappedids.list
debug.datasources.items.unmappedids.list
query.sources.list
query.suggest
query.search
stats.getSearchapplication

稽核記錄格式

稽核記錄項目 (可在 Cloud Logging 中使用記錄檢視器、Cloud Logging API 或 gcloud 指令列工具查看) 包括以下物件:

記錄項目本身,屬於 LogEntry 類型的物件。實用的欄位包括:

  • logName 包含資源 ID 和稽核記錄類型。
  • resource 包含稽核作業的目標。
  • timeStamp 包含稽核作業的時間。
  • protoPayload 包含稽核的資訊。
  • 稽核記錄資料,這是儲存在記錄項目 protoPayload 欄位中的 AuditLog 物件。

選用的服務專屬稽核資訊,這是服務專屬物件。對於較早的整合,這個物件會保留在 AuditLog 物件的 serviceData 欄位中;較新的整合會使用 metadata 欄位。

如要瞭解這些物件的其他欄位,以及如何解讀這些資料,請參閱瞭解稽核記錄一文。

記錄檔名稱

Cloud 稽核記錄資源名稱會指出擁有稽核記錄的 Cloud 專案或其他 Google Cloud 實體,以及記錄中包含的是管理員活動、資料存取、政策遭拒或系統事件稽核記錄資料。例如,下列內容顯示專案層級管理員活動稽核記錄和機構資料存取稽核記錄的記錄名稱。這些變數代表專案和機構 ID。

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

服務名稱

Cloud Search 稽核記錄會使用 cloudsearch.googleapis.com 服務名稱。

資源類型

Cloud Search 稽核記錄使用的資源類型一律為 audited_resource

如需其他資源類型的清單,請參閱「受控資源類型」。

啟用稽核記錄

根據預設,Cloud Search API 的稽核記錄功能會停用。如要為 Google Cloud Search 啟用稽核記錄功能,請按照下列步驟操作:

  1. (選用) 如果您尚未建立用於儲存記錄的 Google Cloud Platform 專案,請參閱「設定 Google Cloud Search API 存取權」。

  2. 取得您要儲存記錄的 Google Cloud 專案 ID。如要瞭解如何取得專案 ID,請參閱「識別專案」。

  3. 如要為特定 API 啟用稽核記錄,您必須決定要啟用的記錄類別。如要瞭解 API 及其對應的類別,請參閱本文件稍早的「已稽核的作業」一節。

  4. 使用 updateCustomer() REST API 方法,將要啟用的記錄類別更新至 auditLogSettings:

    1. 從 Google 授權伺服器取得 OAuth 2.0 存取權憑證。如要瞭解如何取得憑證,請參閱「使用 OAuth 2.0 存取 Google API」的步驟 2。取得存取權杖時,請使用下列其中一種 OAuth 範圍:

      • https://www.googleapis.com/auth/cloud_search.settings.indexing
      • https://www.googleapis.com/auth/cloud_search.settings
      • https://www.googleapis.com/auth/cloud_search
    2. 執行下列 curl 指令。

    curl --request PATCH \
    'https://cloudsearch.googleapis.com/v1/settings/customer?updateMask=auditLoggingSettings&key=[YOUR_API_KEY]' \
    --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
    --header 'Content-Type: application/json' \
    --data '{"auditLoggingSettings": { "project": "projects/PROJECT_ID", "CATEGORY1": "true", "CATEGORY2": "true" } }'
    

    在此情況下:

    • YOUR_ACCESS_TOKEN 是步驟 4a 中取得的 OAuth 2.0 存取憑證。
    • PROJECT_ID 是您在步驟 2 中取得的專案 ID。
    • CATEGORY1CATEGORY2 是您在步驟 3 中選擇啟用的類別。有效值為 logAdminReadActionslogDataWriteActionslogDataReadActions。管理員寫入動作預設為啟用,且無法停用。如要稽核查詢方法的記錄,您必須啟用「資料讀取」類別。

    更新 AuditLoggingSettings 後,針對 Cloud Search API 提出的後續要求會在 AuditLoggingSettings 中指定的專案 ID 中產生稽核記錄。

  5. 如要稽核查詢方法的記錄,您必須啟用「資料讀取」類別 (請參閱步驟 4)。如要為查詢方法 (query.sources.listquery.suggestquery.search) 啟用稽核記錄,請按照下列額外步驟操作:

    1. 針對您要啟用稽核記錄功能的每個搜尋應用程式,擷取名稱。名稱必須採用 searchapplications/<search_application_id> 的格式。

    2. 使用名稱呼叫 settings.searchapplications.update,並將 enableAuditLog 設為 true

  6. 如要為 cloudsearch.google.com 的呼叫啟用稽核記錄,請確認已啟用「資料讀取」類別 (步驟 4)。此外,請使用 searchapplications/defaultname 執行步驟 5b。

啟用之後,您就能在 Google Cloud 控制台的「記錄檔探索工具」區段中查看記錄檔。使用下列篩選器,即可只查看 Cloud Search 稽核記錄:

protoPayload.serviceName="cloudsearch.googleapis.com"

如要瞭解如何查看記錄,請參閱「記錄檔探索工具總覽」。

稽核記錄權限

Identity and Access Management 權限和角色會決定您能查看或匯出的稽核記錄。記錄保存在 Cloud 專案以及機構、資料夾和 Cloud Billing 帳戶等其他實體中。詳情請參閱「瞭解角色」。

如要查看管理員活動稽核記錄,您必須具備稽核記錄所屬專案的下列其中一個 IAM 角色:

如要查看資料存取稽核記錄,在包含稽核記錄的專案中,您必須擁有下列其中一個角色:

如果您使用的稽核記錄來自非專案實體 (例如機構),請將 Cloud 專案角色變更為適當的機構角色。

查看記錄

如要查看稽核記錄,您必須知道要查看稽核記錄資訊的 Cloud 專案、資料夾或機構 ID。您可以進一步指定其他已編入索引的 LogEntry 欄位,例如 resource.type。詳情請參閱「在記錄檔探索工具中建構查詢」。

以下是稽核記錄名稱,其中包含 Cloud 專案、資料夾或機構 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

   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

您可以透過以下幾種做法查看稽核記錄項目:

控制台

您可以使用 Cloud Console 中的記錄檔探索工具,擷取 Cloud 專案的稽核記錄項目:

  1. 在 Cloud 控制台中,前往「Logging」>「Logs Explorer」頁面。

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

  2. 在「Logs Explorer」頁面中,選取現有的雲端專案。

  3. 在「Query builder」窗格中,執行下列操作:

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

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

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

    如果沒有看到這些選項,表示 Cloud 專案中沒有這類型的稽核記錄。

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

gcloud

gcloud 提供 Logging API 的指令列介面。並在每個記錄名稱中提供有效的 PROJECT_IDFOLDER_IDORGANIZATION_ID

如要讀取 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

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

API

建立查詢時,請將變數替換為有效值,並替換適當的專案層級、資料夾層級或組織層級稽核記錄名稱或 ID,如稽核記錄名稱所列。舉例來說,如果查詢包含 PROJECT_ID,則您提供的專案 ID 必須參照目前所選的 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] (執行)

如要進一步瞭解查詢,請參閱「Logging 查詢語言」。

如需稽核記錄項目範例,並瞭解如何找出其中最重要的資訊,請參閱「瞭解稽核記錄」一文。

匯出稽核記錄

您可以採用與匯出其他類型記錄相同的方式匯出稽核記錄。如需匯出記錄檔的詳細資訊,請參閱「匯出記錄」。以下是匯出稽核記錄的一些應用方式:

  • 如要長時間保留稽核記錄,或使用更強大的搜尋功能,您可以將稽核記錄的副本匯出到 Cloud Storage、BigQuery 或 Pub/Sub。您可以使用 Pub/Sub 匯出至其他應用程式、其他存放區或是第三方。

  • 如要管理整個機構的稽核記錄,您可以建立匯總接收器,從機構的任何或所有 Cloud 專案匯出記錄。

  • 如果已啟用的資料存取稽核記錄導致 Cloud 專案超過記錄配額,您可以從 Logging 匯出及排除資料存取稽核記錄。詳情請參閱「排除記錄檔」。

定價和留存

Cloud Logging 不會針對無法停用的稽核記錄收費,包括所有管理員活動稽核記錄。Cloud Logging 會針對您明確要求的資料存取稽核記錄向您收費。

如要進一步瞭解稽核記錄的價格,請參閱「Google Cloud 作業套件定價」一文。

與 Cloud Search 稽核記錄相關聯的儲存期限如下:

  • 管理員活動記錄 (或管理員寫入):這些記錄會保留 400 天。
  • 資料存取記錄 (管理員讀取、資料寫入和資料讀取):這些記錄會保留 30 天。

如要進一步瞭解儲存時間長度,請參閱「記錄保留期限」。

目前限制

Cloud Search 稽核記錄目前有以下限制:

  • 記錄項目的大小必須小於 512 KB。如果大小超過 512 KB,系統就會從記錄項目中捨棄回應。如果無法將大小縮減至 512 KB 以下,系統就會捨棄要求。最後,如果大小仍超過 512 KB,則會捨棄記錄項目。

  • 系統不會記錄 list()get()suggest() 方法的回應主體。不過,您可以查看回應狀態。

  • 只有來自 cloudsearch.google.com (如果已啟用) 和客戶搜尋應用程式的查詢 API 呼叫才會記錄。

  • 對於 search() 呼叫,要求中只會記錄 QueryRequestOptionsDataSourceRestriction。在回應中,只有每個 SearchResult 的網址和中繼資料 (來源和 objectType) 會進行稽核。

  • 系統不會審查對 Cloud Search 後端發出的呼叫,以及與資料匯出作業相關的呼叫。