Compartilhar via


Usar filtros de conexão de IP do DPS em IoT do Azure

A segurança é um aspecto importante de qualquer solução de IoT. Às vezes você precisa especificar explicitamente os endereços IP dos quais o dispositivo pode se conectar como parte da sua configuração de segurança. O recurso Filtro de IP de um DPS (Serviço de Provisionamento de Dispositivos) no Hub IoT do Azure permite que você configure regras para rejeitar ou aceitar o tráfego de endereços IPv4 específicos.

Quando usar

Há dois casos de uso específicos em que é útil bloquear as conexões com um ponto de extremidade de DPS de determinados endereços IP:

  • Seu DPS deve receber tráfego somente de um intervalo especificado de endereços IP e rejeitar todos os outros. Por exemplo, você está usando o DPS com o Azure ExpressRoute para criar conexões privadas entre uma instância do DPS e seus dispositivos.

  • Você precisa rejeitar o tráfego dos endereços IP que foram identificados como suspeitos pelo administrador do DPS.

Limitações de regras de filtro de IP

Observe as seguintes limitações se a filtragem de IP estiver habilitada:

  • Talvez você não consiga usar o portal do Azure para gerenciar registros. Se isso ocorrer, você poderá adicionar o endereço IP de um ou mais computadores ao ipFilterRules e gerenciar registros na instância do DPS desses computadores com a CLI do Azure, o PowerShell ou as APIs de serviço.

    Esse cenário provavelmente ocorrerá quando você quiser usar a filtragem de IP para permitir o acesso somente a endereços IP selecionados. Nesse caso, você configura regras para habilitar determinados endereços ou intervalos de endereços e uma regra padrão que bloqueia todos os outros endereços (0.0.0.0/0). Essa regra padrão impedirá o portal do Azure de executar operações como o gerenciamento de registros na instância do DPS. Para obter mais informações, consulte a seção Avaliação da regra do filtro de IP neste artigo.

Como são aplicadas as regras de filtro

As regras de filtro de IP são aplicadas no nível da instância do DPS. Portanto, as regras de filtro IP se aplicam a todas as conexões de dispositivos e aplicativos de back-end que usam qualquer protocolo com suporte.

Todas as tentativas de conexão de um endereço IP que correspondem a uma regra de rejeição de IP na instância do DPS recebem um código de status 401 não autorizado e uma descrição. A mensagem de resposta não menciona a regra IP.

Importante

A rejeição de endereços IP pode impedir que outros Serviços do Azure interajam com a instância do DPS.

Configuração padrão

Por padrão, a filtragem de IP está desabilitada e o acesso à rede pública está definido como Todas as redes. Essa configuração padrão significa que seu DPS aceita conexões de qualquer endereço IP ou está em conformidade com uma regra que aceita o intervalo de endereços IP 0.0.0.0/0.

IoT DPS default IP filter settings.

Adicionar uma regra de filtro de IP

Para adicionar uma regra de filtro de IP:

  1. Acesse o portal do Azure.

  2. No menu à esquerda ou na página do portal, selecione Todos os recursos.

  3. Selecione o seu Serviço de Provisionamento de Dispositivos.

  4. No menu Configurações no lado esquerdo, selecione Rede.

  5. Em acesso à rede pública selecioneIntervalos IP selecionados

  6. Selecione + Adicionar uma Regra de Filtro de IP.

    Add an IP filter rule to an IoT DPS.

  7. Preencha os campos a seguir:

    Campo Descrição
    Nome Uma cadeia exclusiva de caracteres alfanuméricos, que não diferencia maiúsculas de minúsculas, de até 128 caracteres. Somente são aceitos caracteres alfanuméricos ASCII de 7 bits mais {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
    Intervalo de endereços Um endereço IPv4 único ou um bloco de endereços IP na notação CIDR. Por exemplo, uma notação CIDR 192.168.100.0/22 representa os 1024 endereços IPv4 de 192.168.100.0 a 192.168.103.255.
    Ação Selecione Permitir ou Bloquear.

    After selecting Add an IP Filter rule.

  8. Selecione Salvar. Você deve ver um alerta informando que a atualização está em andamento.

    Notification about saving an IP filter rule.

    Observação

    + Adicionar regra de filtro IP é desabilitada quando você atinge o máximo de 100 regras de filtro IP.

Editar uma regra de filtro de IP

Editar uma regra existente:

  1. Selecione os dados da regra de filtro IP que você deseja alterar.

    Edit an IP filter rule.

  2. Faça a alteração.

  3. Selecione Salvar.

Excluir uma regra de filtro IP

Para excluir uma regra de filtro IP:

  1. Selecione o ícone excluir na linha da regra de IP que você deseja excluir.

    Delete an IoT DPS IP filter rule.

  2. Selecione Salvar.

Avaliação da regra de filtro IP

As regras de filtro IP são aplicadas na ordem. A primeira regra que corresponde ao endereço IP determina a ação de aceitar ou rejeitar.

Por exemplo, se você quiser aceitar endereços no intervalo 192.168.100.0/22 e rejeitar todo o resto, a primeira regra na grade deverá aceitar o intervalo de endereços 192.168.100.0/22. A próxima regra deve rejeitar todos os endereços usando o intervalo 0.0.0.0/0.

Para alterar a ordem das regras de filtro de IP:

  1. Selecione a regra que você deseja mover.

  2. Arraste e solte a regra para o local desejado.

  3. Selecione Salvar.

Atualizar regras de filtro IP usando modelos de Azure Resource Manager

Há duas maneiras de atualizar seu filtro IP de DPS:

  1. Chame o método da API REST do recurso do Hub IoT. Para saber como atualizar suas regras de filtro IP usando o REST, consulte IpFilterRule na seção Definições do método de atualização de recursos do Hub IOT.

  2. Use o modelo do Azure Resource Manager. Para obter as diretrizes de como usar os modelos do Resource Manager, consulte modelos do Azure Resource Manager. Os exemplos a seguir mostram como criar, editar e excluir regras de filtro IP de DPS com modelos de Azure Resource Manager.

    Observação

    CLI do Azure e Azure PowerShell atualmente não dão suporte a atualizações de regras de filtro IP de DPS.

Adicionar uma regra de filtro de IP

O exemplo de modelo a seguir cria uma regra de filtro de IP chamada "AllowAll" que aceita todo o tráfego.

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

Atualize os atributos da regra de filtro de IP do modelo com base nos seus requisitos.

Atributo Descrição
FilterName Forneça um nome para a regra de filtro de IP. O nome deve ser uma cadeia exclusiva de caracteres alfanuméricos, que não diferencia maiúsculas de minúsculas, de até 128 caracteres. Somente são aceitos caracteres alfanuméricos ASCII de 7 bits mais {'-', ':', '/', '\', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '''}.
Ação Os valores aceitos são Accept ou Reject como a ação para a regra de filtro de IP.
ipMask Forneça um endereço IPv4 único ou um bloco de endereços IP na notação CIDR. Por exemplo, uma notação CIDR 192.168.100.0/22 representa os 1024 endereços IPv4 de 192.168.100.0 a 192.168.103.255.

Atualizar uma regra de filtro de IP

O exemplo de modelo a seguir atualiza a regra de filtro de IP chamada "AllowAll", já mostrada, para rejeitar todo o tráfego.

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

Excluir uma regra de filtro IP

O exemplo de modelo a seguir exclui todas as regras de filtro de IP da instância do 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": { 
            }             
        } 
    ] 
}

Próximas etapas

Para explorar melhor o DPS de gerenciamento, confira: