概览

Access Context Manager 允许 Google Cloud 组织管理员为 Google Cloud 中的项目和资源定义基于属性的细粒度访问控制。

管理员首先定义一个访问政策,这是组织范围内的访问权限级别和服务边界容器。

访问权限级别说明请求被接受所需要满足的条件。 例如:

  • 设备类型和操作系统
  • IP 地址
  • 用户身份

服务边界定义资源的沙盒,即可以在相应边界内自由交换数据,但不允许向外部导出数据。Access Context Manager 不负责强制执行政策,而只是描述所需的规则。政策在 VPC Service Controls 等各个点进行配置和强制执行。如需了解这些服务的更多信息,请阅读各自的用户指南。

为何选择 Access Context Manager

许多公司都依赖于边界安全模型(例如防火墙)来保护内部资源。此类模型与中世纪城堡相仿,宛若一座有着厚厚城墙的堡垒,护城河环绕四周,并设有守卫森严的单一进出点。墙外的任何东西都被认为具有危险性,而墙内的一切都受到信任。

只要特定用户和服务有精确的边界,防火墙和边界安全模型就可以有效运行。但是,如果员工移动不定,当用户使用自带设备 (BYOD) 并利用基于云的服务,设备种类便会不断增加。如此一来,会出现不在边界模型考虑范围内的额外攻击向量。边界不再只是企业的物理位置,并且也不应将内部东西一律视为安全。

借助 Access Context Manager,您可以减小特权网络的大小,并移至端点不承载基于网络的环境权限的模型。您可以改为根据请求的上下文(例如设备类型、用户身份等)授予访问权限,同时在必要时仍检查公司网络访问权限。

Access Context Manager 是 Google 的 BeyondCorp 不可或缺的一部分。如需了解详情,请参阅 BeyondCorp

访问权限政策

访问政策是所有 Access Context Manager 资源(例如访问权限级别服务边界)的容器。

Access Context Manager 是一项适用于组织级别的功能。您可以在项目环境中创建访问政策,以用于计算配额。但是,您可以将创建的政策用在整个组织范围内,而非仅限于该项目之中。

使用 etag 对访问政策进行版本控制。这让您可以将对访问政策的更改(例如对访问权限级别的修改)瞄准该政策的特定版本。如果您的访问政策正由多个来源更改,则对 Access Context Manager gcloud 命令和 API 调用使用 etag 字段时,可以确保不会意外覆盖任何更改,并且不会引起意外冲突。

请参阅快速入门,了解如何创建访问权限政策。

访问权限级别

访问权限级别用于允许访问资源(根据与请求相关的上下文信息)。借助访问权限级别,您可以开始组织信任层。例如,您可以创建一个名为 High_Level 的访问权限级别,该级别将允许一小部分具有高度特权的用户发出请求。您也可以识别一个更通用的组来信任,例如您允许发出请求的 IP 范围。在这种情况下,您可以创建一个名为 Medium_Level 的访问权限级别以允许这些请求。

访问权限级别定义完毕之后,强制执行服务就可以使用它们来确定是否接受请求。例如,您可以指定“Medium_Trust”可以使用许多资源,但某些更敏感的资源需要“High_Trust”级别。这些检查会与标准的 Identity and Access Management 政策一同应用。

访问权限级别可自定义;例如,High_TrustMedium_Trust 访问权限级别。您可以在一个访问权限政策中指定多个访问权限级别。

Access Context Manager 提供两种定义访问权限级别的方法:基本和自定义。

基本访问权限级别是用于测试请求的一系列条件。条件是要测试的一组属性,例如设备类型、IP 地址或用户身份。访问权限级别属性表示关于请求的上下文信息。

自定义访问权限级别使用通用表达式语言的子集创建。除了用于基本访问权限级别的请求上下文之外,您还可以使用自定义访问权限级别来允许基于来自第三方服务的数据的请求。如需了解详情,请参阅自定义访问权限级别

IP 地址

您可以根据发出请求的 IP 地址来授予访问权限级别。要允许的 IP 范围以无类别域间路由 (CIDR) 地址块的形式进行指定,以便对要允许的 IP 地址进行简单但精细的控制。

一个访问权限级别可以包含多个 IP 范围。

请参阅为公司网络访问权限创建访问权限级别,了解如何创建仅将访问权限授予指定范围内 IP 地址(例如公司网络中的 IP 地址)的访问权限级别。

设备类型

Access Context Manager 使用端点验证来收集关于用户设备的信息,包括操作系统和版本。您可以根据这些数据来授予访问权限级别。例如,倘若设备运行公司部署的主要操作系统最新版本,可以为其授予较宽松的访问权限级别。

请参阅为用户设备创建访问权限级别,详细了解如何为特定设备授予访问权限级别。

用户身份

在某些情况下,您可能希望为特定实体授予访问权限级别。 此时,调用者的身份将决定是否满足条件。

此情景通常与服务帐号和 VPC Service Controls 结合使用;例如,启用 Cloud Function 函数以访问受 VPC Service Controls 保护的数据。

仅使用身份的访问权限级别只能通过 gcloud 命令行工具来创建和管理,而不能使用 Google Cloud Platform Console 来创建和管理。

请参阅利用网络在访问权限级别中包括身份,了解如何处理身份和访问权限级别。

合并条件

一个访问权限级别可以包含多个条件。您可以使用 ANDOR 运算符来评估条件,还可以在创建或更新访问权限级别时指定模式。

AND 运算符的限制较为严格(且为默认选项)。只有满足所有条件时,它才会授予访问权限级别。例如,您可以规定请求来自于公司网络内部,并且来自于运行最新操作系统的设备。

OR 的限制较为宽松。它只需求满足多个条件中的一个。在处理用户身份时,这有时很实用;例如,从常规要求中排除特定实体(如服务帐号)。

嵌套条件

您可以设置嵌套条件,使一个条件依赖于另一个条件。 例如,倘若您有“中度”和“高度”信任级别等两个访问权限级别,可以将“高度”信任级别的要求设置为需要满足“中度”信任级别,外加其他一些条件。

嵌套条件让您可以更加便捷地管理访问权限级别。例如,假设您最宽松的访问权限级别包含最低操作系统版本要求,并且您将较为严格的级别设置为依赖于它。那么,如果您将来更新最低版本,您只需更新单个条件,而不必更新政策中的所有访问权限级别。

了解详情