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.
Lägga till en IP-filterregel
Så här lägger du till en IP-filterregel:
Gå till Azure-portalen.
På den vänstra menyn eller på portalsidan väljer du Alla resurser.
Välj enhetsetableringstjänsten.
I menyn Inställningar till vänster väljer du Nätverk.
Under Åtkomst till offentligt nätverk väljer du Valda IP-intervall
Välj + Lägg till IP-filterregel.
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. Välj Spara. Du bör se en avisering som meddelar dig att uppdateringen pågår.
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:
Välj de IP-filterregeldata som du vill ändra.
Gör ändringen.
Välj Spara.
Ta bort en IP-filterregel
Så här tar du bort en IP-filterregel:
Välj borttagningsikonen på raden i DEN IP-regel som du vill ta bort.
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:
Välj den regel som du vill flytta.
Dra och släpp regeln till önskad plats.
Välj Spara.
Uppdatera IP-filterregler med hjälp av Azure Resource Manager-mallar
Det finns två sätt att uppdatera DPS IP-filtret:
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.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: