配置地址组

利用地址组,您可以将多个 IP 地址和 IP 地址范围合并到 单个命名逻辑单元,该逻辑单元可在多个产品中使用。这个 文档介绍了如何在 Google Cloud Armor 安全性中使用地址组 政策。您需要拥有有效的 Google Cloud Armor Enterprise 订阅才能使用 地址组。

IAM 角色

如需创建和管理地址组,您需要 Network Administrator 角色 (compute.networkAdmin) 或 Security Administrator 角色 (compute.securityAdmin)。您还可以定义具有一组等效权限的自定义角色。

下表提供了对地址组执行一组任务所需的 Identity and Access Management (IAM) 权限列表。

任务 IAM 角色名称 IAM 权限
创建和管理地址组 compute.networkAdmin

compute.securityAdmin

networksecurity.addressGroups.*
发现和查看地址组 compute.networkUser networksecurity.addressGroups.list

networksecurity.addressGroups.get

networksecurity.addressGroups.use

如需详细了解哪些角色包含特定 IAM 权限,请参阅 IAM 权限参考文档

创建或修改地址组

以下部分介绍了如何创建地址组、 添加和移除地址组中的地址,以及如何删除地址组。

创建地址组

创建地址组时,您必须指定其容量和 IP 地址 分别使用 --capacity--type 标志指定版本。您不能 请在创建地址组后更改这些值。

此外,Google Cloud Armor 的容量上限可能高于 其他产品(例如 Cloud 下一代防火墙)的最大容量。因此,如果 如果您想在多个产品中使用同一地址组,则必须 将容量设置为小于或等于以下范围内的最小最大容量 这些产品。

控制台

  1. 在 Google Cloud 控制台中,前往地址组页面。

    前往地址组

  2. 在项目选择器菜单(如果有)中选择您的项目。

  3. 点击创建地址组

  4. 名称字段中,输入一个名称。

  5. (可选):在说明字段中,添加说明。

  6. 对于范围,选择全局

  7. 对于类型,选择 IPv4IPv6

  8. 对于用途,选择 Cloud Armor;或者,选择 防火墙和 Cloud Armor(如果您还计划使用地址组) Cloud 下一代防火墙政策。

    如需详细了解如何选择用途,请参阅 地址组规范

  9. 容量字段中,输入地址组的容量。

  10. IP 地址字段中,列出需要访问的 IP 地址或 IP 地址范围 添加到地址组中(以英文逗号分隔)。例如 1.1.1.0/24,1.2.0.0

  11. 点击创建

gcloud

请使用以下示例 gcloud beta network-security address-groups create 命令 创建一个名为 GROUP_NAME 的地址组,其中包含 1,000 个IPv4地址,可用于 Google Cloud Armor 或 Cloud NGFW:

gcloud beta network-security address-groups create GROUP_NAME \
  --location global \
  --description  "address group description" \
  --capacity 1000 \
  --type IPv4 \
  --purpose DEFAULT,CLOUD_ARMOR

或者,您可以创建容量更大的地址组,方法是将 专用于 CLOUD_ARMOR。在以下示例中,您将创建 容量为 10,000 个 IPv6 IP 地址范围的地址组:

gcloud beta network-security address-groups create GROUP_NAME \
  --location global \
  --description  "address group description" \
  --capacity 10000 \
  --type IPv6 \
  --purpose CLOUD_ARMOR

向地址组添加内容

创建地址组后,您可以使用 Google Cloud 控制台添加内容 或 gcloud beta network-security address-groups add-items 命令

控制台

  1. 在 Google Cloud 控制台中,前往地址组页面。

    前往地址组

  2. 在项目选择器菜单(如果有)中选择您的项目。

  3. 如要修改地址组,请点击地址组的名称。

  4. 点击修改

  5. IP 地址字段中,将新项添加到以英文逗号分隔的 IP 地址列表。或者,您也可以点击导入地址以 上传包含 IP 地址列表的 CSV 文件。

  6. 点击保存

gcloud

在以下示例中,您将添加 IP 地址 192.168.1.2192.168.1.8192.168.1.9添加到地址组“GROUP_NAME”。 您可以使用 --item 标志提供以英文逗号分隔的商品列表:

gcloud beta network-security address-groups add-items GROUP_NAME \
  --location global \
  --items 192.168.1.2,192.168.1.8,192.168.1.9

从地址组中移除内容

您可以使用 Google Cloud 控制台从地址组中移除内容 或 gcloud beta network-security address-groups remove-items 命令

控制台

  1. 在 Google Cloud 控制台中,前往地址组页面。

    前往地址组

  2. 在项目选择器菜单(如果有)中选择您的项目。

  3. 如要修改地址组,请点击地址组的名称。

  4. 点击修改

  5. IP 地址字段中,删除您要移除的内容 从以逗号分隔的 IP 地址列表中删除

  6. 点击保存

gcloud

以下命令将移除 IP 地址 192.168.1.2192.168.1.8、 和 192.168.1.9

gcloud beta network-security address-groups remove-items GROUP_NAME \
  --location global \
  --items 192.168.1.2,192.168.1.8,192.168.1.9

删除地址组

如果资源(包括 防火墙政策或安全政策请按照以下步骤删除地址 群组:

控制台

  1. 在 Google Cloud 控制台中,前往地址组页面。

    前往地址组

  2. 在项目选择器菜单(如果有)中选择您的项目。

  3. 选中要删除的地址组旁边的复选框。 确保所选地址组未被任何地址引用 防火墙或安全政策

  4. 点击删除,然后再次点击删除进行确认。

gcloud

以下示例使用 gcloud beta network-security address-groups delete 命令 删除名为 GROUP_NAME 的地址组。

gcloud beta network-security address-groups delete GROUP_NAME \
  --location global

将地址组与安全政策结合使用

创建地址组并向其添加 IP 地址后,您可以 请将它与任何现有的 Google Cloud Armor 后端安全政策搭配使用。通过 以下示例展示了两种使用地址组的不同方式。

拒绝一组 IP 地址

在此示例中,假设您有一个名为 将 BAD_IPS 替换为 10,000 个已知恶意的 IP 地址。您 可以使用一项安全政策拒绝所有这些 IP 地址 具有以下匹配条件的 deny 规则:

evaluateAddressGroup('BAD_IPS', origin.ip)

在多个安全政策中重复使用一组 IP 地址范围

在本例中,假设您的列表中包含 10,000 个 IP 地址, 但其中一些 IP 地址已知 网页抓取工具。您希望阻止所有这些 IP 地址来自某个后端 但也允许网页抓取工具访问其他后端服务 搜索引擎优化 (SEO)。您可以按照以下步骤拒绝 访问 BACKEND_SERVICE_1,同时允许 IP 地址访问 要访问的范围为 66.249.77.32/2766.249.77.64/27 BACKEND_SERVICE_2

  1. 创建名为 POLICY_1 的后端安全政策并将其附加 至 BACKEND_SERVICE_1
  2. POLICY_1 中,创建一条包含以下匹配项的 deny 规则 条件:

    evaluateAddressGroup('BAD_IPS', origin.ip)
    
  3. 创建第二个名为 POLICY_2 的后端安全政策,并 将其附加到 BACKEND_SERVICE_2

  4. POLICY_2 中,创建一条包含以下匹配项的 deny 规则 条件,其中不包括 66.249.77.32/2766.249.77.64/27

    evaluateAddressGroup('BAD_IPS', origin.ip, [66.249.77.32/27, 66.249.77.64/27])
    

使用地址组来匹配用户 IP 地址

在此示例中,假设您有一个名为 将 BAD_IPS 替换为 10,000 个已知恶意的 IP 地址。在 此外,您还需要使用上游代理,该代理包含 原始客户端。您可以使用以下命令拒绝所有这些 IP 地址 具有以下匹配项的一条安全政策 deny 规则 条件:

evaluateAddressGroup('BAD_IPS', origin.user_ip)

有关用户 IP 地址的详细信息,请参阅 规则语言属性

后续步骤