Firebase App Hosting 稽核記錄

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

總覽

Firebase 服務會寫入稽核記錄,協助您瞭解什麼人在什麼時間和位置從事了什麼行為。這些是 Cloud Audit Logs,會做為與 Google Cloud Firebase 專案連結的專案一部分提供。

每個 Firebase 專案的稽核記錄都僅涵蓋直接隸屬於專案的資源。

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

可用的稽核記錄

Firebase App Hosting 提供下列類型的稽核記錄:

  • 管理員活動稽核記錄

    包括寫入中繼資料或設定資訊的「管理員寫入」作業。

    您無法停用管理員活動稽核記錄。

  • 資料存取稽核記錄

    包括讀取中繼資料或設定資訊的「管理員讀取」作業。也包括讀取或寫入使用者提供資料的「資料讀取」和「資料寫入」作業。

    如要接收資料存取稽核記錄,您必須明確啟用這類記錄。

如需稽核記錄類型的完整說明,請參閱「稽核記錄類型」。

已稽核的作業

以下摘要列出與 Firebase 應用程式代管中的每個稽核記錄類型對應的 API 作業:

權限類型 方法
ADMIN_READ google.firebase.apphosting.v1alpha.AppHosting.GetBackend
google.firebase.apphosting.v1alpha.AppHosting.GetBuild
google.firebase.apphosting.v1alpha.AppHosting.GetRollout
google.firebase.apphosting.v1alpha.AppHosting.GetTraffic
google.firebase.apphosting.v1alpha.AppHosting.ListBackends
google.firebase.apphosting.v1alpha.AppHosting.ListBuilds
google.firebase.apphosting.v1alpha.AppHosting.ListDomains
google.firebase.apphosting.v1alpha.AppHosting.ListRollouts
google.firebase.apphosting.v1beta.AppHosting.GetBackend
google.firebase.apphosting.v1beta.AppHosting.GetBuild
google.firebase.apphosting.v1beta.AppHosting.GetDomain
google.firebase.apphosting.v1beta.AppHosting.GetTraffic
google.firebase.apphosting.v1beta.AppHosting.ListBackends
google.firebase.apphosting.v1beta.AppHosting.ListBuilds
google.firebase.apphosting.v1beta.AppHosting.ListDomains
google.firebase.apphosting.v1beta.AppHosting.ListRollouts
ADMIN_WRITE google.firebase.apphosting.v1alpha.AppHosting.CreateBackend
google.firebase.apphosting.v1alpha.AppHosting.CreateBuild
google.firebase.apphosting.v1alpha.AppHosting.CreateDomain
google.firebase.apphosting.v1alpha.AppHosting.CreateRollout
google.firebase.apphosting.v1alpha.AppHosting.DeleteBackend
google.firebase.apphosting.v1alpha.AppHosting.DeleteBuild
google.firebase.apphosting.v1alpha.AppHosting.DeleteDomain
google.firebase.apphosting.v1alpha.AppHosting.UpdateBuild
google.firebase.apphosting.v1alpha.AppHosting.UpdateTraffic
google.firebase.apphosting.v1beta.AppHosting.CreateBackend
google.firebase.apphosting.v1beta.AppHosting.CreateBuild
google.firebase.apphosting.v1beta.AppHosting.CreateDomain
google.firebase.apphosting.v1beta.AppHosting.CreateRollout
google.firebase.apphosting.v1beta.AppHosting.DeleteBackend
google.firebase.apphosting.v1beta.AppHosting.DeleteBuild
google.firebase.apphosting.v1beta.AppHosting.DeleteDomain
google.firebase.apphosting.v1beta.AppHosting.UpdateBackend
google.firebase.apphosting.v1beta.AppHosting.UpdateDomain
google.firebase.apphosting.v1beta.AppHosting.UpdateTraffic

稽核記錄格式

稽核記錄項目包含下列物件:

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

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

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

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

記錄檔名稱

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

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

服務名稱

Firebase App Hosting 稽核記錄會使用服務名稱 firebaseapphosting.googleapis.com

如需所有 Cloud Logging API 服務名稱及其對應受監控資源類型的完整清單,請參閱「將服務對應至資源」。

資源類型

Firebase App Hosting 稽核記錄使用的資源類型一律為 audited_resource

如需所有 Cloud Logging 受監控資源類型和說明資訊的清單,請參閱「受監控資源類型」。

啟用稽核記錄

系統一律會啟用管理員活動稽核記錄,且該記錄無法停用。

資料存取稽核記錄預設為停用,且除非明確啟用,否則系統不會寫入這類記錄。唯一的例外是 BigQuery 的資料存取稽核記錄,該記錄無法停用。

如需啟用部分或所有資料存取稽核記錄的操作說明,請參閱設定資料存取記錄一文。

權限與角色

Cloud IAM 權限和角色會決定您能否存取 Google Cloud 資源中的稽核記錄資料。

決定要將哪些記錄專屬權限和角色套用至您的用途時,請考量下列事項:

  • 「記錄檢視者」角色 (roles/logging.viewer) 可讓您以唯讀模式存取「管理員活動」、「政策拒絕」和「系統事件」稽核記錄。如果您只有這個角色,就無法查看 _Default 值區中的資料存取稽核記錄。

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

    請注意,如果這些私密記錄檔儲存在使用者定義的值區中,則任何有權讀取這些值區中記錄檔的使用者,都能讀取私密記錄檔。如要進一步瞭解記錄值區,請參閱「轉送和儲存空間總覽」。

如要進一步瞭解適用於稽核記錄資料的 Cloud IAM 權限和角色,請參閱存取權控管

查看記錄檔

如要尋找及查看稽核記錄,您必須知道要查看稽核記錄資訊的 Firebase 專案、資料夾或機構的 ID。您還可以進一步指定其他已建立索引的LogEntry欄位,例如 resource.type。詳情請參閱「快速尋找記錄項目」。

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

您可以使用 Google Cloud 控制台、gcloud 指令列工具或 Logging API,在 Cloud Logging 中查看稽核記錄。

控制台

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

  1. 在 Google Cloud 控制台中,前往「Logging > Logs Explorer」(記錄 > 記錄檔探索工具) 頁面。

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

  2. 在「記錄檔總管」頁面中,選取現有的 Firebase 專案、資料夾或機構。

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

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

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

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

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

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

gcloud

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

建構查詢時,請將變數替換為有效值,並代入適當的專案層級、資料夾層級或機構層級稽核記錄名稱或 ID,如稽核記錄名稱中所列。舉例來說,如果查詢包含 PROJECT_ID,則您提供的專案 ID 必須參照目前所選的 Firebase 專案。

如要使用 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 查詢語言」。

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

路由稽核記錄

您可以採用與傳送其他類型記錄相同的方式,將稽核記錄傳送至支援的目的地。以下列舉幾個可能需要傳送稽核記錄的原因:

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

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

  • 如果已啟用的資料存取稽核記錄導致 Firebase 專案超過記錄配額,您可以建立排除資料存取稽核記錄的 Logging 接收器。

如需如何將記錄檔傳送至接收器的操作說明,請參閱「設定接收器」一文。

定價

管理員活動稽核記錄系統事件稽核記錄不需付費。

資料存取稽核記錄政策被拒絕的稽核記錄會產生費用。

如要進一步瞭解 Cloud Logging 定價,請參閱「Google Cloud 作業套件定價:Cloud Logging」一文。