为 Azure 事件网格主题或域配置 IP 防火墙
默认情况下,只要请求附带有效的身份验证和授权,就可以从 Internet 访问主题和域。 使用 IP 防火墙,可以将其进一步限制为采用 CIDR(无类域间路由)表示法的一组 IPv4 地址或一个 IPv4 地址。 来自任何其他 IP 地址的发布者都将被拒绝,并将收到 403(禁止)响应。 有关事件网格支持的网络安全功能的详细信息,请参阅事件网格的网络安全。
本文介绍如何为 Azure 事件网格主题或域配置 IP 防火墙设置。
使用 Azure 门户
本部分介绍如何在创建主题时或针对现有主题使用 Azure 门户启用公共或专用访问。 本部分中显示的步骤适用于主题。 可以使用类似的步骤为域启用公共或专用访问。
创建主题时
本部分介绍如何对事件网格主题或域启用公用或专用网络访问。 有关创建新主题的分步说明,请参阅创建自定义主题。
在“创建主题”向导的“基本信息”页上,填写必填字段后,选择页面底部的“下一步: 网络”。
如果要允许客户端通过公共 IP 地址连接到主题终结点,请保持选中“公共访问”选项。
可以通过指定“地址范围”字段的值来限制从特定 IP 地址访问主题。 用无类别的域间路由 (CIDR) 表示法指定单个 IPv4 地址或一系列 IP 地址。
若要允许通过专用终结点访问事件网格主题,请选择“专用访问”选项。
按照使用 Azure 门户添加专用终结点部分中的说明,创建专用终结点。
对于现有主题
在 Azure 门户中,导航到事件网格主题或域,并切换到“网络”选项卡。
选择“公用网络”将允许所有网络(包括 Internet)访问资源。
可以通过指定“地址范围”字段的值来限制从特定 IP 地址访问主题。 用无类别的域间路由 (CIDR) 表示法指定单个 IPv4 地址或一系列 IP 地址。
选择“仅专用终结点”将仅允许专用终结点连接访问此资源。 使用此页面上的“专用终结点连接”选项卡来管理连接。
有关创建专用终结点连接的分步说明,请参阅 使用 Azure 门户添加专用终结点。
在工具栏上选择“保存”。
使用 Azure CLI
本节说明如何使用 Azure CLI 命令创建具有入站 IP 规则的主题。 本部分中显示的步骤适用于主题。 你可以使用类似的步骤为域创建入站 IP 规则。
启用或禁用公用网络访问
默认情况下,将为主题和域启用公用网络访问。 也可以显式启用或禁用公用网络。 可以通过配置入站 IP 防火墙规则来限制流量。
创建主题时启用公用网络访问
az eventgrid topic create \
--resource-group $resourceGroupName \
--name $topicName \
--location $location \
--public-network-access enabled
创建主题时禁用公用网络访问
az eventgrid topic create \
--resource-group $resourceGroupName \
--name $topicName \
--location $location \
--public-network-access disabled
注意
如果为主题或域禁用了公用网络访问,则不允许通过公用 Internet 的流量。 仅允许专用终结点连接访问这些资源。
为现有主题启用公共网络访问
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access enabled
为现有主题禁用公共网络访问
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access disabled
创建包含单个入站 IP 规则的主题
下面的示例 CLI 命令可创建包含入站 IP 规则的事件网格主题。
az eventgrid topic create \
--resource-group $resourceGroupName \
--name $topicName \
--location $location \
--public-network-access enabled \
--inbound-ip-rules <IP ADDR or CIDR MASK> allow
创建包含多个入站 IP 规则的主题
下面的示例 CLI 命令可一步创建包含两个入站 IP 规则的事件网格主题:
az eventgrid topic create \
--resource-group $resourceGroupName \
--name $topicName \
--location $location \
--public-network-access enabled \
--inbound-ip-rules <IP ADDR 1 or CIDR MASK 1> allow \
--inbound-ip-rules <IP ADDR 2 or CIDR MASK 2> allow
更新现有主题以添加入站 IP 规则
此示例将首先创建一个事件网格主题,然后在单独的命令中为该主题添加入站 IP 规则。 还将更新在第二个命令中设置的入站 IP 规则。
# create the event grid topic first
az eventgrid topic create \
--resource-group $resourceGroupName \
--name $topicName \
--location $location
# add inbound IP rules to an existing topic
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access enabled \
--inbound-ip-rules <IP ADDR or CIDR MASK> allow
# later, update topic with additional ip rules
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access enabled \
--inbound-ip-rules <IP ADDR 1 or CIDR MASK 1> allow \
--inbound-ip-rules <IP ADDR 2 or CIDR MASK 2> allow
删除入站 IP 规则
以下命令将删除在上一步中创建的第二个规则,方法是在更新设置时仅指定第一个规则。
az eventgrid topic update \
--resource-group $resourceGroupName \
--name $topicName \
--public-network-access enabled \
--inbound-ip-rules <IP ADDR 1 or CIDR MASK 1> allow
使用 PowerShell
本节说明如何使用 Azure PowerShell 命令创建包含入站 IP 防火墙规则的 Azure 事件网格主题。 本部分中显示的步骤适用于主题。 你可以使用类似的步骤为域创建入站 IP 规则。
默认情况下,将为主题和域启用公用网络访问。 也可以显式启用或禁用公用网络。 可以通过配置入站 IP 防火墙规则来限制流量。
创建主题时启用公用网络访问
New-AzEventGridTopic -ResourceGroupName MyResourceGroupName -Name Topic1 -Location chinanorth -PublicNetworkAccess enabled
创建主题时禁用公用网络访问
New-AzEventGridTopic -ResourceGroupName MyResourceGroupName -Name Topic1 -Location chinanorth -PublicNetworkAccess disabled
注意
如果为主题或域禁用了公用网络访问,则不允许通过公用 Internet 的流量。 仅允许专用终结点连接访问这些资源。
创建具有公用网络访问和入站 IP 规则的主题
以下示例 CLI 命令可创建具有公用网络访问权限和入站 IP 规则的事件网格主题。
New-AzEventGridTopic -ResourceGroupName MyResourceGroupName -Name Topic1 -Location chinanorth -PublicNetworkAccess enabled -InboundIpRule @{ "10.0.0.0/8" = "Allow"; "10.2.0.0/8" = "Allow" }
更新具有公用网络访问和入站 IP 规则的现有主题
以下示例 CLI 命令会更新具有入站 IP 规则的现有事件网格主题。
Set-AzEventGridTopic -ResourceGroupName MyResourceGroupName -Name Topic1 -PublicNetworkAccess enabled -InboundIpRule @{ "10.0.0.0/8" = "Allow"; "10.2.0.0/8" = "Allow" } -Tag @{}
为现有主题禁用公共网络访问
Set-AzEventGridTopic -ResourceGroup MyResourceGroupName -Name Topic1 -PublicNetworkAccess disabled -Tag @{} -InboundIpRule @{}
后续步骤
- 有关监视事件传送的信息,请参阅监视事件网格消息传送。
- 有关身份验证密钥的详细信息,请参阅事件网格安全性和身份验证。
- 有关创建 Azure 事件网格订阅的详细信息,请参阅事件网格订阅架构。
- 若要排查网络连接问题,请参阅排查网络连接问题