Configurar el software AWS IoT Greengrass principal - AWS IoT Greengrass

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.

Configurar el software AWS IoT Greengrass principal

El software AWS IoT Greengrass Core ofrece opciones que puede utilizar para configurar el software. Puede crear implementaciones para configurar el software AWS IoT Greengrass principal en cada dispositivo principal.

Implemente el componente núcleo de Greengrass

AWS IoT Greengrass proporciona el software AWS IoT Greengrass Core como un componente que puede implementar en sus dispositivos principales de Greengrass. Puede crear una implementación para aplicar la misma configuración a varios dispositivos principales de Greengrass. Para obtener más información, consulte Núcleo de Greengrass y Actualice el software AWS IoT Greengrass principal (OTA).

Configurar el núcleo de Greengrass como un servicio del sistema

Debe configurar el software AWS IoT Greengrass Core como un servicio del sistema en el sistema de inicio del dispositivo para hacer lo siguiente:

  • Inicie el software AWS IoT Greengrass Core cuando se inicie el dispositivo. Esta es una buena práctica si gestionas grandes flotas de dispositivos.

  • Instala y ejecuta los componentes del complemento. Varios AWS de los componentes proporcionados son componentes de complementos, lo que les permite interactuar directamente con el núcleo de Greengrass. Para obtener más información acerca de los tipos de componentes, consulte Tipos de componentes.

  • Aplica las actualizaciones over-the-air (OTA) al software principal del dispositivo AWS IoT Greengrass principal. Para obtener más información, consulte Actualice el software AWS IoT Greengrass principal (OTA).

  • Permita que los componentes reinicien el software AWS IoT Greengrass principal o el dispositivo principal cuando una implementación actualice el componente a una nueva versión o actualice ciertos parámetros de configuración. Para obtener más información, consulte el paso del ciclo de vida del arranque.

importante

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

Configure el núcleo como un servicio del sistema (Linux)

Los dispositivos Linux admiten diferentes sistemas de inicio, como initd, systemd y SystemV. El --setup-system-service true argumento se utiliza al instalar el software AWS IoT Greengrass Core para iniciar el núcleo como un servicio del sistema y configurarlo para que se inicie al arrancar el dispositivo. El instalador configura el software AWS IoT Greengrass Core como un servicio del sistema con systemd.

También puede configurar manualmente el núcleo para que se ejecute como un servicio del sistema. En el siguiente ejemplo se muestra un archivo de servicio para systemd.

[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=/greengrass/v2/alts/loader.pid RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target

Tras configurar el servicio del sistema, puede ejecutar los siguientes comandos para configurar el inicio del dispositivo al arrancar y para iniciar o detener el software AWS IoT Greengrass principal.

  • Para comprobar el estado del servicio (systemd)

    sudo systemctl status greengrass.service
  • Para permitir que el núcleo se inicie al arrancar el dispositivo.

    sudo systemctl enable greengrass.service
  • Para impedir que el núcleo se inicie al arrancar el dispositivo.

    sudo systemctl disable greengrass.service
  • Para iniciar el software AWS IoT Greengrass Core.

    sudo systemctl start greengrass.service
  • Para detener el software AWS IoT Greengrass Core.

    sudo systemctl stop greengrass.service

Configure el núcleo como un servicio del sistema (Windows)

El --setup-system-service true argumento se utiliza al instalar el software AWS IoT Greengrass Core para iniciar el núcleo como un servicio de Windows y configurarlo para que se inicie cuando se inicie el dispositivo.

Tras configurar el servicio, puede ejecutar los siguientes comandos para configurar el inicio del dispositivo al arrancar y para iniciar o detener el software AWS IoT Greengrass Core. Debe ejecutar la línea de comandos o PowerShell como administrador para ejecutar estos comandos.

Windows Command Prompt (CMD)
  • Para comprobar el estado del servicio

    sc query "greengrass"
  • Para permitir que el núcleo se inicie al arrancar el dispositivo.

    sc config "greengrass" start=auto
  • Para impedir que el núcleo se inicie al arrancar el dispositivo.

    sc config "greengrass" start=disabled
  • Para iniciar el software AWS IoT Greengrass Core.

    sc start "greengrass"
  • Para detener el software AWS IoT Greengrass Core.

    sc stop "greengrass"
    nota

    En los dispositivos Windows, el software AWS IoT Greengrass Core ignora esta señal de apagado mientras cierra los procesos de los componentes de Greengrass. Si el software AWS IoT Greengrass Core ignora la señal de apagado al ejecutar este comando, espere unos segundos e inténtelo de nuevo.

PowerShell
  • Para comprobar el estado del servicio

    Get-Service -Name "greengrass"
  • Para permitir que el núcleo se inicie al arrancar el dispositivo.

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • Para impedir que el núcleo se inicie al arrancar el dispositivo.

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • Para iniciar el software AWS IoT Greengrass Core.

    Start-Service -Name "greengrass"
  • Para detener el software AWS IoT Greengrass Core.

    Stop-Service -Name "greengrass"
    nota

    En los dispositivos Windows, el software AWS IoT Greengrass Core ignora esta señal de apagado mientras cierra los procesos de los componentes de Greengrass. Si el software AWS IoT Greengrass Core ignora la señal de apagado al ejecutar este comando, espere unos segundos e inténtelo de nuevo.

Controle la asignación de memoria con las opciones de JVM

Si utilizas un dispositivo con memoria limitada, puedes usar las opciones de la máquina virtual Java (JVM) para controlar el tamaño máximo del montón, los modos de recolección de basura y las opciones del compilador, que controlan la cantidad de memoria que AWS IoT Greengrass utiliza el software Core. AWS IoT Greengrass El tamaño del montón de la JVM determina la cantidad de memoria que puede utilizar una aplicación antes de que se produzca la recolección de elementos no utilizados o antes de que la aplicación se quede sin memoria. El tamaño de montón máximo especifica la cantidad máxima de memoria que la JVM puede asignar al ampliar el montón durante un periodo de actividad intensa.

Para controlar la asignación de memoria, cree una nueva implementación o revise una implementación existente que incluya el componente núcleo y especifique las opciones de JVM en el parámetro de configuración de la jvmOptions configuración del componente núcleo.

Según sus requisitos, puede ejecutar el software AWS IoT Greengrass Core con una asignación de memoria reducida o con una asignación de memoria mínima.

Asignación de memoria reducida

Para ejecutar el software AWS IoT Greengrass Core con una asignación de memoria reducida, le recomendamos que utilice el siguiente ejemplo de actualización de combinación de configuraciones para configurar las opciones de JVM en su configuración de núcleo:

{ "jvmOptions": "-Xmx64m -XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
Asignación mínima de memoria

Para ejecutar el software AWS IoT Greengrass Core con una asignación de memoria mínima, le recomendamos que utilice el siguiente ejemplo de actualización de combinación de configuraciones para configurar las opciones de JVM en su configuración de núcleo:

{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }

En estos ejemplos de actualizaciones de combinación de configuraciones se utilizan las siguientes opciones de JVM:

-XmxNNm

Establece el tamaño máximo del montón de JVM.

Para reducir la asignación de memoria, -Xmx64m utilícelo como valor inicial para limitar el tamaño del montón a 64 MB. Para una asignación de memoria mínima, -Xmx32m utilícelo como valor inicial para limitar el tamaño del montón a 32 MB.

Puede aumentar o disminuir el -Xmx valor en función de sus necesidades reales; sin embargo, le recomendamos encarecidamente que no establezca el tamaño máximo del montón por debajo de 16 MB. Si el tamaño máximo de pila es demasiado bajo para su entorno, es posible que el software AWS IoT Greengrass Core detecte errores inesperados debido a la falta de memoria.

-XX:+UseSerialGC

Especifica el uso de la recolección de basura en serie para el espacio de pila de la JVM. El recolector de basura en serie es más lento, pero utiliza menos memoria que otras implementaciones de recolección de basura de JVM.

-XX:TieredStopAtLevel=1

Indica a la JVM que utilice el compilador de Java just-in-time (JIT) una vez. Como el código compilado JIT ocupa espacio en la memoria del dispositivo, usar el compilador JIT más de una vez consume más memoria que una sola compilación.

-Xint

Indica a la JVM que no utilice el compilador just-in-time (JIT). En su lugar, la JVM se ejecuta en modo de solo interpretación. Este modo es más lento que ejecutar código compilado JIT; sin embargo, el código compilado no ocupa espacio en la memoria.

Para obtener información sobre la creación de actualizaciones de combinaciones de configuraciones, consulteActualizar las configuraciones de los componentes.

Configure el usuario que ejecuta los componentes

El software AWS IoT Greengrass Core puede ejecutar procesos de componentes como un usuario y un grupo del sistema distintos del que ejecuta el software. Esto aumenta la seguridad, ya que puede ejecutar el software AWS IoT Greengrass principal como usuario root o como usuario administrador, sin conceder esos permisos a los componentes que se ejecutan en el dispositivo principal.

En la siguiente tabla se indican los tipos de componentes que el software AWS IoT Greengrass principal puede ejecutar como usuario que especifique. Para obtener más información, consulte Tipos de componentes.

Tipo de componente Configure el usuario del componente

Nucleus

No

Complemento

No

Genérico

Lambda (no contenerizada)

Lambda (en contenedor)

Debe crear el usuario del componente antes de poder especificarlo en una configuración de despliegue. En los dispositivos basados en Windows, también debe almacenar el nombre de usuario y la contraseña del usuario en la instancia del administrador de credenciales de la LocalSystem cuenta. Para obtener más información, consulte Configure un usuario de componentes en dispositivos Windows.

Al configurar el usuario del componente en un dispositivo basado en Linux, también puede especificar un grupo si lo desea. Especifique el usuario y el grupo separados por dos puntos (:) en el siguiente formato:. user:group Si no especifica ningún grupo, el software AWS IoT Greengrass Core utilizará de forma predeterminada el grupo principal del usuario. Puede usar el nombre o el ID para identificar al usuario y al grupo.

En los dispositivos basados en Linux, también puede ejecutar componentes del sistema como un usuario del sistema que no existe (también denominado usuario desconocido) para aumentar la seguridad. Un proceso de Linux puede indicar cualquier otro proceso que ejecute el mismo usuario. Un usuario desconocido no ejecuta otros procesos, por lo que puede ejecutar componentes como un usuario desconocido para evitar que los componentes señalen otros componentes del dispositivo principal. Para ejecutar los componentes como un usuario desconocido, especifique un ID de usuario que no exista en el dispositivo principal. También puede especificar un ID de grupo que no existe para que se ejecute como un grupo desconocido.

Puede configurar el usuario para cada componente y para cada dispositivo principal.

  • Configure para un componente

    Puede configurar cada componente para que se ejecute con un usuario específico de ese componente. Al crear una implementación, puede especificar el usuario de cada componente en la runWith configuración de ese componente. El software AWS IoT Greengrass principal ejecuta los componentes como el usuario especificado si los configura. De lo contrario, ejecuta los componentes de forma predeterminada como el usuario predeterminado que se configura para el dispositivo principal. Para obtener más información sobre cómo especificar el usuario del componente en la configuración de despliegue, consulte el parámetro runWithde configuración enCrear implementaciones.

  • Configure el usuario predeterminado para un dispositivo principal

    Puede configurar un usuario predeterminado que el software AWS IoT Greengrass principal utilice para ejecutar los componentes. Cuando el software AWS IoT Greengrass principal ejecuta un componente, comprueba si ha especificado un usuario para ese componente y lo utiliza para ejecutar el componente. Si el componente no especifica un usuario, el software AWS IoT Greengrass principal ejecuta el componente como el usuario predeterminado que configuró para el dispositivo principal. Para obtener más información, consulte Configure el usuario del componente predeterminado.

nota

En los dispositivos basados en Windows, debe especificar al menos un usuario predeterminado para ejecutar los componentes.

En los dispositivos basados en Linux, se deben tener en cuenta las siguientes consideraciones si no se configura un usuario para que ejecute componentes:

  • Si ejecuta el software AWS IoT Greengrass principal como root, el software no ejecutará los componentes. Debe especificar un usuario predeterminado para ejecutar los componentes si ejecuta los componentes como root.

  • Si ejecuta el software AWS IoT Greengrass principal como usuario no root, el software ejecuta los componentes como ese usuario.

Configure un usuario de componentes en dispositivos Windows

Para configurar un usuario de componentes en un dispositivo basado en Windows
  1. Cree el usuario del componente en la LocalSystem cuenta del dispositivo.

    net user /add component-user password
  2. Utilice la PsExec utilidad de Microsoft para almacenar el nombre de usuario y la contraseña del usuario del componente en la instancia de Credential Manager de la LocalSystem cuenta.

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

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

Configure el usuario del componente predeterminado

Puede usar una implementación para configurar el usuario predeterminado en un dispositivo principal. En esta implementación, se actualiza la configuración de los componentes del núcleo.

nota

También puede configurar el usuario predeterminado al instalar el software AWS IoT Greengrass Core con la --component-default-user opción. Para obtener más información, consulte Instalación del software AWS IoT Greengrass Core.

Cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus componente.

Linux
{ "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }
Windows
{ "runWithDefault": { "windowsUser": "ggc_user" } }
nota

El usuario que especifique debe existir y el nombre de usuario y la contraseña de este usuario deben estar almacenados en la instancia del administrador de credenciales de la LocalSystem cuenta del dispositivo Windows. Para obtener más información, consulte Configure un usuario de componentes en dispositivos Windows.

El siguiente ejemplo define una implementación para un dispositivo basado en Linux que se configura ggc_user como usuario y ggc_group grupo predeterminados. La actualización de merge configuración requiere un objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

Configure los límites de recursos del sistema para los componentes

nota

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

Puede configurar la cantidad máxima de uso de CPU y RAM que los procesos de cada componente pueden usar en el dispositivo principal.

En la siguiente tabla se muestran los tipos de componentes que admiten los límites de recursos del sistema. Para obtener más información, consulte Tipos de componentes.

Tipo de componente Configure los límites de recursos del sistema

Nucleus

No

Complemento

No

Genérico

Lambda (no contenerizada)

Lambda (en contenedor)

No

importante

Los límites de recursos del sistema no se admiten cuando se ejecuta el software AWS IoT Greengrass principal en un contenedor de Docker.

Puede configurar los límites de recursos del sistema para cada componente y para cada dispositivo principal.

  • Configure para un componente

    Puede configurar cada componente con los límites de recursos del sistema específicos para ese componente. Al crear una implementación, puede especificar los límites de recursos del sistema para cada componente de la implementación. Si el componente admite los límites de recursos del sistema, el software AWS IoT Greengrass Core aplica los límites a los procesos del componente. Si no especifica los límites de recursos del sistema para un componente, el software AWS IoT Greengrass principal utilizará los valores predeterminados que haya configurado para el dispositivo principal. Para obtener más información, consulte Crear implementaciones.

  • Configure los valores predeterminados para un dispositivo principal

    Puede configurar los límites de recursos del sistema predeterminados que el software AWS IoT Greengrass Core aplica a los componentes que admiten estos límites. Cuando el software AWS IoT Greengrass principal ejecuta un componente, aplica los límites de recursos del sistema que especifique para ese componente. Si ese componente no especifica los límites de recursos del sistema, el software AWS IoT Greengrass Core aplica los límites de recursos del sistema predeterminados que usted configure para el dispositivo principal. Si no especificas los límites de recursos del sistema predeterminados, el software AWS IoT Greengrass Core no aplicará ningún límite de recursos del sistema de forma predeterminada. Para obtener más información, consulte Configure los límites de recursos del sistema predeterminados.

Configure los límites de recursos del sistema predeterminados

Puede implementar el componente núcleo de Greengrass para configurar los límites de recursos del sistema predeterminados para un dispositivo principal. Para configurar los límites de recursos del sistema predeterminados, cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus componente.

{ "runWithDefault": { "systemResourceLimits": { "cpu": cpuTimeLimit, "memory": memoryLimitInKb } } }

El siguiente ejemplo define una implementación que configura el límite de tiempo de la CPU en2, lo que equivale al 50% de uso en un dispositivo con 4 núcleos de CPU. En este ejemplo también se configura el uso de memoria en 100 MB.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }

Realizar la conexión en el puerto 443 o a través de un proxy de red

AWS IoT Greengrass los dispositivos principales se comunican AWS IoT Core mediante el protocolo de mensajería MQTT con autenticación de cliente TLS. Convencionalmente, MQTT sobre TLS utiliza el puerto 8883. Sin embargo, como medida de seguridad, los entornos restrictivos podrían limitar el tráfico de entrada y salida a un pequeño rango de puertos TCP. Por ejemplo, el firewall de una compañía podría abrir el puerto 443 para el tráfico HTTPS, pero cerrar otros puertos que se utilizan para protocolos menos frecuentes, como, por ejemplo, el puerto 8883 para tráfico MQTT. Otros entornos restrictivos pueden requerir que todo el tráfico pase por un proxy antes de conectarse a Internet.

nota

Los dispositivos principales de Greengrass que ejecutan el componente núcleo de Greengrass v2.0.3 y versiones anteriores utilizan el puerto 8443 para conectarse al punto final del plano de datos. AWS IoT Greengrass Estos dispositivos deben poder conectarse a este punto final en el puerto 8443. Para obtener más información, consulte Permitir el tráfico del dispositivo a través de un proxy o firewall.

Para habilitar la comunicación en estos escenarios, AWS IoT Greengrass proporciona las siguientes opciones de configuración:

  • Comunicación MQTT a través del puerto 443. Si su red permite conexiones al puerto 443, puede configurar el dispositivo principal de Greengrass para que utilice el puerto 443 para el tráfico MQTT en lugar del puerto predeterminado 8883. Esto puede ser una conexión directa al puerto 443 o una conexión a través de un servidor proxy de red. A diferencia de la configuración predeterminada, que utiliza la autenticación de cliente basada en certificados, el MQTT del puerto 443 utiliza la función de servicio del dispositivo para la autenticación.

    Para obtener más información, consulte Configure MQTT a través del puerto 443.

  • Comunicación HTTPS a través del puerto 443. El software AWS IoT Greengrass Core envía el tráfico HTTPS a través del puerto 8443 de forma predeterminada, pero puede configurarlo para que utilice el puerto 443. AWS IoT Greengrass utiliza la extensión TLS de Application Layer Protocol Network (ALPN) para habilitar esta conexión. Al igual que con la configuración predeterminada, HTTPS en el puerto 443 utiliza la autenticación de cliente basada en certificados.

    importante

    Para usar ALPN y habilitar la comunicación HTTPS a través del puerto 443, el dispositivo principal debe ejecutar Java 8, actualización 252 o posterior. Todas las actualizaciones de la versión 9 y posteriores de Java también son compatibles con ALPN.

    Para obtener más información, consulte Configure HTTPS a través del puerto 443.

  • Conexión a través de un proxy de red. Puede configurar un servidor proxy de red para que actúe como intermediario para conectarse al dispositivo principal de Greengrass. AWS IoT Greengrass admite la autenticación básica para los proxies HTTP y HTTPS.

    Los dispositivos principales de Greengrass deben ejecutar Greengrass nucleus v2.5.0 o posterior para usar proxies HTTPS.

    El software AWS IoT Greengrass Core transfiere la configuración del proxy a los componentes a través de las variables de entornoALL_PROXY,HTTP_PROXY, HTTPS_PROXY y. NO_PROXY Los componentes deben usar esta configuración para conectarse a través del proxy. Los componentes utilizan bibliotecas comunes (como boto3, cURL y el requests paquete python) que suelen utilizar estas variables de entorno de forma predeterminada para establecer conexiones. Si un componente también especifica estas variables de entorno, AWS IoT Greengrass no las anula.

    Para obtener más información, consulte Configure un proxy de red.

Configure MQTT a través del puerto 443

Puede configurar MQTT a través del puerto 443 en los dispositivos principales existentes o al instalar el software AWS IoT Greengrass Core en un dispositivo principal nuevo.

Configure MQTT a través del puerto 443 en los dispositivos principales existentes

Puede usar una implementación para configurar MQTT a través del puerto 443 en un dispositivo de un solo núcleo o en un grupo de dispositivos principales. En esta implementación, se actualiza la configuración de los componentes del núcleo. El núcleo se reinicia al actualizar su mqtt configuración.

Para configurar MQTT a través del puerto 443, cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus componente.

{ "mqtt": { "port": 443 } }

El siguiente ejemplo define una implementación que configura MQTT a través del puerto 443. La actualización merge de configuración requiere un objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }

Configure MQTT a través del puerto 443 durante la instalación

Puede configurar MQTT a través del puerto 443 al instalar el software AWS IoT Greengrass Core en un dispositivo principal. Utilice el argumento del --init-config instalador para configurar MQTT a través del puerto 443. Puede especificar este argumento al realizar la instalación con aprovisionamiento manual, aprovisionamiento de flota o aprovisionamiento personalizado.

Configure HTTPS a través del puerto 443

Esta función requiere la Núcleo de Greengrass versión 2.0.4 o posterior.

Puede configurar HTTPS a través del puerto 443 en los dispositivos principales existentes o al instalar el software AWS IoT Greengrass Core en un dispositivo principal nuevo.

Configure HTTPS a través del puerto 443 en los dispositivos principales existentes

Puede usar una implementación para configurar HTTPS a través del puerto 443 en un dispositivo de un solo núcleo o en un grupo de dispositivos principales. En esta implementación, se actualiza la configuración de los componentes del núcleo.

Para configurar HTTPS a través del puerto 443, cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus componente.

{ "greengrassDataPlanePort": 443 }

El siguiente ejemplo define una implementación que configura HTTPS a través del puerto 443. La actualización merge de configuración requiere un objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }

Configure HTTPS a través del puerto 443 durante la instalación

Puede configurar HTTPS a través del puerto 443 al instalar el software AWS IoT Greengrass Core en un dispositivo principal. Utilice el argumento del --init-config instalador para configurar HTTPS a través del puerto 443. Puede especificar este argumento al realizar la instalación con aprovisionamiento manual, aprovisionamiento de flota o aprovisionamiento personalizado.

Configure un proxy de red

Siga el procedimiento de esta sección para configurar los dispositivos principales de Greengrass para que se conecten a Internet a través de un proxy de red HTTP o HTTPS. Para obtener más información sobre los puntos finales y los puertos que utilizan los dispositivos principales, consulte. Permitir el tráfico del dispositivo a través de un proxy o firewall

importante

Si su dispositivo principal ejecuta una versión del núcleo de Greengrass anterior a la v2.4.0, la función de su dispositivo debe permitir los siguientes permisos para usar un proxy de red:

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

Esto es necesario porque el dispositivo utiliza las AWS credenciales del servicio de intercambio de fichas para autenticar las conexiones MQTT. AWS IoT El dispositivo utiliza MQTT para recibir e instalar las implementaciones desde allí Nube de AWS, por lo que el dispositivo no funcionará a menos que defina estos permisos en función de su función. Los dispositivos suelen utilizar certificados X.509 para autenticar las conexiones MQTT, pero los dispositivos no pueden hacerlo para autenticarse cuando utilizan un proxy.

Para obtener más información sobre cómo configurar la función del dispositivo, consulte. Autorizar a los dispositivos principales a interactuar con AWS los servicios

Configure un proxy de red en los dispositivos principales existentes

Puede usar una implementación para configurar un proxy de red en un dispositivo de un solo núcleo o en un grupo de dispositivos principales. En esta implementación, se actualiza la configuración de los componentes del núcleo. El núcleo se reinicia al actualizar su networkProxy configuración.

Para configurar un proxy de red, cree una implementación para el aws.greengrass.Nucleus componente que combine la siguiente actualización de configuración. Esta actualización de configuración contiene el objeto NetworkProxy.

{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }

El siguiente ejemplo define una implementación que configura un proxy de red. La actualización merge de configuración requiere un objeto JSON serializado.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}" } } } }

Configure un proxy de red durante la instalación

Puede configurar un proxy de red al instalar el software AWS IoT Greengrass Core en un dispositivo principal. Utilice el argumento del --init-config instalador para configurar el proxy de red. Puede especificar este argumento al realizar la instalación con aprovisionamiento manual, aprovisionamiento de flota o aprovisionamiento personalizado.

Habilite el dispositivo principal para que confíe en un proxy HTTPS

Al configurar un dispositivo principal para que utilice un proxy HTTPS, debe añadir la cadena de certificados del servidor proxy al dispositivo principal para que pueda confiar en el proxy HTTPS. De lo contrario, el dispositivo principal podría encontrar errores al intentar enrutar el tráfico a través del proxy. Añada el certificado de CA del servidor proxy al archivo de certificado de CA raíz de Amazon del dispositivo principal.

Para permitir que el dispositivo principal confíe en el proxy HTTPS
  1. Busque el archivo de certificado de CA raíz de Amazon en el dispositivo principal.

    • Si ha instalado el software AWS IoT Greengrass Core con aprovisionamiento automático, el archivo de certificado de CA raíz de Amazon se encuentra en/greengrass/v2/rootCA.pem.

    • Si instaló el software AWS IoT Greengrass Core con aprovisionamiento manual o de flota, es posible que el archivo de certificado de CA raíz de Amazon esté en/greengrass/v2/AmazonRootCA1.pem.

    Si el certificado de CA raíz de Amazon no existe en estas ubicaciones, registra la system.rootCaPath propiedad /greengrass/v2/config/effectiveConfig.yaml para encontrar su ubicación.

  2. Añada el contenido del archivo de certificado de CA del servidor proxy al archivo de certificado de CA raíz de Amazon.

    El siguiente ejemplo muestra un certificado de CA de un servidor proxy agregado al archivo de certificado de CA raíz de Amazon.

    -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww ... content of proxy CA certificate ... +vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216 gJMIADggEPADf2/m45hzEXAMPLE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW ... content of root CA certificate ... o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa 5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy rqXRfKoQnoZsG4q5WTP46EXAMPLE -----END CERTIFICATE-----

El objeto NetworkProxy

Utilice el objeto networkProxy para especificar información sobre el proxy de red. Este objeto contiene la siguiente información:

noProxyAddresses

(Opcional) Una lista separada por comas de direcciones IP o nombres de host que están exentos del proxy.

proxy

El proxy al que se va a conectar. Este objeto contiene la siguiente información:

url

La URL del servidor proxy en el formatoscheme://userinfo@host:port.

  • scheme— El esquema, que debe ser http ohttps.

    importante

    Los dispositivos principales de Greengrass deben ejecutar Greengrass nucleus v2.5.0 o posterior para usar proxies HTTPS.

    Si configura un proxy HTTPS, debe añadir el certificado de CA del servidor proxy al certificado de CA raíz de Amazon del dispositivo principal. Para obtener más información, consulte Habilite el dispositivo principal para que confíe en un proxy HTTPS.

  • userinfo— (Opcional) La información del nombre de usuario y la contraseña. Si especifica esta información enurl, el dispositivo principal de Greengrass ignora los username campos y. password

  • host— El nombre de host o la dirección IP del servidor proxy.

  • port— (Opcional) El número de puerto. Si no especificas el puerto, el dispositivo principal de Greengrass utilizará los siguientes valores predeterminados:

    • http— 80

    • https— 443

username

(Opcional) El nombre de usuario que autentica el servidor proxy.

password

(Opcional) La contraseña que autentica el servidor proxy.

Utilice un certificado de dispositivo firmado por una entidad emisora de certificados privada

Si utiliza una autoridad de certificación (CA) privada personalizada, debe establecer el 'núcleogreengrassDataPlaneEndpoint' de Greengrass en. iotdata Puede configurar esta opción durante el despliegue o la instalación mediante el argumento del --init-config instalador.

Puede personalizar el punto final del plano de datos de Greengrass al que se conecta el dispositivo. Puede configurar esta opción de configuración iotdata para establecer el punto final del plano de datos de Greengrass en el mismo punto final que el punto final de datos de IoT, que puede especificar con. iotDataEndpoint

Configure los tiempos de espera y los ajustes de caché de MQTT

En el AWS IoT Greengrass entorno, los componentes pueden utilizar MQTT para comunicarse con ellos. AWS IoT Core El software AWS IoT Greengrass Core gestiona los mensajes MQTT de los componentes. Cuando el dispositivo principal pierde la conexión con el Nube de AWS, el software almacena en caché los mensajes MQTT para volver a intentarlo más tarde cuando se restablezca la conexión. Puede configurar ajustes como los tiempos de espera de los mensajes y el tamaño de la memoria caché. Para obtener más información, consulte mqtt los parámetros de mqtt.spooler configuración del componente núcleo de Greengrass.

AWS IoT Core impone cuotas de servicio a su agente de mensajes MQTT. Estas cuotas pueden aplicarse a los mensajes que envíe entre los dispositivos principales y. AWS IoT Core Para obtener más información, consulta las cuotas de servicio de AWS IoT Core Message Broker en Referencia general de AWS.