Share via


アクセス制御リストの作成と構成の例

この記事では、アクセス制御リスト (ACLS) を作成および更新する方法の例を示します。

ACL 作成フローの概要

ネットワーク間相互接続 (NNI) に関連付けられたアクセス制御リスト (ACL) の作成には、次の手順が含まれます。

  • Network Fabric リソースを作成し、それに NNI 子リソースを追加します。

  • コマンドを使用して、イングレスおよびエグレス ACL リソースを az networkfabric acl create 作成します。 ACL の一致構成と既定のアクションを指定できます。 また、インラインまたは Azure ストレージ アカウント BLOB コンテナーに格納されているファイルに動的一致構成を指定することもできます。

  • コマンドを使用して az networkfabric nni update 、NNI リソースをイングレス ACL ID とエグレス ACL ID で更新します。 有効な ACL リソース ID をパラメーターに指定する--ingress-acl-id--egress-acl-id必要があります。

  • コマンドを使用して、Network Fabric リソースを az networkfabric fabric provision プロビジョニングします。 これにより、ACL の基本構成と動的一致構成が生成され、デバイスに送信されます。

ACL 更新フローの概要

  • 前のセクションで説明したように、 az networkfabric acl create イングレスおよびエグレス ACL リソースを作成します。

  • コマンドを使用して、イングレスまたはエグレス ACL を az networkfabric acl update 更新します。

  • 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、およびその他のパラメーターを指定します。 およびパラメーターを使用して、ACL ルールの一致条件と--actionアクションを--match指定することもできます。

このコマンドは、任意のソースから外部ネットワークへの 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 で外部ネットワークを更新します。 また、入力と送信の ACL ID とパラメーターを使用して指定する--ingress-acl-id--egress-acl-id必要があります。 たとえば、次のコマンドは、次の名前のイングレス ACL を参照するように名前付きのext-netacl-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