Cloud Storage for Firebase 的審核日誌記錄

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

概述

Firebase 服務寫入審核日誌來幫助您回答「誰在何時何地做了什麼?」等問題。這些是 Cloud Audit Logs,作為連接到您的 Firebase 專案的 Google Cloud Platform 專案的一部分提供。

您的每個 Firebase 專案僅包含直接位於專案內的資源的審核日誌。

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

可用的審核日誌

以下類型的審核日誌可用於 Cloud Storage for Firebase:

  • 管理員活動審核日誌

    包括寫入元資料或設定資訊的「管理寫入」操作。

    您無法停用管理活動審核日誌。

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

經審計的營運

以下總結了哪些 API 操作對應於 Cloud Storage for Firebase 中的每種審核日誌類型:

審核日誌類別用於 Firebase 操作的雲端存儲
專案營運
管理員活動桶.get
桶列表
桶.addFirebase
Buckets.removeFirebase

審核日誌格式

審核日誌條目包括以下物件:

  • 日誌條目本身,它是LogEntry類型的物件。有用的欄位包括以下內容:

    • logName包含資源 ID 和審核日誌類型。
    • resource包含審核操作的目標。
    • timestamp包含審核操作的時間。
    • protoPayload包含審核的資訊。
  • 審計日誌記錄數據,它是保存在日誌條目的protoPayload欄位中的AuditLog物件。

  • 可選的特定於服務的審計訊息,它是特定於服務的對象。對於較舊的集成,該物件保存在AuditLog物件的serviceData欄位中;較新的整合使用metadata欄位。

有關這些物件中的其他欄位以及如何解釋它們,請查看了解審核日誌

日誌名稱

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

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

服務名稱

Cloud Storage for Firebase 審核日誌使用服務名稱firebasestorage.googleapis.com

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

資源類型

Cloud Storage for Firebase 稽核日誌對所有稽核日誌使用資源類型audited_resource

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

啟用審核日誌記錄

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

權限和角色

Cloud IAM權限和角色決定您存取 GCP 資源中的審核日誌資料的能力。

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

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

  • 私有日誌檢視者角色(roles/logging.privateLogViewer ) 包含roles/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. 日誌資源管理器頁面上,選擇現有的 Firebase 專案、資料夾或組織。

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

    • 資源類型中,選擇您要查看其審核日誌的 GCP 資源。

    • 日誌名稱中,選擇您要查看的審核日誌類型:

      • 對於管理活動審核日誌,選擇活動
      • 對於資料存取審核日誌,選擇data_access
      • 對於系統事件審核日誌,選擇system_event
      • 對於策略拒絕審核日誌,選擇策略

    如果您沒有看到這些選項,則表示 Firebase 專案、資料夾或組織中沒有任何該類型的審核日誌。

    有關使用日誌資源管理器進行查詢的更多詳細信息,請參閱建置日誌查詢

雲雲

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

應用程式介面

建置查詢時,將變數替換為有效值,並取代對應的項目層級、資料夾層級或組織層級審核日誌名稱或審核日誌名稱中所列的識別碼。例如,如果您的查詢包含PROJECT_ID ,則您提供的專案識別碼必須引用目前選取的 Firebase 專案。

若要使用 Logging API 檢視審核日誌條目,請執行下列操作:

  1. 請前往entries.list方法文件中的嘗試此 API部分。

  2. 將以下內容放入嘗試此 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 專案的日誌。

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

價錢

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

資料存取審核日誌策略拒絕審核日誌是收費的。

有關 Cloud Logging 定價的更多信息,請參閱Google Cloud 操作套件定價:Cloud Logging