以下各部分介绍了 Google Cloud Armor 如何与其他 Google Cloud 功能和产品交互。
Google Cloud Armor 和 VPC 防火墙规则
Google Cloud Armor 安全政策和 VPC 防火墙规则具有不同的功能:
- Google Cloud Armor 安全政策提供边缘安全性,并且可以根据从客户端流向 Google Front Ends (GFE) 的流量执行操作。
- VPC 防火墙规则允许或拒绝进出后端的流量。您必须创建入站流量允许防火墙规则,其目标是负载均衡的后端虚拟机,其源是全局外部应用负载均衡器或传统版应用负载均衡器使用的 IP 范围。这些规则允许 GFE 和健康检查系统与您的后端虚拟机通信。
例如,设想一个场景,您只想允许来自 CIDR 范围为 100.1.1.0/24 和 CIDR 范围为 100.1.2.0/24 的流量访问您的全局外部应用负载均衡器或传统版应用负载均衡器。您的目标是确保流量不能直接到达后端负载均衡实例。换句话说,只有通过具有关联安全政策的全局外部应用负载均衡器或传统版应用负载均衡器代理的外部流量才应到达实例。
在上图中,您可以通过按如下方式配置 Google Cloud 部署来实现安全目标:
- 创建两个实例组,一个在
us-west1
地区,另一个在europe-west1
地区。 - 将后端应用实例部署到实例组中的虚拟机。
- 在高级层级创建全球外部应用负载均衡器或传统版应用负载均衡器。配置一个简单的网址映射和一个后端服务,其中后端服务的后端是您在上一步中创建的两个实例组。确保负载平衡器的转发规则使用
120.1.1.1
外部 IP 地址。 - 配置 Google Cloud Armor 安全政策,以允许来自 100.1.1.0/24 和 100.1.2.0/24 的流量并拒绝所有其他流量。
- 将此政策与负载平衡器的后端服务相关联。如需了解相关说明,请参阅配置安全政策。具有更复杂的网址映射的外部 HTTP(S) 负载平衡器可以引用多个后端服务。您可以根据需要将安全政策与一项或多项后端服务关联。
- 配置入站流量允许防火墙规则以允许来自全局外部应用负载均衡器或传统版应用负载均衡器的流量。如需了解详情,请参阅防火墙规则。
Google Cloud Armor 与外部应用负载均衡器和 IAP
Identity-Aware Proxy (IAP) 验证用户的身份,然后确定是否应允许该用户访问应用。如需为全局外部应用负载均衡器或传统版应用负载均衡器启用 IAP,请在负载均衡器的后端服务上将其启用。同样,边缘 Google Cloud Armor 安全政策将附加到全局外部应用负载均衡器或传统版应用负载均衡器的后端服务。
如果为后端服务同时启用了 Google Cloud Armor 安全政策和 IAP,则其评估顺序取决于负载均衡器的类型:
对于全局外部应用负载均衡器的后端服务,先进行 Google Cloud Armor 评估。如果 Google Cloud Armor 阻止了某个请求 IAP 不评估请求。 如果 Google Cloud Armor 允许请求,IAP 继而会评估请求。若请求未通过 IAP 的身份验证,则请求会被阻止。
对于传统应用负载平衡器的后端服务, 先进行 IAP 评估。 如果 IAP 对请求进行身份验证,则 Google Cloud Armor 会评估该请求。如果请求未通过 IAP 身份验证,则 Google Cloud Armor 不会评估该请求。
如需详细了解 IAP 和相关配置,请参阅 Identity-Aware Proxy 文档。
Google Cloud Armor 与混合部署
在混合部署中,全局外部应用负载均衡器或传统版应用负载均衡器需要访问在 Google Cloud 外部运行的应用或内容来源,例如,在其他云服务提供商的基础架构中。您可以使用 Google Cloud Armor 保护此类部署。
在下图中,负载平衡器具有两项后端服务。一项后端服务将一个实例组用作后端。另一项后端服务将互联网 NEG 用作后端,并且互联网 NEG 与一个在第三方提供商的数据中心内运行的应用相关联。
当您将 Google Cloud Armor 安全政策附加到将互联网 NEG 用作后端的后端服务时,Google Cloud Armor 会检查到达该后端服务的全局外部应用负载均衡器或传统版应用负载均衡器的每个 L7 请求。
适用于混合部署的 Google Cloud Armor 保护措施受到与互联网 NEG 相同的限制。
Google Cloud Armor 与 Google Kubernetes Engine (GKE) Ingress 结合使用
配置 Google 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 特性。
Google Cloud Armor 与 Cloud CDN
为了保护 CDN 源服务器,您可以将 Google Cloud Armor 与 Cloud CDN 搭配使用。Google Cloud Armor 可保护 CDN 源服务器免受应用攻击,减轻 OWASP 十大风险,并强制执行第 7 层过滤政策。有两种类型的安全政策会影响 Google Cloud Armor 与 Cloud CDN 的工作方式:边缘安全政策和后端安全政策。
边缘安全政策
您可以对启用了 Cloud CDN 的后端服务和全局外部应用负载均衡器或传统版应用负载均衡器后面的 Cloud Storage 后端存储桶使用边缘安全政策。在从缓存传送内容之前,请使用边缘安全政策过滤请求。
后端安全政策
当 Google Cloud Armor 后端安全政策应用于启用了 Cloud CDN 的后端服务时,它们仅适用于路由到后端服务的请求。这些请求包括动态内容请求和缓存未命中,即未命中或绕过 Cloud CDN 缓存的请求。
将边缘安全政策和后端安全政策附加到同一后端服务时,仅针对已通过边缘安全政策的缓存未命中请求强制执行后端安全政策
下图专门展示了在边缘安全政策允许请求后,后端安全政策如何与 Cloud CDN 来源协同工作。
如需详细了解 Cloud CDN,请参阅 Cloud CDN 文档。
将 Google Cloud Armor 与 Cloud Run、App Engine 或 Cloud Run 功能搭配使用
您可以将 Google Cloud Armor 安全政策与指向 Cloud Run、App Engine 或 Cloud Run Functions 服务的无服务器 NEG 后端结合使用。
但是,当您将 Google Cloud Armor 与无服务器 NEG 结合使用时, Cloud Run 或 Cloud Run 函数,那么您必须 确保对无服务器端点的所有访问都通过 Google Cloud Armor 安全政策。
拥有无服务器应用默认网址的用户可以绕过负载均衡器并直接转到服务网址。这会绕过 Google Cloud Armor 安全政策。要解决此问题,请停用 Google Cloud 自动分配给 Cloud Run 服务或 Cloud Run functions(第 2 代)函数的默认网址。保护 App Engine 你可以使用 入站流量控制。
如果您使用入站流量控制来确保您的访问权限控制应用于所有传入流量,则可以在配置 Cloud Run 函数或 Cloud Run 时使用 internal-and-gclb
。这只允许内部流量和发送至由全球外部应用负载均衡器或经典版应用负载均衡器公开的外部 IP 地址的流量。系统会屏蔽从您的私有网络外部发送到这些默认网址的流量。这将防止用户规避通过全局外部应用负载均衡器或传统版应用负载均衡器设置的任何访问权限控制机制(例如 Google Cloud Armor 安全政策)。
如需详细了解无服务器 NEG,请参阅无服务器网络端点组概览和设置无服务器 NEG。