Firebase 應用檢查的審核日誌記錄

本頁面介紹 Firebase 作為Cloud Audit Logs的一部分創建的審核日誌。

概述

Firebase 服務會編寫審核日誌來幫助您回答“誰在何時何地做了什麼?”等問題。這些是 Cloud Audit Logs,作為連接到 Firebase 項目的 Google Cloud 項目的一部分提供。

您的每個 Firebase 項目僅包含項目中直接資源的審核日誌。

有關 Cloud Audit Logs 的一般概述,請參閱Cloud Audit Logs 概述。要更深入地了解審核日誌格式,請參閱了解審核日誌

可用的審計日誌

Firebase App Check 可以使用以下類型的審核日誌:

  • 管理員活動審核日誌

    包括寫入元數據或配置信息的“管理員寫入”操作。

    您不能禁用管理員活動審核日誌。

  • 數據訪問審核日誌

    包括讀取元數據或配置信息的“管理員讀取”操作。還包括讀取或寫入用戶提供的數據的“數據讀取”和“數據寫入”操作。

    要接收數據訪問審核日誌,您必須明確啟用它們。

有關審核日誌類型的更完整描述,請參閱審核日誌類型。

經審計的操作

下面總結了 Firebase App Check 中每種審核日誌類型對應的 API 操作:

審核日誌類別Firebase 應用檢查操作
項目運營
管理員活動更新服務
批量更新服務
數據訪問 (ADMIN_READ)獲取服務
列表服務
應用操作
管理員活動更新AppAttestConfig
更新設備檢查配置
更新播放完整性配置
更新RecaptchaEnterpriseConfig
更新RecaptchaV3Config
更新SafetyNetConfig
創建調試令牌
更新調試令牌
刪除調試令牌
數據訪問 (ADMIN_READ)獲取AppAttestConfig
BatchGetAppAttestConfigs
獲取設備檢查配置
BatchGetDeviceCheckConfigs
獲取播放完整性配置
BatchGetPlayIntegrityConfigs
GetRecaptchaEnterpriseConfig
BatchGetRecaptchaEnterpriseConfigs
獲取RecaptchaV3Config
BatchGetRecaptchaV3Configs
獲取安全網絡配置
BatchGetSafetyNetConfigs
獲取調試令牌
ListDebugTokens

審核日誌格式

審核日誌條目包括以下對象:

  • 日誌條目本身,它是LogEntry類型的對象。有用的字段包括:

    • logName包含資源 ID 和審核日誌類型。
    • resource包含審計操作的目標。
    • timeStamp包含審計操作的時間。
    • protoPayload包含審計的信息。
  • 審計日誌數據,它是一個AuditLog對象,保存在日誌條目的protoPayload字段中。

  • 可選的特定於服務的審計信息,它是特定於服務的對象。對於較舊的集成,此對象保存在AuditLog對象的serviceData字段中;較新的集成使用metadata字段。

對於這些對像中的其他字段以及如何解釋它們,請查看了解審計日誌

日誌名稱

Cloud Audit Logs 資源名稱指示擁有審核日誌的 Firebase 項目或其他 Google Cloud 實體,以及日誌是否包含管理員活動、數據訪問、政策被拒絕或系統事件審核日誌記錄數據。例如,以下顯示了項目級管理員活動審計日誌和組織的數據訪問審計日誌的日誌名稱。這些變量表示 Firebase 項目和組織標識符。

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

服務名稱

Firebase App Check 審核日誌使用服務名稱firebaseappcheck.googleapis.com

如需所有 Cloud Logging API 服務名稱及其對應的受監控資源類型的完整列表,請參閱將服務映射到資源

資源類型

Firebase App Check 審核日誌對所有審核日誌使用資源類型audited_resource

有關 Cloud Logging 受監控的所有資源類型和描述性信息的列表,請參閱受監控的資源類型

啟用審核日誌記錄

管理員活動審核日誌始終處於啟用狀態;你不能禁用它們。

數據訪問審核日誌默認處於禁用狀態,除非明確啟用,否則不會寫入(BigQuery 的數據訪問審核日誌例外,無法禁用)。

有關啟用部分或全部數據訪問審核日誌的說明,請參閱配置數據訪問日誌

權限和角色

Cloud IAM權限和角色決定了您訪問 Google Cloud 資源中的審核日誌數據的能力。

在決定哪些特定於日誌記錄的權限和角色適用於您的用例時,請考慮以下事項:

  • 日誌查看者角色 ( roles/logging.viewer ) 為您提供對管理員活動、拒絕策略和系統事件審核日誌的只讀訪問權限。如果您只有此角色,則無法查看_Default存儲桶中的數據訪問審核日誌。

  • Private Logs Viewer 角色(roles/logging.privateLogViewer ) 包括roles/logging.viewer /logging.viewer 中包含的權限,以及讀取_Default存儲桶中的數據訪問審核日誌的能力。

    請注意,如果這些私有日誌存儲在用戶定義的存儲桶中,那麼任何有權讀取這些存儲桶中的日誌的用戶都可以讀取這些私有日誌。有關日誌存儲桶的更多信息,請參閱路由和存儲概述

有關適用於審核日誌數據的 Cloud IAM 權限和角色的更多信息,請參閱訪問控制

查看日誌

要查找和查看審核日誌,您需要知道要查看其審核日誌信息的 Firebase 項目、文件夾或組織的標識符。您可以進一步指定其他索引LogEntry字段,例如resource.type ;有關詳細信息,請查看快速查找日誌條目

以下是審核日誌名稱;它們包括 Firebase 項目、文件夾或組織標識符的變量:

   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

您可以使用 GCP Console、 gcloud命令行工具或 Logging API 在 Cloud Logging 中查看審核日誌。

安慰

您可以使用 GCP Console 中的日誌資源管理器來檢索您的 Firebase 項目、文件夾或組織的審核日誌條目:

  1. 在 GCP Console 中,轉到日誌記錄 > 日誌資源管理器頁面。

    轉到日誌資源管理器頁面

  2. Logs Explorer頁面上,選擇現有的 Firebase 項目、文件夾或組織。

  3. 查詢構建器窗格中,執行以下操作:

    • Resource type中,選擇您要查看其審核日誌的 Google Cloud 資源。

    • Log name中,選擇要查看的審核日誌類型:

      • 對於管理員活動審核日誌,選擇活動
      • 對於數據訪問審核日誌,選擇data_access
      • 對於系統事件審核日誌,選擇system_event
      • 對於 Policy Denied 審計日誌,選擇policy

    如果您沒有看到這些選項,則說明 Firebase 項目、文件夾或組織中沒有任何該類型的審核日誌。

    有關使用 Logs Explorer 進行查詢的更多詳細信息,請參閱構建日誌查詢

gcloud命令行工具為 Cloud Logging API 提供命令行界面。在每個日誌名稱中提供有效的PROJECT_IDFOLDER_IDORGANIZATION_ID

要讀取您的 Firebase 項目級審核日誌條目,請運行以下命令:

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工具的更多信息,請參閱讀取日誌條目

API

構建查詢時,將變量替換為有效值,替換適當的項目級、文件夾級或組織級審計日誌名稱或審計日誌名稱中列出的標識符。例如,如果您的查詢包含PROJECT_ID ,那麼您提供的項目標識符必須引用當前選擇的 Firebase 項目。

要使用 Logging API 查看您的審核日誌條目,請執行以下操作:

  1. 轉到entries.list方法的文檔中的試用此 API部分。

  2. 將以下內容放入Try this API表單的請求正文部分。單擊此預填充表單會自動填充請求正文,但您需要在每個日誌名稱中提供有效的PROJECT_ID

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. 單擊執行

有關查詢的更多詳細信息,請參閱日誌記錄查詢語言

有關審核日誌條目的示例以及如何在其中找到最重要的信息,請參閱示例審核日誌條目

路由審核日誌

您可以像路由其他類型的日誌一樣將審核日誌路由到支持的目標。以下是您可能希望路由審核日誌的一些原因:

  • 要將審核日誌保留更長時間或使用更強大的搜索功能,您可以將審核日誌的副本路由到 Google Cloud Storage、BigQuery 或 Google Cloud Pub/Sub。使用 Cloud Pub/Sub,您可以路由到其他應用程序、其他存儲庫和第三方。

  • 要在整個組織中管理您的審核日誌,您可以創建聚合接收器,這些接收器可以路由來自組織中任何或所有 Firebase 項目的日誌。

  • 如果您啟用的數據訪問審核日誌將您的 Firebase 項目推送到您的日誌分配上,您可以創建從日誌記錄中排除數據訪問審核日誌的接收器。

有關路由日誌的說明,請參閱配置接收器

價錢

管理員活動審核日誌系統事件審核日誌是免費的。

數據訪問審核日誌拒絕策略審核日誌是收費的。

如需詳細了解 Cloud Logging 定價,請參閱Google Cloud 的運營套件定價:Cloud Logging