Dela via


Använda IP-anslutningsfilter för Azure IoT DPS

Säkerheten är en viktig aspekt i alla IoT-lösningar. Ibland måste du uttryckligen ange de IP-adresser som enheter kan ansluta till som en del av din säkerhetskonfiguration. Med IP-filterfunktionen för Azure IoT Hub Device Provisioning Service (DPS) kan du konfigurera regler för att avvisa eller acceptera trafik från specifika IPv4-adresser.

Användningsområde för

Det finns två specifika scenarier då det kan vara bra att blockera anslutningar till en DPS-slutpunkt från särskilda IP-adresser:

  • DPS bör endast ta emot trafik från ett visst intervall med IP-adresser och avvisa allt annat. Du använder till exempel din DPS med Azure Express Route för att skapa privata anslutningar mellan en DPS-instans och dina enheter.

  • Du måste avvisa trafik från IP-adresser som har identifierats som misstänkta av DPS-administratören.

Begränsningar för IP-filterregler

Observera följande begränsningar om IP-filtrering är aktiverat:

  • Du kanske inte kan använda Azure-portalen för att hantera registreringar. Om detta inträffar kan du lägga till IP-adressen för en eller flera datorer till ipFilterRules och hantera registreringar i DPS-instansen från dessa datorer med Azure CLI, PowerShell eller tjänst-API:er.

    Det här scenariot inträffar troligen när du vill använda IP-filtrering för att endast tillåta åtkomst till valda IP-adresser. I det här fallet konfigurerar du regler för att aktivera vissa adresser eller adressintervall och en standardregel som blockerar alla andra adresser (0.0.0.0/0). Den här standardregeln blockerar Azure-portalen från att utföra åtgärder som att hantera registreringar på DPS-instansen. Mer information finns i Utvärdering av IP-filterregel senare i den här artikeln.

Så här tillämpas filterregler

IP-filterregler tillämpas på DPS-instansnivån. Det betyder att IP-filterreglerna tillämpas på alla anslutningar från enheter och backend-appar som använder ett protokoll som stöds.

Alla anslutningsförsök från en IP-adress som matchar en IP-regel som avvisar trafik på din DPS-instans får en 401-statuskod och tillhörande beskrivning (behörighet saknas). IP-regeln nämns inte i svarsmeddelandet.

Viktigt!

Om du avvisar IP-adresser kan detta förhindra att andra Azure-tjänster interagerar med DPS-instansen.

Standardinställning

Som standard är IP-filtrering inaktiverat och Åtkomst till offentligt nätverk är inställt på Alla nätverk. Den här standardinställningen innebär att din DPS accepterar anslutningar från en IP-adress eller följer en regel som accepterar IP-adressintervallet 0.0.0.0/0.

IoT DPS default IP filter settings.

Lägga till en IP-filterregel

Så här lägger du till en IP-filterregel:

  1. Gå till Azure-portalen.

  2. På den vänstra menyn eller på portalsidan väljer du Alla resurser.

  3. Välj enhetsetableringstjänsten.

  4. I menyn Inställningar till vänster väljer du Nätverk.

  5. Under Åtkomst till offentligt nätverk väljer du Valda IP-intervall

  6. Välj + Lägg till IP-filterregel.

    Add an IP filter rule to an IoT DPS.

  7. Fyll i följande fält:

    Fält Beskrivning
    Namn En unik, skiftlägeskänslig, alfanumerisk sträng på upp till 128 tecken lång. Du kan endast använda 7-bitars alfanumeriska ASCII-tecken samt {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
    Adressintervall En enda IPv4-adress eller ett block med IP-adresser i CIDR-notation. I CIDR-notation representerar exempelvis 192.168.100.0/22 de 1 024 IPv4-adresserna från 192.168.100.0 till 192.168.103.255.
    Åtgärd Välj antingen Tillåt eller Blockera.

    After selecting Add an IP Filter rule.

  8. Välj Spara. Du bör se en avisering som meddelar dig att uppdateringen pågår.

    Notification about saving an IP filter rule.

    Kommentar

    + Lägg till IP-filterregel inaktiveras när du når maximalt 100 IP-filterregler.

Redigera en IP-filterregel

Så här redigerar du en befintlig regel:

  1. Välj de IP-filterregeldata som du vill ändra.

    Edit an IP filter rule.

  2. Gör ändringen.

  3. Välj Spara.

Ta bort en IP-filterregel

Så här tar du bort en IP-filterregel:

  1. Välj borttagningsikonen på raden i DEN IP-regel som du vill ta bort.

    Delete an IoT DPS IP filter rule.

  2. Välj Spara.

Utvärdering av IP-filterregler

IP-filterregler tillämpas i ordning. Den första regeln som matchar IP-adressen avgör åtgärden acceptera eller avvisa.

Om du till exempel vill acceptera adresser i intervallet 192.168.100.0/22 och avvisa allt annat, bör den första regeln i tabellen acceptera adressintervallet 192.168.100.0/22. Nästa regel bör avvisa alla adresser genom att använda intervallet 0.0.0.0/0.

Så här ändrar du ordningen på dina IP-filterregler:

  1. Välj den regel som du vill flytta.

  2. Dra och släpp regeln till önskad plats.

  3. Välj Spara.

Uppdatera IP-filterregler med hjälp av Azure Resource Manager-mallar

Det finns två sätt att uppdatera DPS IP-filtret:

  1. Anropa IoT Hub Resource REST API-metoden. Information om hur du uppdaterar dina IP-filterregler med HJÄLP av REST IpFilterRule finns i avsnittet Definitioner i Iot Hub Resource - Update-metoden.

  2. Använd Azure Resource Manager-mallarna. Vägledning om hur du använder Resource Manager-mallar finns i Azure Resource Manager-mallar. Exemplen som följer visar hur du skapar, redigerar och tar bort DPS IP-filterregler med Azure Resource Manager-mallar.

    Kommentar

    Azure CLI och Azure PowerShell stöder för närvarande inte uppdateringar av DPS IP-filterregler.

Lägga till en IP-filterregel

I följande mallexempel skapas en ny IP-filterregel med namnet ”AllowAll” som accepterar all trafik.

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

Uppdatera mallens attribut för IP-filterregler baserat på dina krav.

Attribut Description
FilterName Ange ett namn för IP-filterregeln. Namnet måste vara en unik, skiftlägeskänslig, alfanumerisk sträng på upp till 128 tecken. Du kan endast använda 7-bitars alfanumeriska ASCII-tecken samt {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
Åtgärd Godkända värden är Acceptera eller Avvisa som åtgärd för IP-filterregeln.
ipMask Ange en enskild IPv4-adress eller ett block med IP-adresser i CIDR-notation. I CIDR-notation representerar exempelvis 192.168.100.0/22 de 1 024 IPv4-adresserna från 192.168.100.0 till 192.168.103.255.

Uppdatera en IP-filterregel

I följande mallexempel uppdateras IP-filterregeln med namnet ”AllowAll”, som du såg tidigare, så att all trafik avvisas.

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

Ta bort en IP-filterregel

I följande mallexempel tas alla IP-filterregler bort för DPS-instansen.

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

Nästa steg

Mer information om hur du hanterar DPS finns i: