Použití filtrů připojení IP pro Azure IoT DPS

Důležitým aspektem každého řešení IoT je zabezpečení. Někdy je potřeba v rámci konfigurace zabezpečení explicitně zadat IP adresy, ze kterých se smějí připojovat zařízení. Funkce filtru IP pro službu Azure IoT Hub DPS (Device Provisioning Service) umožňuje nakonfigurovat pravidla pro odmítnutí nebo přijetí přenosů z konkrétních IPv4 adres.

Vhodné použití služby

Existují dva konkrétní případy použití, kdy je dobré zablokovat připojení ke koncovému bodu DPS z určitých IP adres:

  • Vaše služba DPS by měla přijímat přenosy jenom ze zadaného rozsahu IP adres a všechny ostatní zamítnout. Používáte například službu DPS s Azure Express Route k vytvoření privátních připojení mezi instancí DPS a vašimi zařízeními.

  • Potřebujete zamítnout přenosy z IP adres, které správce DPS označil za podezřelé.

Omezení pravidel filtru IP adres

Pokud je povolené filtrování IP adres, mějte na paměti následující omezení:

  • Možná nebudete moct spravovat registrace pomocí webu Azure Portal. Pokud k tomu dojde, můžete do ipFilterRules instance DPS přidat IP adresu jednoho nebo více počítačů a spravovat registrace v instanci DPS pomocí Rozhraní příkazového řádku Azure, PowerShellu nebo rozhraní API služby.

    K tomuto scénáři pravděpodobně dojde, když chcete použít filtrování IP adres a povolit přístup pouze k vybraným IP adresům. V tomto případě nakonfigurujete pravidla tak, aby povolovali určité adresy nebo rozsahy adres a výchozí pravidlo, které blokuje všechny ostatní adresy (0.0.0.0/0). Toto výchozí pravidlo zablokuje provádění operací na webu Azure Portal, jako je správa registrací v instanci DPS. Další informace najdete v části Vyhodnocení pravidla filtru IP dále v tomto článku.

Způsob uplatňování pravidel filtru

Pravidla filtru IP adres se uplatňují na úrovni instance služby DPS. Tím pádem se pravidla filtru IP adres uplatňují na všechna připojení ze zařízení a back-endových aplikací přes kterýkoli podporovaný protokol.

Každý pokus o připojení z IP adresy, která ve vaší instanci služby DPS odpovídá pravidlu odmítnutí IP adresy, dostane odezvu s kódem a popisem stavu 401 Neautorizováno. Zpráva odpovědi neinformuje o pravidle IP adres.

Důležité

Zamítnutí určitých IP adres může zabránit jiným službám Azure v interakci s danou instancí služby DPS.

Výchozí nastavení

Filtrování IP adres je ve výchozím nastavení zakázané a přístup k veřejné síti je nastavený na Všechny sítě. Toto výchozí nastavení znamená, že služba DPS přijímá připojení z jakékoli IP adresy nebo odpovídá pravidlu, které přijímá rozsah IP adres 0.0.0.0/0.

IoT DPS default IP filter settings.

Přidání pravidla filtru IP adres

Přidání pravidla filtru IP adres:

  1. Přejděte na Azure Portal.

  2. V nabídce vlevo nebo na stránce portálu vyberte Všechny prostředky.

  3. Vyberte službu Device Provisioning.

  4. V nabídce Nastavení na levé straně vyberte Sítě.

  5. V části Přístup k veřejné síti vyberte Vybrané rozsahy IP adres.

  6. Vyberte + Přidat pravidlo filtru IP adres.

    Add an IP filter rule to an IoT DPS.

  7. Vyplňte následující pole:

    Pole Popis
    Name Jedinečný alfanumerický řetězec nerozlišující velká a malá písmena s délkou až 128 znaků. Přípustné jsou jenom 7bitové alfanumerické znaky ASCII a znaky {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
    Rozsah adres Jedna IPv4 adresa nebo blok IP adres v zápisu CIDR. Například adresa 192.168.100.0/22 v zápisu CIDR odpovídá 1024 IPv4 adresám od 192.168.100.0 do 192.168.103.255.
    Akce Vyberte Možnost Povolit nebo Blokovat.

    After selecting Add an IP Filter rule.

  8. Zvolte Uložit. Měla by se zobrazit výstraha s upozorněním, že aktualizace probíhá.

    Notification about saving an IP filter rule.

    Poznámka:

    + Přidat pravidlo filtru IP adres je zakázáno, když dosáhnete maximálního počtu 100 pravidel filtru IP adres.

Úprava pravidla filtru IP adres

Úprava existujícího pravidla:

  1. Vyberte data pravidla filtru IP adres, která chcete změnit.

    Edit an IP filter rule.

  2. Proveďte změnu.

  3. Zvolte Uložit.

Odstranění pravidla filtru IP adres

Odstranění pravidla filtru IP adres:

  1. Na řádku pravidla IP adresy, které chcete odstranit, vyberte ikonu odstranění.

    Delete an IoT DPS IP filter rule.

  2. Zvolte Uložit.

Vyhodnocení pravidel filtru IP adres

Pravidla filtru IP adres se použijí v pořadí. První pravidlo, které odpovídá IP adrese, určuje akci přijetí nebo odmítnutí.

Pokud například chcete přijmout adresy v rozsahu 192.168.100.0/22 a všechny ostatní odmítnout, první pravidlo v mřížce by mělo přijmout rozsah adres 192.168.100.0/22. Další pravidlo by mělo pomocí rozsahu 0.0.0.0/0 odmítnout všechny adresy.

Změna pořadí pravidel filtru IP adres:

  1. Vyberte pravidlo, které chcete přesunout.

  2. Přetáhněte pravidlo na požadované místo.

  3. Zvolte Uložit.

Aktualizace pravidel filtru IP adres pomocí šablon Azure Resource Manageru

Filtr IP adres DPS můžete aktualizovat dvěma způsoby:

  1. Volejte metodu REST API prostředku služby IoT Hub. Informace o tom, jak aktualizovat pravidla filtru IP adres pomocí REST, najdete IpFilterRule v částiDefinice prostředku iot Hubu – metoda update.

  2. Použijte šablony Azure Resource Manageru. Pokyny k používání šablon Resource Manageru najdete v šablonách Azure Resource Manageru. Následující příklady ukazují, jak vytvořit, upravit a odstranit pravidla filtru IP adres DPS pomocí šablon Azure Resource Manageru.

    Poznámka:

    Azure CLI a Azure PowerShell v současné době nepodporují aktualizace pravidel filtru IP adres DPS.

Přidání pravidla filtru IP adres

Následující příklad šablony vytvoří nové pravidlo filtru IP adres s názvem AllowAll, které přijímá všechny přenosy.

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

Aktualizujte atributy pravidla filtru IP adres této šablony podle svých požadavků.

Atribut Popis
FilterName Zadejte název pravidla filtru IP adres. Musí se jednat o jedinečný alfanumerický řetězec s délkou do 128 znaků, ve kterém se nerozlišují malá a velká písmena. Přípustné jsou jenom 7bitové alfanumerické znaky ASCII a znaky {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
Akce Akceptované hodnoty jsou Accept nebo Reject as the action for the IP filter rule.
ipMask Zadejte jednu IPv4 adresu nebo blok IP adres v zápisu CIDR. Například adresa 192.168.100.0/22 v zápisu CIDR odpovídá 1024 IPv4 adresám od 192.168.100.0 do 192.168.103.255.

Aktualizace pravidla filtru IP adres

Následující příklad šablony aktualizuje předchozí pravidlo filtru IP adres s názvem AllowAll tak, aby zamítlo veškeré přenosy.

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

Odstranění pravidla filtru IP adres

Následující příklad šablony odstraní všechna pravidla filtru IP adres pro danou instanci služby 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": { 
            }             
        } 
    ] 
}

Další kroky

Další informace o správě služby DPS najdete v těchto tématech: