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:
- Erstellen von Eingangs- und Ausgangs-ACLs für die NNI
- Aktualisieren Sie den Ressourcenverweis von Azure Resource Manager in einem Verwaltungs-NNI.
- 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
undvlanGroupNames
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
undipPrefixValues
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"
}