授权政策概览

授权政策 (AuthzPolicy) 定义了用于指定传入流量来源以及允许或限制对该来源执行的操作的规则。此外,授权政策还概述了应用规则的条件,并指定了允许、拒绝或进一步评估流量的操作。

借助授权政策,您可以为传入到应用负载平衡器的流量建立访问权限控制检查。通过这些检查的请求会路由到后端服务。未通过这些检查的请求会以未经授权的响应结束。

本页面简要介绍了以下应用负载平衡器的授权政策:

  • 全局外部应用负载均衡器
  • 区域外部应用负载均衡器

  • 区域级内部应用负载均衡器

  • 跨区域内部应用负载均衡器

如果您想为使用 Cloud Service Mesh 部署的服务使用授权政策,请参阅使用 Envoy 设置服务安全

授权政策规则组件

授权政策由不同的授权政策规则组成。授权政策规则定义了确定是否允许流量通过负载均衡器的条件。

授权政策规则包含以下组成部分:

  • from:指定规则允许的客户端的身份。该身份可以从双向 TLS 连接中的客户端证书派生,也可以是与客户端虚拟机关联的环境身份(例如来自服务账号或安全标记)。
  • to:指定规则允许的操作,例如可以访问的网址或允许的 HTTP 方法。
  • when:指定必须满足的其他约束条件。您可以使用通用表达式语言 (CEL) 表达式来定义这些约束条件。

授权政策操作

在评估请求时,授权政策会指定要对请求应用的操作。授权政策操作由以下值组成:

  • ALLOW:如果请求与授权政策中定义的规则匹配,则授予对请求资源的访问权限。如果请求与授权政策中定义的任何规则不匹配,授权政策会阻止对请求的资源的访问。如果请求与 ALLOW 政策不匹配,即使其他政策允许该请求,系统也会拒绝该请求。

  • DENY:如果请求与 DENY 政策中指定的任何规则匹配,则阻止对资源的访问。如果请求与授权政策中定义的任何规则都不匹配,则授权政策会授予对请求的资源的访问权限。如果请求与 DENY 政策匹配,则会被拒绝,即使其他政策允许该请求也是如此。

  • CUSTOM:支持与外部授权系统集成,以便做出复杂的授权决策。CUSTOM 操作适用于使用服务扩展程序或 IAP 进行授权决策的政策。

授权政策评估顺序

当多个授权政策与单个资源相关联时,系统会按以下顺序评估这些政策,以确定是否允许或拒绝请求。

  1. 包含 CUSTOM 操作的政策:如果 CUSTOM 政策拒绝请求,则请求会立即被拒绝。系统不会评估 DENYALLOW 政策,即使已配置任何政策也是如此。

  2. 包含 DENY 操作的政策:如果有任何 DENY 政策与请求匹配,则拒绝请求。系统不会评估任何 ALLOW 政策,即使已配置任何政策也是如此。

  3. 包含 ALLOW 操作的政策:如果没有 ALLOW 政策,或者任何 ALLOW 政策与请求匹配,则允许请求。但是,如果没有与请求匹配的 ALLOW 政策,则会拒绝请求。

委托授权决策

对于无法使用授权政策表达的复杂授权决策,请将授权决策委托给自定义授权提供程序(例如 Identity-Aware Proxy [IAP]),或使用服务扩展构建自己的授权扩展。如果您想通过 IAP 使用您的本地授权引擎或第三方身份提供方,这会非常有用。

  • IAP:配置 IAP 以控制对应用负载平衡器转发规则背后应用的访问权限。IAP 会验证用户身份和上下文,以确定访问权限。它还可以对 Identity and Access Management (IAM) 服务账号令牌进行身份验证并评估 IAM 政策,从而保护对通过应用负载平衡器公开的后端存储分区的访问权限。如需了解详情,请参阅将授权委托给 IAP 和 IAM

    在以下情况下,您可以选择将身份验证委托给 IAP 和 IAM:

    • 使用 IAM 进行权限管理。
    • 实现情境感知访问权限。
    • 针对需要交互式身份验证的 Web 应用使用基于浏览器的身份验证。
  • 服务扩展:将授权决策委托给在 Google Cloud 虚拟机实例或本地运行的自定义授权引擎。这样,您就可以灵活地针对内置政策不涵盖的复杂授权政策进行设置。如需了解详情,请参阅配置授权扩展

价格

在预览版期间,授权政策无需付费。不过,使用 Google Cloud 负载平衡器时,会产生网络费用。如需了解价格信息,请参阅价格

后续步骤