安全 Web 代理政策概览

本页介绍了安全 Web 代理政策的来源属性目标属性。此外,本页面还介绍了基于传输控制协议 (TCP) 规则的代理以及如何为应用配置 TCP 代理规则

安全 Web 代理政策基于以下两个参数:

默认情况下,安全 Web 代理的设置方式会拒绝通过代理发送的任何出站 Web 流量(HTTP 或 HTTPS),除非您在安全 Web 代理实例的政策中添加特定规则。

政策的来源属性

使用以下属性可让安全 Web 代理实例识别流量来源:

  • 服务账号:使用服务账号来识别流量来源并配置安全 Web 代理政策。
  • 安全标记:使用 Resource Manager 标记来控制对 Google Cloud 资源的访问权限。
  • IP 地址:分配您的企业 IP 地址(或静态 Google Cloud IP 地址),安全 Web 代理会使用这些地址来处理出站流量。

支持的身份

您可以使用基于来源身份的安全政策(服务账号和安全标记)来保护多个 Google Cloud 服务的 Web 流量。下表显示了在使用基于来源身份的安全政策时,是否支持各种 Google Cloud 服务。

Google Cloud 服务 服务账号支持 安全标记支持
虚拟机
GKE 节点
GKE 容器 1 1
适用于 Cloud Run 的直接 VPC 1
无服务器 VPC 访问通道连接器 2 2
Cloud VPN 1 1
本地 Cloud Interconnect 1 1
应用负载平衡器
网络负载平衡器
1 不受 Google Cloud支持。
2 来源 IP 地址是唯一的,可以用来充当替代方案。

下表显示了在使用基于来源身份的安全政策时,是否支持各种虚拟私有云 (VPC) 架构:

VPC VPC 架构 支持
在 VPC 内 跨项目(共享 VPC)
在 VPC 内 跨区域
跨 VPC 跨对等互连链接(对等 VPC)
跨 VPC 跨 Private Service Connect
跨 VPC 跨 Network Connectivity Center spoke

政策的目的地属性

借助安全 Web 代理,您可以根据目标网域和完整网址路径(如果启用了 TLS 检查)为应用配置政策。

使用以下属性可让安全 Web 代理实例确定允许的流量目的地:

对于基于 HTTP 的目标流量,您可以为应用使用 host() destination 属性。

对于基于 HTTPS 的目标流量,您可以为应用使用各种与目标相关的属性(例如 request.method)。request.*

如需详细了解可用于 HTTP 和 HTTPS 流量的目标属性,请参阅属性

TCP 代理规则

借助安全 Web 代理实例,您可以为传输控制协议 (TCP) 流量(包括与 Web 协议无关的流量)配置代理规则。例如,您可以选择允许或阻止通过 80 (HTTP) 或 443 (HTTPS) 以外的任何端口发送流量的网站或应用的流量。

如果您的工作负载(例如应用和服务)使用 Secure Web Proxy 作为下一个跃点,那么应用 TCP 代理规则会很有用。这是因为使用基于路由的重定向流程会将非 HTTP(S) 和非 Web 流量指向您的安全 Web 代理实例。这样一来,您就可以阻止恶意流量到达您的应用,并控制哪些应用或网站可以访问您的网络。

为应用配置 TCP 代理规则

如需实现 TCP 代理规则并为应用创建允许或阻止流量规则,您必须指定目标端口。您可以选择添加以下任意 SessionMatcher 属性,以细化允许或屏蔽规则的条件。

属性 属性类型 说明
source.ip 字符串 发送请求的客户端的 IP 地址。
source.port 字符串 发送请求的客户端端口。
destination.port 字符串 安全 Web 代理实例将流量发送到的上游端口。
source.matchTag(SECURE_TAG) 布尔值

True(如果来源与 SECURE_TAG 相关联)。

该实参是安全标记的永久 ID,例如 source.matchTag('tagValues/123456')

source.matchServiceAccount(SERVICE_ACCOUNT) 布尔值 True,如果来源与 SERVICE_ACCOUNT(例如 source.matchServiceAccount('x@my-project.iam.gserviceaccount.com'))相关联。
inIpRange(IP_ADDRESS,
IP_RANGE)
布尔值 True,如果 IP_ADDRESS 包含在 IP_RANGE 中,例如 inIpRange(source.ip, '1.2.3.0/24')。IPv6 地址的子网掩码不能大于 /64

限制

安全 Web 代理不支持为用户数据报协议 (UDP) 应用配置 TCP 代理规则。因此,安全 Web 代理会阻止基于 UDP 的应用的流量。

主机匹配规则

为安全 Web 代理实例配置出站流量规则时,请务必根据出站请求的目标主机定义规则。您还应考虑主机匹配如何根据安全 Web 代理实例的部署模式运行。

显式代理模式

  • 对于未加密的 HTTP 请求,您可以使用 SessionMatcher 中的 host() == "myownpersonaldomain.com" 规则。安全 Web 代理会根据 HTTP 请求的 CONNECT 标头中的 host 字段验证此规则。

  • 如果您想启用 TLS 检查并根据 Application Matcher 设置规则,则必须设置一个评估结果为 TRUESessionMatcher 规则。例如,您可以在 SessionMatcher 中使用 host() == "myownpersonaldomain.com" 规则,然后在 ApplicationMatcher 中添加 request.host() == "myownpersonaldomain.com" 规则。

    安全 Web 代理首先会根据 HTTP 请求的 CONNECT 标头中的 host 字段验证 SessionMatcher。只有当 SessionMatcher 规则有效时,安全 Web 代理才会检查 ApplicationMatcher 规则。

下一个跃点模式

  • 对于未加密的 HTTP 请求,您可以使用 SessionMatcher 中的 host() == "myownpersonaldomain.com" 规则。安全 Web 代理会根据标准 HTTP 请求标头中的 host 字段验证此规则。

    不过,如果请求经过 TLS 加密,安全 Web 代理会根据出站请求中的服务器名称指示 (SNI) 标头验证同一规则。

  • 如果您想启用 TLS 检查并根据 ApplicationMatcher 设置规则,则必须设置一个评估结果为 TRUESessionMatcher 规则。例如,您可以在 SessionMatcher 中使用 host() == "myownpersonaldomain.com" 规则,然后在 ApplicationMatcher 中添加 request.host() == "myownpersonaldomain.com" 规则。

    安全 Web 代理会先根据出站请求中的 SNI 标头验证 SessionMatcher。只有当 SessionMatcher 规则有效时,安全 Web 代理才会检查 ApplicationMatcher 规则。