Share via


Erstellen von ACLs auf einem NNI in Azure Operator Nexus

In Azure Operator Nexus helfen Zugriffssteuerungslisten (Access Control Lists, ACLs) für Permit- und Deny-Aktionen auf einer Netzwerk-zu-Netzwerk-Verbindungsebene (NNI) zum Schutz des Zugriffs auf Secure Shell (SSH) im virtuellen privaten Verwaltungsnetzwerk (VPN). Sie erstellen Eingangs- und Ausgangs-ACLs vor der Erstellung von NNI-Ressourcen und verweisen dann in der NNI-Nutzlast auf diese ACLs. Sie müssen referenzierte Eingangs- und Ausgangs-ACLs erstellen, bevor Sie die Netzwerk-Fabric bereitstellen.

Dies sind die allgemeinen Schritte zum Erstellen einer ACL auf einem NNI:

  1. Erstellen von Eingangs- und Ausgangs-ACLs für die NNI
  2. Aktualisieren Sie den Ressourcenverweis von Azure Resource Manager in einem Verwaltungs-NNI.
  3. Erstellen Sie eine NNI, und stellen Sie das Netzwerk-Fabric bereit.

Leitfaden zur Parameterverwendung

Parameter Beschreibung Beispiel oder Bereich
defaultAction Die auszuführende Standardaktion. Wenn Sie sie nicht definieren, ist der Datenverkehr zulässig. "defaultAction": "Permit"
resource-group Ressourcengruppe des Netzwerk-Fabric nfresourcegroup
resource-name Name der ACL example-ingressACL
vlanGroups Liste der virtuellen lokalen Netzwerkgruppen (Virtual Local Area Network, VLAN).
vlans Liste der VLANs, die abgeglichen werden müssen
match-configurations Name der Abgleichskonfiguration. example_acl. Leerzeichen und das kaufmännische Und-Zeichen (&) werden nicht unterstützt.
matchConditions Bedingungen, die abgeglichen werden müssen
ttlValues Gültigkeitsdauer (TTL): 0-255
dscpMarking DSCP-Markierungen (Differentiated Services Code Point), die abgeglichen werden müssen. 0-63
portCondition Portbedingung, die abgeglichen werden muss
portType Porttyp, der abgeglichen werden muss Beispiel: SourcePort. Zulässige Werte: DestinationPort, SourcePort.
protocolTypes Protokolle, die abgeglichen werden müssen [tcp, udp, range[1-2, 1, 2]]. Bei einer Protokollnummer sollte der Wert im Bereich von 1-255 liegen.
vlanMatchCondition VLAN-Vergleichsbedingung, die abgeglichen werden muss
layer4Protocol Layer-4-Protokoll Muss entweder TCP oder UDP sein.
ipCondition IP-Bedingung, die abgeglichen werden muss
actions Aktion, die basierend auf der Vergleichsbedingung ausgeführt werden soll. Beispiel: permit.
configuration-type Der Konfigurationstyp kann inline oder eine Datei sein. Derzeit unterstützt Azure Operator Nexus nur inline. Beispiel: inline.

Beachten Sie auch diese Einschränkungen:

  • Inlineports und Inline-VLANs sind eine statische Methode zum Definieren der Ports oder VLANs mithilfe von azcli.
  • portGroupNames und vlanGroupNames sind dynamische Methoden zum Definieren von Ports und VLANs.
  • Inlineports und portGroupNames können nicht zusammen verwendet werden.
  • Inline-VLANs und vlanGroupNames können nicht zusammen verwendet werden.
  • ipGroupNames und ipPrefixValues können nicht zusammen verwendet werden.
  • Von Ausgangs-ACLs werden IP-Optionen, IP-Länge, Fragment, EtherType, DSCP-Kennzeichnung oder TTL-Werte nicht unterstützt.
  • Eingangs-ACLs unterstützen keine EtherType-Optionen.

Erstellen einer Eingangs-ACL

Sie können den folgenden Befehl der Azure CLI verwenden, um eine Eingangs-ACL zu erstellen. Dieser Befehl erstellt eine Eingangs-ACL mit den angegebenen Konfigurationen und stellt das erwartete Ergebnis als Ausgabe bereit. Passen Sie die Parameter nach Bedarf für Ihren Anwendungsfall an.

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'}]}]"

Erwartete Ausgabe

{
    "properties": {
        "lastSyncedTime": "2023-06-17T08:56:23.203Z",
        "configurationState": "Succeeded",
        "provisioningState": "Accepted",
        "administrativeState": "Enabled",
        "annotation": "annotation",
        "configurationType": "File",
        "aclsUrl": "https://ACL-Storage-URL",
        "matchConfigurations": [{
            "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",
                    "l4Protocol": "TCP",
                    "ports": ["1-20"],
                    "portGroupNames": ["example-portGroup"]
                },
                "protocolTypes": ["TCP"],
                "vlanMatchCondition": {
                    "vlans": ["20-30"],
                    "innerVlans": [30],
                    "vlanGroupNames": ["example-vlanGroup"]
                },
                "ipCondition": {
                    "type": "SourceIP",
                    "prefixType": "Prefix",
                    "ipPrefixValues": ["10.20.20.20/12"],
                    "ipGroupNames": ["example-ipGroup"]
                }
            }]
        }],
        "actions": [{
            "type": "Count",
            "counterName": "example-counter"
        }]
    },
    "tags": {
        "keyID": "KeyValue"
    },
    "location": "eastUs",
    "id": "/subscriptions/xxxxxx/resourceGroups/resourcegroupname/providers/Microsoft.ManagedNetworkFabric/accessControlLists/acl",
    "name": "example-Ipv4ingressACL",
    "type": "microsoft.managednetworkfabric/accessControlLists",
    "systemData": {
        "createdBy": "email@address.com",
        "createdByType": "User",
        "createdAt": "2023-06-09T04:51:41.251Z",
        "lastModifiedBy": "UserId",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2023-06-09T04:51:41.251Z"
    }
}

Erstellen einer Ausgangs-ACL

Sie können den folgenden Befehl der Azure CLI verwenden, um eine Ausgangs-ACL zu erstellen. Dieser Befehl erstellt eine Ausgangs-ACL mit den angegebenen Konfigurationen und stellt das erwartete Ergebnis als Ausgabe bereit. Passen Sie die Parameter nach Bedarf für Ihren Anwendungsfall an.

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']}]}]"

Erwartete Ausgabe

{
    "properties": {
        "lastSyncedTime": "2023-06-17T08:56:23.203Z",
        "configurationState": "Succeeded",
        "provisioningState": "Accepted",
        "administrativeState": "Enabled",
        "annotation": "annotation",
        "configurationType": "File",
        "aclsUrl": "https://ACL-Storage-URL",
        "dynamicMatchConfigurations": [{
            "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"]
            }]
        }]
    },
    "tags": {
        "keyID": "KeyValue"
    },
    "location": "eastUs",
    "id": "/subscriptions/xxxxxx/resourceGroups/resourcegroupname/providers/Microsoft.ManagedNetworkFabric/accessControlLists/acl",
    "name": "example-Ipv4egressACL",
    "type": "microsoft.managednetworkfabric/accessControlLists",
    "systemData": {
        "createdBy": "email@address.com",
        "createdByType": "User",
        "createdAt": "2023-06-09T04:51:41.251Z",
        "lastModifiedBy": "UserId",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2023-06-09T04:51:41.251Z"
    }
}

Aktualisieren der Ressourcen-Manager-Referenz

Dieser Schritt ermöglicht die Erstellung von ACLs (Eingangs- und Ausgangs-ACLs bei Angabe eines Verweises) während der Erstellung der NNI-Ressource. Nachdem Sie den NNI erstellt haben und bevor Sie die Netzwerk-Fabric bereitstellen, können Sie den NNI erneut einfügen.

  • ingressAclId: Verweis-ID für Eingangs-ACL.
  • egressAclId: Verweis-ID für Ausgangs-ACL.

Um die Ressourcen-Manager-Ressourcen-ID abzurufen, wechseln Sie zur Ressourcengruppe des Abonnements, das Sie verwenden.

Mit folgendem Befehl wird der Ressourcen-Manager-Verweis für die NNI-Ressource aktualisiert, indem er den bereitgestellten Eingangs- und Ausgangs-ACLs zugeordnet wird. Passen Sie die Parameter nach Bedarf für Ihren Anwendungsfall an.

az networkfabric nni create
--resource-group "example-rg"
--fabric "example-fabric"
--resource-name "example-nniwithACL"
--nni-type "CE"
--is-management-type "True"
--use-option-b "True"
--layer2-configuration "{interfaces:['/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkDevices/example-networkDevice/networkInterfaces/example-interface'],mtu:1500}"
--option-b-layer3-configuration "{peerASN:28,vlanId:501,primaryIpv4Prefix:'10.18.0.124/30',secondaryIpv4Prefix:'10.18.0.128/30',primaryIpv6Prefix:'10:2:0:124::400/127',secondaryIpv6Prefix:'10:2:0:124::402/127'}"
--ingress-acl-id "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accesscontrollists/example-Ipv4ingressACL"
--egress-acl-id "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accesscontrollists/example-Ipv4egressACL"

Anzeigen von ACL-Details

Um die Details einer angegebenen Zugriffssteuerungsliste anzuzeigen, verwenden Sie den folgenden Befehl:

az networkfabric acl show --resource-group "example-rg" --resource-name "example-acl"

Auflisten von ACLs

Verwenden Sie den folgenden Befehl, um alle ACLs in einer bestimmten Ressourcengruppe aufzulisten:

az networkfabric acl list --resource-group "ResourceGroupName"

Erstellen von ACLs für ein externes Netzwerk mit Isolationsdomänen

Verwenden Sie die folgenden Informationen, um Eingangs- und Ausgangs-ACLs für das externe Isolationsdomänennetzwerk zu erstellen. Aktualisieren Sie dann den Ressourcen-Manager-Ressourcenverweis für das externe Netzwerk.

Erstellen einer Ausgangs-ACL für ein externes Netzwerk mit Isolationsdomänen

Um eine Ausgangs-ACL für das angegebene externe Isolationsdomänennetzwerk mit der bereitgestellten Konfiguration zu erstellen, verwenden Sie den folgenden Befehl. Passen Sie die Parameter nach Bedarf für Ihren Anwendungsfall an.

az networkfabric acl create
--resource-group "example-rg"
--location "eastus2euap"
--resource-name "example-Ipv4egressACL"
--annotation "annotation"
--configuration-type "Inline"
--default-action "Deny"
--match-configurations "[{matchConfigurationName:'L3ISD_EXT_OPTA_EGRESS_ACL_IPV4_CE_PE',sequenceNumber:1110,ipAddressType:IPv4,matchConditions:[{ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}},{ipCondition:{type:DestinationIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}}],actions:[{type:Count}]}]"

Erwartete Ausgabe

Nach erfolgreicher Ausführung gibt der Befehl Informationen zur erstellten ACL im folgenden Format zurück. Diese Ausgabe enthält Details zur Konfiguration und zum Zustand.

{
    "administrativeState": "Disabled",
    "annotation": "annotation",
    "configurationState": "Succeeded",
    "configurationType": "Inline",
    "defaultAction": "Deny",
    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accessControlLists/example-Ipv4egressACL",
    "location": "eastus2euap",
    "matchConfigurations": [
        {
            "actions": [
                {
                    "type": "Count"
                }
            ],
            "ipAddressType": "IPv4",
            "matchConditions": [
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "SourceIP"
                    }
                },
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "DestinationIP"
                    }
                }
            ],
            "matchConfigurationName": "L3ISD_EXT_OPTA_EGRESS_ACL_IPV4_CE_PE",
            "sequenceNumber": 1110
        }
    ],
    "name": "example-Ipv4egressACL",
    "provisioningState": "Succeeded",
    "resourceGroup": "example-rg",
    "systemData": {
        "createdAt": "2023-09-11T10:20:20.2617941Z",
        "createdBy": "email@address.com",
        "createdByType": "User",
        "lastModifiedAt": "2023-09-11T10:20:20.2617941Z",
        "lastModifiedBy": "email@address.com",
        "lastModifiedByType": "User"
    },
    "type": "microsoft.managednetworkfabric/accesscontrollists"
}

Erstellen einer Eingangs-ACL für ein externes Netzwerk mit Isolationsdomänen

Um eine Eingangs-ACL für das angegebene externe Isolationsdomänennetzwerk mit der bereitgestellten Konfiguration zu erstellen, verwenden Sie den folgenden Befehl. Passen Sie die Parameter nach Bedarf für Ihren Anwendungsfall an.

az networkfabric acl create
--resource-group "example-rg"
--location "eastus2euap"
--resource-name "example-Ipv4ingressACL"
--annotation "annotation"
--configuration-type "Inline"
--default-action "Deny"
--match-configurations "[{matchConfigurationName:'L3ISD_EXT_OPTA_INGRESS_ACL_IPV4_CE_PE',sequenceNumber:1110,ipAddressType:IPv4,matchConditions:[{ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}},{ipCondition:{type:DestinationIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}}],actions:[{type:Count}]}]"

Erwartete Ausgabe

Nach erfolgreicher Ausführung gibt der Befehl Informationen zur erstellten ACL im folgenden Format zurück. Diese Ausgabe enthält Details zur Konfiguration und zum Zustand.

{
    "administrativeState": "Disabled",
    "annotation": "annotation",
    "configurationState": "Succeeded",
    "configurationType": "Inline",
    "defaultAction": "Deny",
    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accessControlLists/example-Ipv4ingressACL",
    "location": "eastus2euap",
    "matchConfigurations": [
        {
            "actions": [
                {
                    "type": "Count"
                }
            ],
            "ipAddressType": "IPv4",
            "matchConditions": [
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "SourceIP"
                    }
                },
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "DestinationIP"
                    }
                }
            ],
            "matchConfigurationName": "L3ISD_EXT_OPTA_INGRESS_ACL_IPV4_CE_PE",
            "sequenceNumber": 1110
        }
    ],
    "name": "example-Ipv4ingressACL",
    "provisioningState": "Succeeded",
    "resourceGroup": "example-rg",
    "systemData": {
        "createdAt": "2023-09-11T10:20:20.2617941Z",
        "createdBy": "email@address.com",
        "createdByType": "User",
        "lastModifiedAt": "2023-09-11T10:27:27.2317467Z",
        "lastModifiedBy": "email@address.com",
        "lastModifiedByType": "User"
    },
    "type": "microsoft.managednetworkfabric/accesscontrollists"
}