Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se presenta el patrón de conectividad de red virtual para el aprovisionamiento de dispositivos IoT con Hubs de IoT mediante DPS. Este patrón proporciona conectividad privada entre los dispositivos, DPS y el centro de IoT dentro de una red virtual de Azure propiedad del cliente.
En la mayoría de los escenarios en los que DPS está configurado con una red virtual, el centro de IoT también está configurado en la misma red virtual. Para más información sobre la compatibilidad y configuración de redes virtuales para centros de IoT, consulte Compatibilidad de IoT Hub con redes virtuales con Azure Private Link.
Introducción
De forma predeterminada, los nombres de host de DPS se asignan a un punto de conexión público con una dirección IP enrutable públicamente a través de Internet. Este punto de conexión público es visible para todos los clientes. Los dispositivos IoT a través de redes de área extensa y redes locales pueden intentar acceder al punto de conexión público.
Por varias razones, es posible que los clientes deseen restringir la conectividad a los recursos de Azure, como DPS. Estas razones incluyen:
Evite la exposición de la conexión a través de la red pública de Internet. La exposición se puede reducir mediante la introducción de más capas de seguridad a través del aislamiento de nivel de red para los recursos de IoT Hub y DPS.
Habilitación de una experiencia de conectividad privada desde los recursos de red locales, lo que garantiza que los datos y el tráfico se transmiten directamente a la red troncal de Azure.
Prevenir ataques de exfiltración de redes locales confidenciales.
Siguiendo los patrones de conectividad establecidos para toda Azure mediante puntos de conexión privados.
Entre los enfoques comunes para restringir la conectividad se incluyen las reglas de filtro IP de DPS y las redes virtuales con puntos de conexión privados. El objetivo de este artículo es describir el enfoque de red virtual para DPS mediante puntos de conexión privados.
Los dispositivos que operan en redes locales pueden usar redes privadas virtuales (VPN) o emparejamiento privado de ExpressRoute para conectarse a una red virtual en Azure y acceder a los recursos de DPS a través de puntos de conexión privados.
Un punto de conexión privado es una dirección IP privada asignada dentro de una red virtual propiedad del cliente por la que se puede acceder a un recurso de Azure. Al tener un punto de conexión privado para el recurso de DPS, puede permitir que los dispositivos que operan dentro de la red virtual soliciten el aprovisionamiento por el recurso de DPS sin permitir el tráfico al punto de conexión público. Cada recurso de DPS puede admitir varios puntos de conexión privados, cada uno de los cuales podría encontrarse en una red virtual en una región diferente.
Prerrequisitos
Antes de continuar, asegúrese de que se cumplen los siguientes requisitos previos:
El recurso de DPS ya está creado y vinculado a sus centros de IoT. Para obtener instrucciones sobre cómo configurar un nuevo recurso de DPS, consulte Inicio rápido: Configuración del servicio IoT Hub Device Provisioning con Azure Portal
Ha aprovisionado una red virtual de Azure con una subred en la que se crea el punto de conexión privado. Para más información, consulte Inicio rápido: Creación de una instancia de Azure Virtual Network.
En el caso de dispositivos que operan dentro de redes locales, configure una Red Privada Virtual (VPN) o el peering privado de ExpressRoute en su red virtual de Azure.
Limitaciones del punto de conexión privado
Tenga en cuenta las siguientes limitaciones actuales para DPS al usar puntos de conexión privados:
Los puntos de conexión privados no funcionan cuando el recurso de DPS y el centro de IoT vinculado se encuentran en nubes diferentes. Por ejemplo, Azure Government y Azure global.
Los puntos de conexión privados de DPS usan Azure Private Link, que solo se admiten en regiones públicas. Para más información, consulte Disponibilidad de Azure Private Link.
Actualmente, las directivas de asignación personalizadas con Azure Functions para DPS no funcionan cuando la función de Azure está bloqueada en una red virtual y puntos de conexión privados.
La compatibilidad actual con la red virtual de DPS es solo para la entrada de datos en DPS. La salida de datos, que es el tráfico de DPS a IoT Hub, usa un mecanismo interno de servicio a servicio en lugar de una red virtual dedicada. El soporte para el bloqueo de salida completo basado en red virtual entre DPS e IoT Hub no está disponible actualmente.
La directiva de asignación de latencia más baja se usa para asignar un dispositivo al centro de IoT con la latencia más baja. Esta directiva de asignación no es confiable en un entorno de red virtual.
La habilitación de uno o varios puntos de conexión privados suele implicar deshabilitar el acceso público a la instancia de DPS. Una vez deshabilitado el acceso público, ya no puede usar Azure Portal para administrar las inscripciones. En su lugar, puede administrar las inscripciones mediante la CLI de Azure, PowerShell o las API de servicio desde máquinas dentro de una o varias redes virtuales o puntos de conexión privados configurados en la instancia de DPS.
Al usar puntos de conexión privados, se recomienda implementar DPS en una de las regiones que admiten Availability Zones. De lo contrario, las instancias de DPS con puntos de conexión privados habilitados podrían ver una disponibilidad reducida durante las interrupciones.
Nota:
Consideración sobre la residencia de datos:
DPS proporciona un punto de conexión de dispositivo global (global.azure-devices-provisioning.net). Sin embargo, cuando se usa el punto de conexión global, es posible que los datos se redirijan fuera de la región donde se creó inicialmente la instancia de DPS. Para garantizar la residencia de datos dentro de la región de DPS inicial, use puntos de conexión privados.
Configuración de un punto de conexión privado
Para configurar un punto de conexión privado, siga estos pasos:
En Azure Portal, vaya al recurso de DPS.
En el menú servicio, en Configuración, seleccione la pestaña Redes .
En el panel de trabajo, seleccione la pestaña Acceso privado y, a continuación, seleccione + Crear un punto de conexión privado.
En la pestaña Aspectos básicos de la página Crear un punto de conexión privado , escriba la información mencionada en la tabla siguiente.
Campo Importancia Subscription Elija la suscripción de Azure deseada para contener el punto de conexión privado. Grupo de recursos Elija o cree un grupo de recursos para que contenga el punto de conexión privado. Nombre Escriba un nombre para el punto de conexión privado. Nombre de la interfaz de red Si lo desea, escriba un nombre para la interfaz de red del punto de conexión privado. Region Elija la región para el punto de conexión privado. La región elegida debe ser la misma que la región que contiene la red virtual, pero no tiene que ser la misma que el recurso de DPS. Seleccione Siguiente: recurso para configurar el recurso al que apunta el punto de conexión privado.
En la pestaña Recurso de la página Crear un punto de conexión privado , escriba la información mencionada en la tabla siguiente.
Campo Importancia Subscription Si aún no se ha elegido, elija la suscripción de Azure que contiene el recurso de DPS al que apunta el punto de conexión privado. Tipo de recurso Si aún no se ha elegido, elija Microsoft.Devices/ProvisioningServices. Recurso Si aún no se ha elegido, seleccione el recurso de DPS al que se mapea el punto de conexión privado. Recurso secundario de destino Seleccione iotDps. Sugerencia
La información sobre la opción Conectarse a un recurso de Azure por identificador de recurso o alias se proporciona en la sección Solicitud de un punto de conexión privado de este artículo.
Seleccione Siguiente: Red virtual para configurar la red virtual para el punto de conexión privado.
En la pestaña Red virtual de la página Crear un punto de conexión privado , elija la red virtual y la subred en las que crear el punto de conexión privado.
Seleccione Siguiente: DNS para elegir las opciones de integración de DNS privadas necesarias para el punto de conexión privado.
En la pestaña DNS de la página Crear un punto de conexión privado , elija las opciones de integración de DNS privadas necesarias para el punto de conexión privado.
Seleccione Siguiente: Etiquetas y, opcionalmente, proporcione las etiquetas para el recurso.
Seleccione Siguiente: Revisar y crear y, a continuación, seleccione Crear para crear el recurso de punto de conexión privado.
Uso de puntos de conexión privados con dispositivos
Para usar puntos de conexión privados con código de aprovisionamiento de dispositivos, el código de aprovisionamiento debe usar el punto de conexión de servicio específico para la instancia de DPS, tal como se muestra en la página de información general de la instancia de DPS en Azure Portal. El punto de conexión de servicio tiene el siguiente formato.
<Your DPS Tenant Name>.azure-devices-provisioning.net
La mayoría del código de ejemplo que se muestra en nuestra documentación y SDK, usan el punto de conexión de dispositivo global (global.azure-devices-provisioning.net) y el ámbito de identificador para resolver una instancia de DPS determinada. Use el punto de conexión de servicio en lugar del punto de conexión de dispositivo global al conectarse a una instancia de DPS mediante puntos de conexión privados para aprovisionar los dispositivos.
Por ejemplo, el ejemplo de cliente de dispositivo de aprovisionamiento (pro_dev_client_sample) en el SDK de C de Azure IoT está diseñado para usar el punto de conexión de dispositivo global como URI de aprovisionamiento global (global_prov_uri) en 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 el ejemplo con un punto de conexión privado, el código resaltado en el ejemplo anterior se cambiaría para usar el punto de conexión de servicio para el recurso de DPS. Por ejemplo, si el punto de conexión de servicio era mydps.azure-devices-provisioning.net, el código tendría el siguiente aspecto.
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");
}
Solicitud de un punto de conexión privado
Puede solicitar un punto de conexión privado a una instancia de DPS por identificador de recurso. Para realizar esta solicitud, necesita que el propietario del recurso le proporcione el identificador de recurso.
El identificador de recurso se proporciona en la página Propiedades del recurso de DPS en Azure Portal, como se muestra en la captura de pantalla siguiente.
Precaución
El identificador de recurso sí contiene el identificador de suscripción.
Una vez que tenga el identificador de recurso, siga los pasos descritos en Configuración de un punto de conexión privado en el paso 3 de la pestaña Recurso de la página Crear un punto de conexión privado . Seleccione Conectarse a un recurso de Azure por identificador de recurso o alias y escriba la información de la tabla siguiente.
Campo Importancia Identificador de recurso o alias Escriba el identificador de recurso para el recurso de DPS. Recurso secundario de destino Escriba iotDps. Mensaje de solicitud Escriba un mensaje de solicitud para el propietario del recurso de DPS.
Por ejemplo,Please approve this new private endpointfor IoT devices in site 23 to access this DPS instanceSeleccione Siguiente: Red virtual para configurar la red virtual para el punto de conexión privado.
En la pestaña Red virtual de la página Crear un punto de conexión privado , elija la red virtual y la subred en las que crear el punto de conexión privado.
Seleccione Siguiente: DNS para elegir las opciones de integración de DNS privadas necesarias para la solicitud del punto de conexión privado.
En la pestaña DNS de la página Crear un punto de conexión privado , elija las opciones de integración dns privadas necesarias para la solicitud del punto de conexión privado.
Seleccione Siguiente: Etiquetas y, opcionalmente, proporcione las etiquetas para el recurso.
Seleccione Siguiente: Revisar y crear y, a continuación, seleccione Crear para crear la solicitud del punto de conexión privado.
El propietario de DPS ve la solicitud de punto de conexión privado en la lista de conexiones de punto de conexión privado en la página de Redes de la instancia de DPS en el portal de Azure. En esa página, el propietario puede aprobar o rechazar la solicitud del punto de conexión privado.
Precios de puntos de conexión privados
Para más información sobre los precios, consulte Precios de Azure Private Link.
Pasos siguientes
Más información sobre las características de seguridad de DPS: