Instalación del software AWS IoT Greengrass Core con aprovisionamiento manual de recursos - AWS IoT Greengrass

Instalación del software AWS IoT Greengrass Core con aprovisionamiento manual de recursos

El software AWS IoT Greengrass Core incluye un instalador que configura su dispositivo como un dispositivo principal de Greengrass. Para configurar un dispositivo manualmente, puede crear los recursos necesarios de AWS IoT y de IAM para que los utilice el dispositivo. Si crea estos recursos manualmente, no es necesario proporcionar credenciales de AWS al instalador.

Cuando instala manualmente el software AWS IoT Greengrass Core, también puede configurar el dispositivo para que utilice un proxy de red o se conecte a AWS en el puerto 443. Es posible que tenga que especificar estas opciones de configuración si su dispositivo funciona con un firewall o un proxy de red, por ejemplo. Para obtener más información, consulte Realizar la conexión en el puerto 443 o a través de un proxy de red.

También puede configurar el software AWS IoT Greengrass Core para que utilice un módulo de seguridad de hardware (HSM) a través de la interfaz PKCS#11. Esta característica le permite almacenar de forma segura los archivos de certificados y claves privadas para que no queden expuestos ni duplicados en el software. Puede almacenar claves privadas y certificados en un módulo de hardware, como un HSM, un módulo de plataforma segura (TPM) u otro elemento criptográfico. Esta característica solo está disponible en dispositivos Linux. Para obtener más información sobre la seguridad del hardware y los requisitos para su uso, consulte Integración de la seguridad de hardware.

importante

Antes de descargar el software AWS IoT Greengrass Core, compruebe que su dispositivo principal cumpla los requisitos para instalar y ejecutar la versión 2.0 del software AWS IoT Greengrass Core.

Recuperación de los puntos de conexión de AWS IoT

Obtenga los puntos de conexión de AWS IoT para Cuenta de AWS y guárdelos para usarlos más adelante. El dispositivo usa estos puntos de conexión para conectarse a AWS IoT. Haga lo siguiente:

  1. Obtenga el punto de conexión de datos de AWS IoT para su Cuenta de AWS.

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

    Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

    { "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com" }
  2. Obtenga el punto de conexión de las credenciales de AWS IoT para su Cuenta de AWS.

    aws iot describe-endpoint --endpoint-type iot:CredentialProvider

    Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

    { "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" }

Creación de un objeto de AWS IoT

Los objetos AWS IoT representan dispositivos y entidades lógicas que se conectan a AWS IoT. Los dispositivos principales de Greengrass son objetos AWS IoT. Cuando registre un dispositivo como un objeto AWS IoT, ese dispositivo puede usar un certificado digital para autenticarse con AWS.

En esta sección, creará un objeto AWS IoT que represente su dispositivo.

Crear un objeto de AWS IoT
  1. Cree un objeto AWS IoT para su dispositivo. En su equipo de desarrollo, ejecute el siguiente comando.

    • Reemplace MyGreengrassCore por el nombre del objeto que usará. Este nombre también es el nombre de su dispositivo principal de Greengrass.

      nota

      El nombre del objeto no puede contener dos puntos (:).

    aws iot create-thing --thing-name MyGreengrassCore

    Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

    { "thingName": "MyGreengrassCore", "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42" }
  2. (Opcional) Agregue el objeto AWS IoT a un grupo de objetos nuevo o existente. Los grupos de objetos se usan para administrar las flotas de dispositivos principales de Greengrass. Al implementar componentes de software en sus dispositivos, puede dirigirlos a dispositivos individuales o a grupos de dispositivos. Puede agregar un dispositivo a un grupo de objetos con una implementación activa de Greengrass para implementar los componentes de software de ese grupo de objetos en el dispositivo. Haga lo siguiente:

    1. (Opcional) Cree un grupo de objetos AWS IoT.

      • Reemplace MyGreengrassCoreGroup por el nombre del grupo de objetos que creará.

        nota

        El nombre del grupo de objetos no puede contener dos puntos (:).

      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      { "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
    2. Agregue un objeto AWS IoT a un grupo de objetos.

      • Reemplace MyGreengrassCore por el nombre de su objeto AWS IoT.

      • Reemplace MyGreengrassCoreGroup por el nombre del grupo de objetos.

      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup

      El comando no tiene ningún resultado si la solicitud se realiza correctamente.

Creación del certificado del objeto

Cuando registre un dispositivo como un objeto AWS IoT, ese dispositivo puede usar un certificado digital para autenticarse con AWS. Este certificado permite que el dispositivo se comunique con AWS IoT y AWS IoT Greengrass.

En esta sección, puede crear y descargar certificados que el dispositivo puede usar para conectarse a AWS.

Si desea configurar el software AWS IoT Greengrass Core para que utilice un módulo de seguridad de hardware (HSM) para almacenar de forma segura la clave privada y el certificado, siga los pasos para crear el certificado a partir de una clave privada de un HSM. De lo contrario, siga los pasos para crear el certificado y la clave privada en el servicio AWS IoT. La característica de seguridad de hardware solo está disponible en dispositivos Linux. Para obtener más información sobre la seguridad del hardware y los requisitos para su uso, consulte Integración de la seguridad de hardware.

Creación del certificado y la clave privada, en el servicio AWS IoT

Creación del certificado del objeto
  1. Creación de una carpeta en la que descargue los certificados del objeto AWS IoT.

    mkdir greengrass-v2-certs
  2. Cree y descargue los certificados del objeto AWS IoT.

    aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key

    Si la solicitud se realiza exitosamente, la respuesta se parece al 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-----", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\ MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\ MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\ 59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\ hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\ FQIDAQAB\ -----END PUBLIC KEY-----\ ", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\ key omitted for security reasons\ -----END RSA PRIVATE KEY-----\ " } }

    Guarde el nombre de recurso de Amazon (ARN) del certificado para usarlo para configurar el certificado más adelante.

Creación del certificado a partir de una clave privada en un HSM

nota

Esta característica está disponible para la versión 2.5.3 y versiones posteriores del componente núcleo de Greengrass. AWS IoT Greengrass actualmente no admite esta característica en los dispositivos principales de Windows.

Creación del certificado del objeto
  1. En el dispositivo principal, inicialice un token PKCS#11 en el HSM y genere una clave privada. La clave privada debe ser una clave RSA con un tamaño de clave RSA-2048 (o mayor) o una clave ECC.

    nota

    Para utilizar un módulo de seguridad de hardware con claves ECC, debe utilizar la versión del núcleo de Greengrass 2.5.6 o posterior.

    Para usar un módulo de seguridad de hardware y el administrador de secretos, debe usar un módulo de seguridad de hardware con claves RSA.

    Consulte la documentación de su HSM para obtener información sobre cómo inicializar el token y generar la clave privada. Si su HSM admite ID de objeto, especifique un ID de objeto al generar la clave privada. Guarde el ID de ranura, el PIN de usuario, la etiqueta del objeto y el ID del objeto (si su HSM utiliza alguno) que especifique al inicializar el token y generar la clave privada. Estos valores se usan más adelante cuando se importa el certificado del objeto al HSM y se configura el software AWS IoT Greengrass Core.

  2. Cree una solicitud de firma de certificado (CSR) de la clave privada. AWS IoT usa esta CSR para crear un certificado de objetos para la clave privada que usted generó en el HSM. Para obtener información sobre cómo crear una CSR de la clave privada, consulte la documentación de su HSM. La CSR es un archivo, como iotdevicekey.csr.

  3. Copie la CSR del dispositivo a su computadora de desarrollo. Si SSH y SCP están habilitados en la computadora de desarrollo y en el dispositivo, puede utilizar el comando scp de la computadora de desarrollo para transferir la CSR. Reemplace la device-ip-address por la dirección IP de su dispositivo y reemplace ~/iotdevicekey.csr por la ruta al archivo CSR del dispositivo.

    scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
  4. En su computadora de desarrollo, cree una carpeta en la que descargue el certificado para el objeto AWS IoT.

    mkdir greengrass-v2-certs
  5. Use el archivo CSR para crear y descargar el certificado para el objeto AWS IoT en su computadora de desarrollo.

    aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt

    Si la solicitud se realiza exitosamente, la respuesta se parece al 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-----" }

    Guarde el ARN del certificado para usarlo más adelante para configurarlo.

Configuración del certificado del objeto

Adjunte el certificado del objeto AWS IoT que creó anteriormente y agregue una política de AWS IoT al certificado para definir los permisos de AWS IoT del dispositivo principal.

Configuración del certificado del objeto
  1. Asocie el certificado al objeto AWS IoT.

    • Reemplace MyGreengrassCore por el nombre de su objeto AWS IoT.

    • Reemplace el nombre de recurso de Amazon (ARN) del certificado por el ARN del certificado que creó en el paso anterior.

    aws iot attach-thing-principal --thing-name MyGreengrassCore --principal arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

    El comando no tiene ningún resultado si la solicitud se realiza correctamente.

  2. Cree y adjunte una política de AWS IoT que defina los permisos de AWS IoT del dispositivo principal de Greengrass. La siguiente política permite el acceso a todos los temas de MQTT y a las operaciones de Greengrass, de modo que su dispositivo funcione con aplicaciones personalizadas y con cambios futuros que requieran nuevas operaciones de Greengrass. Puede restringir esta política en función del caso de uso. Para obtener más información, consulte Política mínima de AWS IoT para dispositivos principales de AWS IoT Greengrass V2.

    Si ya ha configurado un dispositivo principal de Greengrass, puede adjuntar su política de AWS IoT en lugar de crear una nueva.

    Haga lo siguiente:

    1. Cree un archivo que contenga el documento de política de AWS IoT que requieren los dispositivos principales de Greengrass.

      Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      nano greengrass-v2-iot-policy.json

      Copie el siguiente JSON en el archivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] } ] }
    2. Cree una política de AWS IoT a partir del documento de política.

      • Reemplace GreengrassV2IoTThingPolicy por el nombre de la política que se va a crear.

      aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{ \\"Version\\": \\"2012-10-17\\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": [ \\"iot:Publish\\", \\"iot:Subscribe\\", \\"iot:Receive\\", \\"iot:Connect\\", \\"greengrass:*\\" ], \\"Resource\\": [ \\"*\\" ] } ] }", "policyVersionId": "1" }
    3. Asocie la política de AWS IoT al certificado del objeto AWS IoT.

      • Reemplace GreengrassV2IoTThingPolicy por el nombre de la política que se va adjuntar.

      • Reemplace el ARN de destino por el ARN del certificado de su objeto AWS IoT.

      aws iot attach-policy --policy-name GreengrassV2IoTThingPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

      El comando no tiene ningún resultado si la solicitud se realiza correctamente.

Creación de un rol de intercambio de token

Los dispositivos principales de Greengrass usan un rol de servicio de IAM, llamado el rol de intercambio de token, para autorizar las llamadas a los servicios de AWS. El dispositivo utiliza el proveedor de credenciales de AWS IoT para obtener credenciales de AWS temporales para este rol, lo que permite al dispositivo interactuar con AWS IoT, enviar registros a los Registros de Amazon CloudWatch y descargar artefactos de componentes personalizados de Amazon S3. Para obtener más información, consulte Autorización de los dispositivos principales para interactuar con los servicios de AWS.

Se usa un alias de rol AWS IoT para configurar el rol de intercambio de token para los dispositivos principales de Greengrass. Los alias de rol le permiten cambiar el rol de intercambio de token de un dispositivo, pero mantener la configuración del dispositivo igual. Para obtener más información, consulte Autorización de llamadas a los servicios de AWS en la Guía para desarrolladores de AWS IoT Core.

En esta sección, se crea un rol de IAM de intercambio de token y un alias de rol AWS IoT que apunte a ese rol. Si ya ha configurado un dispositivo principal de Greengrass, puede usar su rol de intercambio de token y su alias de rol en lugar de crear otros nuevos. A continuación, configure el objeto AWS IoT del dispositivo para que use ese rol y ese alias.

Creación de un rol de IAM de intercambio de token
  1. Creación de un rol de IAM que su dispositivo puede usar como rol de intercambio de token. Haga lo siguiente:

    1. Creación de un archivo que contenga el documento de política de confianza que requiere el rol de intercambio de token.

      Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      nano device-role-trust-policy.json

      Copie el siguiente JSON en el archivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Creación del rol de intercambio de token con el documento de política de confianza.

      • Reemplace GreengrassV2TokenExchangeRole por el nombre del rol de IAM que desee crear.

      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      { "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }
    3. Creación de un archivo que contenga el documento de política de acceso que requiere el rol de intercambio de token.

      Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      nano device-role-access-policy.json

      Copie el siguiente JSON en el archivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
      nota

      Esta política de acceso no permite el acceso a los artefactos de componentes en los buckets de S3. Para implementar componentes personalizados que definan artefactos en Amazon S3, debe agregar permisos al rol para permitir que su dispositivo principal recupere artefactos de componentes. Para obtener más información, consulte Cómo permitir el acceso a los buckets de S3 para los artefactos del componente.

      Si aún no tiene un bucket de S3 para los artefactos de los componentes, puede agregar estos permisos más adelante, después de crear un bucket.

    4. Creación de la política de IAM a partir del documento de política.

      • Reemplace GreengrassV2TokenExchangeRoleAccess por el nombre de la política de IAM que desee crear.

      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      { "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } }
    5. Adjunte la política de IAM al rol de intercambio de token.

      • Reemplace GreengrassV2TokenExchangeRole por el nombre del rol de IAM.

      • Reemplace el ARN de la política por el ARN de la política de IAM que creó en el paso anterior.

      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess

      El comando no tiene ningún resultado si la solicitud se realiza correctamente.

  2. Creación de un alias de rol AWS IoT que apunte al rol de intercambio de token.

    • Reemplace GreengrassCoreTokenExchangeRoleAlias por el nombre del alias del rol que se va a crear.

    • Reemplace el ARN del rol por el ARN del rol de IAM que creó en el paso anterior.

    aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole

    Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

    { "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
    nota

    Para crear un alias de rol, debe tener el permiso para transferir el rol de IAM de intercambio de token a AWS IoT. Si recibe un mensaje de error al intentar crear un alias de rol, compruebe que su usuario de AWS tiene este permiso. Para obtener más información, consulte Concesión de permisos a un usuario para transferir un rol a un servicio de AWS en la Guía del usuario de AWS Identity and Access Management.

  3. Cree y adjunte una política de AWS IoT que permita a su dispositivo principal de Greengrass usar el alias del rol para asumir el rol de intercambio de token. Si ya ha configurado un dispositivo principal de Greengrass, puede adjuntar su política de alias de rol de AWS IoT en lugar de crear una nueva. Haga lo siguiente:

    1. (Opcional) Cree un archivo que contenga el documento de política de AWS IoT que requiere el alias del rol.

      Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

      nano greengrass-v2-iot-role-alias-policy.json

      Copie el siguiente JSON en el archivo.

      • Reemplace el ARN del recurso por el ARN del alias de rol.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" } ] }
    2. Cree una política de AWS IoT a partir del documento de política.

      • Reemplace GreengrassCoreTokenExchangeRoleAliasPolicy por el nombre de la política de AWS IoT que se va a crear.

      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json

      Si la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.

      { "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy", "policyDocument": "{ \\"Version\\":\\"2012-10-17\\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": \\"iot:AssumeRoleWithCertificate\\", \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\" } ] }", "policyVersionId": "1" }
    3. Asocie la política de AWS IoT al certificado del objeto AWS IoT.

      • Reemplace GreengrassCoreTokenExchangeRoleAliasPolicy por el nombre de la política de alias del rol de AWS IoT.

      • Reemplace el ARN de destino por el ARN del certificado de su objeto AWS IoT.

      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

      El comando no tiene ningún resultado si la solicitud se realiza correctamente.

Descarga de certificados al dispositivo

Anteriormente, descargó el certificado de su dispositivo en su computadora de desarrollo. En esta sección, copie el certificado en el dispositivo principal para configurar el dispositivo con los certificados que usa para conectarse a AWS IoT. También descargue el certificado de la autoridad del certificado raíz (CA) de Amazon. Si usa un HSM, también importe el archivo de certificado al HSM en esta sección.

  • Si creó el elemento certificado y clave privada en el servicio de AWS IoT anteriormente, siga los pasos para descargar los certificados con la clave privada y los archivos de certificado.

  • Si anteriormente creó el certificado del objeto de una clave privada en un módulo de seguridad de hardware (HSM), siga los pasos para descargar los certificados con la clave privada y el certificado en un HSM.

Descargar certificados con clave privada y archivos de certificado

Descarga de certificados al dispositivo
  1. Copie el certificado del objeto AWS IoT de la computadora de desarrollo al dispositivo. Si SSH y SCP están habilitados en la computadora de desarrollo y en el dispositivo, puede utilizar el comando scp de la computadora de desarrollo para transferir el certificado. Reemplace device-ip-address por la dirección IP de su dispositivo.

    scp -r greengrass-v2-certs/ device-ip-address:~
  2. Cree la carpeta raíz de Greengrass en el dispositivo. Más adelante instalará el software AWS IoT Greengrass Core en esta carpeta.

    nota

    Windows tiene una limitación de longitud de ruta de 260 caracteres. Si usa Windows, use una carpeta raíz como C:\greengrass\v2 o D:\greengrass\v2 para mantener las rutas de los componentes de Greengrass por debajo del límite de 260 caracteres.

    Linux or Unix
    • Reemplace /greengrass/v2 por la carpeta que desee utilizar.

    sudo mkdir -p /greengrass/v2
    Windows Command Prompt
    • Reemplace C:\greengrass\v2 por la carpeta que desee utilizar.

    mkdir C:\greengrass\v2
    PowerShell
    • Reemplace C:\greengrass\v2 por la carpeta que desee utilizar.

    mkdir C:\greengrass\v2
  3. (Solo para Linux) Establezca los permisos de la carpeta principal de la carpeta raíz de Greengrass.

    • Reemplace /greengrass por el archivo principal de la carpeta raíz.

    sudo chmod 755 /greengrass
  4. Copie los certificados del objeto AWS IoT a la carpeta raíz de Greengrass.

    Linux or Unix
    • Reemplace /greengrass/v2 por la carpeta raíz de Greengrass.

    sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
    Windows Command Prompt
    • Reemplace C:\greengrass\v2 por la carpeta que desee utilizar.

    robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
    PowerShell
    • Reemplace C:\greengrass\v2 por la carpeta que desee utilizar.

    cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
  5. Descargue el certificado de la entidad de certificación (CA) de Amazon. Los certificados de AWS IoT están asociados al certificado de CA raíz de Amazon de forma predeterminada.

    Linux or Unix
    sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    Windows Command Prompt (CMD)
    curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    PowerShell
    iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem

Descarga de certificados con la clave privada y el certificado en un HSM

nota

Esta característica está disponible para la versión 2.5.3 y versiones posteriores del componente núcleo de Greengrass. AWS IoT Greengrass actualmente no admite esta característica en los dispositivos principales de Windows.

Descarga de certificados al dispositivo
  1. Copie el certificado del objeto AWS IoT de la computadora de desarrollo al dispositivo. Si SSH y SCP están habilitados en la computadora de desarrollo y en el dispositivo, puede utilizar el comando scp de la computadora de desarrollo para transferir el certificado. Reemplace device-ip-address por la dirección IP de su dispositivo.

    scp -r greengrass-v2-certs/ device-ip-address:~
  2. Cree la carpeta raíz de Greengrass en el dispositivo. Más adelante instalará el software AWS IoT Greengrass Core en esta carpeta.

    nota

    Windows tiene una limitación de longitud de ruta de 260 caracteres. Si usa Windows, use una carpeta raíz como C:\greengrass\v2 o D:\greengrass\v2 para mantener las rutas de los componentes de Greengrass por debajo del límite de 260 caracteres.

    Linux or Unix
    • Reemplace /greengrass/v2 por la carpeta que desee utilizar.

    sudo mkdir -p /greengrass/v2
    Windows Command Prompt
    • Reemplace C:\greengrass\v2 por la carpeta que desee utilizar.

    mkdir C:\greengrass\v2
    PowerShell
    • Reemplace C:\greengrass\v2 por la carpeta que desee utilizar.

    mkdir C:\greengrass\v2
  3. (Solo para Linux) Establezca los permisos de la carpeta principal de la carpeta raíz de Greengrass.

    • Reemplace /greengrass por el archivo principal de la carpeta raíz.

    sudo chmod 755 /greengrass
  4. Importe el archivo de certificado del objeto ~/greengrass-v2-certs/device.pem.crt, al HSM. Consulte la documentación de su HSM para saber cómo importar certificados allí. Importe el certificado con el mismo token, ID de ranura, PIN de usuario, etiqueta de objeto e ID de objeto (si su HSM usa alguno) con los que generó la clave privada en el HSM anteriormente.

    nota

    Si generó la clave privada anteriormente sin un ID de objeto y el certificado tiene un ID de objeto, establezca el ID de objeto de la clave privada con el mismo valor que el certificado. Consulte la documentación de su HSM para obtener información sobre cómo configurar el identificador de objeto para el objeto de clave privada.

  5. (Opcional) Elimine el archivo de certificado del objeto para que solo exista en el HSM.

    rm ~/greengrass-v2-certs/device.pem.crt
  6. Descargue el certificado de la entidad de certificación (CA) de Amazon. Los certificados de AWS IoT están asociados al certificado de CA raíz de Amazon de forma predeterminada.

    Linux or Unix
    sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    Windows Command Prompt (CMD)
    curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    PowerShell
    iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem

Configuración del entorno del dispositivo

Siga los pasos de esta sección para configurar un dispositivo Linux o Windows para usarlo como su dispositivo principal de AWS IoT Greengrass.

Configuración de un dispositivo Linux

Configuración de un dispositivo Linux para AWS IoT Greengrass V2
  1. Instale el tiempo de ejecución de Java, que el software AWS IoT Greengrass Core necesita para ejecutarse. Le recomendamos que utilice las versiones de compatibilidad a largo plazo de Amazon Corretto u OpenJDK. Se requiere la versión 8 o posterior. Los siguientes comandos muestran cómo instalar OpenJDK en su dispositivo.

    • Para distribuciones basadas en Debian o en Ubuntu:

      sudo apt install default-jdk
    • Para distribuciones basadas en Red Hat:

      sudo yum install java-11-openjdk-devel
    • En Amazon Linux 2:

      sudo amazon-linux-extras install java-openjdk11
    • En Amazon Linux 2023:

      sudo dnf install java-11-amazon-corretto -y

    Cuando se complete la instalación, ejecute el siguiente comando para comprobar que Java se ejecuta en su dispositivo Linux.

    java -version

    El comando imprime la versión de Java que se ejecuta en el dispositivo. Por ejemplo, en una distribución basada en Debian, el resultado podría ser similar al siguiente ejemplo.

    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
    OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
  2. (Opcional) Cree el usuario y el grupo predeterminado del sistema que ejecutan los componentes del dispositivo. También puede optar por permitir que el instalador del software AWS IoT Greengrass Core cree este usuario y grupo durante la instalación con el argumento del instalador --component-default-user. Para obtener más información, consulte Argumentos del instalador.

    sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
  3. Compruebe que el usuario que ejecuta el software AWS IoT Greengrass Core (normalmente root) tiene permiso para ejecutar sudo con cualquier usuario y grupo.

    1. Ejecute el siguiente comando para abrir el archivo /etc/sudoers.

      sudo visudo
    2. Compruebe que el permiso del usuario se parezca al siguiente ejemplo.

      root ALL=(ALL:ALL) ALL
  4. (Opcional) Para ejecutar funciones de Lambda en contenedores, debe habilitar la versión 1 de cgroups y debe habilitar y montar los cgroups de memoria y dispositivos. Si no tiene previsto ejecutar funciones de Lambda en contenedores, puede omitir este paso.

    Para habilitar estas opciones de cgroups, arranque el dispositivo con los siguientes parámetros del kernel de Linux.

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    Para obtener más información acerca de cómo ver y configurar los parámetros del kernel de su dispositivo, consulte la documentación del sistema operativo y del gestor de arranque. Siga las instrucciones para configurar permanentemente los parámetros del kernel.

  5. Instale todas las demás dependencias necesarias en su dispositivo tal y como se indica en la lista de requisitos de Requisitos de los dispositivos.

Configuración de un dispositivo de Windows

nota

Esta característica está disponible para la versión 2.5.0 y versiones posteriores del componente núcleo de Greengrass.

Configuración de un dispositivo Windows para AWS IoT Greengrass V2
  1. Instale el tiempo de ejecución de Java, que el software AWS IoT Greengrass Core necesita para ejecutarse. Le recomendamos que utilice las versiones de compatibilidad a largo plazo de Amazon Corretto u OpenJDK. Se requiere la versión 8 o posterior.

  2. Compruebe si Java está disponible en la variable del sistema PATH y agréguelo si no lo está. La cuenta LocalSystem ejecuta el software AWS IoT Greengrass Core, por lo que debe agregar Java a la variable del sistema PATH en lugar de a la variable de usuario PATH de su usuario. Haga lo siguiente:

    1. Pulse la tecla Windows para abrir el menú de inicio.

    2. Escriba environment variables para buscar las opciones del sistema en el menú de inicio.

    3. En los resultados de la búsqueda del menú de inicio, elija Editar las variables de entorno del sistema para abrir la ventana de Propiedades del sistema.

    4. Elija Variables de entorno... para abrir la ventana Variables de entorno.

    5. En Variables del sistema, elija Ruta y, luego, Editar. En la ventana Editar variables de entorno, puede ver cada ruta en una línea independiente.

    6. Compruebe si la ruta a la carpeta de la instalación de Java bin está presente. La ruta puede tener un aspecto similar al siguiente ejemplo.

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. Si la carpeta de la instalación de Java bin no aparece en Ruta, elija Nueva para agregarla y, a continuación, pulse Aceptar.

  3. Abra el símbolo del sistema de Windows (cmd.exe) como administrador.

  4. Cree el usuario predeterminado en la cuenta LocalSystem del dispositivo Windows. Reemplace password por una contraseña segura.

    net user /add ggc_user password
    sugerencia

    Según su configuración de Windows, es posible que la contraseña del usuario caduque en una fecha futura. Para garantizar que sus aplicaciones de Greengrass sigan funcionando, controle cuándo caduca la contraseña y actualícela antes de que caduque. También puede configurar la contraseña del usuario para que nunca caduque.

    • Para comprobar cuándo caducan un usuario y su contraseña, ejecute el siguiente comando.

      net user ggc_user | findstr /C:expires
    • Para configurar la contraseña de un usuario para que no caduque nunca, ejecute el siguiente comando.

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • Si utiliza Windows 10 o una versión posterior, donde el comando wmic está obsoleto, ejecute el siguiente comando de PowerShell.

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. Descargue e instale la utilidad PsExec de Microsoft en el dispositivo.

  6. Use la utilidad PsExec para almacenar el nombre de usuario y la contraseña del usuario predeterminado en la instancia del administrador de credenciales de la cuenta de LocalSystem. Reemplace password por la contraseña del usuario que configuró anteriormente.

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password

    Si PsExec License Agreement se abre, elija Accept para aceptar la licencia y ejecute el comando.

    nota

    En los dispositivos Windows, la cuenta LocalSystem ejecuta el núcleo de Greengrass y debe utilizar la utilidad PsExec para almacenar la información de usuario predeterminada en la cuenta LocalSystem. El uso de la aplicación del administrador de credenciales almacena esta información en la cuenta de Windows del usuario que ha iniciado sesión actualmente, en lugar de en la cuenta de LocalSystem.

Descarga del software AWS IoT Greengrass Core

Puede descargar la versión más reciente del software AWS IoT Greengrass Core desde la siguiente ubicación:

nota

Puede descargar una versión específica del software AWS IoT Greengrass Core desde la siguiente ubicación. Reemplace version por la versión que desea descargar.

https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
Cómo descargar el software AWS IoT Greengrass Core
  1. En su dispositivo principal, descargue el software AWS IoT Greengrass Core a un archivo denominado greengrass-nucleus-latest.zip.

    Linux or Unix
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    PowerShell
    iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip

    Al descargar este software, acepta el acuerdo de licencia del software de Greengrass Core.

  2. (Opcional) Verificación de la firma del software del núcleo de Greengrass

    nota

    Esta característica está disponible en la versión 2.9.5 y versiones posteriores del núcleo de Greengrass.

    1. Use el siguiente comando para verificar la firma del artefacto del núcleo de Greengrass:

      Linux or Unix
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      Windows Command Prompt (CMD)

      El nombre del archivo puede tener un aspecto diferente según la versión de JDK que instale. Reemplace jdk17.0.6_10 por la versión de JDK que instaló.

      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      PowerShell

      El nombre del archivo puede tener un aspecto diferente según la versión de JDK que instale. Reemplace jdk17.0.6_10 por la versión de JDK que instaló.

      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
    2. La invocación jarsigner produce un resultado que indica los resultados de la verificación.

      1. Si el archivo zip del núcleo de Greengrass está firmado, el resultado contiene la siguiente declaración:

        jar verified.
      2. Si el archivo zip del núcleo de Greengrass no está firmado, el resultado contiene la siguiente declaración:

        jar is unsigned.
    3. Si ha proporcionado la opción -certs Jarsigner junto con las opciones -verify y -verbose, el resultado también incluye información detallada del certificado de firmante.

  3. Descomprima el software AWS IoT Greengrass Core a una carpeta de su dispositivo. Reemplace GreengrassInstaller por la carpeta que desee usar.

    Linux or Unix
    unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
    PowerShell
    Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller rm greengrass-nucleus-latest.zip
  4. (Opcional) Ejecute el siguiente comando para ver la versión del software AWS IoT Greengrass Core.

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
importante

Si instala una versión del núcleo de Greengrass anterior a la versión 2.4.0, no elimine esta carpeta después de instalar el software AWS IoT Greengrass Core. El software AWS IoT Greengrass Core usa los archivos de esta carpeta para ejecutarse.

Si descargó la última versión del software, instale la versión 2.4.0 o posterior y podrá eliminar esta carpeta después de instalar el software AWS IoT Greengrass Core.

Instalación del software AWS IoT Greengrass Core

Ejecute el instalador con argumentos que especifiquen las siguientes acciones:

  • Realice la instalación desde un archivo de configuración parcial que especifique el uso de los recursos de AWS y certificados que creó anteriormente. El software AWS IoT Greengrass Core usa un archivo de configuración que especifica la configuración de cada componente de Greengrass del dispositivo. El instalador crea un archivo de configuración completo a partir del archivo de configuración parcial que usted proporciona.

  • Especifique si desea usar el usuario del sistema ggc_user para ejecutar los componentes de software en el dispositivo principal. En los dispositivos Linux, este comando también especifica el uso del grupo del sistema ggc_group y el instalador crea el usuario y el grupo del sistema por usted.

  • Configure el software AWS IoT Greengrass Core como un servicio del sistema que se ejecute durante el arranque. En los dispositivos Linux, esto requiere el sistema de inicio Systemd.

    importante

    En los dispositivos principales de Windows, debe configurar el software AWS IoT Greengrass Core como un servicio del sistema.

Para obtener más información acerca de los argumentos que puede especificar, consulte Argumentos del instalador.

nota

Si ejecuta AWS IoT Greengrass en un dispositivo con memoria limitada, puede controlar la cantidad de memoria que usa el software AWS IoT Greengrass Core. Para controlar la asignación de memoria, puede configurar las opciones de tamaño de montón de la JVM en el parámetro de configuración jvmOptions del componente núcleo. Para obtener más información, consulte Control de la asignación de memoria con las opciones de JVM.

  • Si creó el certificado del objeto y la clave privada en el servicio de AWS IoT anteriormente, siga los pasos para instalar el software AWS IoT Greengrass Core con los archivos de clave privada y certificado.

  • Si creó el certificado del objeto de una clave privada en un módulo de seguridad de hardware (HSM) anteriormente, siga los pasos para instalar el software AWS IoT Greengrass Core con la clave privada y el certificado en un HSM.

Instale el software AWS IoT Greengrass Core con la clave privada y los archivos de certificado

Cómo instalar el software AWS IoT Greengrass Core
  1. Compruebe la versión del software AWS IoT Greengrass Core.

    • Reemplace GreengrassInstaller por la ruta a la carpeta que contiene el software.

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. Use un editor de texto para crear un archivo de configuración llamado config.yaml para proporcionárselo al instalador.

    Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

    nano GreengrassInstaller/config.yaml

    Copie el siguiente contenido YAML en el archivo. Este archivo de configuración parcial especifica los parámetros del sistema y los parámetros del núcleo de Greengrass.

    --- system: certificateFilePath: "/greengrass/v2/device.pem.crt" privateKeyPath: "/greengrass/v2/private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"

    A continuación, proceda del modo siguiente:

    • Reemplace cada instancia de /greengrass/v2 por la carpeta raíz de Greengrass.

    • Reemplace MyGreengrassCore por el nombre del objeto AWS IoT.

    • Reemplace 2.13.0 por la versión del software AWS IoT Greengrass Core.

    • Reemplace us-west-2 con la Región de AWS en la que creó los recursos.

    • Reemplace GreengrassCoreTokenExchangeRoleAlias por el nombre del alias del rol de intercambio de token.

    • Reemplace el iotDataEndpoint por su punto de conexión de datos de AWS IoT.

    • Reemplace el iotCredEndpoint por su punto de conexión de credenciales de AWS IoT.

    nota

    En este archivo de configuración, puede personalizar otras opciones de configuración del núcleo, como los puertos y el proxy de red que se utilizarán, tal como se muestra en el siguiente ejemplo. Para obtener más información, consulte la Configuración del núcleo de Greengrass.

    --- system: certificateFilePath: "/greengrass/v2/device.pem.crt" privateKeyPath: "/greengrass/v2/private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "https://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357"
  3. Ejecute el instalador y especifique --init-config para proporcionar el archivo de configuración.

    • Reemplace /greengrass/v2 o C:\greengrass\v2 por la carpeta raíz de Greengrass.

    • Reemplace cada instancia de GreengrassInstaller por la carpeta en la que desempaquetó el instalador.

    Linux or Unix
    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --init-config ./GreengrassInstaller/config.yaml \ --component-default-user ggc_user:ggc_group \ --setup-system-service true
    Windows Command Prompt (CMD)
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^ -jar ./GreengrassInstaller/lib/Greengrass.jar ^ --init-config ./GreengrassInstaller/config.yaml ^ --component-default-user ggc_user ^ --setup-system-service true
    PowerShell
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ` -jar ./GreengrassInstaller/lib/Greengrass.jar ` --init-config ./GreengrassInstaller/config.yaml ` --component-default-user ggc_user ` --setup-system-service true
    importante

    En los dispositivos principales de Windows, debe especificar --setup-system-service true para configurar el software AWS IoT Greengrass Core como un servicio del sistema.

    Si especifica --setup-system-service true, el instalador imprime Successfully set up Nucleus as a system service si configuró y ejecutó el software como un servicio del sistema. De lo contrario, el instalador no mostrará ningún mensaje si instala el software correctamente.

    nota

    No puede usar el argumento deploy-dev-tools para implementar herramientas de desarrollo locales cuando ejecuta el instalador sin el argumento --provision true. Para obtener información sobre cómo implementar la CLI de Greengrass directamente en su dispositivo, consulte Interfaz de la línea de comandos de Greengrass.

  4. Verifique la instalación mediante la consulta de los archivos de la carpeta raíz.

    Linux or Unix
    ls /greengrass/v2
    Windows Command Prompt (CMD)
    dir C:\greengrass\v2
    PowerShell
    ls C:\greengrass\v2

    Si la instalación se realizó correctamente, la carpeta raíz contiene varias carpetas, como config, packages y logs.

Instalación del software AWS IoT Greengrass Core con la clave privada y el certificado en un HSM

nota

Esta característica está disponible para la versión 2.5.3 y versiones posteriores del componente núcleo de Greengrass. AWS IoT Greengrass actualmente no admite esta característica en los dispositivos principales de Windows.

Cómo instalar el software AWS IoT Greengrass Core
  1. Compruebe la versión del software AWS IoT Greengrass Core.

    • Reemplace GreengrassInstaller por la ruta a la carpeta que contiene el software.

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. Para permitir que el software AWS IoT Greengrass Core use la clave privada y el certificado del HSM, instale el componente de proveedor PKCS#11 al instalar el software AWS IoT Greengrass Core. El componente de proveedor PKCS#11 es un complemento que puede configurar durante la instalación. Puede descargar la versión más reciente del componente de proveedor PKCS#11 de la siguiente ubicación:

    Descargue el complemento de proveedor PKCS#11 en un archivo denominado aws.greengrass.crypto.Pkcs11Provider.jar. Reemplace GreengrassInstaller por la carpeta que desee usar.

    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar

    Al descargar este software, acepta el acuerdo de licencia del software de Greengrass Core.

  3. Use un editor de texto para crear un archivo de configuración llamado config.yaml para proporcionárselo al instalador.

    Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.

    nano GreengrassInstaller/config.yaml

    Copie el siguiente contenido YAML en el archivo. Este archivo de configuración parcial especifica los parámetros del sistema, los parámetros del núcleo de Greengrass y los parámetros del proveedor PKCS#11.

    --- system: certificateFilePath: "pkcs11:object=iotdevicekey;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey;type=private" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" aws.greengrass.crypto.Pkcs11Provider: configuration: name: "softhsm_pkcs11" library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so" slot: 1 userPin: "1234"

    A continuación, proceda del modo siguiente:

    • Reemplace cada instancia de iotdevicekey de los URI de PKCS#11 por la etiqueta de objeto en la que creó la clave privada e importó el certificado.

    • Reemplace cada instancia de /greengrass/v2 por la carpeta raíz de Greengrass.

    • Reemplace MyGreengrassCore por el nombre del objeto AWS IoT.

    • Reemplace 2.13.0 por la versión del software AWS IoT Greengrass Core.

    • Reemplace us-west-2 con la Región de AWS en la que creó los recursos.

    • Reemplace GreengrassCoreTokenExchangeRoleAlias por el nombre del alias del rol de intercambio de token.

    • Reemplace el iotDataEndpoint por su punto de conexión de datos de AWS IoT.

    • Reemplace el iotCredEndpoint por su punto de conexión de credenciales de AWS IoT.

    • Reemplace los parámetros de configuración del componente aws.greengrass.crypto.Pkcs11Provider por los valores de la configuración del HSM en el dispositivo principal.

    nota

    En este archivo de configuración, puede personalizar otras opciones de configuración del núcleo, como los puertos y el proxy de red que se utilizarán, tal como se muestra en el siguiente ejemplo. Para obtener más información, consulte la Configuración del núcleo de Greengrass.

    --- system: certificateFilePath: "pkcs11:object=iotdevicekey;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey;type=private" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "https://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357" aws.greengrass.crypto.Pkcs11Provider: configuration: name: "softhsm_pkcs11" library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so" slot: 1 userPin: "1234"
  4. Ejecute el instalador y especifique --init-config para proporcionar el archivo de configuración.

    • Reemplace /greengrass/v2 por la carpeta raíz de Greengrass.

    • Reemplace cada instancia de GreengrassInstaller por la carpeta en la que desempaquetó el instalador.

    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \ --init-config ./GreengrassInstaller/config.yaml \ --component-default-user ggc_user:ggc_group \ --setup-system-service true
    importante

    En los dispositivos principales de Windows, debe especificar --setup-system-service true para configurar el software AWS IoT Greengrass Core como un servicio del sistema.

    Si especifica --setup-system-service true, el instalador imprime Successfully set up Nucleus as a system service si configuró y ejecutó el software como un servicio del sistema. De lo contrario, el instalador no mostrará ningún mensaje si instala el software correctamente.

    nota

    No puede usar el argumento deploy-dev-tools para implementar herramientas de desarrollo locales cuando ejecuta el instalador sin el argumento --provision true. Para obtener información sobre cómo implementar la CLI de Greengrass directamente en su dispositivo, consulte Interfaz de la línea de comandos de Greengrass.

  5. Verifique la instalación mediante la consulta de los archivos de la carpeta raíz.

    Linux or Unix
    ls /greengrass/v2
    Windows Command Prompt (CMD)
    dir C:\greengrass\v2
    PowerShell
    ls C:\greengrass\v2

    Si la instalación se realizó correctamente, la carpeta raíz contiene varias carpetas, como config, packages y logs.

Si ha instalado el software AWS IoT Greengrass Core como un servicio del sistema, el instalador ejecutará el software por usted. De no ser así, debe ejecutar el software manualmente. Para obtener más información, consulte Ejecución del software AWS IoT Greengrass Core.

Para obtener más información acerca de cómo configurar y usar el software y AWS IoT Greengrass, consulte lo siguiente: