AWS IoT Device Defender - 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.

AWS IoT Device Defender

El AWS IoT Device Defender componente (aws.greengrass.DeviceDefender) notifica a los administradores los cambios en el estado de los dispositivos principales de Greengrass. Esto puede ayudar a identificar comportamiento inusual que podrían indicar un dispositivo en riesgo. Para obtener más información, consulte AWS IoT Device Defender en la Guía para desarrolladores de AWS IoT Core .

Este componente lee las métricas del sistema del dispositivo principal. A continuación, publica las métricas en AWS IoT Device Defender. Para obtener más información sobre cómo leer e interpretar las métricas que informa este componente, consulte las especificaciones del documento sobre las métricas de los dispositivos en la Guía para AWS IoT Core desarrolladores.

nota

Este componente proporciona una funcionalidad similar a la del conector Device Defender incorporado AWS IoT Greengrass V1. Para obtener más información, consulte el conector Device Defender en la Guía para AWS IoT Greengrass V1 desarrolladores.

Versiones

Este componente tiene las siguientes versiones:

  • 3.1.x

  • 3.0.x

  • 2.0.x

Para obtener información sobre los cambios en cada versión del componente, consulte el registro de cambios.

Tipo

v3.x

Este componente es un componente genérico () aws.greengrass.generic. El núcleo de Greengrass ejecuta los scripts del ciclo de vida del componente.

v2.x

Este componente es un componente Lambda () aws.greengrass.lambda. El núcleo de Greengrass ejecuta la función Lambda de este componente mediante el componente Lambda launcher.

Para obtener más información, consulte Tipos de componentes.

Sistema operativo

v3.x

Este componente se puede instalar en los dispositivos principales que ejecutan los siguientes sistemas operativos:

  • Linux

  • Windows

v2.x

Este componente solo se puede instalar en los dispositivos principales de Linux.

Requisitos

Este componente tiene los siguientes requisitos:

v3.x
  • Versión 3.7 de Python instalada en el dispositivo principal y añadida a la variable de entorno PATH.

  • AWS IoT Device Defender configurado para utilizar la función de detección para supervisar las infracciones. Para obtener más información, consulte Detectar en la Guía para desarrolladores de AWS IoT Core .

v2.x
  • El dispositivo principal debe cumplir los requisitos para ejecutar las funciones de Lambda. Si desea que el dispositivo principal ejecute funciones Lambda en contenedores, el dispositivo debe cumplir los requisitos para hacerlo. Para obtener más información, consulte Requisitos de la función de Lambda.

  • Versión 3.7 de Python instalada en el dispositivo principal y añadida a la variable de entorno PATH.

  • AWS IoT Device Defender configurado para utilizar la función de detección para supervisar las infracciones. Para obtener más información, consulte Detectar en la Guía para desarrolladores de AWS IoT Core .

  • La biblioteca psutil instalada en el dispositivo principal. La versión 5.7.0 es la última versión que se ha comprobado que funciona con el componente.

  • La biblioteca cbor instalada en el dispositivo principal. La versión 1.0.0 es la última versión que se ha comprobado que funciona con el componente.

  • Para recibir los datos de salida de este componente, debe combinar la siguiente actualización de configuración para el componente antiguo del enrutador de suscripciones (aws.greengrass.LegacySubscriptionRouter) al implementar este componente. Esta configuración especifica el tema en el que este componente publica las respuestas.

    Legacy subscription router v2.1.xLegacy subscription router v2.0.x
    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "component:aws.greengrass.DeviceDefender", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    • Sustituya la región por la Región de AWS que utilice.

    • Sustituya la versión por la versión de la función Lambda que ejecuta este componente. Para encontrar la versión de la función Lambda, debe ver la receta de la versión de este componente que desee implementar. Abra la página de detalles de este componente en la AWS IoT Greengrass consola y busque el par clave-valor de la función Lambda. Este par clave-valor contiene el nombre y la versión de la función Lambda.

    importante

    Debe actualizar la versión de la función Lambda en el router de suscripción anterior cada vez que implemente este componente. Esto garantiza que utilice la versión correcta de la función Lambda para la versión del componente que implemente.

    Para obtener más información, consulte Crear implementaciones.

Dependencias

Al implementar un componente, AWS IoT Greengrass también implementa versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementarlo correctamente. En esta sección se enumeran las dependencias de las versiones publicadas de este componente y las restricciones de las versiones semánticas que definen las versiones de los componentes para cada dependencia. También puede ver las dependencias de cada versión del componente en la consola. AWS IoT Greengrass En la página de detalles del componente, busque la lista de dependencias.

3.1.1

La siguiente tabla muestra las dependencias de la versión 3.1.1 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <3.0.0 Flexible
Servicio de intercambio de fichas >=0.0.0 Rígido
3.0.0 - 3.0.2

La siguiente tabla muestra las dependencias de las versiones 3.0.0 a 3.0.2 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <3.0.0 Flexible
Servicio de intercambio de fichas >=0.0.0 Rígido
2.0.10 and 2.0.11

La siguiente tabla muestra las dependencias de las versiones 2.0.10 y 2.0.11 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.8.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.9

La siguiente tabla muestra las dependencias de la versión 2.0.9 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.7.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.8

La siguiente tabla muestra las dependencias de la versión 2.0.8 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.6.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.7

La siguiente tabla muestra las dependencias de la versión 2.0.7 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.5.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.6

La siguiente tabla muestra las dependencias de la versión 2.0.6 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.4.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.5

La siguiente tabla muestra las dependencias de la versión 2.0.5 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.3.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.4

La siguiente tabla muestra las dependencias de la versión 2.0.4 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.2.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.3

La siguiente tabla muestra las dependencias de la versión 2.0.3 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.3 <2.1.0 Rígido
Lanzador Lambda >=1.0.0 Rígido
Tiempos de ejecución de Lambda >=1.0.0 Flexible
Servicio de intercambio de fichas >=1.0.0 Rígido

Para obtener más información sobre las dependencias de los componentes, consulta la referencia de recetas de componentes.

Configuración

Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar el componente.

v3.x
PublishRetryCount

El número de veces que se volverá a intentar la publicación. Esta función está disponible en la versión 3.1.1.

El mínimo es 0.

El máximo es 72.

Predeterminado: 5

SampleIntervalSeconds

(Opcional) La cantidad de tiempo en segundos entre cada ciclo en el que el componente recopila las métricas e informa de ellas.

El valor mínimo es de 300 segundos (5 minutos).

Predeterminado: 300 segundos

UseInstaller

(Opcional) Valor booleano que define si se debe utilizar el script de instalación de este componente para instalar las dependencias de este componente.

Establezca este valor false si desea utilizar un script personalizado para instalar las dependencias o si desea incluir las dependencias en tiempo de ejecución en una imagen de Linux prediseñada. Para usar este componente, debe instalar las siguientes bibliotecas, incluidas las dependencias, y ponerlas a disposición del usuario predeterminado del sistema Greengrass.

nota

Si utiliza la versión 3.0.0 o 3.0.1 de este componente en los dispositivos principales que configura para usar un proxy HTTPS, debe establecer este valor en. false El script de instalación no admite el funcionamiento detrás de un proxy HTTPS en estas versiones de este componente.

Predeterminado: true

v2.x
nota

La configuración predeterminada de este componente incluye los parámetros de la función Lambda. Le recomendamos que edite solo los siguientes parámetros para configurar este componente en sus dispositivos.

lambdaParams

Objeto que contiene los parámetros de la función Lambda de este componente. Este objeto contiene la siguiente información:

EnvironmentVariables

Objeto que contiene los parámetros de la función Lambda. Este objeto contiene la siguiente información:

PROCFS_PATH

(Opcional) La ruta a la /proc carpeta.

  • Para ejecutar este componente en un contenedor, utilice el valor predeterminado,/host-proc. El componente se ejecuta en un contenedor de forma predeterminada.

  • Para ejecutar este componente en modo sin contenedor, especifique /proc este parámetro.

Predeterminado: /host-proc. Esta es la ruta por defecto en la que este componente monta la /proc carpeta en el contenedor.

nota

Este componente tiene acceso de solo lectura a esta carpeta.

SAMPLE_INTERVAL_SECONDS

(Opcional) La cantidad de tiempo en segundos entre cada ciclo en el que el componente recopila las métricas e informa de ellas.

El valor mínimo es de 300 segundos (5 minutos).

Predeterminado: 300 segundos

containerMode

(Opcional) El modo de contenerización de este componente. Puede elegir entre las siguientes opciones:

  • GreengrassContainer— El componente se ejecuta en un entorno de ejecución aislado dentro del AWS IoT Greengrass contenedor.

  • NoContainer— El componente no se ejecuta en un entorno de ejecución aislado.

    Si especifica esta opción, debe especificar el parámetro /proc de la variable de PROCFS_PATH entorno.

Predeterminado: GreengrassContainer

containerParams

(Opcional) Un objeto que contiene los parámetros del contenedor de este componente. El componente utiliza estos parámetros si se especifica GreengrassContainer paracontainerMode.

Este objeto contiene la siguiente información:

memorySize

(Opcional) La cantidad de memoria (en kilobytes) que se va a asignar al componente.

El valor predeterminado es 50 000 KB.

pubsubTopics

(Opcional) Objeto que contiene los temas a los que el componente se suscribe para recibir mensajes. Puede especificar cada tema y si el componente se suscribe a los temas de MQTT AWS IoT Core o a los temas de publicación/suscripción locales.

Este objeto contiene la siguiente información:

0— Se trata de un índice matricial en forma de cadena.

Objeto que contiene la siguiente información:

type

(Opcional) El tipo de mensajes de publicación/suscripción que utiliza este componente para suscribirse a los mensajes. Puede elegir entre las siguientes opciones:

  • PUB_SUB — Suscribirse a mensajes locales de publicación/suscripción. Si elige esta opción, el tema no puede contener caracteres comodín de MQTT. Para obtener más información sobre cómo enviar mensajes desde un componente personalizado al especificar esta opción, consulte. Publicar/suscribir mensajes locales

  • IOT_CORE— Suscríbase a los mensajes de AWS IoT Core MQTT. Si elige esta opción, el tema puede contener caracteres comodín de MQTT. Para obtener más información sobre cómo enviar mensajes desde componentes personalizados al especificar esta opción, consulte. Publicar/suscribir mensajes MQTT AWS IoT Core

Predeterminado: PUB_SUB

topic

(Opcional) El tema al que se suscribe el componente para recibir mensajes. Si lo especifica IotCoretype, puede usar los comodines MQTT (+y#) en este tema.

ejemplo Ejemplo: actualización de la combinación de configuraciones (modo contenedor)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }
ejemplo Ejemplo: actualización de la combinación de configuraciones (sin modo contenedor)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

Datos de entrada

Este componente no acepta mensajes como datos de entrada.

Datos de salida

Este componente publica las métricas de seguridad en el siguiente tema reservado para AWS IoT Device Defender. Este componente se coreDeviceNamesustituye por el nombre del dispositivo principal cuando publica las métricas.

Tema (AWS IoT Core MQTT): $aws/things/coreDeviceName/defender/metrics/json

ejemplo Ejemplo de resultados
{ "header": { "report_id": 1529963534, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 1157864729406, "bytes_out": 1170821865, "packets_in": 693092175031, "packets_out": 738917180 }, "tcp_connections": { "established_connections":{ "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } } }

Para obtener más información sobre las métricas que informa este componente, consulte las especificaciones del documento sobre las métricas de los dispositivos en la Guía para AWS IoT Core desarrolladores.

Archivo de registro local

Este componente utiliza el siguiente archivo de registro.

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
Para ver los registros de este componente
  • Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro de este componente en tiempo real. Sustituya /greengrass/v2 o C:\greengrass\v2 por la ruta a la carpeta AWS IoT Greengrass raíz.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait

Licencias

Este componente se publica en virtud del contrato de licencia de software principal de Greengrass.

Registros de cambios

En la siguiente tabla se describen los cambios en cada versión del componente.

v3.x

Versión

Cambios

3.1.1

Mejoras y correcciones de errores
  • Añade reintentos para la conexión del cliente cuando la conexión no se recupera tras una interrupción de la red.

  • Añade un reintento configurable para publicar métricas.

3.1.0

Mejoras y correcciones de errores

3.0.1

Soluciona un problema relacionado con la forma en que el componente calcula los valores delta de las métricas.

3.0.0

aviso

Esta versión ya no está disponible. Las mejoras de esta versión están disponibles en versiones posteriores de este componente.

Versión inicial.

v2.x

Versión

Cambios

2.0.11

Versión actualizada para la versión 2.11.0 de Greengrass nucleus.

2.0.10

Versión actualizada para la versión 2.7.0 de Greengrass Nucleus.

2.0.9

Versión actualizada para la versión 2.6.0 de Greengrass nucleus.

2.0.8

Versión actualizada para la versión 2.5.0 de Greengrass nucleus.

2.0.7

Versión actualizada para la versión 2.4.0 de Greengrass nucleus.

2.0.6

Versión actualizada para la versión 2.3.0 de Greengrass nucleus.

2.0.5

Versión actualizada para el lanzamiento de la versión 2.2.0 de Greengrass nucleus.

2.0.4

Versión actualizada para el lanzamiento de la versión 2.1.0 de Greengrass nucleus.

2.0.3

Versión inicial.