使用情境感知访问权限保护应用和资源

Last reviewed 2025-07-22 UTC

本文档介绍了如何使用情境感知访问权限来保护不同类型的应用和资源。情境感知访问权限是一种安全方法,可根据用户的身份验证强度、设备状况、网络位置、地理位置或其他属性来控制用户的访问权限。这种方法不仅使用基本的用户身份进行安全访问,还可以帮助您实施零信任安全模型,从而提升整体安全状况。如需详细了解最佳实践,请参阅使用情境感知型访问权限保护应用和资源的最佳实践

为了帮助保护您的应用和 Google Cloud 资源,您可以根据各种上下文因素及其组合来定义精细的访问权限控制。您可以使用 Access Context Manager 定义访问权限政策,其中包含访问权限级别和服务参数。

本文档面向负责 Identity and Access Management (IAM) 以及 Google Cloud 资源和应用安全性的所有安全专业人员。本文档假定您已熟悉 Access Context Manager、Google Cloud和 IAM 管理。

访问权限级别

借助访问权限级别,您可以定义一组要求,用户及其设备必须满足这些要求才能达到一定的信任级别。

例如,您可以使用 Access Context Manager 为组织配置以下访问权限级别:

  • 基本:您认为的最低要求。
  • 中等:一组更严格的要求,您希望员工和公司设备满足这些要求。此访问权限级别可能会排除扩展劳动力用户和非公司设备。
  • :严格的要求,只有部分员工和设备符合。

访问权限级别本身不会对用户或设备产生任何直接影响。访问权限级别指定了要求,但并未定义应针对哪些用户、应用或资源强制执行这些要求。访问权限级别就像一个可重复使用的配置,您可以在配置对特定应用或资源的访问权限时引用它。

借助Google Cloud ,您可以为多种不同类型的应用或资源(包括以下类型,本文档中对此进行了说明)使用访问权限级别:

  • Google Workspace 以及 Google Cloud之外的其他应用和服务
  • Google Cloud 控制台和 Google Cloud API
  • Virtual Private Cloud (VPC) 服务边界
  • Identity-Aware Proxy (IAP)(用于 SSH 和 RDP 访问)
  • 适用于 Web 应用的 IAP

应用和资源

以下部分介绍了如何将访问权限级别应用于不同类型的应用和资源,以及不同类型的应用和资源在流程方面的差异。

Google Workspace 以及 Google Cloud之外的其他应用和服务

Google Cloud 之外支持情境感知访问的应用和服务包括:

  • Google 管理控制台
  • Gmail、Google Meet 和 Google 日历等 Google Workspace 应用
  • 其他 Google 应用,例如 Gemini 或 Looker 数据洞察
  • 自定义 SAML 应用

如需限制对Google Cloud以外的 Google Workspace 以及应用和服务的访问权限,请在管理控制台中为每项服务或应用单独配置情境感知访问权限。在管理控制台中,执行以下操作:

  • 定义要应用访问权限级别的范围。范围是以下各项的组合:

    • 要保护的特定服务或 SAML 应用。
    • 包含相关用户的组织部门 (OU) 或群组。
  • 选择要应用于所选范围的访问权限级别。

分配访问权限级别后,您还可以更改该访问权限级别的设置。您可以指定仅当用户直接访问 Web 应用时,该访问权限级别才适用。或者,您也可以指定该级别在移动应用和其他应用访问 API 时也适用。如需了解详情,请参阅“为应用分配情境感知访问权限级别”中的基于访问权限级别设置的应用行为

可能存在多个适用于特定用户和应用的分配。例如,用户可能是员工 OU 的成员,也可能是 all-apac 团队的成员。相应组织部门和群组可能被分配了不同的访问权限级别。在这种情况下,Cloud Identity 和 Google Workspace 只会应用其中一项分配,即优先级最高的那项

  • 基于群组的分配的优先级高于基于 OU 的分配。
  • 在群组中,您可以自定义其相对优先级。
  • 在组织部门内,根组织部门的相对优先级最低。

借助 Cloud Identity 和 Google Workspace,您可以在情境感知访问权限日志中查看和分析情境感知访问权限事件。

Google Cloud 控制台和 Google Cloud API

您可以使用访问权限绑定来配置对 Google Cloud 控制台和Google Cloud API 的情境感知访问权限。

Google Cloud API 使用 OAuth 2.0 进行身份验证。如需使用 Google CloudAPI,用户需要有效的 Google 颁发的 OAuth 访问令牌,并且该令牌必须是针对某个Google Cloud OAuth 范围颁发的。访问权限绑定会限制用户获取此类访问令牌的能力。因此,访问权限绑定会限制对 Google Cloud 控制台以及使用 Google Cloud OAuth 范围的所有 OAuth 应用的访问权限,例如:

  • gcloud CLI
  • Terraform 等第三方工具
  • 您自行创建的且使用 Google Cloud OAuth 范围的 OAuth 应用

访问权限绑定用于将群组与访问权限级别相关联。每个群组只能有一个访问权限绑定。每个访问绑定都可以定义以下配置

  • 一个 scopedAccessSettings 列表,用于为各个 OAuth 应用分配访问权限级别。
  • 默认访问权限级别。

如果访问权限绑定同时指定了限定范围的访问权限设置和默认访问权限级别,则这两个访问权限级别会使用 OR 语义进行组合。这样一来,用户只需满足其中一个访问权限级别,即可访问 OAuth 应用。

访问权限绑定同时适用于群组的直接成员和间接成员。如果用户是多个群组的成员,则可能对其应用多个访问权限绑定,这可能会导致多个访问权限级别。在这种情况下,访问权限级别也通过使用 OR 语义进行组合,这意味着用户只需满足其中一个访问权限级别即可。

VPC 服务边界

创建 VPC 服务边界时,您需要指定受限服务的列表。受限服务可以从服务边界内访问,但默认情况下无法从服务边界外访问。

如需允许从服务边界外进行访问,您可以使用入站流量规则。 入站规则可让您指定允许外部访问的条件。您可以使用访问权限级别,让入站规则强制执行情境感知访问权限。

一个 VPC 服务边界可以有多个入站规则。因此,可能有多条入站规则适用于特定用户和应用,而这些入站规则可能需要不同的访问权限级别。在这种情况下,系统会使用 OR 语义评估访问权限级别,用户只需满足其中一个访问权限级别即可。

您可以将访问权限绑定与 VPC 服务边界入站规则相结合。如果访问权限绑定和入站规则为特定用户和应用指定了不同的访问权限级别,则这些级别会使用 AND 语义进行合并。在这种情况下,用户必须同时满足这两个访问权限级别。

如需查看和分析尝试访问 VPC 服务边界内资源的尝试,您可以使用 VPC Service Controls 审核日志VPC Service Controls 违规分析器

通过 SSH 和 RDP 访问虚拟机

您可以使用 IAP TCP 转发为通过 SSH 和 RDP 访问虚拟机配置情境感知访问权限。

IAP TCP 转发支持访问权限绑定和 VPC 服务边界入站规则。您对 Google Cloud 控制台和 Cloud API 的访问权限绑定会自动应用于 IAP TCP 转发。

如果您的服务边界将 iaptunnel.googleapis.com 服务作为受限服务包含在内,则您的入站流量规则会自动应用于 IAP TCP 转发。如需详细了解最佳实践,请参阅将 IAP TCP 转发作为受限服务纳入

您还可以使用 IAM 条件配置情境感知访问权限。您可以使用 IAM 条件来替代访问权限绑定和 VPC 服务边界入站规则,也可以将它们一起使用。

  • 向用户或群组授予“受 IAP 保护的隧道的用户”角色 (roles/iap.tunnelResourceAccessor)。然后,在角色绑定中添加 IAM 条件表达式,要求用户达到一定的访问权限级别。例如,表达式可能类似于以下内容:

    "accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
    
  • 您可以选择自定义 IAM 条件,以要求满足多个访问权限级别或包含其他检查。

当特定用户和应用访问 IAP TCP 转发时,可能会受到访问绑定、入站规则和 IAM 条件的约束。在此场景中,访问权限级别通过 AND 语义进行组合,用户必须满足所有访问权限级别。

如需查看和分析对 IAP TCP 转发的访问尝试,您必须为 IAP 启用数据访问审核日志

Web 应用

通过使用 IAP,您可以为 Web 应用配置情境感知访问权限。

Web 应用的 IAP 与其 IAP TCP 转发对应项不同:

  • 访问权限绑定不适用于配置了 IAP 的 Web 应用,因为 IAP 使用的 OAuth 应用不使用任何 Google Cloud OAuth 权限范围。
  • VPC 服务边界入站流量规则不适用于配置了 IAP 的 Web 应用,因为 IAP 不是Google Cloud API,无法配置为受限服务。

如需使用 IAP 为 Web 应用配置情境感知访问权限,您必须使用 IAM 条件:

  • 向用户或群组授予 IAP-secured Web App User 角色 (roles/iap.httpsResourceAccessor)。然后,在角色绑定中添加 IAM 条件表达式,要求用户达到一定的访问权限级别。例如,表达式可能类似于以下内容:

    "accessPolicies/123/accessLevels/fully-trusted" in request.auth.access_levels
    
  • 您可以选择自定义 IAM 条件,以要求满足多个访问权限级别或包含其他检查。

如需查看和分析对配置了 IAP 的 Web 应用的访问尝试,您必须为 IAP 启用数据访问审核日志

后续步骤

贡献者

作者:Johannes Passing | 云解决方案架构师

其他贡献者:Ido Flatow | 云解决方案架构师