你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
访问控制列表创建和配置示例
本文提供了有关如何创建和更新访问控制列表(ACLS)的示例。
ACL 创建流的概述
创建与网络到网络互连(NNI)关联的访问控制列表(ACL)涉及以下步骤:
创建 Network Fabric 资源并向其添加 NNI 子资源。
使用
az networkfabric acl create
命令创建入口和出口 ACL 资源。 可以为 ACL 提供匹配配置和默认操作。 还可以提供内联或存储在 Azure 存储帐户 Blob 容器中的文件中的动态匹配配置。使用
az networkfabric nni update
命令使用入口和出口 ACL ID 更新 NNI 资源。 需要在参数--egress-acl-id
中--ingress-acl-id
提供有效的 ACL 资源 ID。使用
az networkfabric fabric provision
命令预配 Network Fabric 资源。 这会生成 ACL 的基本配置和动态匹配配置,并将其发送到设备。
ACL 更新流的概述
使用上一部分所述创建
az networkfabric acl create
入口和出口 ACL 资源。使用
az networkfabric acl update
命令更新入口或出口 ACL。验证 ACL 的配置状态是否为
accepted
。验证构造的配置状态。
accepted
执行构造提交以更新 ACL。
示例命令
访问控制网络到网络互连上的列表
此示例演示如何创建包含两个 ACL 的 NNI - 一个用于入口,一个用于出口。
预配网络结构之前,必须应用 ACL。 此限制是暂时性的,将在将来的版本中删除。 在 NNI 资源之前创建入口和出口 ACL,并在创建 NNI 时引用,这也会触发 ACL 的创建。 在预配网络构造之前,必须完成此配置。
创建入口 ACL:示例命令
az networkfabric acl create \
--resource-group "example-rg"
--location "eastus2euap" \
--resource-name "example-Ipv4ingressACL" \
--configuration-type "Inline" \
--default-action "Permit" \
--dynamic-match-configurations "[{ipGroups:[{name:'example-ipGroup',ipAddressType:IPv4,ipPrefixes:['10.20.3.1/20']}],vlanGroups:[{name:'example-vlanGroup',vlans:['20-30']}],portGroups:[{name:'example-portGroup',ports:['100-200']}]}]" \
--match-configurations "[{matchConfigurationName:'example-match',sequenceNumber:123,ipAddressType:IPv4,matchConditions:[{etherTypes:['0x1'],fragments:['0xff00-0xffff'],ipLengths:['4094-9214'],ttlValues:[23],dscpMarkings:[32],portCondition:{flags:[established],portType:SourcePort,layer4Protocol:TCP,ports:['1-20']},protocolTypes:[TCP],vlanMatchCondition:{vlans:['20-30'],innerVlans:[30]},ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.20.20.20/12']}}],actions:[{type:Count,counterName:'example-counter'}]}]"
创建出口 ACL:示例命令
az networkfabric acl create \
--resource-group "example-rg" \
--location "eastus2euap" \
--resource-name "example-Ipv4egressACL" \
--configuration-type "File" \
--acls-url "https://ACL-Storage-URL" \
--default-action "Permit" \
--dynamic-match-configurations "[{ipGroups:[{name:'example-ipGroup',ipAddressType:IPv4,ipPrefixes:['10.20.3.1/20']}],vlanGroups:[{name:'example-vlanGroup',vlans:['20-30']}],portGroups:[{name:'example-portGroup',ports:['100-200']}]}]"
访问控制隔离域外部网络上的列表
az networkfabric acl create
使用命令为外部网络创建入口和出口 ACL。 在此示例中,我们指定资源组、名称、位置、网络结构 ID、外部网络 ID 和其他参数。 还可以使用 --match
和参数为 ACL 规则指定匹配条件和 --action
操作。
此命令创建一个名为 acl-ingress
允许从任何源到外部网络的 ICMP 流量的入口 ACL:
az networkfabric acl create \
--resource-group myResourceGroup \
--name acl-ingress \
--location eastus \
--network-fabric-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.NetworkFabric/networkFabrics/myNetworkFabric \
--external-network-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.NetworkFabric/externalNetworks/ext-net \
--match "ip protocol icmp" \
--action allow
使用 az networkfabric externalnetwork update
命令使用资源组、名称和网络结构 ID 更新外部网络。 还需要使用 --ingress-acl-id
和 --egress-acl-id
参数指定入口和出口 ACL ID。 例如,以下命令更新名为 ext-net
引用入口 ACL acl-ingress
的外部网络:
az networkfabric externalnetwork update \
--resource-group myResourceGroup \
--name ext-net \
--network-fabric-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.NetworkFabric/networkFabrics/myNetworkFabric \
--ingress-acl-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.NetworkFabric/acls/acl-ingress
更多示例方案和命令
若要为拒绝除 HTTP 和 HTTPS 以外的所有流量的 NNI 创建出口 ACL,可以使用以下命令:
az networkfabric acl create \
--name acl-egress \
--resource-group myResourceGroup \
--nni-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.NetworkFabric/networkInterfaces/myNni \
--match "ip protocol tcp destination port 80 or 443" \
--action allow \
--default-action deny
若要更新现有 ACL 以添加新的匹配条件和操作,可以使用以下命令:
az networkfabric acl update \
--name acl-ingress \
--resource-group myResourceGroup \
--match "ip protocol icmp" \
--action allow \
--append-match-configurations
若要列出资源组中的所有 ACL,可以使用以下命令:
az networkfabric acl list --resource-group myResourceGroup
若要显示特定 ACL 的详细信息,可以使用以下命令:
az networkfabric acl show \
--name acl-ingress \
--resource-group myResourceGroup
若要删除 ACL,可以使用以下命令:
az networkfabric acl delete \
--name acl-egress \
--resource-group myResourceGroup