Utiliser les filtres de connexion IP d’instance IoT DPS Azure

La sécurité est un aspect important de toute solution IoT. Parfois, dans le cadre de votre configuration de sécurité, vous devez spécifier explicitement les adresses IP à partir desquelles les appareils peuvent se connecter. La fonctionnalité Filtre IP d’un service Azure IoT Hub Device Provisioning Service (DPS) vous permet de configurer des règles de rejet ou d’acceptation du trafic provenant de certaines adresses IPv4.

Quand utiliser

Il existe deux cas d’utilisation spécifiques dans lesquels il est utile de bloquer les connexions à un point de terminaison d’instance DPS à partir de certaines adresses IP :

  • Votre instance DPS doit recevoir le trafic uniquement d’une plage d’adresses IP spécifiée et refuser tout le reste. Par exemple, vous utilisez votre instance DPS avec Azure Express Route pour créer des connexions privées entre une instance DPS et vos appareils.

  • Vous devez refuser le trafic provenant d’adresses IP qui ont été identifiées comme suspectes par l’administrateur de l’instance DPS.

Limitations des règles de filtre IP

Notez les limitations suivantes si le filtrage IP est activé :

  • Vous ne pourrez peut-être pas utiliser le portail Azure pour gérer les inscriptions. Si cela se produit, vous pouvez ajouter l’adresse IP d’une ou plusieurs machines aux ipFilterRules et gérer les inscriptions dans l’instance DPS à partir de ces machines avec l’interface de ligne de commande Azure, PowerShell ou les API de service.

    Ce scénario est probablement le plus probable lorsque vous souhaitez utiliser le filtrage IP pour autoriser l’accès uniquement aux adresses IP sélectionnées. Dans ce cas, vous configurez des règles pour activer certaines adresses ou plages d’adresses et une règle par défaut qui bloque toutes les autres adresses (0.0.0.0/0). Cette règle par défaut empêche le portail Azure d’effectuer des opérations telles que la gestion des inscriptions sur l’instance DPS. Pour plus d’informations, consultez la section Évaluation des règles de filtrage IP plus loin dans cet article.

Application des règles de filtre

Les règles de filtre IP sont appliquées au niveau de l’instance DPS. Par conséquent, les règles de filtre IP s’appliquent à toutes les connexions issues des appareils et des applications principales utilisant n’importe quel protocole pris en charge.

Toute tentative de connexion à partir d’une adresse IP qui correspond à une règle IP de rejet dans votre instance DPS reçoit un code d’état 401 non autorisé et une description. Le message de réponse ne mentionne pas la règle IP.

Important

Le rejet d’adresses IP peut empêcher d’autres services Azure d’interagir avec l’instance DPS.

Paramètre par défaut

Par défaut, le filtrage IP est désactivé et Accès réseau public est défini sur Tous les réseaux. Ce paramètre par défaut signifie que votre DPS accepte les connexions à partir de n’importe quelle adresse IP ou qu’il est conforme à une règle qui accepte la plage d’adresses IP 0.0.0.0/0.

IoT DPS default IP filter settings.

Ajouter une règle de filtre IP

Pour ajouter une règle de filtre IP :

  1. Accédez au portail Azure.

  2. Dans le menu de gauche ou dans la page du portail, sélectionnez Toutes les ressources.

  3. Sélectionnez votre service Device Provisioning.

  4. Dans le menu Paramètres à gauche, sélectionnez Mise en réseau.

  5. Sous Accès réseau public, sélectionnez Plages d’adresses IP sélectionnées.

  6. Sélectionnez + Ajouter une règle de filtre IP.

    Add an IP filter rule to an IoT DPS.

  7. Renseignez les champs suivants :

    Champ Description
    Nom Chaîne alphanumérique unique qui ne respecte pas la casse et qui ne dépasse pas 128 caractères. Seuls les caractères alphanumériques ASCII 7 bits et {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} sont acceptés.
    Plage d’adresses Adresse IPv4 unique ou bloc d’adresses IP en notation CIDR. Par exemple, dans la notation CIDR, 192.168.100.0/22 représente les 1024 adresses IPv4 allant de 192.168.100.0 à 192.168.103.255.
    Action Sélectionnez Autoriser ou Bloquer.

    After selecting Add an IP Filter rule.

  8. Cliquez sur Enregistrer. Une alerte s’affiche vous informant que la mise à jour est en cours.

    Notification about saving an IP filter rule.

    Remarque

    L’option + Ajouter une règle de filtre IP est désactivée lorsque vous atteignez le nombre maximal de 100 règles de filtre IP.

Modifier une règle de filtre IP

Pour modifier une règle existante :

  1. Sélectionnez les données de la règle de filtre IP que vous souhaitez modifier.

    Edit an IP filter rule.

  2. Apportez la modification.

  3. Cliquez sur Enregistrer.

Suppression d’une règle de filtre IP

Pour supprimer une règle de filtre IP :

  1. Sélectionnez l’icône Supprimer sur la ligne de la règle d’adresse IP que vous souhaitez supprimer.

    Delete an IoT DPS IP filter rule.

  2. Cliquez sur Enregistrer.

Évaluation de règle de filtre IP

Les règles de filtre IP sont appliquées dans l’ordre. La première règle qui correspond à l’adresse IP détermine l’action accepter ou refuser.

Par exemple, si vous souhaitez accepter les adresses dans la plage 192.168.100.0/22 et rejeter tout le reste, la première règle de la grille doit accepter la plage d’adresses 192.168.100.0/22. La règle suivante doit rejeter toutes les adresses à l’aide de la plage 0.0.0.0/0.

Pour modifier l’ordre de vos règles de filtre IP :

  1. Sélectionnez la règle que vous souhaitez déplacer.

  2. Faites glisser la règle et déposez-la à l’emplacement souhaité.

  3. Cliquez sur Enregistrer.

Mettre à jour les règles de filtre IP à l’aide de modèles Azure Resource Manager

Vous pouvez mettre à jour votre filtre IP DPS de deux manières :

  1. Appelez la méthode de l’API REST de fournisseur de ressources IoT Hub. Pour savoir comment mettre à jour vos règles de filtre IP avec REST, consultez IpFilterRule dans la section Définitions de la méthode Fournisseur de ressources Iot Hub – Mise à jour.

  2. Utilisez les modèles Azure Resource Manager. Pour obtenir de l’aide sur l’utilisation des modèles Resource Manager, consultez Modèles Azure Resource Manager. Les exemples qui suivent vous montrent comment créer, modifier et supprimer des règles de filtre IP DPS à l’aide de modèles Azure Resource Manager.

    Remarque

    Azure CLI et Azure PowerShell ne prennent actuellement pas en charge les mises à jour des règles de filtre IP DPS.

Ajouter une règle de filtre IP

L’exemple de modèle suivant crée une règle de filtre IP appelée « AllowAll » qui accepte tout le trafic.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": {
        "iotDpsName": {
            "type": "string",
            "defaultValue": "[resourceGroup().name]",
            "minLength": 3,
            "metadata": {
                "description": "Specifies the name of the IoT DPS service."
            }
        }, 
        "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
                "description": "Location for Iot DPS resource."
            }
        }        
    }, 
    "variables": {
        "iotDpsApiVersion": "2020-01-01"
    }, 
    "resources": [
        {
            "type": "Microsoft.Devices/provisioningServices",
            "apiVersion": "[variables('iotDpsApiVersion')]",
            "name": "[parameters('iotDpsName')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "S1",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "IpFilterRules": [
                    {
                        "FilterName": "AllowAll",
                        "Action": "Accept",
                        "ipMask": "0.0.0.0/0"
                    }
                ]
            }            
        }
    ]
}

Modifiez les attributs de la règle de filtre IP du modèle selon vos besoins.

Attribut Description
FilterName Donnez un nom à la règle de filtre IP. Ce nom doit être une chaîne alphanumérique unique qui ne prend pas en compte la casse et qui ne dépasse pas 128 caractères. Seuls les caractères alphanumériques ASCII 7 bits et {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''} sont acceptés.
Action Les valeurs autorisées sont Accepter ou Refuser pour l’action de la règle de filtre IP.
ipMask Fournissez une adresse IPv4 unique ou un bloc d’adresses IP en notation CIDR. Par exemple, dans la notation CIDR, 192.168.100.0/22 représente les 1024 adresses IPv4 allant de 192.168.100.0 à 192.168.103.255.

Modifier une règle de filtre IP

L’exemple de modèle suivant met à jour la règle de filtre IP nommée « AllowAll », mentionnée précédemment, pour refuser tout le trafic.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
                "IpFilterRules": [ 
                    { 
                        "FilterName": "AllowAll", 
                        "Action": "Reject", 
                        "ipMask": "0.0.0.0/0" 
                    } 
                ] 
            }             
        } 
    ] 
}

Suppression d’une règle de filtre IP

L’exemple de modèle suivant supprime toutes les règles de filtre IP pour l’instance DPS.

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",  
    "contentVersion": "1.0.0.0",  
    "parameters": { 
        "iotDpsName": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().name]", 
            "minLength": 3, 
            "metadata": { 
                "description": "Specifies the name of the IoT DPS service." 
            } 
        },  
        "location": { 
            "type": "string", 
            "defaultValue": "[resourceGroup().location]", 
            "metadata": { 
                "description": "Location for Iot DPS resource." 
            } 
        }        
    },  
    "variables": { 
        "iotDpsApiVersion": "2020-01-01" 
    },  
    "resources": [ 
        { 
            "type": "Microsoft.Devices/provisioningServices", 
            "apiVersion": "[variables('iotDpsApiVersion')]", 
            "name": "[parameters('iotDpsName')]", 
            "location": "[parameters('location')]", 
            "sku": { 
                "name": "S1", 
                "tier": "Standard", 
                "capacity": 1 
            }, 
            "properties": { 
            }             
        } 
    ] 
}

Étapes suivantes

Pour aller plus loin dans la gestion d’une instance DPS, consultez :