ideas de
soluciónEn este artículo se describe una idea de solución. El arquitecto de la nube puede usar esta guía para ayudar a visualizar los componentes principales para una implementación típica de esta arquitectura. Use este artículo como punto de partida para diseñar una solución bien diseñada que se adapte a los requisitos específicos de la carga de trabajo.
En este artículo se describe cómo usar una red privada para cargar archivos en una cuenta de Azure Storage.
Para las implementaciones típicas de Azure IoT, los dispositivos cliente de IoT deben comunicarse directamente con la cuenta de Storage para cargar archivos. Los dispositivos cliente de IoT normalmente se distribuyen en ubicaciones dispares y no forman parte de una red privada, por lo que se conectan a través de la red pública de Internet. No puede integrar estos dispositivos en una red privada, por lo que la cuenta de almacenamiento requiere que permita el tráfico entrante de Internet.
Pero si tiene requisitos de segmentación de red más estrictos, puede restringir el acceso a la cuenta de almacenamiento desde una red privada. Esta solución bloquea el tráfico directo de Internet a la cuenta de almacenamiento para que la cuenta de almacenamiento solo acepte el tráfico que pasa por la instancia de puerta de enlace de App de Azure de entrada. Si implementa una topología de red en estrella tipo hub-spoke, Azure Firewall normalmente debe inspeccionar el tráfico, lo que proporciona una capa adicional de seguridad.
Arquitectura
Descargue un archivo Visio de esta arquitectura.
Flujo de trabajo
El siguiente flujo de trabajo corresponde al diagrama anterior.
Una topología de red en estrella tipo hub-spoke tiene una red virtual de concentrador que empareja con cada red virtual de recursos, también denominada radio. Todo el tráfico pasa por Azure Firewall para la inspección del tráfico.
Una cuenta de Azure Blob Storage deniega el acceso público a Internet. Solo permite conexiones desde otras redes virtuales. Una regla de instancia de recurso permite que un servicio de Azure IoT Hub elegido se conecte a través de una identidad administrada. La cuenta de Blob Storage solo admite el control de acceso basado en rol (RBAC) de Azure para el acceso al plano de datos.
La puerta de enlace de aplicaciones tiene un sistema de nombres de dominio (DNS) personalizado y finaliza el tráfico de seguridad de la capa de transporte (TLS). Reside dentro de una red virtual. Esta red virtual coincide con la red virtual que usa el vínculo privado de la cuenta de Blob Storage. Un túnel forzado a través de la red virtual del concentrador establece la conexión.
El dispositivo cliente de IoT que usa el SDK de IoT Hub solicita un URI de firma de acceso compartido (SAS) para cargas de archivos en IoT Hub. El dispositivo cliente de IoT envía la solicitud a través de la red pública de Internet.
IoT Hub controla esta solicitud para el dispositivo. Se conecta directamente a la cuenta de Blob Storage a través de la autenticación de identidad administrada, que tiene permisos de colaborador de datos de Storage Blob para las solicitudes de clave de delegación de usuarios.
IoT Hub solicita una clave de delegación de usuario a la cuenta de Blob Storage. Un token de SAS de corta duración concede al dispositivo permiso de lectura y escritura en el blob solicitado en el contenedor de blobs.
IoT Hub envía el URI de la cuenta de Blob Storage pública y el token de SAS al dispositivo cliente de IoT, junto con un identificador de correlación.
El dispositivo cliente de IoT tiene lógica para reemplazar el URI de Blob Storage público por un dominio personalizado, por ejemplo, un dispositivo gemelo. El dispositivo IoT usa un SDK de Blob Storage estándar para cargar el archivo a través del DNS de Blob Storage personalizado.
Application Gateway recibe el HTTP POST del dispositivo cliente y lo envía a la cuenta de Blob Storage a través de Azure Private Link.
Cuando finalice la carga de archivos, el dispositivo cliente de IoT usa el SDK de Azure IoT para notificar a IoT Hub.
El dispositivo cliente de IoT actualiza el estado de carga de archivos para que IoT Hub pueda desencadenar una notificación de carga de archivos en los servicios back-end, si la notificación está configurada. El dispositivo cliente también libera los recursos asociados a la carga de archivos en IoT Hub.
Componentes
Application Gateway es una solución administrada de plataforma como servicio (PaaS) que puede usar para crear servidores front-end altamente seguros, escalables y de alta disponibilidad. En esta arquitectura, Application Gateway controla el tráfico HTTPS entrante de Internet, aplica la terminación TLS, negocia TLS con la cuenta de Blob Storage y reenvía el tráfico a través de una red privada a la cuenta de Blob Storage.
Azure Firewall proporciona protección para los recursos de Azure Virtual Network. En esta arquitectura, Azure Firewall filtra y enruta el tráfico entre la red perimetral y las redes de radio.
IoT Hub es una solución administrada por PaaS que actúa como un centro de mensajes central para la comunicación bidireccional entre una aplicación de IoT y los dispositivos que administra. En esta arquitectura, IoT Hub es el punto de conexión central al que se conectan los dispositivos cliente de IoT para las operaciones de control y plano de datos.
Private Link proporciona acceso privado a los servicios hospedados en la plataforma Azure mientras mantiene los datos en la red de Microsoft. En esta arquitectura, Private Link proporciona comunicación privada entre Application Gateway y la cuenta de Blob Storage.
El almacenamiento ofrece una solución de almacenamiento en la nube duradera, de alta disponibilidad y escalable de forma masiva. También incluye el almacenamiento de objetos, archivos, discos, colas y tablas. En esta arquitectura, los dispositivos usan Blob Storage para cargar archivos en la nube a través de tokens SAS de corta duración que IoT Hub proporciona a través de la delegación de usuarios.
DNS privado zonas proporcionan un servicio DNS de seguridad mejorada confiable para administrar y resolver nombres de dominio en una red virtual sin necesidad de una solución DNS personalizada. En esta arquitectura, una zona DNS privada proporciona una entrada DNS privada para Blob Storage para que el punto de conexión de blob de Storage se traduzca a su punto de conexión IP privado dentro de la red.
Virtual Network es el bloque de creación fundamental para la red privada en Azure. Este servicio permite que muchos tipos de recursos de Azure, como máquinas virtuales de Azure, se comuniquen entre sí, Internet y redes locales con mayor seguridad. Esta arquitectura usa Virtual Network para crear una topología de red privada, lo que evita puntos de conexión públicos de Internet para los servicios basados en Azure.
Detalles del escenario
Para las implementaciones normales, un dispositivo cliente de Azure IoT debe comunicarse directamente con una cuenta de Storage para cargar un archivo. Al deshabilitar el tráfico de Internet en la cuenta de almacenamiento, se impide que los dispositivos cliente de IoT de cliente carguen archivos. La funcionalidad de carga de archivos de IoT Hub solo actúa como delegación de usuarios para generar un token de SAS que tenga permisos de lectura y escritura en un blob. La propia carga de archivos no pasa a través de IoT Hub. Un dispositivo cliente de IoT usa el SDK de Blob Storage normal para la carga real.
En este escenario, la comunicación entre IoT Hub y la cuenta de almacenamiento sigue pasando por el punto de conexión público. Esta excepción es posible a través de las configuraciones de red de Storage para las instancias de recursos. Puede deshabilitar el acceso público a Internet a la cuenta de Storage y permitir que los servicios de Azure y instancias específicas de recursos se conecten a través de la red troncal de Azure. Este perímetro de red se empareja con un perímetro de identidad basado en id. de Microsoft Entra que usa RBAC de Azure para restringir el acceso al plano de datos.
Esta arquitectura asigna una identidad administrada a IoT Hub. A la identidad administrada se le asigna el rol colaborador de datos de Storage Blob a la cuenta de almacenamiento especificada. Con este permiso, IoT Hub puede solicitar una clave de delegación de usuario para construir un token de SAS. El dispositivo cliente de IoT recibe el token de SAS para el proceso de carga de archivos.
Application Gateway actúa como punto de entrada para las solicitudes que van al punto de conexión privado de la cuenta de almacenamiento, que se configura como el único back-end. Application Gateway usa una dirección IP pública. Un proveedor DNS personalizado se puede configurar para asignar la dirección IP pública a un registro A o un registro CNAME .
Si tiene requisitos de seguridad internos para usar puntos de conexión privados para muchos servicios paaS de Azure, puede implementar este escenario para proporcionar ciclos de validación más cortos para implementar las soluciones de IoT en producción.
Posibles casos de uso
Esta arquitectura se puede aplicar a cualquier escenario que use dispositivos que necesiten comunicarse con una cuenta de Almacenamiento que no se expone públicamente.
Por ejemplo, un proveedor de automatización industrial proporciona sensores y controladores perimetrales conectados administrados. Estos sensores deben comunicarse con la nube de Azure a través de la red pública de Internet, pero el equipo de seguridad del proveedor requiere que la cuenta de almacenamiento se deniegue el acceso público a Internet. Esta arquitectura cumple este requisito.
Alternativas
Si no necesita la topología de red en estrella tipo hub-spoke que tiene la inspección del tráfico de Azure Firewall, puede implementar una topología de red simplificada para beneficiarse de este enfoque. Puede usar una sola red virtual que tenga subredes distintas para dar cabida a Application Gateway, Private Link y la zona DNS privada. La cuenta de almacenamiento y IoT Hub pueden usar las mismas configuraciones que la arquitectura original.
Las ventajas de una arquitectura simplificada incluyen una complejidad y un costo reducidos. Si no tiene requisitos empresariales o empresariales específicos para una topología en estrella tipo hub-spoke, use la arquitectura simplificada para eliminar los puntos de conexión de Internet públicos de la cuenta de almacenamiento. Este enfoque también ayuda a garantizar que las aplicaciones de IoT que usan la funcionalidad de carga de archivos de IoT Hub funcionen correctamente.
Para obtener un ejemplo que implemente una arquitectura similar, consulte Configuración de la carga de archivos de IoT Hub en Storage a través de un punto de conexión privado. En este ejemplo se implementa un dispositivo cliente ioT simulado y se usan dispositivos gemelos para reemplazar el nombre de dominio personalizado de la cuenta de almacenamiento.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Creadores de entidad de seguridad:
- Katrien De Graeve | Ingeniero de software
- Vincent Misson | Arquitecto de soluciones en la nube
Otro colaborador:
- Nacim Allouache | Arquitecto de soluciones en la nube
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Paso siguiente
Aprenda a cargar archivos con IoT Hub.