Hub IoT do Azure suporte do Serviço de Provisionamento de Dispositivos (DPS) para redes virtuais

Este artigo introduz o padrão de conectividade da rede virtual (VNET) para dispositivos IoT que adquirem com hubs IoT usando DPS. Este padrão proporciona conectividade privada entre os dispositivos, DPS e o hub IoT dentro de um Azure VNET propriedade do cliente.

Na maioria dos cenários em que o DPS está configurado com um VNET, o seu Hub IoT também será configurado no mesmo VNET. Para obter informações mais específicas sobre suporte e configuração VNET para IoT Hubs, consulte, Hub IoT suporte de rede virtual.

Introdução

Por padrão, os nomes de anfitriões DPS mapeiam para um ponto final público com um endereço IP publicamente roteado através da Internet. Este ponto final público é visível para todos os clientes. O acesso ao ponto final público pode ser tentado por dispositivos IoT através de redes de grande área e redes no local.

Por várias razões, os clientes podem querer restringir a conectividade aos recursos da Azure, como o DPS. Estas razões incluem:

  • Evitar a exposição à ligação através da Internet pública. A exposição pode ser reduzida introduzindo mais camadas de segurança através do isolamento do nível de rede para o seu hub IoT e recursos DPS

  • Permitir uma experiência de conectividade privada a partir dos seus ativos de rede no local, garantindo que os seus dados e tráfego são transmitidos diretamente para a rede de espinha dorsal Azure.

  • Prevenir ataques de exfiltração de redes sensíveis no local.

  • Seguindo padrões de conectividade estabelecidos em toda a Azure usando pontos finais privados.

As abordagens comuns para restringir a conectividade incluem regras de filtro IP DPS e rede virtual (VNET) com pontos finais privados. O objetivo deste artigo é descrever a abordagem VNET para DPS utilizando pontos finais privados.

Os dispositivos que operam em redes no local podem utilizar rede privada virtual (VPN) ou um espremiamento privado ExpressRoute para ligar a um VNET em Azure e aceder a recursos DPS através de pontos finais privados.

Um ponto final privado é um endereço IP privado atribuído dentro de um VNET propriedade do cliente pelo qual um recurso Azure é acessível. Ao ter um ponto final privado para o seu recurso DPS, poderá permitir que os dispositivos que operam no seu VNET solicitem o fornecimento pelo seu recurso DPS sem permitir o tráfego para o ponto final público. Cada recurso DPS pode suportar vários pontos finais privados, cada um dos quais pode estar localizado num VNET numa região diferente.

Pré-requisitos

Antes de prosseguir, assegure-se de que sejam cumpridos os seguintes requisitos:

Limitações de pontos finais privados

Note as seguintes limitações atuais para o DPS ao utilizar pontos finais privados:

  • Os pontos finais privados não funcionarão com DPS quando o recurso DPS e o Hub ligado estão em diferentes nuvens. Por exemplo, Azure Government e global Azure.

  • Atualmente, as políticas de atribuição personalizada com Funções do Azure para DPS não funcionarão quando a função Azure é bloqueada a um VNET e pontos finais privados.

  • O suporte VNET atual é apenas para entrada de dados em DPS. A saída de dados, que é o tráfego de DPS para Hub IoT, utiliza um mecanismo interno de serviço-a-serviço em vez de um VNET dedicado. O suporte para o bloqueio total da saída de Erupção baseada em VNET entre DPS e Hub IoT não está atualmente disponível.

  • A política de atribuição de latência mais baixa é usada para atribuir um dispositivo ao centro de IoT com a latência mais baixa. Esta política de atribuição não é fiável num ambiente de rede virtual.

  • Permitir um ou mais pontos finais privados normalmente envolve desativar o acesso do público à sua instância DPS. Isto significa que já não pode utilizar o portal do Azure para gerir as matrículas. Em vez disso, pode gerir as inscrições utilizando as APIs de serviço Azure CLI, PowerShell ou de serviço a partir de máquinas dentro do(s) vnet(s)/private endpoint(s) configurados na instância DPS.

  • Ao utilizar pontos finais privados, recomendamos a implantação de DPS numa das regiões que suportam Zonas de Disponibilidade. Caso contrário, os casos de DPS com pontos finais privados ativados podem ver reduzida disponibilidade em caso de interrupções.

Nota

Consideração de residência de dados:

O DPS fornece um ponto final global do dispositivo (global.azure-devices-provisioning.net). No entanto, quando utilizar o ponto final global, os seus dados podem ser redirecionados para fora da região onde a instância DPS foi inicialmente criada. Para garantir a residência de dados na região inicial do DPS, utilize pontos finais privados.

Criar um ponto final privado

Para configurar um ponto final privado, siga estes passos:

  1. No portal do Azure, abra o seu recurso DPS e clique no separador De Rede. Clique nas ligações de ponto final privado e + ponto final privado.

    Add a new private endpoint for DPS

  2. Na página 'Criar' Bases de ponto final privado , insira as informações mencionadas na tabela abaixo.

    Create private endpoints basics

    Campo Valor
    Subscrição Escolha a subscrição Azure desejada para conter o ponto final privado.
    Grupo de recursos Escolha ou crie um grupo de recursos para conter o ponto final privado
    Nome Insira um nome para o seu ponto final privado
    Região A região escolhida deve ser a mesma que a região que contém o VNET, mas não tem de ser igual ao recurso DPS.

    Clique em seguida : Recurso para configurar o recurso que o ponto final privado irá apontar.

  3. Na página 'Criar' De recursos de ponto final privado , insira as informações mencionadas na tabela abaixo.

    Create private endpoint resource

    Campo Valor
    Subscrição Escolha a subscrição Azure que contém o recurso DPS que o seu ponto final privado irá apontar.
    Tipo de recurso Escolha Microsoft.Devices/ProvisioningServices.
    Recurso Selecione o recurso DPS para o quais o ponto final privado irá mapear.
    Recurso secundário de destino Selecione iotDps.

    Dica

    As informações sobre o Ligação a um recurso Azure por ID de recursos ou definição de pseudónimo são fornecidas na secção de ponto final do Pedido neste artigo.

    Clique em seguida : Configuração para configurar o VNET para o ponto final privado.

  4. Na página Configuração de ponto final privado , escolha a sua rede virtual e a sub-rede para criar o ponto final privado.

    Clique em Seguida : Tags e, opcionalmente, forneça todas as etiquetas para o seu recurso.

    Configure private endpoint

  5. Clique em Rever + criar e, em seguida, criar para criar o seu recurso de ponto final privado.

Use pontos finais privados com dispositivos

Para utilizar pontos finais privados com código de provisionamento do dispositivo, o seu código de provisionamento deve utilizar o ponto final de serviço específico para a sua instância DPS, tal como mostrado na página geral da sua instância DPS no portal do Azure. O ponto final de serviço tem o seguinte formulário.

<Your DPS Tenant Name>.azure-devices-provisioning.net

A maioria dos códigos de amostra demonstrados na nossa documentação e SDKs, usam o ponto final do dispositivo Global (global.azure-devices-provisioning.net) e o ID Scope para resolver uma determinada instância de DPS. Utilize o ponto final de serviço no lugar do ponto final do dispositivo global quando ligar a uma instância DPS utilizando pontos finais privados para forragem dos seus dispositivos.

Por exemplo, a amostra do cliente do dispositivo de avisão (pro_dev_client_sample) no Azure IoT C SDK foi concebida para utilizar o ponto final do dispositivo Global como URI de a provisionamento global (global_prov_uri) em prov_dev_client_sample.c

MU_DEFINE_ENUM_STRINGS_WITHOUT_INVALID(PROV_DEVICE_RESULT, PROV_DEVICE_RESULT_VALUE);
MU_DEFINE_ENUM_STRINGS_WITHOUT_INVALID(PROV_DEVICE_REG_STATUS, PROV_DEVICE_REG_STATUS_VALUES);

static const char* global_prov_uri = "global.azure-devices-provisioning.net";
static const char* id_scope = "[ID Scope]";
}

PROV_DEVICE_RESULT prov_device_result = PROV_DEVICE_RESULT_ERROR;
PROV_DEVICE_HANDLE prov_device_handle;
if ((prov_device_handle = Prov_Device_Create(global_prov_uri, id_scope, prov_transport)) == NULL)
{
    (void)printf("failed calling Prov_Device_Create\r\n");

Para utilizar a amostra com um ponto final privado, o código realçado acima seria alterado para utilizar o ponto final de serviço para o seu recurso DPS. Por exemplo, se o seu ponto final de serviço fosse mydps.azure-devices-provisioning.net, o código seria o seguinte.

static const char* global_prov_uri = "global.azure-devices-provisioning.net";
static const char* service_uri = "mydps.azure-devices-provisioning.net";
static const char* id_scope = "[ID Scope]";
    PROV_DEVICE_RESULT prov_device_result = PROV_DEVICE_RESULT_ERROR;
    PROV_DEVICE_HANDLE prov_device_handle;
    if ((prov_device_handle = Prov_Device_Create(service_uri, id_scope, prov_transport)) == NULL)
    {
        (void)printf("failed calling Prov_Device_Create\r\n");
    }

Solicite um ponto final privado

Pode solicitar um ponto final privado a uma instância DPS por ID de recursos. Para fazer este pedido, precisa do proprietário do recurso para lhe fornecer o ID do recurso.

  1. O ID de recursos é fornecido no separador propriedades para o recurso DPS, conforme mostrado abaixo.

    DPS Properties tab

    Atenção

    Esteja ciente de que o ID do recurso contém o ID de subscrição.

  2. Assim que tiver o ID do recurso, siga os passos acima na Configuração de um ponto final privado para o passo 3 na página 'Criar' um recurso de ponto final privado . Clique Ligação a um recurso Azure por ID ou pseudónimo de recurso e introduza a informação na tabela seguinte.

    Campo Valor
    ID de recursos ou pseudónimo Introduza o ID do recurso para o recurso DPS.
    Recurso secundário de destino Insira iotDps
    Mensagem de pedido Introduza uma mensagem de pedido para o proprietário do recurso DPS.
    Por exemplo,
    Please approve this new private endpoint
    for IoT devices in site 23 to access this DPS instance

    Clique em seguida : Configuração para configurar o VNET para o ponto final privado.

  3. Na página De Configuração de ponto final privado , escolha a rede virtual e a sub-rede para criar o ponto final privado.

    Clique em Seguida : Tags e, opcionalmente, forneça todas as etiquetas para o seu recurso.

  4. Clique em Rever + criar e, em seguida, criar para criar o seu pedido de ponto final privado.

  5. O proprietário do DPS verá o pedido de ponto final privado na lista de ligações de ponto final privado no separador de rede DPS. Nessa página, o proprietário pode aprovar ou rejeitar o pedido de ponto final privado, conforme mostrado abaixo.

    DPS approval

Preços de pontos finais privados

Para mais detalhes sobre os preços, consulte Azure Private Link preços.

Passos seguintes

Use os links abaixo para saber mais sobre as funcionalidades de segurança DPS: