AWS IoT Device Defender
El componente AWS IoT Device Defender (aws.greengrass.DeviceDefender
) notifica a los administradores de 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 en el 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 del dispositivo en la Guía para desarrolladores de AWS IoT Core.
Este componente proporciona una funcionalidad similar a la del conector de Device Defender en AWS IoT Greengrass V1. Para obtener más información, consulte conector de Device Defender en la Guía para desarrolladores de AWS IoT Greengrass V1.
Versiones
Este componente tiene las siguientes versiones:
Para obtener información acerca de 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 de Lambda (aws.greengrass.lambda
). El núcleo de Greengrass ejecuta la función de Lambda de este componente mediante el componente lanzador de Lambda.
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:
- 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 agregada a la variable de entorno PATH.
-
AWS IoT Device Defender configurado para utilizar la característica de detección para monitorear 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 de 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 agregada a la variable de entorno PATH.
-
AWS IoT Device Defender configurado para utilizar la característica de detección para monitorear 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 verifica para que funcione con el componente.
-
La biblioteca cbor instalada en el dispositivo principal. La versión 1.0.0 es la última versión que se verifica para que funcione con el componente.
-
Para recibir los datos de salida de este componente, debe combinar la siguiente actualización de configuración para el componente del enrutador de suscripción antiguo (aws.greengrass.LegacySubscriptionRouter
) cuando implemente 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"
}
}
}
-
Reemplace region
por la Región de AWS que utiliza.
-
Reemplace version
por la versión de la función de Lambda que ejecuta este componente. Para encontrar la versión de la función de 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 consola de AWS IoT Greengrass y busque el par clave-valor de la función de Lambda. Este par clave-valor contiene el nombre y la versión de la función de Lambda.
Debe actualizar la versión de la función de Lambda en el enrutador de suscripción antiguo cada vez que implemente este componente. Esto garantiza que utilice la versión correcta de la función de Lambda para la versión del componente que implemente.
Para obtener más información, consulte Crear implementaciones.
Dependencias
Cuando implementa 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 implementar el componente 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 de 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.
- 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.
- 2.0.12 - 2.0.16
-
La siguiente tabla muestra las dependencias de la versión 2.0.16 de este componente.
- 2.0.10 - 2.0.11
-
La siguiente tabla muestra las dependencias de las versiones 2.0.10 y 2.0.11 de este componente.
- 2.0.9
-
En la siguiente tabla, se muestran las dependencias de la versión 2.0.9 de este componente.
- 2.0.8
-
En la siguiente tabla, se muestran las dependencias de la versión 2.0.8 de este componente.
- 2.0.7
-
En la siguiente tabla, se muestran las dependencias de la versión 2.0.7 de este componente.
- 2.0.6
-
En la siguiente tabla, se muestran las dependencias de la versión 2.0.6 de este componente.
- 2.0.5
-
En la siguiente tabla, se muestran las dependencias de la versión 2.0.5 de este componente.
- 2.0.4
-
En la siguiente tabla, se muestran las dependencias de la versión 2.0.4 de este componente.
- 2.0.3
-
En la siguiente tabla, se muestran las dependencias de la versión 2.0.3 de este componente.
Para obtener más información sobre las dependencias del componente, consulte la referencia de receta de componentes.
Configuración
Este componente ofrece los siguientes parámetros de configuración que puede personalizar cuando implemente el componente.
- v3.x
-
PublishRetryCount
-
El número de veces que se volverá a intentar la publicación. Esta característica 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 y las informa.
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 a false
si desea usar un script personalizado para instalar las dependencias o si desea incluir las dependencias de 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.
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 la operación detrás de un proxy HTTPS en estas versiones de este componente.
Valor predeterminado: true
- v2.x
-
La configuración predeterminada de este componente incluye los parámetros de la función de Lambda. Le recomendamos que edite solo los siguientes parámetros para configurar este componente en sus dispositivos.
lambdaParams
-
Un objeto que contiene los parámetros de la función de Lambda de este componente. Este objeto contiene la siguiente información:
EnvironmentVariables
-
Un objeto que contiene los parámetros de la función de Lambda. Este objeto contiene la siguiente información:
PROCFS_PATH
-
(Opcional) La ruta a la carpeta /proc
.
-
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
para este parámetro.
Predeterminado: /host-proc
. Esta es la ruta por defecto en la que este componente monta la carpeta /proc
en el contenedor.
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 y las informa.
El valor mínimo es de 300 segundos (5 minutos).
Predeterminado: 300 segundos
containerMode
-
(Opcional) El modo de almacenamiento en contenedores de este componente. Puede elegir entre las siguientes opciones:
-
GreengrassContainer
: el componente se ejecuta en un entorno de tiempo de ejecución aislado dentro del contenedor de AWS IoT Greengrass.
-
NoContainer
: el componente no se ejecuta en un entorno de tiempo de ejecución aislado.
Si especifica esta opción, debe especificar /proc
para el parámetro de la variable de entorno PROCFS_PATH
.
Valor predeterminado: GreengrassContainer
containerParams
-
(Opcional) Un objeto que contiene los parámetros de contenedor de este componente. El componente utiliza estos parámetros si se especifica GreengrassContainer
para containerMode
.
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) Un 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 MQTT de 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 de matriz en forma de cadena.
-
Un objeto que contiene la siguiente información:
type
-
(Opcional) El tipo de mensajería de publicación y suscripción que utiliza este componente para suscribirse a los mensajes. Puede elegir entre las siguientes opciones:
-
PUB_SUB
— Suscribirse a la mensajería de publicación/suscripción local. Si elige esta opción, el tema no podrá contener caracteres comodín de MQTT. Para obtener más información sobre cómo enviar mensajes desde un componente personalizado cuando especifique esta opción, consulte Publicar/suscribir mensajes locales.
-
IOT_CORE
: Suscribirse a mensajes MQTT de AWS IoT Core. 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 cuando especifique esta opción, consulte Publicación/suscripción de mensajes MQTT AWS IoT Core.
Valor predeterminado: PUB_SUB
topic
-
(Opcional) El tema al que se suscribe el componente para recibir mensajes. Si especifica IotCore
para type
, puede usar los comodines de MQTT (+
y #
) en este tema.
ejemplo Ejemplo: actualización de la combinación de configuraciones (modo en contenedor)
{
"lambdaExecutionParameters": {
"EnvironmentVariables": {
"PROCFS_PATH": "/host_proc"
}
},
"containerMode": "GreengrassContainer"
}
ejemplo Ejemplo: actualización de la combinación de configuraciones (modo sin contenedor)
{
"lambdaExecutionParameters": {
"EnvironmentVariables": {
"PROCFS_PATH": "/proc"
}
},
"containerMode": "NoContainer"
}
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 reemplaza coreDeviceName
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 resultado
{
"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 desarrolladores de AWS IoT Core.
Archivo de registro local
Este componente usa el siguiente archivo de registro.
- Linux
-
/greengrass/v2
/logs/aws.greengrass.DeviceDefender.log
- Windows
-
C:\greengrass\v2
\logs\aws.greengrass.DeviceDefender.log
Visualización de los registros de este componente
Licencias
Este conector se publica en el Contrato de Licencia de Software de Greengrass Core.
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
-
|
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
|
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.16
|
Versión actualizada para el lanzamiento de la versión 2.13.0 del núcleo de Greengrass.
|
2.0.11
|
Versión actualizada para el lanzamiento de la versión 2.11.0 del núcleo de Greengrass.
|
2.0.10
|
Versión actualizada para el lanzamiento de la versión 2.7.0 del núcleo de Greengrass.
|
2.0.9
|
Versión actualizada para el lanzamiento de la versión 2.6.0 del núcleo de Greengrass.
|
2.0.8
|
Versión actualizada para el lanzamiento de la versión 2.5.0 del núcleo de Greengrass.
|
2.0.7
|
Versión actualizada para el lanzamiento de la versión 2.4.0 del núcleo de Greengrass.
|
2.0.6
|
Versión actualizada para el lanzamiento de la versión 2.3.0 del núcleo de Greengrass.
|
2.0.5
|
Versión actualizada para el lanzamiento de la versión 2.2.0 del núcleo de Greengrass.
|
2.0.4
|
Versión actualizada para el lanzamiento de la versión 2.1.0 del núcleo de Greengrass.
|
2.0.3
|
Versión inicial.
|