Usare i filtri di connessioni IP del servizio Device Provisioning in hub IoT di Azure

La sicurezza rappresenta un aspetto importante di ogni soluzione IoT. Talvolta è necessario specificare in modo esplicito gli indirizzi IP da cui possono connettersi i dispositivi come parte della configurazione di sicurezza. La funzionalità Filtro IP per il servizio Device Provisioning in hub IoT di Azure consente di configurare regole per rifiutare o accettare il traffico proveniente da specifici indirizzi IPv4.

Quando utilizzare

Esistono due casi d'uso specifici in cui è utile bloccare le connessioni a un endpoint del servizio Device Provisioning da specifici indirizzi IP:

  • Il servizio Device Provisioning deve ricevere il traffico solo da un intervallo di indirizzi IP specificato e rifiutare tutto il resto. Ad esempio, si usa il servizio Device Provisioning con Azure ExpressRoute per creare connessioni private tra un'istanza del servizio Device Provisioning e i dispositivi.

  • È necessario rifiutare il traffico proveniente da indirizzi IP identificati come sospetti dall'amministratore del servizio Device Provisioning.

Limitazioni delle regole di filtro IP

Si notino le limitazioni seguenti se è abilitato il filtro IP:

  • Potrebbe non essere possibile usare il portale di Azure per gestire le registrazioni. In questo caso, è possibile aggiungere l'indirizzo IP di uno o più computer alle registrazioni nell'istanza ipFilterRules del servizio Device Provisioning da tali computer con l'interfaccia della riga di comando di Azure, PowerShell o le API del servizio.

    Questo scenario è molto probabile quando si vuole usare il filtro IP per consentire l'accesso solo agli indirizzi IP selezionati. In questo caso, si configurano regole per abilitare determinati indirizzi o intervalli di indirizzi e una regola predefinita che blocca tutti gli altri indirizzi (0.0.0.0/0). Questa regola predefinita bloccherà portale di Azure di eseguire operazioni come la gestione delle registrazioni nell'istanza del servizio Device Provisioning. Per altre informazioni, vedere Valutazione delle regole di filtro IP più avanti in questo articolo.

Come vengono applicate le regole di filtro

Le regole del filtro IP vengono applicate a livello di istanza del servizio Device Provisioning. Le regole del filtro IP vengono quindi applicate a tutte le connessioni provenienti dai dispositivi e dalle app back-end con qualsiasi protocollo supportato.

Qualsiasi tentativo di connessione da un indirizzo IP corrispondente a una regola di rifiuto nell'istanza del servizio Device Provisioning riceve un codice di stato 401 e la descrizione. Il messaggio di risposta non indica la regola IP.

Importante

Il rifiuto di indirizzi IP può impedire l'interazione di altri servizi di Azure con l'istanza del servizio Device Provisioning.

Impostazione predefinita

Per impostazione predefinita, il filtro IP è disabilitato e l'accesso alla rete pubblica è impostato su Tutte le reti. Questa impostazione predefinita indica che il servizio Device Provisioning accetta connessioni da qualsiasi indirizzo IP o è conforme a una regola che accetta l'intervallo di indirizzi IP 0.0.0.0.0/0.

IoT DPS default IP filter settings.

Aggiungere una regola di filtro IP

Per aggiungere una regola di filtro IP:

  1. Vai al portale di Azure.

  2. Nel menu a sinistra o nella pagina del portale selezionare Tutte le risorse.

  3. Selezionare il servizio Device Provisioning.

  4. Nel menu Impostazioni a sinistra selezionare Rete.

  5. In Accesso alla rete pubblica selezionare Intervalli IP selezionati

  6. Selezionare + Aggiungi regola filtro IP.

    Add an IP filter rule to an IoT DPS.

  7. Compila i seguenti campi:

    Campo Description
    Nome Stringa alfanumerica univoca senza distinzione tra maiuscole e minuscole fino a 128 caratteri. Sono ammessi solo caratteri alfanumerici ASCII a 7 bit più {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
    Intervallo di indirizzi Un singolo indirizzo IPv4 o un blocco di indirizzi IP nella notazione CIDR. In notazione CIDR, ad esempio, 192.168.100.0/22 rappresenta gli indirizzi IPv4 1024 da 192.168.100.0 a 192.168.103.255.
    Azione Selezionare Consenti o Blocca.

    After selecting Add an IP Filter rule.

  8. Seleziona Salva. Verrà visualizzato un avviso che informa che l'aggiornamento è in corso.

    Notification about saving an IP filter rule.

    Nota

    + Aggiungi regola filtro IP è disabilitata quando si raggiunge il massimo di 100 regole di filtro IP.

Modificare una regola di filtro IP

Per modificare una regola esistente:

  1. Selezionare i dati delle regole di filtro IP da modificare.

    Edit an IP filter rule.

  2. Apportare la modifica.

  3. Seleziona Salva.

Eliminare una regola del filtro IP

Per eliminare una regola di filtro IP:

  1. Selezionare l'icona di eliminazione nella riga della regola IP da eliminare.

    Delete an IoT DPS IP filter rule.

  2. Seleziona Salva.

Valutazione delle regole del filtro IP

Le regole di filtro IP vengono applicate in ordine. La prima regola che corrisponde all'indirizzo IP determina l'azione accept o reject.

Se ad esempio si vogliono accettare gli indirizzi nell'intervallo 192.168.100.0/22 e rifiutare tutti gli altri, la prima regola nella griglia dovrà accettare l'intervallo di indirizzi 192.168.100.0/22. La regola successiva dovrà rifiutare tutti gli indirizzi usando l'intervallo 0.0.0.0/0.

Per modificare l'ordine delle regole di filtro IP:

  1. Selezionare la regola da spostare.

  2. Trascinare e rilasciare la regola nella posizione desiderata.

  3. Seleziona Salva.

Aggiornare le regole di filtro IP usando i modelli di Azure Resource Manager

È possibile aggiornare il filtro IP dps in due modi:

  1. Chiamare il metodo API REST della risorsa hub IoT. Per informazioni su come aggiornare le regole del filtro IP tramite REST, vedere IpFilterRule la sezione Definizioni del metodo Iot Hub Resource - Update.

  2. Usare i modelli di Azure Resource Manager. Per indicazioni su come usare i modelli di Resource Manager, vedere Modelli di Azure Resource Manager. Gli esempi seguenti illustrano come creare, modificare ed eliminare regole di filtro IP DPS con i modelli di Azure Resource Manager.

    Nota

    L'interfaccia della riga di comando di Azure e Azure PowerShell attualmente non supportano gli aggiornamenti delle regole del filtro IP DPS.

Aggiungere una regola di filtro IP

L'esempio di modello seguente crea una nuova regola di filtro denominata "AllowAll" che accetta tutto il traffico.

{
    "$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"
                    }
                ]
            }            
        }
    ]
}

Aggiornare gli attributi della regola di filtro IP del modello in base ai requisiti.

Attributo Descrizione
FilterName Specificare un nome per la regola di Filtro IP. Questo deve essere univoco e costituito da una stringa alfanumerica che non fa distinzione tra maiuscole e minuscole e ha una lunghezza massima di 128 caratteri. Sono ammessi solo caratteri alfanumerici ASCII a 7 bit più {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
Azione I valori accettati sono Accetta o Rifiuta come azione per la regola di filtro IP.
ipMask Specificare un singolo indirizzo IPv4 o un blocco di indirizzi IP in notazione CIDR. In notazione CIDR, ad esempio, 192.168.100.0/22 rappresenta gli indirizzi IPv4 1024 da 192.168.100.0 a 192.168.103.255.

Aggiornare una regola del filtro IP

L'esempio di modello seguente aggiorna la regola di filtro IP denominata "AllowAll", illustrata in precedenza, per rifiutare tutto il traffico.

{ 
    "$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" 
                    } 
                ] 
            }             
        } 
    ] 
}

Eliminare una regola del filtro IP

L'esempio di modello seguente elimina tutte le regole di filtro IP per l'istanza del servizio Device Provisioning.

{ 
    "$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": { 
            }             
        } 
    ] 
}

Passaggi successivi

Per esplorare ulteriormente la gestione del servizio Device Provisioning, vedere: