Créer des ACL sur une NNI dans Azure Operator Nexus
Dans Azure Operator Nexus, les listes de contrôle d’accès (ACL) pour les actions Permit
et Deny
au niveau de l’interconnexion réseau à réseau (NNI) permettent de protéger l’accès Secure Shell (SSH) sur le réseau privé virtuel de gestion (VPN). Vous créez des ACL d’entrée et de sortie avant la création de ressources NNI, puis référencez ces ACL dans la charge utile de la NNI. Vous devez créer des ACL d’entrée et de sortie référencées avant de provisionner l’infrastructure réseau.
Voici la procédure générale de création d’une ACL sur une NNI :
- Créez des ACL d’entrée et de sortie NNI.
- Mettez à jour la référence de ressource Azure Resource Manager dans une NNI de gestion.
- Créez une NNI et approvisionnez l’infrastructure réseau.
Conseils relatifs à l’utilisation des paramètres
Paramètre | Description | Exemple ou plage |
---|---|---|
defaultAction |
Action par défaut à entreprendre. Si vous ne le définissez pas, le trafic est autorisé. | "defaultAction": "Permit" |
resource-group |
Groupe de ressources de la structure réseau. | nfresourcegroup |
resource-name |
Nom de la liste ACL. | example-ingressACL |
vlanGroups |
Liste des groupes de réseau local virtuel (VLAN). | |
vlans |
Liste de réseaux locaux virtuels qui doivent être mis en correspondance. | |
match-configurations |
Nom de la configuration de correspondance. | example_acl . Les espaces et l’esperluette (&) ne sont pas pris en charge. |
matchConditions |
Conditions devant être mises en correspondance. | |
ttlValues |
Durée de vie (TTL). | 0 -255 |
dscpMarking |
Marquages Differentiated Services Code Point (DSCP) qui doivent être mis en correspondance. | 0 -63 |
portCondition |
Condition de port qui doit être mise en correspondance. | |
portType |
Type de port qui doit être mis en correspondance. | Exemple : SourcePort . Valeurs autorisées : DestinationPort , SourcePort . |
protocolTypes |
Protocoles qui doivent être mis en correspondance. | [tcp, udp, range[1-2, 1, 2]] . S’il s’agit d’un numéro de protocole, il doit se trouver dans la plage 1 -255 . |
vlanMatchCondition |
Condition de mise en correspondance de VLAN qui doit être mise en correspondance. | |
layer4Protocol |
Protocole de couche 4. | Doit être TCP ou UDP . |
ipCondition |
Condition IP qui doit être mise en correspondance. | |
actions |
Action à entreprendre en fonction d’une condition de correspondance. | Exemple : permit . |
configuration-type |
Type de configuration, qui peut être inline ou fichier. À ce stade, Azure Operator Nexus prend uniquement en charge inline. | Exemple : inline . |
Vous devez également connaître ces restrictions :
- Les ports inline et les réseaux locaux virtuels (VLAN) inline sont des moyens statiques de définir les ports ou les réseaux locaux virtuels (VLAN) à l’aide de
azcli
. portGroupNames
etvlanGroupNames
sont des méthodes dynamiques permettant de définir des ports et réseaux locaux virtuels (VLAN).- La combinaison des ports inline et de
portGroupNames
n’est pas autorisée. - La combinaison des réseaux locaux virtuels (VLAN) inline et de
vlanGroupNames
n’est pas autorisée. - La combinaison de
ipGroupNames
et deipPrefixValues
n’est pas autorisée. - Les ACL de sortie ne prennent pas en charge les options IP, la longueur IP, le fragment, EtherType, le marquage DSCP ou les valeurs TTL.
- Les ACL d’entrée ne prennent pas en charge les options EtherType.
Créer une ACL d’entrée
Pour créer une ACL d’entrée, vous pouvez utiliser la commande Azure CLI suivante. Cette commande crée une ACL d’entrée avec les configurations spécifiées et fournit le résultat attendu en tant que sortie. Ajustez les paramètres en fonction des besoins de votre cas d’usage.
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'}]}]"
Sortie attendue
{
"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"
}
}
Créer une ACL de sortie
Pour créer une ACL de sortie, vous pouvez utiliser la commande Azure CLI suivante. Cette commande crée une ACL de sortie avec les configurations spécifiées et fournit le résultat attendu en tant que sortie. Ajustez les paramètres en fonction des besoins de votre cas d’usage.
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']}]}]"
Sortie attendue
{
"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"
}
}
Mettre à jour la référence Resource Manager
Cette étape permet de créer des ACL (d’entrée et de sortie si une référence est fournie) lors de la création de la ressource NNI. Après avoir créé la NNI et avant d’approvisionner l’infrastructure réseau, vous pouvez effectuer un nouveau positionnement sur la NNI.
ingressAclId
: ID de référence pour l’ACL d’entrée.egressAclId
: ID de référence pour l’ACL de sortie.
Pour obtenir l’ID de ressource Resource Manager, accédez au groupe de ressources de l’abonnement que vous utilisez.
La commande suivante met à jour la référence Resource Manager pour la ressource NNI en l’associant aux ACL d’entrée et de sortie fournies. Ajustez les paramètres en fonction des besoins de votre cas d’usage.
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"
Afficher les détails de l’ACL
Pour afficher les détails d’une ACL spécifiée, utilisez la commande suivante :
az networkfabric acl show --resource-group "example-rg" --resource-name "example-acl"
Répertorier les ACL
Pour répertorier toutes les ACL au sein d’un groupe de ressources spécifié, utilisez la commande suivante :
az networkfabric acl list --resource-group "ResourceGroupName"
Créer des ACL sur le réseau externe ISD
Utilisez les informations suivantes pour créer des ACL d’entrée et de sortie pour le réseau externe de domaine d’isolation (ISD). Ensuite, mettez à jour la référence de ressource Resource Manager pour le réseau externe.
Créer une ACL de sortie pour le réseau externe ISD
Pour créer une ACL de sortie pour le réseau externe ISD spécifié avec la configuration fournie, utilisez la commande suivante. Ajustez les paramètres en fonction des besoins de votre cas d’usage.
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}]}]"
Sortie attendue
Une fois l’exécution réussie, la commande retourne des informations sur la liste ACL créée au format suivant. Cette sortie comprend des détails sur la configuration et l’état.
{
"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"
}
Créer une ACL d’entrée pour le réseau externe ISD
Pour créer une ACL d’entrée pour le réseau externe ISD spécifié avec la configuration fournie, utilisez la commande suivante. Ajustez les paramètres en fonction des besoins de votre cas d’usage.
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}]}]"
Sortie attendue
Une fois l’exécution réussie, la commande retourne des informations sur la liste ACL créée au format suivant. Cette sortie comprend des détails sur la configuration et l’état.
{
"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"
}