この記事では、アクセス制御リスト (ACLS) を作成および更新する方法の例を示します。
ACL 作成フローの概要
ネットワーク間相互接続 (NNI) に関連付けられたアクセス制御リスト (ACL) の作成には、次の手順が含まれます。
Network Fabric リソースを作成し、それに NNI 子リソースを追加します。
az networkfabric acl createコマンドを使用して、イングレスおよびエグレス ACL リソースを作成します。 ACL の一致構成と既定のアクションを指定できます。 また、インラインまたは Azure ストレージ アカウント BLOB コンテナーに格納されているファイルに動的一致構成を指定することもできます。az networkfabric nni updateコマンドを使用して、イングレスおよびエグレス ACL ID で NNI リソースを更新します。--ingress-acl-idパラメーターと--egress-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 を更新します。
コマンドの例
ネットワーク間相互接続のアクセス制御リスト
この例では、2 つの ACL (1 つはイングレス用、1 つはエグレス用) を持つ NNI を作成する方法を示します。
NETWORK Fabric をプロビジョニングする前に、ACL を適用する必要があります。 この制限は一時的なものであり、今後のリリースで削除される予定です。 イングレス 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 とエグレス ACL を作成します。 この例では、リソース グループ、名前、場所、ネットワーク ファブリック ID、外部ネットワーク ID、およびその他のパラメーターを指定します。
--matchパラメーターと--action パラメーターを使用して、ACL ルールの一致条件とアクションを指定することもできます。
このコマンドは、任意のソースから外部ネットワークへの ICMP トラフィックを許可する、 acl-ingress という名前のイングレス 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 とエグレス ACL ID を指定する必要があります。 たとえば、次のコマンドは、 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
その他のシナリオとコマンドの例
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