稽核記錄

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

總覽

Google Cloud 服務會寫入稽核記錄,協助您瞭解資源中「從事活動的人員、內容、地點及時間」。Cloud 專案的稽核記錄僅涵蓋直接隸屬於專案的資源。資料夾、機構和 Cloud Billing 帳戶等其他實體也各有其專屬的稽核記錄。

如需 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 方法,更新要啟用稽核記錄的記錄類別:

    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/default 執行步驟 5b。name

啟用後,您可以在 Google Cloud 控制台的「記錄檔探索工具」部分查看記錄。使用下列篩選器,只查看 Cloud Search 稽核記錄:

protoPayload.serviceName="cloudsearch.googleapis.com"

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

稽核記錄權限

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

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

  • 專案擁有者、專案編輯者或專案檢視者
  • Logging 的「記錄檢視者」角色
  • 具有 logging.logEntries.list IAM 權限的自訂 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 控制台中,前往「記錄」>「記錄檔探索工具」頁面。

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

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

  3. 在「查詢建立工具」窗格中,執行下列操作:

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

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

      • 如要查看管理員活動稽核記錄,請選取「activity」
      • 如要查看資料存取稽核記錄,請選取「data_access」data_access
      • 如要查看系統事件稽核記錄,請選取「system_event」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 (如已啟用) 和客戶搜尋應用程式的 Query API 呼叫。

  • 如果是 search() 呼叫,要求中只會記錄 QueryRequestOptionsDataSourceRestriction。在回應中,系統只會稽核每個 SearchResult 的網址和中繼資料 (來源和 objectType)。

  • 系統不會稽核發給 Cloud Search 後端的呼叫,以及與資料匯出作業相應的呼叫。