Share via


存取控制 清單建立和組態範例

本文提供如何建立和更新 存取控制 清單 (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