安全 Web 代理政策概览

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

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

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

政策的来源属性

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

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

支持的身份

您可以使用基于来源身份的安全政策(服务账号和安全代码)来保护多项 Google Cloud 服务的网络流量。下表显示了使用基于来源身份的安全政策时是否支持各种 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() 目标属性。

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

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

TCP 代理规则

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

如果您的工作负载(例如应用和服务)使用安全 Web 代理作为下一个跃点,则应用 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 规则。