使用 VPC Service Controls 违规分析器诊断访问权限被拒事件

本页介绍了如何使用 VPC Service Controls 违规分析器来了解和诊断组织中服务边界拒绝访问的情况。

当 VPC Service Controls 拒绝访问请求时,会生成问题排查令牌。您可以使用此问题排查令牌通过违规行为分析器诊断拒绝访问问题。您可以在 Cloud Audit Logs 中找到此问题排查令牌。VPC Service Controls 会将与访问权限拒绝事件相关的所有信息(包括问题排查令牌)记录到 Cloud Audit Logs 中。

您还可以使用违规分析器来诊断服务边界的试运行配置中存在的访问权限拒绝问题。

如需了解如何使用 VPC Service Controls 问题排查工具诊断访问权限被拒问题,请参阅使用 VPC Service Controls 问题排查工具进行问题诊断

准备工作

  • Enable the Policy Troubleshooter API.

    Enable the API

  • 如需了解访问权限级别中的设备政策并检索设备情境详情,请确保您在 Google Workspace 中拥有查看设备详情的必要权限。如果您没有这些权限,在排查涉及基于设备属性条件的访问权限级别的拒绝事件时,排查结果可能会有所不同。

    如需获得这些权限,请确保您具有以下任一 Google Workspace 角色:

    如需详细了解如何分配角色,请参阅分配特定管理员角色

    您无需这些权限,即可在 Google Workspace 中使用违规行为分析器。不过,问题排查结果可能会有所不同,如前所述。

所需的角色

如需获得使用违规分析器所需的权限,请让您的管理员为您授予以下 IAM 角色:

  • 如需使用违规分析器诊断访问权限被拒事件,请为组织级访问权限政策授予 Access Context Manager Reader (roles/accesscontextmanager.policyReader) 角色。
  • 如需从 Cloud Audit Logs 中提取问题排查令牌,请执行以下操作: 在具有 VPC Service Controls 审核日志的项目中使用 Logs Viewer (roles/logging.viewer)

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色包含使用违规分析器所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

使用违规分析器需要以下权限:

  • 如需使用违规分析器诊断拒绝访问事件,请执行以下操作:
    • accesscontextmanager.accessLevels.list 组织级访问权限政策
    • accesscontextmanager.policies.get 组织级访问权限政策
    • accesscontextmanager.servicePerimeters.list 组织级访问权限政策

您也可以使用自定义角色或其他预定义角色来获取这些权限。

排查访问权限被拒事件

当 VPC Service Controls 拒绝访问请求时,VPC Service Controls 会生成一个唯一 ID,并在 Cloud 审核日志中记录加密的问题排查令牌。当您使用 Google Cloud CLI 时,VPC Service Controls 会在错误中返回访问权限被拒事件的唯一 ID。在发生访问权限被拒事件后,您可以使用唯一 ID 在 Cloud Audit Logs 中搜索并找到问题排查令牌。

您需要问题排查令牌才能使用违规分析器诊断访问权限被拒事件。

获取问题排查令牌

  1. 在 Google Cloud 控制台中,转到日志浏览器页面。

    转到日志浏览器

  2. Logs Explorer 页面上,选择相应访问权限被拒事件所属的项目范围。

  3. 使用日志过滤条件查找访问权限被拒事件的日志条目。

    您还可以使用唯一 ID 查看日志条目。如需使用唯一 ID 搜索和显示审核日志,请在查询编辑器字段中输入以下查询:

    log_id("cloudaudit.googleapis.com/policy")
    severity=ERROR
    resource.type="audited_resource"
    protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
    protoPayload.metadata.vpcServiceControlsUniqueId="UNIQUE_ID"
    

    UNIQUE_ID 替换为访问权限拒绝事件的唯一 ID。

  4. 点击运行查询。此查询会显示访问权限被拒事件的 VPC Service Controls 审核日志。

  5. 如需展开审核日志,请在查询结果窗格中点击 展开箭头。

  6. 展开日志条目中的 protoPayload > 元数据部分。

  7. 从日志条目中复制 vpcServiceControlsTroubleshootToken 值。

使用令牌进行问题排查

  1. 在 Google Cloud 控制台中,转到 VPC Service Controls 页面。

    转到 VPC Service Controls

    如果收到提示,请选择您的组织。 您只能在组织级层访问 VPC Service Controls 页面。

  2. VPC Service Controls 页面中,点击问题排查

  3. 对违规问题进行问题排查页面的排查令牌(或唯一 ID)字段中,输入访问遭拒事件的排查令牌。

  4. 点击继续

违规分析器会评估拒绝访问事件的审核日志,并显示问题排查结果。

了解问题排查结果

在阅读访问权限被拒事件的排查结果之前,请务必参阅以下注意事项。

敏感信息隐去

为保护敏感数据,违规分析器会在问题排查结果中隐去以下信息:

  • IP 地址:当访问请求来自内部正式版网络中的服务时,违规行为分析器会将访问请求的 IP 地址隐去为 private。 Google Cloud

  • 网络信息:违规行为分析器会将访问请求的网络信息隐去为 redacted_network,但在以下情况下除外:

    • 您与影音平台同属一个组织。

    • 您拥有查看网络信息的必要权限。

  • 主账号:违规分析器会使用 ...(例如 cl...o@gm...m)隐去主账号的电子邮件地址,但在以下情况下除外:

    • 您与被拒绝访问的正文同属一个组织。

    • 当被拒绝访问的主账号是服务代理或服务账号时。

    某些 Google Cloud 服务不会收集身份信息。例如,旧版 App Engine API 不会收集调用方身份。当违规分析器发现日志中缺少主账号信息时,问题排查结果会将主账号显示为 no information available

评估状态

违规分析器会针对所有边界组件评估拒绝访问事件,并为每个组件分配评估状态。

违规分析器可能会在问题排查结果中显示以下评估状态:

状态 说明
已授予 此状态表示边界组件允许评估的访问请求。
遭拒 此状态表示边界组件拒绝了所评估的访问权限请求。
不适用 此状态表示边界组件不会限制受评估的访问请求对资源或服务的访问,也不会强制执行“VPC 可访问服务”功能。

查看问题排查结果

问题排查结果页面会详细评估拒绝访问事件。此结果显示的是您请求违规分析器诊断事件时,事件在特定时间点的评估结果。问题排查结果页面会将评估信息划分到不同的部分。

访问权限被拒事件的问题排查结果可能包含以下部分:

  • 违规详情

  • 违规评估

  • 受限资源

  • 受限服务

  • 入站

  • 出站

  • VPC 可访问服务

如需查看特定边界组件的评估结果,请从列表中选择相应边界组件,或点击边界组件旁边的 展开箭头。例如,如需查看出站规则的问题排查评估,请选择出站规则或点击出站规则旁边的 展开箭头。

违规详情

违规详情部分列出了与访问权限拒绝事件相关的以下信息:

  • 访问权限遭拒事件的时间。

  • 请求访问权限的主账号的身份。

  • 主账号请求访问的服务。

  • 主账号请求访问的服务方法。

  • 请求访问权限的主账号的 IP 地址。此 IP 地址与 Cloud Audit Logs 中拒绝访问事件日志条目的 caller_ip 值相同。如需了解详情,请参阅审核日志中调用方的 IP 地址

  • 访问权限被拒事件的问题排查令牌。

  • 涉及的设备和地区的详细信息。如需查看此类信息,请点击查看更多详情

违规评估

违规评估部分会显示对拒绝访问事件的整体评估。评估结果包括边界的强制执行模式和试运行模式问题排查结果。

如果 VPC Service Controls 记录访问权限被拒事件后,服务边界或访问权限政策发生变化,则访问权限被拒事件的问题排查结果可能会随时间而变化。出现这种行为的原因是,违规分析器会从相关服务边界和访问权限政策中提取最新信息以进行评估。

结果

“结果”部分会显示针对涉及的所有边界对拒绝访问事件的评估结果。值可以是 GrantedDeniedNot applicable

访问的受保护资源

“访问的受保护资源”部分列出了相应边界以及相应边界针对访问权限拒绝事件的评估状态。在此部分中,您可以查看以下信息:

  • 此访问权限拒绝事件涉及的所有资源的列表:

    • “访问的资源”列会显示边界保护的所有相关资源。

    • 如果您无权查看受限资源,访问的受保护资源部分不会列出边界名称,访问的资源列会显示相关项目以及警告图标。

    • “访问的其他资源”部分列出了所有其他相关资源,这些资源会按以下某种状态进行分组:

      说明
      无限制 此状态表示资源未受任何服务边界保护。
      信息遭拒 此状态表示您没有足够的权限来查看保护相应资源的服务边界。
      错误 此状态表示在尝试查看保护资源的服务边界时发生了内部错误。
  • 从列表中选择边界后,您可以查看针对所选边界的访问权限拒绝事件的排查结果。

  • 您还可以查看边界不同强制执行模式的问题排查结果。默认情况下,问题排查结果页面会显示强制模式问题排查结果。如果您想查看试运行模式问题排查结果,请点击试运行。如需详细了解边界强制执行模式,请参阅服务边界详情和配置

    由于边界的强制执行模式配置和试运行模式配置可能不同,违规分析器可能会针对强制执行模式配置和试运行模式配置生成不同的问题排查结果。

受限资源

默认情况下,受限资源部分仅显示涉及此违规行为且受所选边界保护的资源。如需查看受所选边界保护的其他资源,请点击查看其他受限资源

受限服务

默认情况下,受限服务部分仅显示涉及此违规行为且受所选边界保护的服务。如需查看受所选边界保护的其他服务,请点击查看其他受限服务

入站

入站部分会显示系统根据所有入站规则和相关访问权限级别对拒绝访问事件的评估结果。对于每个访问请求,违规行为分析器都会根据入站规则和访问权限级别评估服务代理或网络以及相应的目标资源。

违规分析器会根据入站规则和访问权限级别对入站规则评估信息进行分组和显示。您可以点击此部分中的每个规则或访问权限级别,违规分析器会打开一个可展开的部分,其中会显示根据所选入站规则或访问权限级别进行评估的目标资源名称。

出站

出站流量部分会显示系统针对涉及的所有出站流量规则对拒绝访问事件的评估结果。违规分析器会根据出站规则评估访问请求的来源资源和目标资源对。

违规分析器会根据出站规则对出站规则评估信息进行分组和显示。您可以点击此部分中的每个规则,违规分析器会打开一个可展开的部分,其中会显示资源针对所选出站规则的详细评估结果。

VPC 可访问服务

VPC 可访问服务部分会显示可从边界内的网络端点访问的服务的状态。这些状态与访问权限被拒事件发生的时间相对应。如果服务的评估状态为 Denied,您将无法从边界内的网络端点访问该服务。

如需了解详情,请参阅 VPC 可访问服务

比较强制实施模式和试运行模式的结果

您可以比较所选边界的强制执行模式和试运行模式下,针对拒绝访问事件进行问题排查的结果。如需比较问题排查结果,请在边界的强制模式问题排查结果页面上点击与试运行作业结果进行比较

如果试运行模式从边界的强制实施模式继承配置,则试运行模式也会继承强制实施模式问题排查结果。

限制

  • 您必须仅在组织级范围内使用违规分析器,并且无法在项目级范围内使用违规分析器。

  • 违规分析器会从相关服务边界和访问权限政策中提取最新信息以进行评估。因此,如果 VPC Service Controls 记录访问权限拒绝事件后,服务边界或访问权限政策发生变化,则访问权限拒绝事件的问题排查结果可能会随时间而变化。

    • 此外,如果您多次诊断访问权限被拒事件,并且访问权限政策发生了变化,则每次诊断的结果可能会有所不同。
  • 在以下情况下,访问权限被拒事件的问题排查结果可能会有所不同:

后续步骤