Creación y aprovisionamiento de dispositivos IoT Edge a gran escala con un TPM en Windows

Se aplica a:icono IoT Edge 1.1

Importante

IoT Edge 1.1: la 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 Actualización de IoT Edge.

En este artículo se proporcionan instrucciones para aprovisionar automáticamente Azure IoT Edge para dispositivos Windows mediante un módulo de plataforma segura (TPM). Puede aprovisionar dispositivos IoT Edge de forma automática con el Azure IoT Hub Device Provisioning Service. Si no está familiarizado con el proceso de aprovisionamiento automático, revise la información general sobre el aprovisionamiento antes de continuar.

Nota

Azure IoT Edge con contenedores Windows no se admitirá a partir de la versión 1.2 de Azure IoT Edge.

Considere la posibilidad de usar el nuevo método para ejecutar IoT Edge en dispositivos Windows, Azure IoT Edge para Linux en Windows.

Si desea usar Azure IoT Edge para Linux en Windows, puede seguir los pasos de la guía de procedimientos equivalente.

En este artículo, se describen dos metodologías. Seleccione sus preferencias en función de la arquitectura de la solución:

  • Aprovisionar automáticamente un dispositivo Windows con hardware de TPM físico.
  • Aprovisionar automáticamente un dispositivo Windows que ejecuta un TPM simulado. Se recomienda esta metodología solo como escenario de prueba. Un TPM simulado no ofrece la misma seguridad que un TPM físico.

Las instrucciones varían en función de la metodología, por lo que debe asegurarse de que se encuentra en la pestaña correcta en el futuro.

Las tareas son las siguientes:

  • Recupere la información de aprovisionamiento del dispositivo.
  • Cree una inscripción individual para el dispositivo.
  • Instale el entorno de ejecución de IoT Edge y conecte el dispositivo a IoT Hub.

Prerrequisitos

Los requisitos previos son los mismos para las soluciones de TPM físico y TPM virtual.

Recursos en la nube

Requisitos de los dispositivos

Una máquina de desarrollo Windows. En este artículo se usa Windows 10.

Nota

TPM 2.0 es necesario cuando se usa la atestación de TPM con el servicio de aprovisionamiento de dispositivos.

Solo puede crear inscripciones individuales, no de grupo, del servicio de aprovisionamiento de dispositivos cuando se usa un TPM.

Configuración de TPM

En esta sección, creará una herramienta que podrá usar para recuperar el identificador de registro y la clave de aprobación del TPM.

  1. Siga los pasos de Configuración de un entorno de desarrollo en Windows para instalar y compilar el SDK de dispositivo IoT de Azure para C.

  2. Ejecute los comandos siguientes en una sesión de PowerShell con privilegios elevados para compilar la herramienta del SDK que recupera la información de aprovisionamiento de dispositivos desde el TPM.

    cd azure-iot-sdk-c\cmake
    cmake -Duse_prov_client:BOOL=ON ..
    cd provisioning_client\tools\tpm_device_provision
    make
    .\tpm_device_provision
    
  3. En la ventana de salida se muestra el Id. de registro y la Clave de aprobación. Copie estos valores; los usará más adelante cuando cree una inscripción individual para el dispositivo en el servicio de aprovisionamiento de dispositivos.

Sugerencia

Si no quiere usar la herramienta SDK para recuperar la información, debe encontrar otra manera de obtener la información de aprovisionamiento. La clave de aprobación, que es única para cada chip de TPM, se obtiene del fabricante del chip de TPM asociado a ella. Puede derivar un identificador de registro único para el dispositivo TPM. Por ejemplo, puede crear un hash SHA-256 de la clave de aprobación.

Cuando tenga el identificador de registro y la clave de aprobación, estará listo para continuar.

Creación de una inscripción del servicio de aprovisionamiento de dispositivos

Use la información de aprovisionamiento del TPM para crear una inscripción individual en servicio de aprovisionamiento de dispositivos.

Al crear una inscripción en el servicio de aprovisionamiento de dispositivos, tiene la oportunidad de declarar un estado inicial de dispositivo gemelo. En el dispositivo gemelo, puede establecer etiquetas para agrupar dispositivos por cualquier métrica utilizada en la solución, como la región, el entorno, la ubicación o el tipo de dispositivo. Estas etiquetas se usan para crear implementaciones automáticas.

Sugerencia

Los pasos de este artículo son para Azure Portal, pero también puede crear inscripciones individuales mediante la CLI de Azure. Para más información, consulte az iot dps enrollment. Como parte del comando de la CLI, use la marca edge-enabled para especificar que la inscripción es para un dispositivo de IoT Edge.

  1. En Azure Portal, vaya a la instancia del servicio de aprovisionamiento de dispositivos de IoT Hub.

  2. En Configuración, seleccione Administrar inscripciones.

  3. Seleccione Agregar inscripción individual y, después, complete los pasos siguientes para configurar la inscripción:

    1. En Mecanismo, seleccione TPM.

    2. Proporcione la clave de aprobación y el identificador de registro que ha copiado de la máquina virtual o el dispositivo físico.

    3. Si quiere, proporcione un identificador para el dispositivo. Si no proporciona un id. de dispositivo, se usará el id. de registro.

    4. Seleccione Verdadero para declarar que esta máquina virtual o el dispositivo físico es un dispositivo IoT Edge.

    5. Elija el centro de IoT vinculado al que quiere conectar el dispositivo o seleccione Link to new IoT Hub (Vincular a un nuevo centro de IoT). Puede elegir varios centros y el dispositivo se asignará a uno de ellos según la directiva de asignación seleccionada.

    6. Si quiere, agregue un valor de etiqueta a Estado inicial de dispositivo gemelo. Puede usar etiquetas para los grupos de dispositivos de destino para la implementación del módulo. Para más información, consulte Implementación de módulos IoT Edge a escala.

    7. Seleccione Guardar.

Ahora que existe una inscripción para este dispositivo, el entorno de ejecución de Azure IoT Edge puede aprovisionar automáticamente el dispositivo durante la instalación.

Instalación de IoT Edge

En esta sección, preparará la VM o el dispositivo físico Windows para IoT Edge. A continuación, instalará IoT Edge.

Azure IoT Edge utiliza un runtime de contenedor compatible con OCI. Moby, un motor basado en Moby, se incluye en el script de instalación, lo que significa que no hay ningún paso adicional para instalar el motor.

Para instalar el entorno de ejecución de IoT Edge:

  1. Ejecute PowerShell como administrador.

    Use una sesión de AMD64 de PowerShell, no PowerShell (x86). Si no está seguro del tipo de sesión que usa, ejecute el comando siguiente:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Ejecute el comando Deploy-IoTEdge, que realiza las tareas siguientes:

    • Comprueba que la máquina Windows se encuentra en una versión compatible.
    • Activa la característica de los contenedores.
    • Descarga el motor de Moby y el entorno de ejecución de IoT Edge.
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Si se le solicita, reinicie el dispositivo.

Al instalar IoT Edge en un dispositivo, puede usar parámetros adicionales para modificar el proceso, entre los que se incluyen los siguientes:

  • Dirigir el tráfico para que pase por un servidor proxy
  • Haga que el instalador apunte a un directorio local, en el caso de una instalación sin conexión.

Para más información sobre estos parámetros adicionales, consulte Scripts de PowerShell para IoT Edge con contenedores Windows.

Aprovisionamiento del dispositivo con su identidad de nube

Una vez instalado el entorno de ejecución en el dispositivo, configure este con la información que se usa para conectarse al servicio de aprovisionamiento de dispositivos e IoT Hub.

  1. Conozca los valores de Ámbito de id. e Id. de registro del dispositivo que se recopilaron en las secciones anteriores.

  2. Abra una ventana de Azure PowerShell en modo de administrador. Asegúrese de usar una sesión AMD64 de PowerShell al instalar IoT Edge, no PowerShell (x86).

  3. El comando Initialize-IoTEdge configura el entorno de ejecución de IoT Edge en la máquina. El comportamiento predeterminado del comando es el aprovisionamiento manual con contenedores de Windows. Use la marca -Dps para utilizar el servicio de aprovisionamiento de dispositivos, en lugar del aprovisionamiento manual.

    Reemplace los valores de marcador de posición para paste_scope_id_here y paste_registration_id_here con los datos que ha recopilado antes.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -Dps -ScopeId paste_scope_id_here -RegistrationId paste_registration_id_here
    

Comprobación de instalación correcta

Si el entorno de ejecución se inició correctamente, vaya a IoT Hub y empiece a implementar módulos de IoT Edge en el dispositivo. Use los siguientes comandos en el dispositivo para comprobar que el entorno de ejecución está instalado e iniciado correctamente.

  1. Compruebe el estado del servicio IoT Edge.

    Get-Service iotedge
    
  2. Examine los registros de servicio de los últimos 5 minutos.

    . {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
    
  3. Enumere los módulos en ejecución.

    iotedge list
    

Pasos siguientes

El proceso de inscripción en Device Provisioning Service permite establecer el id. de dispositivo y las etiquetas del dispositivo gemelo al mismo tiempo que se aprovisiona el nuevo dispositivo. Puede usar esos valores para dirigirse a dispositivos individuales o grupos de dispositivos mediante la administración automática de dispositivos.

Aprenda a implementar y supervisar los módulos de IoT Edge a gran escala mediante Azure Portal o la CLI de Azure.