使用 BeyondCorp Enterprise 的政策问题排查工具进行问题排查

BeyondCorp Enterprise 提供一种问题排查工具,管理员可以使用该工具对最终用户的访问进行分类和分析。

借助 BeyondCorp Enterprise,企业可以创建高级规则,提供基于情境的应用访问权限。但是,当您对资源应用多个访问规则(从位置限制到设备规则)时,可能难以了解政策的评估方式,以及最终用户具有或无法访问目标资源的原因。

借助政策问题排查工具,使您可以确定访问成功或失败的原因,并在需要时更改政策并指示最终用户修改其上下文以允许访问或移除绑定以拒绝意外访问。

对于需要针对不同用户群组应用多个规则的组织,政策问题排查工具是一款非常有用的工具。

准备工作

政策问题排查工具是一项高级功能,需要使用 BeyondCorp Enterprise 许可。

为最大限度地提高政策问题排查工具的效率,请确保您具有 Security Reviewer 角色 (roles/iam.securityReviewer)。这能够确保您可以读取所有适用的 Cloud IAM 政策。

如需排查设备访问权限的问题,您必须有权查看设备的详细信息。如果与目标资源关联的政策包含设备政策(例如要求加密设备的访问权限级别),则除非您检索目标主账号设备详细信息的权限已验证,否则您可能无法获得准确的结果。Google Workspace Super Admin、Services Admin 和 Mobile Admin 通常有权查看设备详细信息。如要允许非超级 Super、Service 或 Mobile Admin 的用户排查访问权限的问题,请完成以下步骤:

  1. 创建自定义 Google Workspace 管理员角色,其中包含服务 > 移动设备管理 > 管理设备和设置权限(位于管理控制台权限下方)。
  2. 使用管理控制台将此角色分配给用户。

如要排查对 Google Cloud 群组授予的资源访问权限问题,您必须有权查看其成员。如果政策包含群组,那么您在打开群组之前应有权查看群组的详细信息。Google Workspace Super Admins 和 Group Admins 通常有权查看群组成员资格。如要允许非 Super 用户或 Group 管理员的用户排查访问权限的问题,请完成以下步骤:

  1. 创建自定义 Google Workspace 管理员角色,该角色包含群组 > 读取权限(位于 Admin API 权限下方)。
  2. 将此角色分配给用户。这样,用户就可以查看网域中所有群组的成员资格,并更有效地排查访问权限问题。

自定义角色权限是可选的。如果您没有查看自定义角色的权限,则可能无法确定主账号是否可以从具有自定义角色的绑定访问该角色。

问题排查工具工作流概览

排查被拒访问问题

如需排查被拒访问权限的问题,您可以点击受 IAP 保护的应用右侧的三个点,为 IAP 设置中的 IAP 资源启用该功能:设置,然后选择生成问题排查网址。为最大限度地提高政策问题排查工具的效率,请确保您具有 IAP Settings Admin 角色 (roles/iap.settingsAdmin)。这能够确保您可以检索和更新所有 IAP 资源的 IAP 设置。

问题排查网址仅会在启用后显示在默认的 403 页面上。

政策问题排查工具提供了一个界面,您可以在该界面中查看针对目标 IAP 资源的所有有效政策的详细评估结果。当用户的访问权限失效时,403 页面会显示问题排查工具网址。访问时,政策问题排查工具会显示失败绑定的详细信息以及失败访问权限级别的分析(如果绑定中存在)。您还可以使用问题排查工具来查看用户对资源的访问权限的详细视图。

用户访问遭拒

如果用户没有权限或不符合访问 IAP 资源所需的条件,则用户会被转到 403 访问遭拒错误页面。403 页面包含问题排查网址,您可以手动复制该网址并将其发送给应用所有者或安全管理员,用户也可以在界面中点击发送电子邮件

当用户点击发送电子邮件时,系统会向 OAuth 权限请求页面上配置的支持电子邮件地址 (supportEmail) 发送电子邮件。如需详细了解如何配置 OAuth 权限请求页面,请参阅以编程方式为 IAP 创建 OAuth 客户端

排查失败访问的问题

当您收到最终用户访问失败的请求链接时,可以点击网址,该网址将在默认浏览器中打开。如果您在默认浏览器中未登录 Google Cloud Console,则系统可能会将您重定向到另一个登录页面,以便访问政策问题排查工具分析页面。

“政策问题排查工具”分析页面提供了汇总视图、IAM 政策视图以及显示用户和设备情境的表格,例如主账号地址、设备 ID、正在访问的 IAP 资源等。

汇总视图提供所有相关政策和成员资格发现结果的汇总视图。IAM 政策视图提供有效 IAM 绑定的评估结果列表(已授予或未授予的),以及故障发生位置的概览,例如主账号成员不是成员且不满足条件

如需进一步分析失败的访问,您可以查看绑定详情。在绑定详情中,您可以看到绑定组件、角色主账号条件。具有足够权限的组件表示无需执行任何操作。其中明确说明了访问失败的组件以及权限差异,例如主账号类别:请将主账号添加到以下群组中

请注意在界面中,相关绑定 (Relevant bindings) 部分默认处于启用状态。相关绑定部分中列出的绑定不是完整列表,而是排查特定访问问题时您可能感兴趣的最相关的绑定。与特定资源关联的有效政策可能包含大量与您的资源不相关的绑定,例如在项目级授予的 Cloud Storage 权限。不相关的详细信息会被过滤掉。

您可以查看访问权限级别说明 (Access Level Explanations),进一步调查失败的条件访问权限级别详细信息指出了失败发生的位置,并提出了解决失败的修正方法。如有必要,您可以将必要的操作传播回用户,或修正政策。例如,您可以将以下操作发送回用户:由于设备不是公司自有设备,因此请求失败

为您的自定义 Access Denied 错误页面启用问题排查网址

您可以将政策问题排查工具网址添加到客户 Access Denied 错误页面,具体步骤如下:

  1. 通过完成以下步骤,将用户重定向到自定义页面,而不是默认的 IAP 错误页面:设置自定义访问遭拒错误页面
  2. 开启 IAP 设置中的 Policy Troubleshooter 网址功能。

在 IAP 设置中配置 access denied 页面网址后,政策问题排查工具网址会作为转义查询参数嵌入。请务必在打开转义的查询参数之前unescape转义的查询参数。查询参数的键为 troubleshooting-url

主动排查用户访问权限问题

您可以使用 BeyondCorp Enterprise 着陆页的“安全”面板中的政策问题排查工具,排查假设事件,并深入了解您的安全政策。例如,您可以检查用户对特定 IAP 保护的资源的访问权限,并调查其是否确实需要。另一个例子是,当您对受 IAP 保护的资源更改政策,并且您希望确保超级用户仍然拥有访问权限时。您可以转到 Google 管理员设备控制台获取超级用户拥有的设备 ID,然后使用问题排查工具中的设备 ID 验证访问权限。

通过排查假设请求问题,您可以在实际拒绝事件发生之前验证用户是否具有访问 IAP 资源的适当权限。为此,您可以使用用户电子邮件、目标 IAP 资源和任何可选请求上下文,包括 IP 地址、时间戳、设备 ID 或设备上下文。

使用设备 ID 排查假设请求问题时,请确保设备属于目标主账号电子邮件。您可以从 IAP 审核日志中获取设备 ID,也可以转到 Google 管理控制台 -> 设备 > 移动设备和端点 > 设备

使用设备上下文排查假设请求问题时,问题排查工具支持以下属性:

  • is_secured_with_screenlock
  • encryption_status
  • os_type
  • os_version
  • verified_chrome_os
  • is_admin_approved_device
  • is_corp_owned_device

常见问题排查场景

以下是使用政策问题排查工具时可能会遇到的一些常见场景:

  • 进行问题排查后,您向最终用户提供可操作的内容,例如指示最终用户切换到公司自有设备或更新操作系统。
  • 您发现未向最终用户分配正确的权限,因此您在 IAP 界面 (roles/iap.httpsResourceAccessor) 中为目标主账号创建新绑定。
  • 您发现自己错误地创建了访问权限级别,示例原因如下:
    • 您创建的复杂嵌套特性限制(例如公司子网)不再适用,因为员工现在在家工作。
    • 您应用的访问权限级别参数不正确。例如,您指定了用户可以创建具有供应商限制的自定义级别,但比较了不同类型的属性。例如 device.vendors["vendorX"].data.["should_contain_boolean_value"] == "true"。请注意,左侧返回布尔值,而右侧返回字符串 true。由于属性不一致,因此很难检测政策构造中的错误。政策问题排查工具可解释其评估结果为错误,双方都有详细的部分评估结果。

问题排查工具预期行为

您可以使用包含当前时间戳的当前政策和设备信息对受限访问进行问题排查。因此,如果您在受限访问被拒后同步设备或更改政策,则您无法使用旧情境和数据进行问题排查。您可以使用当前情境和数据进行问题排查。

关于排查绑定问题的提示

对于任何存在授权错误的绑定的任何组件(角色、主账号、条件),如果您要检查此类绑定的问题排查结果,请授予必要的权限。

如果绑定中的角色检查失败,请完成以下操作:

  • 如有必要,请检查其他绑定或使用 IAP 接口创建新绑定,以向具有已应用的访问权限级别的主账号授予 roles/iap.httpsResourceAccessor 角色。
  • 如果是自定义角色,您可以为自定义角色添加目标权限以授予此权限(如果适用,在修复任何主账号故障和任何条件故障后)。请注意,为现有自定义角色添加权限可能会授予具有此自定义角色的其他绑定,但该自定义角色具有的权限超过所需的权限。除非您了解自定义角色的范围和操作风险,否则请勿执行此操作。
  • 如果不是自定义角色,请检查其他绑定或使用 IAP 接口创建新绑定,以向具有已应用的访问权限级别的主账号授予 roles/iap.httpsResourceAccessor 角色。

如果角色检查成功,但主账号检查失败,请完成以下操作:

  • 如果成员包含群组,您可以将主账号添加到该群组以授予权限(如果适用,在修复任何条件故障后)。请注意,将主账号添加到现有群组后,系统可能会为该群组授予超出需要的权限。除非您了解群组范围和操作风险,否则请勿执行此操作。
  • 如果成员不包含群组,则如有必要请检查其他绑定或使用 IAP 接口创建新绑定,以向具有已应用的访问权限级别的主账号授予 roles/iap.httpsResourceAccessor

如果角色和主账号检查成功,但条件失败(如果条件仅包含与 OR 逻辑运算符关联的访问权限级别),请检查条件下列出的每个访问权限级别的问题排查详细信息。