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

适用于 Firebase 管理的审核日志记录

本页面介绍由 Firebase 创建、包含在 Cloud Audit Logs 中的审核日志。

概览

Firebase 服务会写入审核日志,帮助您了解“哪些用户何时在何处执行了什么操作”。这些日志就是作为关联到 Firebase 项目的 GCP 项目的一部分提供的 Cloud Audit Logs 日志。每个 Firebase 项目都只包含项目直属资源的审核日志。

如需大致了解 Cloud Audit Logs,请转到 Cloud Audit Logs。如需深入了解 Cloud Audit Logs,请参阅了解审核日志

Cloud Audit Logs 会为每个 GCP 项目、文件夹和组织维护三类审核日志:

  • 管理员活动审核日志
  • 数据访问审核日志
  • 系统事件审核日志

Firebase 管理会写入管理员活动审核日志,这些日志中记录了有关修改资源的配置或元数据的操作。您无法停用管理员活动审核日志。

仅在明确启用时,Firebase 管理才会写入数据访问审核日志。数据访问审核日志包含用于读取资源配置或元数据的 API 调用,以及用户进行的用于创建、修改或读取用户提供的资源数据的 API 调用。数据访问审核日志不会记录对公开共享的资源(所有用户所有经过身份验证的用户均可使用)或无需登录 GCP 即可访问的资源执行的数据访问操作。

Firebase 管理不会写入系统事件审核日志。

审核的操作

下表汇总了 Firebase 管理中每种审核日志类型对应的 API 操作:

审核日志类别Firebase 管理操作
项目操作
管理员活动 AddFirebase
UpdateFirebaseProject
FinalizeDefaultLocation
数据访问 (ADMIN_READ) GetFirebaseProject
ListAvailableLocations
GetAdminSdkConfig
SearchFirebaseApps
iOS 应用操作
管理员活动 CreateIosApp
UpdateIosApp
数据访问 (ADMIN_READ) GetIosApp
ListIosApps
GetIosAppConfig
Android 应用操作
管理员活动 CreateAndroidApp
UpdateAndroidApp
CreateShaCertificate
DeleteShaCertificate
数据访问 (ADMIN_READ) GetAndroidApp
ListAndroidApps
GetAndroidAppConfig
ListShaCertificates
网页应用操作
管理员活动 CreateWebApp
UpdateWebApp
数据访问 (ADMIN_READ) GetWebApp
ListWebApps
GetWebAppConfig

审核日志格式

可以使用Stackdriver Logging API、Cloud SDK 或者 Stackdriver Logging 中的日志查看器来查看审核日志条目,条目中包括以下对象:

  • 日志条目本身,即类型为 LogEntry 的对象。有用的字段如下所示:

    • logName 包含项目标识和审核日志类型
    • resource 包含审核操作的目标
    • timeStamp 包含审核操作的时间
    • protoPayload 包含经过审核的信息
  • 审核日志数据,即保存在日志条目的 protoPayload 字段中的 AuditLog 对象。

  • (可选)服务专属的审核信息,即保存在 AuditLog 对象的 serviceData 字段中的服务专属对象。如需了解详情,请转到服务专属审核数据

如需了解上述对象中的其他字段以及如何解读这些字段,请查看了解审核日志

日志名称

Cloud Audit Logs 资源名称指明了审核日志所属的项目或其他实体,以及日志是包含管理员活动、数据访问还是系统事件审核日志数据。例如,下面显示的日志名称分别表示项目的管理员活动审核日志和组织的数据访问审核日志:

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

服务名称

Firebase 管理审核日志使用服务名称 firebase.googleapis.com

如需详细了解日志记录服务,请参阅将服务映射到资源

资源类型

Firebase 管理审核日志全部都使用资源类型 audited_resource

如需查看完整列表,请参阅受监控的资源类型

启用审核日志记录

系统在任何情况下都会启用管理员活动审核日志,无法停用。

数据访问审核日志默认处于停用状态,除非明确启用,否则无法向其中写入数据(BigQuery 数据访问审核日志是一个例外,无法停用)。

如需了解如何启用部分或全部数据访问审核日志,请参阅配置数据访问日志

您所配置的数据访问审核日志可能会影响 stackdriver_name_short 中的日志价格。请查看本页中的价格部分。

审核日志权限

Cloud Identity and Access Management 权限和角色决定您可以查看或导出哪些审核日志。日志驻留在项目和一些其他实体(如组织、文件夹和结算帐号)中。如需了解详情,请参阅了解角色

要查看管理员活动审核日志,您必须在审核日志所属的项目中拥有以下某一 Cloud IAM 角色:

要查看数据访问审核日志,您必须在审核日志所属的项目中拥有以下角色之一:

如果您正在使用非项目实体(例如组织)的审核日志,请将项目角色更改为合适的组织角色。

查看日志

您可以通过多种方式来查看审核日志条目:

基本查看器

您可以使用 GCP Console 中的“日志查看器”基本界面来检索审核日志条目。请执行以下操作:

  1. 转到 GCP Console 中的 Stackdriver Logging > 日志(日志查看器)页面:

    转到“日志查看器”页面

  2. 在页面顶部选择一个现有 GCP 项目,或者创建一个新项目。

  3. 在第一个下拉菜单中,选择您要查看其审核日志的资源类型。可选择特定资源,也可选择 Global 以包括所有资源。

  4. 在第二个下拉菜单中,选择您要查看的日志类型:activity 表示管理员活动审核日志,data_access 表示数据访问审核日志,system_events 表示系统事件审核日志。

    如果上述选项均未显示,则表示项目中没有该类型的审核日志。

高级查看器

您可以使用 GCP Console 中的“日志查看器”高级界面来检索审核日志条目。请执行以下操作:

  1. 转到 GCP Console 中的 Stackdriver Logging > 日志(日志查看器)页面:

    转到“日志查看器”页面

  2. 在页面顶部选择一个现有 GCP 项目,或者创建一个新项目。

  3. 在第一个下拉菜单中,选择您要查看其审核日志的资源类型。可选择特定资源,也可选择 Global 以包括所有资源。

  4. 点击搜索过滤框最右侧的下拉箭头 (▾),然后选择转换为高级过滤条件

  5. 创建过滤条件,以进一步指定您要查看的日志条目。要检索项目中的所有审核日志,请添加以下过滤条件。在每个日志名称中提供一个有效 [PROJECT_ID]

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" OR
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]logs/cloudaudit.googleapis.com%2Fdata_access")
    

    如需详细了解过滤条件,请参阅高级日志过滤条件

API

要使用 Stackdriver 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%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. 点击执行

如需详细了解查询,请转到高级日志查询

SDK

要使用 Cloud SDK 读取日志条目,请运行以下命令。在每个日志名称中提供一个有效的 [PROJECT_ID]

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"

如需详细了解如何使用 Cloud SDK,请转到读取日志条目

如需查看审核日志条目示例并了解如何在其中找到最重要的信息,请参阅了解审核日志

导出审核日志

您可以按照导出其他类型日志的方式导出审核日志。如需详细了解如何导出日志,请参阅导出日志。下面是用于导出审核日志的一些应用:

  • 要延长审核日志的保留时间,或者使用更加强大的搜索功能,您可以将审核日志的副本导出到 Google Cloud Storage、BigQuery 或者 Google Cloud Pub/Sub。使用 Cloud Pub/Sub,您可以将内容导出到其他应用、其他代码库和第三方。

  • 要管理您在整个组织中的审核日志,可创建汇总导出接收器,以便从组织中的任何或所有项目导出日志。

  • 如果启用的数据访问审核日志会导致项目超出其日志配额,您可以通过 Logging 导出数据访问审核日志并将其排除。如需了解详情,请转到排除日志

价格

Stackdriver Logging 不会针对无法停用的审核日志(包括所有管理员活动审核日志)向您收费。Stackdriver Logging 会针对您明确请求的数据访问审核日志向您收费。

如需详细了解审核日志价格,请查看 Stackdriver 价格