政策和规则

安全 Web 代理政策和规则是出站 Web 流量安全策略的基础。它们可根据来源身份(例如服务账号安全标记)和目标属性(例如 网址 列表)允许或拒绝请求,从而实现对 Web 流量的精确控制。您可以使用这些安全政策和规则来确保只有经过授权的流量才能离开您的网络。

本页介绍了如何定义政策、构建用于控制流量(包括非 Web TCP 连接)的特定规则,以及如何根据来源身份和目标属性应用精细的安全措施。

政策概览

安全 Web 代理政策是核心安全项,用于定义所有出站 Web 流量的访问权限控制。安全 Web 代理政策的主要功能如下:

  • 政策控制:政策存储了代理用于确定是否允许或拒绝 Web 请求的完整指令集(安全 Web 代理规则)。

  • 默认安全:安全 Web 代理政策默认处于 deny-all 状态。这意味着,在您创建允许代理的特定规则之前,代理会阻止每个请求 (HTTP/S),从而从一开始就强制执行零信任架构。

  • 政策逻辑:每项政策都基于两项核心检查构建而成,即确定流量来源和验证允许的目标。

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

  • 流量来源:为了识别流量来源,安全 Web 代理会使用各种属性,例如服务账号安全标记IP 地址

  • 允许的目标:为了确定允许的目标,安全 Web 代理会使用目标网域、完整网址路径(如果启用了 TLS 检查)、网址列表或目标端口。

  • 请求详细信息:安全 Web 代理还可以分析 Web 请求本身的特定属性,例如协议、HTTP 方法或请求标头。如需执行此分析,您需要为加密流量启用 TLS 检查

来源属性

为了实现精细的安全控制,安全 Web 代理政策会使用以下 Cloud Identity 和网络位置数据来识别流量来源:

  • 服务账号:分配给应用或工作负载的唯一身份。 这样一来,您就可以根据应用的特定功能创建政策。 例如,“只有备份服务账号可以访问 Cloud Storage”。
  • 安全标记:您可以应用于 Google Cloud 资源(例如虚拟机 [VM] 实例)的标签。借助标记,您可以按功能或环境对工作负载进行分组。例如,“允许所有标记为 Production 的资源访问已获批的网域。”
  • IP 地址:发件人机器的特定网络地址。您可以分配企业 IP 地址(或静态 Google Cloud IP 地址),供安全 Web 代理用于出站流量。

来源属性支持的身份

安全 Web 代理使用基于来源身份(例如服务账号和安全标记)的政策来控制 Web 流量。通过使用基于来源身份的政策,您可以根据流量的发送者(人员或事物)应用规则,而不仅仅是根据 IP 地址。

下表显示了支持这些基于来源身份的政策的各种 Google Cloud 服务:

Google Cloud 服务 服务账号支持 安全标记支持
Compute Engine 虚拟机 (VM)
Google Kubernetes Engine (GKE) 节点
Google Kubernetes Engine (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 代理政策通过分析目标网站或服务的以下属性来确定目标是否获得批准:

  • 目标网域:网站的地址,例如 example.com

  • 网址列表:预定义的许可或屏蔽网址列表,有助于更高效地管理政策。

  • 目标端口:Secure Web Proxy 实例发送流量的网络端口。例如,443 表示 HTTPS。

  • 完整网址路径:网站的确切路径。这需要启用 TLS 检查才能查看特定网页上的全部内容。

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

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

规则概览

安全 Web 代理规则是安全 Web 代理政策中的一条单独指令,用于执行实际匹配并定义最终操作:允许或拒绝。安全 Web 代理实例会根据优先级评估规则,首先检查优先级值最低的规则。代理会停止并根据与请求匹配的首个规则执行操作。

规则使用以下两种专用匹配引擎来检查流量:

  • 会话匹配器:在设置网络连接时检查有关网络连接的基本信息。Session Matcher 包含以下项:

    • 来源身份(服务账号或安全标记)
    • 目标主机名(域名)
    • 目标端口
  • 应用匹配器:检查实际 Web 请求的内容。它通常用于确保精细控制,并且需要进行 TLS 检查才能检查加密流量。应用匹配器包含以下项:

    • 完整网址路径
    • 请求方法 - 例如,屏蔽所有 DELETE 操作
    • 特定 HTTP 标头

主机匹配规则

Secure Web Proxy 使用主机名匹配来验证目标网域,具体方式因代理的部署方式而异,如下表所示。如需了解详情,请参阅配置主机匹配规则

部署模式 房东验证流程
显式代理模式 对于未加密的流量,代理会根据 HTTP 连接标头检查主机名。如果您使用 [Application Matcher 属性](/secure-web-proxy/docs/cel-matcher-language-reference#attributes-available-only-to-applicationmatcher) 进行 TLS 检查,则代理会分两步检查主机名:首先在连接级别检查,然后在应用级别检查。
下一个跃点模式 对于加密流量,代理会根据出站请求中的服务器名称指示 (SNI) 字段(即使在安全连接中也可见)检查目标主机名。

TCP 代理规则

通过传输控制协议 (TCP) 代理规则,您可以控制非标准网络流量,例如 HTTP 的端口 80 和 HTTPS 的端口 443。通过配置 TCP 代理规则,您可以批准或阻止任何其他 TCP 端口上的流量。这有助于您阻止恶意流量,并对使用 TCP 的非 Web 应用进行精细控制。

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

如需了解详情,请参阅配置 TCP 代理规则

后续步骤