从审核日志中检索 VPC Service Controls 错误

本页面介绍如何使用 Cloud Logging 查找 VPC Service Controls 错误。

VPC Service Controls 通过隔离多租户 Google Cloud 服务来帮助降低数据渗漏风险。如需了解详情,请参阅 VPC Service Controls 概览

确定错误是否由 VPC Service Controls 引起

VPC Service Controls 可以修改 Google Cloud 的属性,并且会在服务间造成连锁效应。这可能会导致调试问题变得更加困难,尤其是当您不知道要查找什么时。

服务边界更改最长可能需要 30 分钟才能传播和生效。更改传播后,除非明确授权,否则不允许访问边界内的受限服务。

如需确定错误是否与 VPC Service Controls 相关,请检查您是否已启用 VPC Service Controls 并且是否将其应用于您尝试使用的项目和服务。如需验证项目和服务是否受 VPC Service Controls 保护,请检查资源层次结构中相应级别的 VPC Service Controls 政策。

假设这样一个示例场景,您间接使用在服务边界内的项目中被 VPC Service Controls 标记为受限服务的服务。在这种情况下,VPC Service Controls 可能会拒绝访问。

服务通常会传播来自其依赖项的错误消息。如果您遇到以下错误,则表示 VPC Service Controls 存在问题。

  • Cloud Storage403: Request violates VPC Service Controls.

  • BigQuery403: VPC Service Controls: Request is prohibited by organization's policy.

  • 其他服务403: Request is prohibited by organization's policy.

使用错误的唯一 ID

与 Google Cloud 控制台不同,gcloud 命令行工具会为 VPC Service Controls 错误返回唯一 ID。如需查找其他错误的日志条目,请使用元数据过滤日志

由 VPC Service Controls 生成的错误包含用于标识相关审核日志的唯一 ID。

如需使用唯一 ID 获取有关错误的信息,请执行以下操作:

  1. 在 Google Cloud 控制台中,打开服务边界内触发该错误的项目的 Cloud Logging 页面。

    转到 Cloud Logging

  2. 在搜索过滤字段中,输入该错误的唯一 ID。

您会看到相关的日志条目。

使用元数据过滤日志

您可以使用 Logs Explorer 查找与 VPC Service Controls 相关的错误。您可以使用 Logging 查询语言来检索日志。如需了解如何构建查询,请参阅使用 Logging 查询语言构建查询

控制台

如需获取 Logging 中过去 24 小时的 VPC Service Controls 错误,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Cloud Logging 页面。

    转到 Cloud Logging

  2. 确保您位于服务边界内的项目中。

  3. 在搜索过滤字段中输入以下内容:

    protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
    
  4. 资源菜单中,选择已审核的资源

  5. 在时间范围选择器菜单中,选择过去 24 小时

  6. 可选:如需查找在其他时间段出现的 VPC Service Controls 错误,请使用时间范围选择器菜单。

gcloud

  • 如需获取过去 24 小时的 VPC Service Controls 错误,请运行以下命令:

    gcloud logging read 'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"'
    

    默认情况下,read 命令仅查找过去 24 小时的记录。如需获取其他时间段的 VPC Service Controls 日志,请使用以下某条命令:

  • 如需检索当前日期之前的特定时间段内生成的日志,请运行以下命令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"' \
      --freshness=DURATION
    

    DURATION 是带格式的时间段。如需详细了解此格式,请参阅 gcloud CLI 的相对时长和时间格式

  • 如需检索过去一周出现的所有 VPC Service Controls 错误,请运行以下命令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"' \
      --freshness=7d
    
  • 如需检索在两个特定日期期间生成的日志,请运行以下命令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" AND
    timestamp>="START_DATETIME" AND
    timestamp<="END_DATETIME"'
    

    START_DATETIMEEND_DATETIME 是带格式的日期和时间字符串。如需详细了解此格式,请参阅 gcloud CLI 的绝对日期和时间格式

    例如,要获取 2019 年 3 月 22 日至 2019 年 3 月 26 日之间出现的所有 VPC Service Controls 错误,请使用以下命令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" AND
      timestamp>="2019-03-22T23:59:59Z" AND
      timestamp<="2019-03-26T00:00:00Z"'
    

后续步骤