Google Cloud Armor 的已命名 IP 地址列表

利用 Google Cloud Armor 的已命名 IP 地址列表,您可以引用第三方提供商维护的 IP 地址和 IP 地址范围列表。您可以在安全政策中配置已命名的 IP 地址列表。您不必手动指定每个 IP 地址或 IP 地址范围。

在本文档中,术语“IP 地址”和“IP 地址列表”包括“IP 地址范围”。

已命名的 IP 地址列表是以不同的名称分组的 IP 地址列表。该名称通常是指提供商。已命名的 IP 地址列表不受制于每个规则的 IP 地址数量配额限制。

已命名的 IP 地址列表不是安全政策。您可以像引用预配置的规则一样,将已命名的 IP 地址列表作为表达式引用,从而将它们整合到一项安全政策中。

例如,如果第三方提供商的 IP 地址列表 {ip1, ip2, ip3....ip_N_} 的名称为 provider-a,那么您可以创建一个安全规则,以允许列表 provider-a 中的所有 IP 地址,并排除该列表以外的 IP 地址:

gcloud beta compute security-policies rules create 1000 \
    --security-policy POLICY_NAME \
    --expression "evaluatePreconfiguredExpr('provider-a')" \
    --action "allow"

您无法创建自己的自定义已命名 IP 地址列表。此功能仅适用于与 Google 合作的第三方提供商维护的已命名 IP 地址列表。如果此类已命名的 IP 地址列表不能满足您的需求,您可以创建一个安全政策,其中的规则根据请求源自的 IP 地址允许或拒绝对资源的访问。如需了解详情,请参阅配置安全政策

如需使用已命名的 IP 地址列表,您必须订阅 Google Cloud Armor Managed Protection Plus,并在 Managed Protection 中注册项目。如需了解详情,请参阅已命名 IP 地址列表的可用性

仅允许来自允许的第三方提供商的流量

典型的使用场景是创建一个许可名单以包含允许的第三方合作伙伴的 IP 地址,从而确保只有来自该合作伙伴的流量才能访问负载平衡器和后端。

例如,CDN 提供商需要定期从来源服务器拉取内容,以将其分发到自己的缓存。与 Google 合作有助于 CDN 提供商与 Google 广告网络边缘建立直接联系。Google Cloud 上的 CDN 用户可以在来源拉取期间使用此直接联系。在这种情况下,CDN 用户可能希望构建一项安全政策,以仅允许来自该特定 CDN 提供商的流量。

在此示例中,CDN 提供商发布其 IP 地址列表 23.235.32.0/20, 43.249.72.0/22, ⋯,。CDN 用户配置了一条安全规则以仅允许来自这些 IP 地址的流量。因此,允许两个 CDN 提供商接入点(23.235.32.1043.249.72.10),从而允许其流量。来自未经授权的接入点 198.51.100.1 的流量已被阻止。

Google Cloud Armor 的已命名 IP 地址
Google Cloud Armor 的已命名 IP 地址(点击可放大)

使用预配置规则简化配置和管理

CDN 提供商通常使用众所周知的 IP 地址,许多 CDN 用户都需要使用这些地址。当提供商添加、移除和更新 IP 地址时,这些列表会随时间而变化。

在安全政策规则中使用已命名的 IP 地址列表可简化 IP 地址的配置和管理过程,因为 Google Cloud Armor 每天都会自动同步 CDN 提供商的信息。这样一来,您不必再手动维护大型 IP 地址列表,这个过程既耗时又容易出错。

以下是允许来自一个提供商的所有流量的预配置规则示例:

evaluatePreconfiguredExpr('provider-a') => allow traffic

IP 地址列表提供商

Google Cloud Armor 支持下表中的 IP 地址列表提供者。这些提供商是与 Google 合作的 CDN 提供商。其 IP 地址列表通过各个公共网址发布。

这些合作伙伴提供单独的 IPv4 地址和 IPv6 地址列表。Google Cloud Armor 使用提供的网址提取列表,然后将列表转换为已命名的 IP 地址列表。您可以通过表中的名称引用列表。

例如,以下代码会在优先级为 750 的安全政策 POLICY_NAME 中创建规则,将来自 Cloudflare 的已命名 IP 地址列表整合在一起,并允许访问这些 IP 地址:

gcloud beta compute security-policies rules create 750 \
    --security-policy POLICY_NAME \
    --expression "evaluatePreconfiguredExpr('sourceiplist-cloudflare')" \
    --action "allow"
提供方 网址 IP 地址列表名称
Fastly https://api.fastly.com/public-ip-list sourceiplist-fastly
Cloudflare

https://www.cloudflare.com/ips-v4

https://www.cloudflare.com/ips-v6

sourceiplist-cloudflare
Imperva

https://my.imperva.com/api/integration/v1/ips

如需访问 Imperva 的列表,请发出 POST 请求。您还可以使用以下命令:

curl -d "" https://my.imperva.com/api/integration/v1/ips

sourceiplist-imperva

如需列出预配置的已命名 IP 地址列表,请使用以下 gcloud 命令:

gcloud compute security-policies list-preconfigured-expression-sets \
    --filter="id:sourceiplist"

此操作会返回:

EXPRESSION_SET
sourceiplist-fastly
sourceiplist-cloudflare
sourceiplist-imperva

同步 IP 地址列表

仅当检测到使用有效格式的更改时,Google Cloud Armor 才会与每个提供商同步 IP 地址列表。Google Cloud Armor 会对所有列表中的 IP 地址执行基本语法验证。

已命名 IP 地址列表的可用性

Google Cloud Armor Managed Protection Plus 的正式版已发布。第三方已命名 IP 地址列表的可用性如下:

  1. 如果您订阅了 Google Cloud Armor Managed Protection Plus 层级,则您有权在已注册的项目中使用已命名 IP 地址列表。您可以创建、更新和删除具有已命名 IP 地址列表的规则。
  2. 如果您的 Google Cloud Armor Managed Protection Plus 层级订阅过期或返回标准层级,则您无法添加或修改具有已命名 IP 地址列表的规则,但可以删除现有规则并更新规则来移除已命名 IP 列表。
  3. 如果项目已包含具有已命名 IP 地址列表的规则,但您尚未在 Google Cloud Armor Managed Protection Plus 中注册该项目,您可以继续在该项目中使用、更新和删除具有已命名 IP 地址列表的现有规则。在此类项目中,您可以创建包含已命名 IP 地址列表的新规则。

后续步骤