审核日志记录

本页介绍了由 Cloud Search 创建、作为 Cloud Audit Logs 一部分的审核日志。

概览

Google Cloud 服务会写入审核日志,便于您了解在您的资源中“哪些用户何时在何处执行了什么操作”。Cloud 项目仅包含直接属于该项目的资源的审核日志。其他实体(例如文件夹、组织和 Cloud Billing 账号)包含实体本身的审核日志。

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

Cloud Audit Logs 会为每个 Cloud 项目、文件夹和组织提供以下审核日志:

  • 管理员活动审核日志,其中包含与执行管理员写入操作的方法对应的条目。下文的受审核操作部分将介绍与 Admin Activity:Admin 写入操作对应的方法。
  • 数据访问审核日志,其中包含与执行“管理员读取”“数据写入”和“数据读取”操作的方法对应的条目。与 Data Access:Admin read、Data Access:Data write、Data Access:Data read 操作对应的方法将在后续的受审核操作部分中介绍。
  • 系统事件审核日志
  • 政策拒绝审核日志

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

只有在明确启用数据访问审核日志后,Cloud Search 才会写入此类日志。数据访问审核日志包含用于读取资源配置或元数据的 API 调用,以及用户进行的用于创建、修改或读取用户所提供资源数据的 API 调用。

Cloud Search 不会写入系统事件审核日志。

Cloud Search 不会写入政策拒绝审核日志。

审核的操作

下表汇总了与 Cloud Search 中的每种审核日志类型相对应的 API 操作:

审核日志类别 Cloud Search 操作
管理员活动:管理员写入 indexing.datasources.updateSchema
indexing.datasources.deleteSchema
settings.datasources.create
settings.datasources.delete
settings.datasources.update
settings.searchapplications.create
settings.searchapplications.delete
settings.searchapplications.reset
settings.searchapplications.update
settings.updateCustomer
cloudsearch.IdentitySourceService.create
cloudsearch.IdentitySourceService.update
cloudsearch.IdentitySourceService.delete
数据访问权限:管理员读取 indexing.datasources.getSchema
settings.datasources.get
settings.datasources.list
settings.searchapplications.get
settings.searchapplications.list
settings.getCustomer
cloudsearch.IdentitySourceService.get
cloudsearch.IdentitySourceService.list
数据访问:数据写入 indexing.datasources.items.delete
indexing.datasources.items.deleteQueueItems
indexing.datasources.items.index
indexing.datasources.items.poll
indexing.datasources.items.push
indexing.datasources.items.unreserve
indexing.datasources.items.upload
media.upload
数据访问:数据读取 indexing.datasources.items.get
indexing.datasources.items.list
operations.get
operations.list
debug.datasources.items.checkAccess
debug.datasources.items.searchByViewUrl
stats.getIndex
stats.getQuery
stats.getSession
stats.getUser
stats.index.datasources.get
stats.query.searchapplications.get
stats.session.searchapplications.get
stats.user.search applications.get
debug.identitysources.items.listForunmappedidentity
debug.identitysources.unmappedids.list
debug.datasources.items.unmappedids.list
query.sources.list
query.suggest
query.search
stats.getSearchapplication

审核日志格式

审核日志条目包含以下对象,您可以在 Cloud Logging 中使用日志浏览器、Cloud Logging API 或 gcloud 命令行工具进行查看:

日志条目本身,即类型为 LogEntry 的对象。以下是一些实用的字段:

  • logName 包含资源 ID 和审核日志类型。
  • resource 包含所审核操作的目标。
  • timeStamp 包含所审核操作的时间。
  • protoPayload 包含审核的信息。
  • 审核日志记录数据,即保存在日志条目的 protoPayload 字段中的 AuditLog 对象。

(可选)服务专属的审核信息,即服务专属对象。对于早期集成,此对象保存在 AuditLog 对象的 serviceData 字段中;之后的集成使用 metadata 字段。

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

日志名称

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

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

服务名称

Cloud Search 审核日志使用服务名称 cloudsearch.googleapis.com

资源类型

Cloud Search 审核日志全部都使用资源类型 audited_resource

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

启用审核日志记录

默认情况下,Cloud Search API 的审核日志记录功能处于停用状态。如需为 Google Cloud Search 启用审核日志记录,请执行以下操作:

  1. (可选)如果您尚未创建用于存储日志的 Google Cloud Platform 项目,请参阅配置对 Google Cloud Search API 的访问权限

  2. 获取您要存储日志的 Google Cloud 项目的 ID。如需了解如何获取项目 ID,请参阅识别项目

  3. 如需为特定 API 启用审核日志记录,您需要确定要启用的日志类别。如需了解 API 及其对应的类别,请参阅本文档前面的受审核的操作

  4. 使用 updateCustomer() REST API 方法,使用要启用的日志类别更新 auditLogSettings:

    1. 从 Google Authorization Server 获取 OAuth 2.0 访问令牌。如需了解如何获取令牌,请参阅使用 OAuth 2.0 访问 Google API 中的第 2 步。获取访问令牌时,请使用以下 OAuth 范围之一:

      • https://www.googleapis.com/auth/cloud_search.settings.indexing
      • https://www.googleapis.com/auth/cloud_search.settings
      • https://www.googleapis.com/auth/cloud_search
    2. 运行以下 curl 命令。

    curl --request PATCH \
    'https://cloudsearch.googleapis.com/v1/settings/customer?updateMask=auditLoggingSettings&key=[YOUR_API_KEY]' \
    --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
    --header 'Content-Type: application/json' \
    --data '{"auditLoggingSettings": { "project": "projects/PROJECT_ID", "CATEGORY1": "true", "CATEGORY2": "true" } }'
    

    其中:

    • YOUR_ACCESS_TOKEN 是第 4a 步中获取的 OAuth 2.0 访问令牌。
    • PROJECT_ID 是第 2 步中获取的项目 ID。
    • CATEGORY1CATEGORY2 是您在第 3 步中选择启用的类别。有效值为 logAdminReadActionslogDataWriteActionslogDataReadActions。管理员写入操作默认处于启用状态,且无法停用。如果您想为查询方法启用审核日志记录,则必须启用“数据读取”类别。

    更新 AuditLoggingSettings 后,对 Cloud Search API 的进一步请求会在 AuditLoggingSettings 中指定的项目 ID 中生成审核日志。

  5. 如需为查询方法启用审核日志记录,您需要启用“数据读取”类别(在第 4 步中完成)。如需为查询方法(query.sources.listquery.suggestquery.search)启用审核日志记录,请按以下额外步骤操作:

    1. 对于您要为其启用审核日志记录的每个搜索应用,检索其名称。名称必须采用 searchapplications/<search_application_id> 格式。

    2. 使用该名称调用 settings.searchapplications.update,并将 enableAuditLog 设置为 true

  6. 如需为 cloudsearch.google.com 中的调用启用审核日志记录,请确保已启用“数据读取”类别(第 4 步)。此外,请使用 searchapplications/defaultname 执行第 5b 步。

启用后,您可以在 Google Cloud 控制台的“日志浏览器”部分查看日志。使用以下过滤条件可仅查看 Cloud Search 审核日志:

protoPayload.serviceName="cloudsearch.googleapis.com"

如需了解如何查看日志,请参阅日志浏览器概览

审核日志权限

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

如需查看管理员活动审核日志,您必须在审核日志所属的项目中拥有下列 IAM 角色之一:

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

如果您使用的是来自非项目实体(例如组织)的审核日志,请将 Cloud 项目角色更改为适当的组织角色。

查看日志

如需查找和查看审核日志,您需要知道要查看其审核日志信息的 Cloud 项目、文件夹或组织的标识符。您可以进一步指定其他已编入索引的 LogEntry 字段,如 resource.type;如需了解详情,请参阅在日志浏览器中构建查询

以下是审核日志名称,其中含有表示 Cloud 项目、文件夹或组织的标识符的变量:

   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

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

控制台

您可以使用 Cloud 控制台中的日志浏览器来检索 Cloud 项目的审核日志条目:

  1. 在 Cloud Console 中,转到 Logging > 日志浏览器页面。

    转到“日志浏览器”页面

  2. Logs Explorer 页面上,选择一个现有的 Cloud 项目。

  3. 查询构建器窗格中,执行以下操作:

    • 资源中,选择要查看其审核日志的 Google Cloud 资源类型。

    • 日志名称中,选择要查看的审核日志类型:

      • 对于管理员活动审核日志,选择 activity
      • 对于数据访问审核日志,选择 data_access
      • 对于系统事件审核日志,选择 system_event
      • 对于政策拒绝审核日志,选择 policy

    如果您没有看到这些选项,则表示 Cloud 项目中没有该类型的审核日志。

    如需详细了解如何使用新的日志浏览器进行查询,请参阅在日志浏览器中构建查询

gcloud

gcloud 为 Logging API 提供了命令行界面。在每个日志名称中提供有效的 PROJECT_IDFOLDER_IDORGANIZATION_ID

如需读取 Google Cloud 项目级层审核日志条目,请运行以下命令:

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 工具,请参阅 gcloud logging read

API

构建查询时,请用有效值替换变量,替换为适当的项目级层、文件夹级层或组织级层的审核日志名称或标识符(如审核日志名称中所列)。例如,如果您的查询包含 PROJECT_ID,则您提供的项目标识符必须引用当前选定的 Cloud 项目。

如需使用 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. 点击执行

如需详细了解查询,请参阅 Logging 查询语言

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

导出审核日志

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

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

  • 如需管理整个组织范围内与您相关的审核日志,您可以创建一个汇总接收器,以便从组织中的任何项目或所有项目导出日志。

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

价格和留存率

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

如需详细了解审核日志价格,请参阅 Google Cloud 的运维套件价格

与 Cloud Search 审核日志关联的存储时长如下:

  • 管理员活动日志(或管理员写入)- 这些日志会保留 400 天。
  • 数据访问日志(管理员读取、数据写入和数据读取)- 这些日志会保留 30 天。

如需详细了解存储时长,请参阅日志保留期限

当前限制

Cloud Search 审核日志目前存在以下限制:

  • 日志条目的大小必须小于 512 KB。如果大小超过 512 KB,系统会从日志条目中丢弃响应。如果这样做无法将大小缩减到 512 KB 或更小,系统会丢弃请求。最后,如果大小仍超过 512 KB,系统会丢弃日志条目。

  • 系统不会为 list()get()suggest() 方法记录响应正文。不过,您可以查看回复状态。

  • 系统仅会记录来自 cloudsearch.google.com(如果已启用)和客户搜索应用的 Query API 调用。

  • 对于 search() 调用,请求中仅记录 QueryRequestOptionsDataSourceRestriction。在响应中,系统仅会审核每个 SearchResult 的网址和元数据(来源和 objectType)。

  • 系统不会审核发送到 Cloud Search 后端且与数据导出对应的调用。