以下部分介绍了 Cloud Armor 如何与其他 Google Cloud 功能和产品交互。
Cloud Armor 和 VPC 防火墙规则
Cloud Armor 安全政策和 VPC 防火墙规则具有不同的功能:
- Cloud Armor 安全政策提供边缘安全性,会针对从客户端流向 Google Front Ends (GFE) 的流量执行操作。
- VPC 防火墙规则允许或拒绝进出后端的流量。您必须创建入站流量允许防火墙规则,其目标是负载均衡的后端虚拟机,其源是全局外部应用负载均衡器或传统版应用负载均衡器使用的 IP 范围。这些规则允许 GFE 和健康检查系统与您的后端虚拟机通信。
例如,设想一个场景,您只想允许来自 CIDR 范围为 100.1.1.0/24 和 CIDR 范围为 100.1.2.0/24 的流量访问您的全局外部应用负载均衡器或传统版应用负载均衡器。您的目标是阻止流量直接到达后端负载均衡实例。换句话说,只有通过具有关联安全政策的全球外部应用负载均衡器或传统应用负载均衡器进行代理的外部流量才能到达实例。
上图显示了以下部署配置:
- 创建两个实例组,一个在
us-west1
地区,另一个在europe-west1
地区。 - 将后端应用实例部署到实例组中的虚拟机。
- 在高级层级创建全球外部应用负载均衡器或传统版应用负载均衡器。 配置一个网址映射和一个后端服务,其中后端服务的后端是您在上一步中创建的两个实例组。负载均衡器的转发规则必须使用
120.1.1.1
外部 IP 地址。 - 配置 Cloud Armor 安全政策,以允许来自 100.1.1.0/24 和 100.1.2.0/24 的流量并拒绝所有其他流量。
- 将此政策与负载平衡器的后端服务相关联。如需了解相关说明,请参阅配置 Cloud Armor 安全政策。具有更复杂的网址映射的外部 HTTP(S) 负载平衡器可以引用多个后端服务。您可以根据需要将安全政策与一项或多项后端服务关联。
- 配置入站流量允许防火墙规则以允许来自全局外部应用负载均衡器或传统版应用负载均衡器的流量。如需了解详情,请参阅防火墙规则。
将 Cloud Armor 与外部应用负载均衡器和 IAP 搭配使用
Identity-Aware Proxy (IAP) 会验证用户的身份,然后确定该用户是否可以访问应用。如需为全球外部应用负载均衡器或传统应用负载均衡器启用 IAP,请使用负载均衡器的后端服务。同样,边缘 Cloud Armor 安全政策将附加到全球外部应用负载均衡器或传统应用负载均衡器的后端服务。
如果为后端服务同时启用了 Cloud Armor 安全政策和 IAP,则评估的顺序取决于负载均衡器的类型:
对于全球外部应用负载均衡器的后端服务,首先进行 Cloud Armor 评估。如果 Cloud Armor 阻止请求,IAP 不会对请求进行评估。如果 Cloud Armor 允许请求,IAP 继而会评估请求。如果请求未通过 IAP 身份验证,请求会被阻止。
对于传统应用负载均衡器的后端服务,首先进行 IAP 评估。如果请求通过了 IAP 身份验证,Cloud Armor 会评估请求。如果请求未通过 IAP 身份验证,Cloud Armor 不会评估请求。
如需详细了解 IAP 和相关配置,请参阅 Identity-Aware Proxy 文档。
将 Cloud Armor 与混合部署搭配使用
在混合部署中,全球外部应用负载均衡器或传统应用负载均衡器需要访问在 Google Cloud外部(例如在其他云服务提供商的基础设施中)运行的应用或内容来源。您可以使用 Cloud Armor 保护此类部署。
在下图中,负载均衡器具有两项后端服务。一项后端服务将一个实例组用作后端。另一项后端服务将互联网 NEG 用作后端,并且互联网 NEG 与一个在第三方提供商的数据中心内运行的应用相关联。
当您将 Cloud Armor 安全政策附加到将互联网 NEG 用作后端的后端服务时,Cloud Armor 会检查到达以该后端服务为目标的全球外部应用负载均衡器或传统应用负载均衡器的每个第 7 层请求。
适用于混合部署的 Cloud Armor 保护措施受到与互联网 NEG 相同的限制。
将 Cloud Armor 与 Google Kubernetes Engine (GKE) 搭配使用
以下部分介绍了 Cloud Armor 如何与 GKE 搭配使用。
GKE Ingress
配置 Cloud Armor 安全政策后,您可以使用 Kubernetes Ingress 在 GKE 中启用它。
您可以通过将安全政策的名称添加到 BackendConfig
中来引用采用 BackendConfig
资源的安全政策。以下 BackendConfig
清单指定了名为 example-security-policy
的安全政策:
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
namespace: cloud-armor-how-to
name: my-backendconfig
spec:
securityPolicy:
name: "example-security-policy"
如需详细了解 Ingress 功能,请参阅 Ingress 配置。
GKE 网关
配置 Cloud Armor 安全政策后,您可以使用 Kubernetes Gateway API 在 GKE 中启用它。
您可以通过将安全政策的名称添加到 GCPBackendPolicy
政策资源中来引用安全政策。以下 GCPBackendPolicy
政策资源清单指定了名为 example-security-policy
的后端安全政策:
服务
apiVersion: networking.gke.io/v1
kind: GCPBackendPolicy
metadata:
name: my-backend-policy
namespace: lb-service-namespace
spec:
default:
securityPolicy: example-security-policy
targetRef:
group: ""
kind: Service
name: lb-service
多集群服务
apiVersion: networking.gke.io/v1
kind: GCPBackendPolicy
metadata:
name: my-backend-policy
namespace: lb-service-namespace
spec:
default:
securityPolicy: example-security-policy
targetRef:
group: net.gke.io
kind: ServiceImport
name: lb-service
如需详细了解如何配置 Cloud Armor 后端安全政策,请参阅配置 Cloud Armor 后端安全政策以保护您的后端服务。
将 Cloud Armor 与 Cloud CDN 搭配使用
如需保护 CDN 源服务器,您可以将 Cloud Armor 与 Cloud CDN 搭配使用。Cloud Armor 可保护 CDN 源服务器免受应用攻击,缓解 OWASP 十大风险,并强制执行第 7 层过滤政策。有两种类型的安全政策会影响 Cloud Armor 与 Cloud CDN 搭配使用的方式:边缘安全政策和后端安全政策。
边缘安全政策
您可以对启用了 Cloud CDN 的后端服务和全局外部应用负载均衡器或传统版应用负载均衡器后面的 Cloud Storage 后端存储桶使用边缘安全政策。在从缓存传送内容之前,请使用边缘安全政策过滤请求。
后端安全政策
当 Cloud Armor 后端安全政策应用于启用了 Cloud CDN 的后端服务时,它们仅应用于路由到后端服务的请求。这些请求包括动态内容请求和缓存未命中,即未命中或绕过 Cloud CDN 缓存的请求。
将边缘安全政策和后端安全政策附加到同一后端服务时,系统仅针对已通过边缘安全政策的缓存未命中请求强制执行后端安全政策
下图专门展示了在边缘安全政策允许请求后,后端安全政策如何与 Cloud CDN 来源协同工作。
如需详细了解 Cloud CDN,请参阅 Cloud CDN 文档。
将 Cloud Armor 与 Cloud Run、App Engine 或 Cloud Run functions 搭配使用
您可以将 Cloud Armor 安全政策与指向 Cloud Run、App Engine 或 Cloud Run functions 服务的无服务器 NEG 后端搭配使用。
不过,当您将 Cloud Armor 与无服务器 NEG、Cloud Run 或 Cloud Run functions 搭配使用时,对无服务器端点的所有访问都必须通过 Cloud Armor 安全政策进行过滤。
拥有无服务器应用默认网址的用户可以绕过负载均衡器并直接转到服务网址。这会绕过 Cloud Armor 安全政策。为解决此问题,请停用默认网址, Google Cloud 会自动将该网址分配给 Cloud Run 服务或 Cloud Run functions(第 2 代)函数。如需保护 App Engine 应用,您可以使用入站流量控制。
如果您使用入站流量控制将访问权限控制应用于所有传入流量,则可以在配置 Cloud Run functions 或 Cloud Run 时使用 internal-and-gclb
入站流量设置。internal-and-gclb
入站流量设置只允许内部流量和发送到由全球外部应用负载均衡器或传统应用负载均衡器公开的外部 IP 地址的流量。从您的专用网络外部发送到这些默认网址的流量会被阻止。这会防止用户规避通过全球外部应用负载均衡器或传统应用负载均衡器设置的任何访问权限控制(例如 Cloud Armor 安全政策)。
如需详细了解无服务器 NEG,请参阅无服务器网络端点组概览和设置无服务器 NEG。
将 Cloud Armor 与 Cloud Service Mesh 搭配使用
您可以为服务网格配置内部服务安全政策,以对每个客户端强制执行全局服务器端速率限制,从而帮助您公平地共享服务的可用容量,并降低恶意或行为不当的客户端使服务过载的风险。您可以将安全政策附加到 Cloud Service Mesh 端点政策,以在服务器端对入站流量强制执行速率限制。不过,如果您使用 TCP 流量路由,则无法配置 Google Cloud Armor 安全政策。如需详细了解如何将 Cloud Armor 与 Cloud Service Mesh 搭配使用,请参阅使用 Cloud Armor 配置速率限制。