在 Azure 容器应用中设置 IP 入口限制

Azure 容器应用允许通过入口配置设置 IP 入口限制,以限制容器应用的入站流量。

有两种类型的限制:

  • 允许:仅允许来自允许规则中指定的地址范围的入站流量。
  • 拒绝:仅拒绝来自拒绝规则中指定的地址范围的所有入站流量。

如果未定义 IP 限制规则,则允许所有入站流量。

IP 限制规则包含以下属性:

属性 描述
name 字符串 规则的名称。
description 字符串 规则的描述。
ipAddressRange 采用 CIDR 格式的 IP 地址范围 采用 CIDR 表示法的 IP 地址范围。
action “允许”或“拒绝” 要对规则执行的操作。

ipAddressRange 参数接受 IPv4 地址。 采用无类别域际路由选择 (CIDR) 表示法定义每个 IPv4 地址块。

注意

所有规则的类型必须相同。 不能组合使用允许规则和拒绝规则。

管理 IP 入口限制

可以通过 Azure 门户或 Azure CLI 管理 IP 访问限制规则。

添加规则

  1. 在 Azure 门户中转到你的容器应用。

  2. 在左侧菜单中选择“入口”。

  3. 选择“IP 安全限制模式”切换开关以启用 IP 限制。 可以选择允许或拒绝来自指定 IP 地址范围的流量。

  4. 选择“添加”以创建规则。

    Screenshot of IP restriction settings on container app Ingress page.

  5. 在以下字段中输入值:

    字段 说明
    IPv4 地址或范围 以 CIDR 表示法输入 IP 地址或 IP 地址范围。 例如,若要允许从单个 IP 地址进行访问,请使用以下格式:10.200.10.2/32。
    名称 输入规则的名称。
    说明 输入规则的说明。
  6. 选择 添加

  7. 重复步骤 4-6 以添加更多规则。

  8. 添加完规则后,选择“保存”。 Screenshot to save IP restrictions on container app Ingress page.

更新规则

  1. 在 Azure 门户中转到你的容器应用。
  2. 在左侧菜单中选择“入口”。
  3. 选择要更新的规则。
  4. 更改规则设置。
  5. 选择“保存”以保存更新。
  6. 在“入口”页上选择“保存”以保存更新的规则。

删除规则

  1. 在 Azure 门户中转到你的容器应用。
  2. 在左侧菜单中选择“入口”。
  3. 选择要删除的规则旁边的删除图标。
  4. 选择“保存”。

可以使用 az containerapp ingress access-restriction 命令组管理 IP 访问限制。 此命令组具有以下选项:

  • set:创建或更新规则。
  • remove:删除规则。
  • list:列出所有规则。

创建或更新规则

可以使用 az containerapp ingress access-restriction set 命令创建或更新 IP 限制。

az containerapp ingress access-restriction set 命令组使用以下参数。

参数 说明
--rule-name(必需) String 指定访问限制规则的名称。
--description String 指定访问限制规则的说明。
--action(必需) 允许、拒绝 指定是允许还是拒绝从指定的 IP 地址范围进行访问。
--ip-address(必需) 采用 CIDR 表示法的 IP 地址或 IP 地址范围 指定要允许或拒绝的 IP 地址范围。

使用不同的 --rule-name 和 ---ip-address 值重复该命令以添加更多规则。

创建允许规则

以下示例 az containerapp access-restriction set 命令创建一个规则来限制 IP 地址范围的入站访问。 必须先删除所有现有的拒绝规则,然后才能添加任何允许规则。

将以下示例中的值替换为你自己的值。

az containerapp ingress access-restriction set \
   --name <CONTAINER_APP_NAME> \
   --resource-group <RESOURCE_GROUP> \
   --rule-name "my allow rule" \
   --description "example of rule allowing access" \
   --ip-address 192.168.0.1/28 \
   --action Allow

可以使用不同的 --ip-address--rule-name 值重复该命令以添加更多允许规则。

创建拒绝规则

以下 az containerapp access-restriction set 命令示例创建一个访问规则以拒绝来自指定 IP 范围的入站流量。 必须先删除所有现有的允许规则,然后才能添加拒绝规则。

将以下示例中的占位符替换为你自己的值。

az containerapp ingress access-restriction set \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --rule-name "my deny rule" \
  --description "example of rule denying access" \
  --ip-address 192.168.0.100/28 \
  --action Deny

可以使用不同的 --ip-address--rule-name 值重复该命令以添加更多拒绝规则。 如果使用已存在的规则名称,则会更新现有规则。

更新规则

可以使用 az containerapp ingress access-restriction set 命令更新规则。 可以更改 IP 地址范围和规则说明,但无法更改规则名称或操作。

--action 参数是必需的,但你无法将操作从“允许”更改为“拒绝”,反之亦然。
如果省略 ---description 参数,则会删除说明。

以下示例更新 IP 地址范围。

az containerapp ingress access-restriction set \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --rule-name "my deny rule" \
  --ip-address 192.168.0.1/24 \
  --description "example of rule denying access" \
  --action Deny

删除访问限制

以下示例 az containerapp ingress access-restriction remove 命令删除规则。

az containerapp ingress access-restriction list
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --rule-name "<your rule name>"

列出访问限制

以下示例 az containerapp ingress access-restriction list 命令列出容器应用的 IP 限制规则。

az containerapp ingress access-restriction list
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP>

后续步骤