Compute Engine 审核日志记录信息

本页面介绍了 Cloud Audit Logs 中由 Compute Engine 创建的审核日志。

概览

Google Cloud 服务会写入审核日志,便于您了解谁在何时何地执行了什么操作。Cloud 项目只包含项目内直属资源的审核日志。其他实体(如文件夹、组织和 Cloud Billing 帐号)包含其各自的审核日志。

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

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

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

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

只有在明确启用数据访问审核日志时,Compute Engine 才会写入此类日志。BigQuery 数据访问审核日志是一个例外,无法停用。数据访问审核日志包含用于读取资源配置或元数据的 API 调用,以及用户进行的用于创建、修改或读取用户所提供资源数据的 API 调用。

Compute Engine 会写入系统事件审核日志,其中包含修改资源配置的 Google Cloud 操作所对应的日志条目。系统事件审核日志是 Google 系统启用的;而不是通过直接用户操作生成的。

您无法停用系统事件审核日志。

Compute Engine 会写入因违反安全政策而拒绝用户或服务帐号访问时记录的政策拒绝审核日志。政策拒绝审核日志默认处于启用状态。

审核的操作

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

审核日志类别 子类型 Compute Engine 操作 示例
管理员活动审核日志 不适用
  • 创建资源
  • 更新/修补资源
  • 设置/更改元数据
  • 设置/更改标志
  • 设置/更改标签
  • 设置/更改权限
  • 设置/更改资源的任何属性(包括自定义谓词)
  • compute.instances.insert
  • compute.instanceGroups.removeInstances
  • compute.instances.setMetadata
  • compute.instances.setLabels
  • compute.instances.setTags
  • compute.instances.setIamPolicy
数据访问审核日志 ADMIN_READ
  • 获取有关资源的信息
  • 列出资源
  • 跨范围列出资源(汇总列表请求)
  • compute.instances.list
  • compute.images.get
  • compute.interconnectAttachments.aggregatedList
DATA_READ 获取串行端口控制台的内容 compute.instance.getSerialPortOutput
系统事件审核日志 不适用
  • 主机维护时
  • 实例抢占
  • 自动重启
  • 实例重置
  • 串行端口连接/断开
  • compute.instances.migrateOnHostMaintenance
  • compute.instances.automaticRestart
  • compute.instanceGroupManagers.resizeAdvanced
  • google.ssh-serialport.v1.connect

数据访问审核日志:与其他服务的审核日志不同,Compute Engine 只有 ADMIN_READ 数据访问日志,一般不提供 DATA_READDATA_WRITE 日志。这是因为 DATA_READDATA_WRITE 日志仅用于 Cloud Storage、Cloud Spanner 和 Cloud SQL 等存储和管理用户数据的服务,这对 Compute Engine 而言不适用。这条规则有一个例外:instance.getSerialPortOutput 会生成 DATA_READ 日志,因为该方法直接从虚拟机实例读取数据。

审核日志中的数据隐去

审核日志会记录已执行的 API 操作的请求和响应数据。但在以下情况下,不会提供请求或响应信息,即这些信息会被遮盖:

  • 对于 instance.setMetadataproject.setCommonInstanceMetadata API 请求,请求正文的元数据部分会被遮盖,以避免记录元数据中发送的敏感信息。
  • 请求中的敏感字段会被遮盖,例如 SSL 证书的私钥和客户提供的磁盘加密密钥。
  • 对于 get 和 list 响应,响应正文会被遮盖,以避免记录私密信息。

审核日志格式

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

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

    • logName 包含项目标识和审核日志类型。
    • 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

服务名称

Compute Engine 审核日志使用以下服务名称:compute.googleapis.comssh-serialport.googleapis.com

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

资源类型

Compute Engine 审核日志使用以下资源类型:

资源类型 说明 示例
API 资源 此资源会记录 API 操作 api
已审核的资源 此资源会记录 Google Cloud 操作。已审核的资源类型主要用于未归入其他类别的新操作。 audited_resource
Deployment 资源 此资源会记录部署操作 deployment
Cloud Deployment Manager 资源 (deployment_manager_*)

此资源会记录 Cloud Deployment Manager 操作。

deployment_manager_* 资源类型映射到 Cloud Deployment Manager 资源。如需查看 Cloud Deployment Manager 资源的完整列表,请参阅 Cloud Deployment Manager API 概览

  • deployment_manager_manifest
  • deployment_manager_operation
  • deployment_manager_resource
  • deployment_manager_type
Compute Engine 资源 (gce_*)

此资源会记录 Compute Engine 操作。

gce_* 资源类型映射到 Compute Engine 资源。如需查看 Compute Engine 资源的完整列表,请参阅 Compute Engine API 概览

  • gce_instance
  • gce_backend_service
  • gce_operation
  • gce_instance_group
  • gce_firewall_rule
  • gce_snapshot
  • gce_route
  • gce_disk
  • gce_health_check
网络安全资源 此资源会记录网络安全政策操作 network_security_policy
Cloud VPN 资源 (vpn_*) 此资源会记录 Cloud VPN 操作
  • vpn_gateway
  • vpn_tunnel

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

启用审核日志

系统在任何情况下都会启用系统事件审核日志,无法停用。

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

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

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

审核日志权限

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 Console 中的日志浏览器来检索 Cloud 项目的审核日志条目:

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

    转到“日志浏览器”页面

  2. 日志浏览器页面上,选择一个现有的 Cloud 项目。

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

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

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

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

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

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

gcloud

gcloud 命令行工具提供了用于 Cloud 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 工具,请参阅读取日志条目

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 项目导出日志。

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

价格

管理员活动审核日志系统事件审核日志是免费的。

数据访问审核日志政策拒绝审核日志需付费。

如需了解 Cloud Logging 价格,请参阅 Google Cloud 的运维套件价格:Cloud Logging