Google 致力于为黑人社区推动种族平等。查看具体举措

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