Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo apresenta o padrão de conectividade de rede virtual para o provisionamento de dispositivos IoT com hubs IoT usando DPS. Este padrão proporciona conectividade privada entre os dispositivos, DPS e o hub IoT dentro de uma rede virtual Azure propriedade do cliente.
Na maioria dos cenários em que o DPS está configurado com uma rede virtual, o seu hub IoT também está configurado na mesma rede virtual. Para mais informações sobre suporte e configuração de redes virtuais para hubs IoT, consulte suporte a IoT Hub para redes virtuais com Azure Private Link.
Introdução
Por padrão, os nomes de host DPS são mapeados para um ponto de extremidade público com um endereço IP passível de roteamento público pela Internet. Este ponto de acesso público é visível para todos os clientes. Os dispositivos IoT em redes de área ampla e redes locais podem tentar aceder ao ponto de extremidade público.
Por várias razões, os clientes podem querer restringir a conectividade aos recursos Azure, como o DPS. Estas razões incluem:
Evite a exposição da ligação através da Internet pública. A exposição pode ser reduzida introduzindo mais camadas de segurança por meio do isolamento no nível da rede para seus recursos de hub IoT e DPS
Habilitar uma experiência de conectividade privada de seus ativos de rede local garantindo que seus dados e tráfego sejam transmitidos diretamente para a rede de backbone do Azure.
Prevenção de ataques de exfiltração de redes locais sensíveis.
Seguindo padrões de conectividade estabelecidos em todo o Azure usando pontos de extremidade privados.
Abordagens comuns para restringir a conectividade incluem regras de filtro IP DPS e redes virtuais com endpoints privados. O objetivo deste artigo é descrever a abordagem de redes virtuais para DPS utilizando endpoints privados.
Dispositivos que operam em redes locais podem usar Rede Privada Virtual (VPN) ou peering privado ExpressRoute para se conectar a uma rede virtual no Azure e aceder a recursos DPS por meio de endpoints privados.
Um endpoint privado é um endereço IP privado atribuído dentro de uma rede virtual propriedade do cliente, através da qual um recurso Azure é acessível. Ao ter um endpoint privado para o seu recurso DPS, pode permitir que dispositivos que operam dentro da sua rede virtual solicitem provisionamento pelo seu recurso DPS sem permitir tráfego para o endpoint público. Cada recurso DPS pode suportar múltiplos endpoints privados, cada um dos quais pode estar localizado numa rede virtual numa região diferente.
Pré-requisitos
Antes de prosseguir, certifique-se de que os seguintes pré-requisitos são atendidos:
Seu recurso DPS já está criado e vinculado aos seus hubs IoT. Para orientações sobre como configurar um novo recurso DPS, consulte Quickstart: Configurar o Serviço de Provisionamento de Dispositivos IoT Hub com o portal Azure
Provisionaste uma rede virtual Azure com uma sub-rede onde o endpoint privado é criado. Para mais informações, consulte Quickstart: Criar uma Rede Virtual Azure.
Para dispositivos que operam dentro de redes locais, configure uma Rede Privada Virtual (VPN) ou um peering privado ExpressRoute para a sua rede virtual Azure.
Limitações do ponto final privado
Observe as seguintes limitações atuais para DPS ao usar pontos de extremidade privados:
Os pontos de extremidade privados não funcionam quando o recurso DPS e o hub IoT vinculado estão em nuvens diferentes. Por exemplo, Azure Government e Azure Global.
Os pontos de extremidade privados no DPS usam o Azure Private Link, que só tem suporte em regiões públicas. Para obter mais informações, consulte Disponibilidade do link privado do Azure.
Atualmente, as políticas de alocação personalizadas com o Azure Functions para DPS não funcionam quando a função Azure está limitada a uma rede virtual e endpoints privados.
O suporte atual para redes virtuais DPS é apenas para entrada de dados no DPS. A saída de dados, que é o tráfego do DPS para o IoT Hub, utiliza um mecanismo interno de serviço-a-serviço em vez de uma rede virtual dedicada. O suporte para bloqueio total de saída baseado em rede virtual entre DPS e IoT Hub não está atualmente disponível.
A política de alocação de latência mais baixa é usada para atribuir um dispositivo ao hub IoT com a menor latência. Esta política de alocação não é fiável num ambiente de rede virtual.
Habilitar um ou mais pontos de extremidade privados normalmente envolve desabilitar o acesso público à sua instância do DPS. Depois que o acesso público estiver desabilitado, você não poderá mais usar o portal do Azure para gerenciar registros. Em vez disso, pode gerir inscrições usando a CLI do Azure, PowerShell ou APIs de serviço a partir de máquinas dentro de uma ou mais redes virtuais/endpoints privados configurados na instância DPS.
Ao usar pontos de extremidade privados, recomendamos implantar o DPS em uma das regiões que oferecem suporte a zonas de disponibilidade. Caso contrário, instâncias DPS com endpoints privados ativados podem ter uma disponibilidade reduzida durante as interrupções.
Observação
Considerações sobre a localização dos dados:
DPS fornece um ponto de extremidade global de dispositivo (global.azure-devices-provisioning.net). No entanto, quando usa o endpoint 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 DPS inicial, use pontos de extremidade privados.
Configurar um ponto de extremidade privado
Para configurar um ponto de extremidade privado, siga estas etapas:
No portal Azure, navega até ao teu recurso DPS.
No menu de serviço, em Definições, selecione o separador Rede .
No painel de trabalho, selecione o separador de acesso privado e depois selecione + Criar um endpoint privado.
No separador Basics da página Criar um endpoint privado , introduza as informações mencionadas na tabela seguinte.
Campo Valor Subscrição Escolha a assinatura desejada do Azure para conter o ponto de extremidade privado. Grupo de recursos Escolha ou crie um grupo de recursos para conter o endpoint privado. Nome Introduza um nome para o seu ponto de extremidade privado. Nome da interface de rede Se desejar, introduza um nome para a interface de rede do seu endpoint privado. Região Escolha a região do endpoint privado. A região escolhida deve ser a mesma que a região que contém a rede virtual, mas não tem de ser a mesma que o recurso DPS. Selecione Avançar : Recurso para configurar o recurso para o qual o ponto de extremidade privado aponta.
No separador Recursos da página Criar um endpoint privado , introduza as informações mencionadas na tabela seguinte.
Campo Valor Subscrição Se ainda não estiver escolhido, escolhe a subscrição Azure que contém o recurso DPS para o qual o teu endpoint privado aponta. Tipo de recurso Se ainda não estiver escolhido, escolha Microsoft.Devices/ProvisioningServices. Recurso Se ainda não estiver escolhido, selecione o recurso DPS para o qual o endpoint privado está mapeado. Subrecurso de destino Selecione iotDps. Sugestão
As informações sobre a configuração Conectar a um recurso do Azure por ID de recurso ou alias são fornecidas na seção Solicitar um ponto de extremidade privado neste artigo.
Selecionar Próximo: Rede Virtual para configurar a rede virtual para o endpoint privado.
No separador Rede Virtual da página Criar um endpoint privado , escolha a sua rede virtual e sub-rede para criar o endpoint privado.
Selecione Próximo: DNS para escolher quaisquer opções de integração DNS privada necessárias para o seu endpoint privado.
No separador DNS da página Criar um endpoint privado , escolha quaisquer opções de integração DNS privada necessárias para o seu endpoint privado.
Selecione Next : Tags, e opcionalmente forneça quaisquer tags para o seu recurso.
Selecione Seguinte: Rever + criar, e depois selecionar Criar para criar o seu recurso de endpoint privado.
Utilizar pontos finais privados com dispositivos
Para usar pontos de extremidade privados com código de provisionamento de dispositivo, seu código de provisionamento deve usar o ponto de extremidade de serviço específico para sua instância DPS, conforme mostrado na página de visão geral da instância do DPS no portal do Azure. O ponto de extremidade do serviço tem a seguinte forma.
<Your DPS Tenant Name>.azure-devices-provisioning.net
A maioria dos exemplos de código demonstrados em nossa documentação e SDKs, usam o ponto de extremidade de dispositivo global (global.azure-devices-provisioning.net) e o escopo de ID para resolver uma instância específica do DPS. Use o ponto de extremidade de serviço no lugar do ponto de extremidade de dispositivo global ao se conectar a uma instância DPS usando pontos de extremidade privados para provisionar seus dispositivos.
Por exemplo, o exemplo de cliente de dispositivo de provisionamento (pro_dev_client_sample) no SDK do Azure IoT C foi projetado para usar o ponto de extremidade de dispositivo global como o URI de 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 usar o exemplo com um endpoint privado, o código destacado no exemplo anterior seria alterado para usar o endpoint de serviço para o seu recurso DPS. Por exemplo, se o ponto de extremidade do serviço fosse mydps.azure-devices-provisioning.net, o código teria a seguinte aparência.
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");
}
Solicitar um ponto de extremidade privado
Você pode solicitar um ponto de extremidade privado para uma instância DPS por ID de recurso. Para fazer essa solicitação, você precisa que o proprietário do recurso forneça a ID do recurso.
O ID do recurso é fornecido na página de Propriedades do recurso DPS no portal Azure, como mostrado na captura de ecrã seguinte.
Atenção
O ID do recurso contém o ID da assinatura.
Depois de ter o ID de recurso, siga os passos em Configurar um endpoint privado até ao passo 3 na aba Recursos da página Criar um endpoint privado. Selecione Conectar a um recurso do Azure por ID de recurso ou alias e insira as informações na tabela a seguir.
Campo Valor ID do recurso ou alias Insira o ID do recurso DPS. Subrecurso de destino Digite iotDps Solicitar mensagem Insira uma mensagem de solicitação para o proprietário do recurso DPS.
Por exemplo,Please approve this new private endpointfor IoT devices in site 23 to access this DPS instanceSelecionar Próximo: Rede Virtual para configurar a rede virtual para o endpoint privado.
No separador Rede Virtual da página Criar um endpoint privado , escolha a sua rede virtual e sub-rede para criar o endpoint privado.
Selecione Próximo: DNS para escolher quaisquer opções de integração privada de DNS necessárias para o seu pedido de endpoint privado.
No separador DNS da página Criar um endpoint privado , escolha quaisquer opções de integração DNS privada necessárias para o seu pedido de endpoint privado.
Selecione Next : Tags, e opcionalmente forneça quaisquer tags para o seu recurso.
Selecione Seguinte: Rever + criar, e depois selecione Criar para fazer o seu pedido de ponto final privado.
O proprietário do DPS vê o pedido de endpoint privado na lista de ligações de pontos finais privados na página Rede da instância DPS no portal Azure. Nessa página, o proprietário pode aprovar ou rejeitar o pedido de endpoint privado.
Fixação de preços de terminais privados
Para obter detalhes de preços, consulte Preços do Azure Private Link.
Próximos passos
Saiba mais sobre os recursos de segurança do DPS: