存取控制 清單建立和組態範例
本文提供如何建立和更新 存取控制 清單 (ACLS) 的範例。
ACL 建立流程概觀
建立與網路對網路互連 (NNI) 相關聯的 存取控制 列表 (ACL) 牽涉到下列步驟:
建立 Network Fabric 資源,並將 NNI 子資源新增至其中。
使用
az networkfabric acl create
命令建立輸入和輸出 ACL 資源。 您可以提供 ACL 的比對組態和預設動作。 您也可以提供內嵌或儲存在 Azure 記憶體帳戶 Blob 容器中的檔案中的動態比對組態。使用
az networkfabric nni update
命令以輸入和輸出 ACL 識別碼更新 NNI 資源。 您必須在 和--egress-acl-id
參數中--ingress-acl-id
提供有效的 ACL 資源識別碼。使用 命令布建
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。 這項限制是暫時性的,未來版本將會移除。 輸入和輸出 ACL 會在 NNI 資源之前建立,並在建立 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。 在此範例中,我們會指定資源群組、名稱、位置、網路網狀架構標識碼、外部網路標識碼和其他參數。 您也可以使用 --match
和 --action
參數來指定 ACL 規則的比對條件和動作。
此指令會建立名為 acl-ingress
的輸入 ACL,允許從任何來源到外部網路的 ICMP 流量:
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
使用 命令,以資源群組、名稱和網路網狀架構標識碼更新外部網路。 您也需要使用 --ingress-acl-id
和 --egress-acl-id
參數來指定輸入和輸出 ACL 識別碼。 例如,下列命令會更新名為 ext-net
的外部網路,以參考名為 acl-ingress
的輸入 ACL:
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
更多範例案例和命令
若要為 NNI 建立輸出 ACL,以拒絕 HTTP 和 HTTPS 以外的所有流量,您可以使用此命令:
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