Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial: Seguro AWS IoT Nucleus Lite de Greengrass con el módulo de plataforma confiable (TPM)
En este tutorial se explica cómo habilitar y configurar la compatibilidad con el Módulo de plataforma segura (TPM) para AWS IoT Greengrass nucleus lite. El TPM proporciona una raíz de confianza basada en hardware para el almacenamiento seguro de las claves. Esta función de seguridad protege las operaciones criptográficas y las credenciales confidenciales, lo que mejora la seguridad y la integridad del dispositivo.
Cuando complete esta integración, su dispositivo AWS IoT Greengrass principal utilizará claves TPM-protected privadas para su identidad y comunicación con AWS IoT los servicios.
Para obtener más información sobre la seguridad de AWS IoT Greengrass los dispositivos, consulteSeguridad en AWS IoT Greengrass.
Requisitos previos
Necesitará lo siguiente para completar este tutorial:
-
Un Linux-compatible dispositivo con hardware TPM 2.0 o NitroTPM
-
Una máquina para desarrolladores con Greengrass Nucleus Lite instalado. Para obtener más información, consulte Instalación del software AWS IoT Greengrass Core (consola).
-
Las instrucciones de este tutorial están definidas para Ubuntu 24.04 LTS.
-
Cualquier distribución de Linux que sea compatible con la pila de software TPM2 de Linux
puede admitir este mecanismo. -
Una máquina de desarrollador con la AWS CLI instalada y configurada con permisos para que:
-
Cree y administre AWS IoT recursos
-
Cree y actualice los roles y las políticas de IAM
-
-
Privilegios de raíz o sudo en el dispositivo.
Este tutorial contiene instrucciones sobre cómo utilizar el chip TPM2 como módulo de seguridad de hardware (HSM) para crear una clave privada y una CSR que se utiliza para crear el certificado de la AWS IoT cosa.
Paso 1: configurar una instancia de NitroTPM
-
Configura una instancia de NitroTPM. Para obtener más información, consulte NitroTPM.
-
Lance la instancia final con la AMI personalizada creada en el paso anterior.
importante
Cuando te conectes con SSH, usa el
ubuntuusuario en lugar deroot. -
Para comprobar que el dispositivo TPM está presente y funciona, ejecute el siguiente comando:
ls -la /dev/tpm*Deberías ver
/dev/tpm0y/dev/tpmrm0dispositivos.
Paso 2: Instalar y configurar las herramientas TPM
-
Instale los paquetes necesarios ejecutando el siguiente comando:
sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0 -
Verifique los permisos del dispositivo TPM ejecutando el siguiente comando:
ls -l /dev/tpm0 # Should be owned by tss:root with permissions 0660 ls -l /dev/tpmrm0 # Should be owned by tss:tss with permissions 0660
Paso 3: Configurar el proveedor TPM2 de OpenSSL
-
Edite el archivo de configuración de OpenSSL:
sudo vi /etc/ssl/openssl.cnf -
Agregue la siguiente configuración:
[openssl_init] providers = provider_sect [provider_sect] default = default_sect tpm2 = tpm2_sect [default_sect] activate = 1 [tpm2_sect] identity = tpm2 module = /usr/local/lib64/tpm2.so activate = 1 -
Ajuste la ruta del módulo según sea necesario. Puede encontrar la ruta correcta usando:
find /usr -name "tpm2.so"
Paso 4: Generar claves TPM persistentes
-
Cree una clave principal ejecutando el siguiente comando:
sudo tpm2_createprimary -C o -c primary.ctx -
Cree un objeto de clave ECC ejecutando el siguiente comando:
sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub -
Cargue la clave ejecutando el siguiente comando:
sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx -
Haga que la clave sea persistente ejecutando el siguiente comando:
sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002Esto crea una clave persistente con el identificador (similar a
0x81000002).
Paso 5: Generar una solicitud de firma de certificado (CSR)
En este paso, utilizarás la clave TPM2-protected privada para generar una solicitud de firma de certificado (CSR).
-
Genere una CSR con la clave TPM:
openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing" -
0x81000002Sustitúyalo por el valor de identificador que hayas elegido y por elTPMThingnombre de la cosa que desees.
Paso 6: Crea el certificado desde CSR
-
En tu ordenador de desarrollo, crea una carpeta en la que hayas descargado el certificado de la AWS IoT cosa.
mkdir greengrass-v2-certs -
Usa el archivo CSR para crear y descargar el certificado de la AWS IoT cosa en tu computadora de desarrollo.
aws iot create-certificate-from-csr \ --set-as-active \ --certificate-signing-request file://path_to_device.csr\ --certificate-pem-outfile greengrass-v2-certs/device.pem.crtSi la solicitud se realiza correctamente, la respuesta tiene un aspecto similar al del siguiente ejemplo:
{ "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }
Paso 7: Configure Greengrass Nucleus Lite con soporte para TPM
Para habilitar la compatibilidad con TPM en Greengrass Nucleus Lite, realice los siguientes cambios:
-
Configure los permisos de usuario añadiendo el
ggcoreusuario altssgrupo para acceder al TPM:sudo usermod -a -G tss ggcore -
Actualice el directorio de credenciales siguiendo los pasos siguientes:
-
Elimine el archivo de clave privada del directorio de credenciales.
-
Como utilizamos claves TPM persistentes, no es necesario copiar ningún archivo de clave privada.
-
-
Copie la nueva
device.pem.crten ese directorio de credenciales.
-
-
Edite
config.yamlcon la siguiente TPM-specific configuración:system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ... -
Reinicie su Nucleus Lite de Greengrass ejecutando el siguiente comando:
systemctl restart greengrass-lite.target
Resolución de problemas
Si tiene problemas durante la configuración o el funcionamiento del TPM2-enabled AWS IoT Greengrass dispositivo, pruebe los siguientes pasos de solución de problemas:
No se encuentra el dispositivo TPM (cuando se usa NitroTPM)
Si no /dev/tpm0 está presente, lleve a cabo los siguientes pasos:
-
Comprueba que estás usando un tipo de NitroTPM-supported instancia.
-
Asegúrese de que la AMI se creó con
--tpm-support v2.0. -
Compruebe que la instancia se lanzó desde la AMI personalizada.
Errores de permiso denegado
Si se producen errores de acceso al TPM, haga lo siguiente:
-
Verifique que el usuario esté en el
tssgrupo:groups $USER. -
Compruebe los permisos del dispositivo TPM con el siguiente comando:
ls -l /dev/tpm* -
Compruebe que ha cerrado sesión y ha vuelto a iniciarla después de añadirlo al
tssgrupo.
Problemas con el proveedor de OpenSSL
Si no encuentra el proveedor TPM, haga lo siguiente:
-
Verifique
tpm2.sola ruta en./etc/ssl/openssl.cnf -
Compruebe la instalación del proveedor ejecutando el siguiente comando:
openssl list -providers -
Compruebe que el
tpm2-opensslpaquete esté correctamente instalado.
Siguientes pasos
Ahora que ha integrado correctamente su dispositivo AWS IoT Greengrass principal con TPM2, puede:
-
Implemente componentes en su dispositivo seguro AWS IoT Greengrass
-
Configure AWS IoT Greengrass dispositivos adicionales con la integración de TPM2
Para obtener más información sobre la seguridad de AWS IoT Greengrass los dispositivos, consulteSeguridad en AWS IoT Greengrass.