Utilizar filtros de IP

A segurança é um aspeto importante de qualquer solução de IoT baseada no Hub IoT do Azure. Por vezes, como parte da sua configuração de segurança, tem de especificar explicitamente os endereços IP a partir dos quais os dispositivos se podem ligar. O recurso de filtro IP permite configurar regras para rejeitar ou aceitar tráfego de endereços IPv4 específicos.

Quando utilizar o

Use o filtro IP para receber tráfego somente de um intervalo especificado de endereços IP e rejeitar todo o resto. Por exemplo, você está usando seu hub IoT com o Azure Express Route para criar conexões privadas entre um hub IoT e sua infraestrutura local.

Definição predefinida

Para aceder à página de definições do Filtro IP do seu hub IoT, selecione Acesso público de rede>e, em seguida, selecione Intervalos de IP selecionados:

Screenshot showing how to set default IP filter settings.

Por padrão, a grade do Filtro IP no portal de um hub IoT está vazia. Essa configuração padrão significa que seu hub bloqueia conexões de todos os endereços IP. Essa configuração padrão é equivalente a uma regra que bloqueia o intervalo de 0.0.0.0/0 endereços IP.

Adicionar ou editar uma regra de filtro de IP

Para adicionar uma regra de filtro IP, selecione Adicionar Regra de Filtro IP. Para adicionar rapidamente o endereço IP do computador, selecione Adicionar o endereço IP do cliente.

Screenshot showing how to add an IP filter rule to an IoT hub.

Depois de selecionar Adicionar Regra de Filtro de IP, preencha os campos. Esses campos são pré-preenchidos para você se você selecionou para adicionar o endereço IP do cliente.

Screenshot that shows what to do after adding an IP filter rule.

  • Indique um nome para a regra de Filtro de IP. Esse nome deve ser uma cadeia alfanumérica exclusiva, sem diferenciação de maiúsculas e minúsculas, com até 128 caracteres. Somente os caracteres alfanuméricos ASCII de 7 bits mais os seguintes caracteres especiais são aceitos: - : . + % _ # * ? ! ( ) , = @ ; '.

  • Indique um endereço IPv4 individual ou um bloco de endereços IP em notação CIDR. Por exemplo, em notação CIDR, 192.168.100.0/22 representa os endereços IPv4 1024 de 192.168.100.0 a 192.168.103.255.

Depois de preencher os campos, selecione Guardar para guardar a regra. Pode ver um alerta que o notifica que a atualização está em curso.

Screenshot that shows notification about saving an IP filter rule.

A opção Adicionar é desativada quando você atinge o máximo de 100 regras de filtro IP.

Para editar uma regra existente, selecione os dados que pretende alterar, faça a alteração e selecione Guardar para guardar a edição.

Eliminar uma regra de filtro de IP

Para eliminar uma regra de filtro de IP, selecione o ícone de caixote do lixo nessa linha e selecione Guardar. A regra é removida e a alteração guardada.

Screenshot showing how to delete an IoT Hub IP filter rule.

Aplicar regras de filtro IP ao ponto de extremidade compatível com Hubs de Eventos interno

Para aplicar as regras de filtro IP ao ponto de extremidade compatível com Hubs de Eventos interno, marque a caixa ao lado de Aplicar filtros IP ao ponto de extremidade interno?, e selecione Salvar.

Screenshot showing the toggle for the built-in endpoint.

Nota

Esta opção não está disponível para hubs IoT gratuitos (F1). Para aplicar regras de filtro IP ao ponto de extremidade interno, use um hub IoT pago.

Ao habilitar essa opção, suas regras de filtro de IP são replicadas para o ponto de extremidade interno, para que apenas intervalos de IP confiáveis possam acessá-lo.

Se você desabilitar essa opção, o ponto de extremidade interno estará acessível a todos os endereços IP. Esse comportamento pode ser útil se você quiser ler a partir do ponto de extremidade com serviços com endereços IP de origem que podem mudar ao longo do tempo, como o Azure Stream Analytics.

Como são aplicadas as regras de filtro

As regras de filtro IP são aplicadas no nível de serviço do Hub IoT. Portanto, as regras de filtro IP se aplicam a todas as conexões de dispositivos e aplicativos back-end usando qualquer protocolo suportado. Além disso, você pode escolher se o ponto de extremidade compatível com Hubs de Eventos interno (não por meio da cadeia de conexão do Hub IoT) está vinculado a essas regras.

Qualquer tentativa de conexão de um endereço IP que não seja explicitamente permitida recebe um código de status 401 não autorizado e uma descrição. A mensagem da resposta não menciona a regra de IP. A rejeição de endereços IP pode impedir que outros serviços do Azure, como o Azure Stream Analytics, as Máquinas Virtuais do Azure ou o Explorador de Dispositivos no portal do Azure, interajam com o hub IoT.

Nota

Se você quiser usar o Azure Stream Analytics (ASA) para ler mensagens de um hub IoT com filtro IP habilitado, desabilite a opção Aplicar filtros IP ao ponto de extremidade interno e use o nome compatível com o hub de eventos e o ponto de extremidade do seu hub IoT para adicionar manualmente uma entrada de fluxo de Hubs de Eventos no ASA.

Ordenação

As regras de filtro IP são regras de permissão e aplicadas sem ordenação. Somente os endereços IP que você adicionar têm permissão para se conectar ao Hub IoT.

Por exemplo, se você quiser aceitar endereços no intervalo e rejeitar todo o resto, você só precisa adicionar uma regra na grade com intervalo 192.168.100.0/22 de endereços 192.168.100.0/22.

Portal do Azure

As regras de filtro IP também são aplicadas ao usar o Hub IoT por meio do portal do Azure. Isso ocorre porque as chamadas de API para o serviço Hub IoT são feitas diretamente usando seu navegador com suas credenciais, o que é consistente com outros serviços do Azure. Para acessar o Hub IoT usando o portal do Azure quando o filtro IP estiver habilitado, adicione o endereço IP do seu computador à lista de permissões.

Recuperar e atualizar filtros IP usando a CLI do Azure

Os filtros IP do Hub IoT podem ser recuperados e atualizados por meio da CLI do Azure.

Para recuperar os filtros IP atuais do seu Hub IoT, execute:

az resource show -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs

Isso retornará um objeto JSON onde seus filtros IP existentes estão listados sob a properties.networkRuleSets chave:

{
...
    "properties": {
        "networkRuleSets": {
            "defaultAction": "Deny",
            "applyToBuiltInEventHubEndpoint": true,
            "ipRules": [{
                    "filterName": "TrustedFactories",
                    "action": "Allow",
                    "ipMask": "1.2.3.4/5"
                },
                {
                    "filterName": "TrustedDevices",
                    "action": "Allow",
                    "ipMask": "1.1.1.1/1"
                }
            ]
        }
    }
}

Para adicionar um novo filtro IP para seu Hub IoT, execute:

az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --add properties.networkRuleSets.ipRules "{\"action\":\"Allow\",\"filterName\":\"TrustedIP\",\"ipMask\":\"192.168.0.1\"}"

Para remover um filtro IP existente no Hub IoT, execute:

az resource update -n <iothubName> -g <resourceGroupName> --resource-type Microsoft.Devices/IotHubs --add properties.networkRuleSets.ipRules <ipFilterIndexToRemove>

Aqui, <ipFilterIndexToRemove> deve corresponder à ordem dos filtros IP no seu Hub IoT's properties.networkRuleSets.ipRules.

Recuperar e atualizar filtros IP usando o Azure PowerShell

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Os filtros IP do Hub IoT podem ser recuperados e definidos por meio do Azure PowerShell.

# Get your IoT Hub resource using its name and its resource group name
$iothubResource = Get-AzResource -ResourceGroupName <resourceGroupNmae> -ResourceName <iotHubName> -ExpandProperties

# Access existing IP filter rules
$iothubResource.Properties.networkRuleSets.ipRules |% { Write-host $_ }

# Construct a new IP filter
$filter = @{'filterName'='TrustedIP'; 'action'='Allow'; 'ipMask'='192.168.0.1'}

# Add your new IP filter rule
$iothubResource.Properties.networkRuleSets.ipRules += $filter

# Remove an existing IP filter rule using its name, e.g., 'GoodIP'
$iothubResource.Properties.networkRuleSets.ipRules = @($iothubResource.Properties.networkRuleSets.ipRules | Where 'filterName' -ne 'GoodIP')

# Update your IoT Hub resource with your updated IP filters
$iothubResource | Set-AzResource -Force

Atualizar regras de filtro IP usando REST

Você também pode recuperar e modificar o filtro IP do Hub IoT usando o ponto de extremidade REST do Provedor de Recursos do Azure. Veja properties.networkRuleSets no método createorupdate.

Próximos passos

Para explorar melhor os recursos do Hub IoT, consulte: