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.
Se aplica a: IoT Edge 1.1
Importante
IoT Edge 1.1 fecha de finalización del soporte técnico fue el 13 de diciembre de 2022. Consulte la página del ciclo de vida de productos de Microsoft para obtener información sobre cómo se admite este producto, servicio, tecnología o API. Para obtener más información sobre cómo actualizar a la versión más reciente de IoT Edge, consulte Update IoT Edge.
Este artículo proporciona instrucciones detalladas para configurar un dispositivo IoT Edge de modo que funcione como una puerta de enlace transparente para que otros dispositivos se comuniquen con IoT Hub. En este artículo, el término puerta de enlace IoT Edge hace referencia a un dispositivo IoT Edge configurado como una puerta de enlace transparente. Para más información, consulte Uso de un dispositivo IoT Edge como puerta de enlace.
Nota:
En las versiones 1.1 y anteriores de IoT Edge, un dispositivo IoT Edge no puede ser inferior a una puerta de enlace de IoT Edge.
Los dispositivos descendentes no pueden subir archivos.
Hay tres pasos generales para configurar una conexión de puerta de enlace transparente correcta. En este artículo se describe el primer paso:
- Configure el dispositivo de puerta de enlace como servidor para que los dispositivos de bajada puedan conectarse a él de forma segura. Configure la puerta de enlace para recibir mensajes de los dispositivos de bajada y enrutarlos al destino adecuado.
- Crear una identidad de dispositivo para el dispositivo descendente para que pueda autenticarse en IoT Hub. Configura el dispositivo de destino para enviar mensajes mediante el dispositivo de puerta de enlace. Para conocer estos pasos, consulte Autenticación de un dispositivo de bajada en Azure IoT Hub.
- Conecte el dispositivo de bajada al dispositivo de puerta de enlace y empiece a enviar mensajes. Para realizar esos pasos, consulte Conexión de un dispositivo de bajada a una puerta de enlace Azure IoT Edge.
Para que un dispositivo funcione como puerta de enlace, tiene que conectarse de forma segura a sus dispositivos de bajada. Azure IoT Edge le permite usar una infraestructura de clave pública (PKI) para configurar conexiones seguras entre los dispositivos. En este caso, permitimos que un dispositivo aguas abajo se conecte a un dispositivo IoT Edge que actúa como puerta de enlace transparente. Para mantener una seguridad razonable, el dispositivo receptor debe confirmar la identidad de la puerta de enlace. Esta comprobación de identidad evita que los dispositivos se conecten a puertas de enlace que pueden ser malintencionadas.
Un dispositivo de bajada puede ser cualquier aplicación o plataforma que tenga una identidad creada con el servicio en la nube Azure IoT Hub. Estas aplicaciones suelen usar el SDK de dispositivo IoT de Azure. Un dispositivo descendente podría ser incluso una aplicación que se ejecuta en el propio dispositivo gateway IoT Edge. Sin embargo, un dispositivo IoT Edge no puede estar subordinado a una puerta de enlace de IoT Edge.
Puede crear cualquier infraestructura de certificados que permita la confianza necesaria para la topología de la puerta de enlace de dispositivo. En este artículo se da por hecho que usa la misma configuración de certificado que usaría para habilitar la seguridad de entidad de certificación X.509 en IoT Hub, lo que implica un certificado de entidad de certificación X.509 asociado a un centro de IoT específico (la entidad de certificación raíz del centro de IoT), una serie de certificados firmados con esta entidad de certificación y una entidad de certificación para el dispositivo IoT Edge.
Nota:
El término certificado de CA raíz usado en estos artículos hace referencia al certificado público de entidad de nivel superior de la cadena de certificados de PKI y no necesariamente a la raíz del certificado de una entidad de certificación sindicada. En muchos casos, se trata de un certificado público intermedio de la entidad de certificación.
Los pasos siguientes le guían por el proceso de crear los certificados e instalarlos en los lugares adecuados de la puerta de enlace. Puede usar cualquier máquina para generar los certificados y, a continuación, copiarlos en el dispositivo IoT Edge.
Prerrequisitos
Un dispositivo Linux o Windows con IoT Edge instalado.
Si no tiene listo un dispositivo, puede crear uno en una máquina virtual de Azure. Siga los pasos descritos en Implementación del primer módulo de IoT Edge en un dispositivo virtual Linux para crear una instancia de IoT Hub, crear una máquina virtual y configurar el entorno de ejecución de Azure IoT Edge.
Configurar el certificado de autoridad de certificación del dispositivo
Todas las puertas de enlace de IoT Edge necesitan tener un certificado de CA de dispositivo instalado en estos. El demonio de seguridad del IoT Edge usa el certificado de entidad de certificación del dispositivo IoT Edge para firmar un certificado de CA para la carga de trabajo, que a su vez firma un certificado de servidor para el hub de IoT Edge. La puerta de enlace presenta su certificado de servidor al dispositivo de bajada durante el inicio de la conexión. El dispositivo aguas abajo realiza comprobaciones para asegurarse de que el certificado de servidor forma parte de una cadena de certificados que llega hasta el certificado de autoridad de certificación raíz. Este proceso permite que el dispositivo receptor confirme que la puerta de enlace procede de un origen de confianza. Para obtener más información, consulta Información sobre los certificados de Azure IoT Edge.
El certificado de entidad de certificación raíz y el certificado de entidad de certificación del dispositivo (con su clave privada) deben estar presentes en el dispositivo de puerta de enlace de IoT Edge y configurarse en el archivo de configuración de IoT Edge. Recuerde que, en este caso, certificado de CA raíz significa la entidad de certificación de nivel superior para este escenario de IoT Edge. El certificado de entidad de certificación del dispositivo de puerta de enlace y los certificados de los dispositivos subordinados deben vincularse al mismo certificado de entidad de certificación raíz.
Sugerencia
El proceso de instalación del certificado de entidad de certificación raíz y del certificado de entidad de certificación de dispositivo en un dispositivo IoT Edge también se explica con más detalle en Administración de certificados en un dispositivo IoT Edge.
Tenga listos los archivos siguientes:
- Certificado de entidad de certificación raíz
- Certificado de entidad de certificación de dispositivo
- Clave privada de CA del dispositivo
En escenarios de producción, debe generar estos archivos con su propia autoridad certificadora. En escenarios de desarrollo y pruebas, puede usar certificados de demostración.
Creación de certificados de demostración
Si no tiene su propia entidad de certificación y quiere usar certificados de demostración, siga las instrucciones de Creación de certificados de demostración para probar las características del dispositivo IOT Edge para crear sus archivos. En esa página, debe seguir los pasos a continuación:
- Para empezar, configure los scripts para generar certificados en el dispositivo.
- Cree un certificado de CA raíz. Al final de esas instrucciones, tendrá un archivo de certificado de CA raíz
<path>/certs/azure-iot-test-only.root.ca.cert.pem
. - Cree certificados de CA para dispositivos IoT Edge. Al final de esas instrucciones, tendrá un certificado de autoridad de certificación de dispositivo
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem
y su clave privada<path>/private/iot-edge-device-ca-<cert name>.key.pem
.
Copia de certificados al dispositivo
Compruebe que el certificado cumple los requisitos de formato.
Si ha creado los certificados en otra máquina, cópielos en el dispositivo IoT Edge. Puede usar una unidad USB, un servicio como Azure Key Vault o una función como Secure file copy.
Mueva los archivos al directorio preferido para certificados y claves. Use
/var/aziot/certs
para certificados y/var/aziot/secrets
para claves.Cree los certificados y directorios de claves y establezca permisos. Debe almacenar los certificados y las claves en el directorio
/var/aziot
preferido. Use/var/aziot/certs
para certificados y/var/aziot/secrets
para claves.# If the certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets
Cambie la propiedad y los permisos de los certificados y las claves.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
Configuración de certificados en un dispositivo
En tu dispositivo IoT Edge, abre el archivo de configuración del servicio de seguridad.
- Windows:
C:\ProgramData\iotedge\config.yaml
- Linux:
/etc/iotedge/config.yaml
- IoT Edge para Linux en Windows:
/etc/iotedge/config.yaml
Sugerencia
Si usa IoT Edge para Linux en Windows (EFLOW), tendrá que conectarse a la máquina virtual EFLOW y cambiar el archivo dentro de la máquina virtual. Puede conectarse a la máquina virtual EFLOW mediante el cmdlet de PowerShell
Connect-EflowVm
y, a continuación, usar el editor preferido.- Windows:
Busque la sección configuración del certificado del archivo. Descomente las cuatro líneas que comienzan con certificados: y proporcione los URIs de archivo a los tres archivos como valores para las siguientes propiedades:
- device_ca_cert: certificado CA del dispositivo
- device_ca_pk: clave privada de la autoridad de certificación del dispositivo
- trusted_ca_certs: certificado de entidad de certificación raíz
Asegúrese de que no haya ningún espacio en blanco delante en la línea de certificados :, y que las otras líneas estén sangradas por dos espacios.
Guarde y cierre el archivo.
Reinicie IoT Edge.
- Windows:
Restart-Service iotedge
- Linux:
sudo systemctl restart iotedge
- IoT Edge para Linux en Windows:
sudo systemctl restart iotedge
- Windows:
Implementación de edgeHub y enrutado de mensajes
Los dispositivos de nivel inferior envían datos de telemetría y mensajes al dispositivo de puerta de enlace, donde el módulo del centro de IoT Edge es responsable de enrutar la información a otros módulos o a IoT Hub. Para preparar el dispositivo de puerta de enlace para esta función, asegúrese de que:
El módulo del centro de IoT Edge se implementa en el dispositivo.
Cuando se instala IoT Edge por primera vez en un dispositivo, se inicia automáticamente un único módulo del sistema: el agente de IoT Edge. Una vez que se crea la primera implementación para un dispositivo, también se inicia el segundo módulo del sistema y el centro de IoT Edge. Si el módulo edgeHub no está en ejecución en el dispositivo, cree una implementación para el dispositivo.
El módulo del centro de IoT Edge tiene rutas configuradas para administrar los mensajes entrantes de los dispositivos de nivel inferior.
El dispositivo de puerta de enlace tiene que tener una ruta para administrar los mensajes de los dispositivos de nivel inferior o, de lo contrario, los mensajes no se procesarán. Puede enviar los mensajes a los módulos del dispositivo de puerta de enlace o directamente a IoT Hub.
Para implementar el módulo del centro de IoT Edge y configurarlo con rutas para administrar los mensajes entrantes de los dispositivos de nivel inferior, siga estos pasos:
En Azure Portal, navegue hasta su centro de IoT.
Vaya a Dispositivos en Administración de dispositivos y seleccione el dispositivo IoT Edge que quiere usar como puerta de enlace.
Seleccione Set modules (Establecer módulos).
En la página Módulos, puede agregar cualquier módulo que desee implementar en el dispositivo de puerta de enlace. Para los fines de este artículo, nos centramos en la configuración e implementación del módulo edgeHub, que no es necesario establecer explícitamente en esta página.
Seleccione Siguiente: rutas.
En la página Rutas, asegúrese de que hay una ruta para controlar los mensajes procedentes de los dispositivos de nivel inferior. Por ejemplo:
Ruta que envía todos los mensajes, ya sea desde un módulo o desde un dispositivo de nivel inferior, a IoT Hub:
-
Nombre:
allMessagesToHub
-
Valor:
FROM /messages/* INTO $upstream
-
Nombre:
Una ruta que envía todos los mensajes de todos los dispositivos de nivel inferior a IoT Hub:
-
Nombre:
allDownstreamToHub
-
Valor:
FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
Esta ruta funciona porque, a diferencia de los mensajes de los módulos de IoT Edge, los mensajes de los dispositivos descendentes no tienen un identificador de módulo asociado. El uso de la cláusula WHERE de la ruta nos permite filtrar los mensajes que contengan esa propiedad del sistema.
Para obtener más información sobre el enrutamiento de mensajes, vea Implementar módulos y establecer rutas.
-
Nombre:
Una vez creadas las rutas, seleccione Revisar y crear.
En la página Revisar y crear, seleccione Crear.
Abrir puertos en el dispositivo de puerta de enlace
Los dispositivos IoT Edge estándar no necesitan conectividad entrante a para funcionar, porque toda la comunicación con IoT Hub se realiza a través de conexiones salientes. Los dispositivos de puerta de enlace son diferentes porque deben recibir mensajes de sus dispositivos de bajada. Si hay un firewall entre los dispositivos de bajada y el dispositivo de puerta de enlace, la comunicación también debe ser posible a través de él.
Para que un escenario de puerta de enlace funcione, al menos uno de los protocolos admitidos en el concentrador IoT Edge debe estar abierto para el tráfico de entrada procedente de los dispositivos descendentes. Los protocolos admitidos son MQTT, AMQP, HTTPS, MQTT sobre WebSockets y AMQP sobre WebSockets.
Puerto | Protocolo |
---|---|
8883 | MQTT |
5671 | AMQP |
443 | HTTPS MQTT + WS AMQP + WS |
Pasos siguientes
Ahora que tiene un dispositivo IoT Edge configurado como puerta de enlace transparente, debe configurar los dispositivos de bajada para que confíen en la puerta de enlace y le envíen mensajes. Continúe con Autenticar un dispositivo descendente en Azure IoT Hub para los siguientes pasos en la configuración de su escenario de puerta de enlace transparente.