AWS IoT Device Defender - AWS IoT Greengrass

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS IoT Device Defender

O AWS IoT Device Defender componente (aws.greengrass.DeviceDefender) notifica os administradores sobre mudanças no estado dos dispositivos principais do Greengrass. Isso pode ajudar a identificar comportamento incomum e, assim, indicar um dispositivo comprometido. Para obter mais informações, consulte AWS IoT Device Defender no AWS IoT Core Guia do desenvolvedor.

Esse componente lê as métricas do sistema no dispositivo principal. Em seguida, ele publica as métricas para AWS IoT Device Defender. Para obter mais informações sobre como ler e interpretar as métricas que esse componente relata, consulte Especificação do documento de métricas do dispositivo no Guia do AWS IoT Core desenvolvedor.

nota

Esse componente fornece funcionalidade semelhante ao conector do Device Defender em AWS IoT Greengrass V1. Para obter mais informações, consulte o conector do Device Defender no Guia do AWS IoT Greengrass V1 desenvolvedor.

Versões

Esse componente tem as seguintes versões:

  • 3.1.x

  • 3.0.x

  • 2.0.x

Para obter informações sobre mudanças em cada versão do componente, consulte o changelog.

Tipo

v3.x

Este componente é um componente genérico (aws.greengrass.generic). O núcleo do Greengrass executa os scripts do ciclo de vida do componente.

v2.x

Esse componente é um componente Lambda () aws.greengrass.lambda. O núcleo do Greengrass executa a função Lambda desse componente usando o componente lançador Lambda.

Para ter mais informações, consulte Tipos de componentes.

Sistema operacional

v3.x

Esse componente pode ser instalado em dispositivos principais que executam os seguintes sistemas operacionais:

  • Linux

  • Windows

v2.x

Esse componente pode ser instalado somente nos dispositivos principais do Linux.

Requisitos

Esse componente tem os seguintes requisitos:

v3.x
  • Python versão 3.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

  • AWS IoT Device Defender configurado para usar o recurso Detectar para monitorar violações. Para obter mais informações, consulte Detectar no Guia do desenvolvedor do AWS IoT Core .

v2.x
  • Seu dispositivo principal deve atender aos requisitos para executar as funções do Lambda. Se você quiser que o dispositivo principal execute funções Lambda em contêineres, o dispositivo deve atender aos requisitos para fazer isso. Para ter mais informações, consulte Requisitos da função do Lambda.

  • Python versão 3.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

  • AWS IoT Device Defender configurado para usar o recurso Detectar para monitorar violações. Para obter mais informações, consulte Detectar no Guia do desenvolvedor do AWS IoT Core .

  • A biblioteca psutil instalada no dispositivo principal. A versão 5.7.0 é a versão mais recente verificada para funcionar com o componente.

  • A biblioteca cbor instalada no dispositivo principal. A versão 1.0.0 é a versão mais recente verificada para funcionar com o componente.

  • Para receber dados de saída desse componente, você deve mesclar a seguinte atualização de configuração para o componente antigo do roteador de assinatura (aws.greengrass.LegacySubscriptionRouter) ao implantar esse componente. Essa configuração especifica o tópico em que esse componente publica as respostas.

    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" } } }
    • Substitua a região pela Região da AWS que você usa.

    • Substitua a versão pela versão da função Lambda que esse componente executa. Para encontrar a versão da função Lambda, você deve visualizar a receita da versão desse componente que você deseja implantar. Abra a página de detalhes desse componente no AWS IoT Greengrass console e procure o par de valores-chave da função Lambda. Esse par de valores-chave contém o nome e a versão da função Lambda.

    Importante

    Você deve atualizar a versão da função Lambda no roteador de assinatura legado sempre que implantar esse componente. Isso garante que você use a versão correta da função Lambda para a versão do componente que você implanta.

    Para ter mais informações, consulte Criar implantações.

Dependências

Quando você implanta um componente, AWS IoT Greengrass também implanta versões compatíveis de suas dependências. Isso significa que você deve atender aos requisitos do componente e de todas as suas dependências para implantá-lo com êxito. Esta seção lista as dependências das versões lançadas desse componente e as restrições de versão semântica que definem as versões do componente para cada dependência. Você também pode visualizar as dependências de cada versão do componente no AWS IoT Greengrass console. Na página de detalhes do componente, procure a lista de dependências.

3.1.1

A tabela a seguir lista as dependências da versão 3.1.1 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <3.0.0 Flexível
Serviço de troca de tokens >=0,0,0 Rígido
3.0.0 - 3.0.2

A tabela a seguir lista as dependências das versões 3.0.0 a 3.0.2 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <3.0.0 Flexível
Serviço de troca de tokens >=0,0,0 Rígido
2.0.10 and 2.0.11

A tabela a seguir lista as dependências das versões 2.0.10 e 2.0.11 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.8.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.9

A tabela a seguir lista as dependências da versão 2.0.9 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.7.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.8

A tabela a seguir lista as dependências da versão 2.0.8 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.6.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.7

A tabela a seguir lista as dependências da versão 2.0.7 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.5.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.6

A tabela a seguir lista as dependências da versão 2.0.6 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.4.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.5

A tabela a seguir lista as dependências da versão 2.0.5 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.3.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.4

A tabela a seguir lista as dependências da versão 2.0.4 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.2.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.3

A tabela a seguir lista as dependências da versão 2.0.3 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.3 <2.1.0 Rígido
Lançador Lambda >=1.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) >=1.0.0 Flexível
Serviço de troca de tokens >=1.0.0 Rígido

Para obter mais informações sobre dependências de componentes, consulte a referência da receita do componente.

Configuração

Esse componente fornece os seguintes parâmetros de configuração que você pode personalizar ao implantar o componente.

v3.x
PublishRetryCount

A quantidade de vezes que a publicação será repetida. Esse recurso está disponível na versão 3.1.1.

O mínimo é 0.

O máximo é 72.

Padrão: 5

SampleIntervalSeconds

(Opcional) A quantidade de tempo em segundos entre cada ciclo em que o componente coleta e relata métricas.

O valor mínimo é 300 segundos (5 minutos).

Padrão: 300 segundos

UseInstaller

(Opcional) Valor booleano que define se o script do instalador deve ser usado nesse componente para instalar as dependências desse componente.

Defina esse valor como false se você quiser usar um script personalizado para instalar dependências ou se quiser incluir dependências de tempo de execução em uma imagem Linux pré-criada. Para usar esse componente, você deve instalar as seguintes bibliotecas, incluindo quaisquer dependências, e disponibilizá-las para o usuário padrão do sistema Greengrass.

nota

Se você usa a versão 3.0.0 ou 3.0.1 desse componente em dispositivos principais que você configura para usar um proxy HTTPS, defina esse valor como. false O script do instalador não oferece suporte à operação por trás de um proxy HTTPS nessas versões desse componente.

Padrão: true

v2.x
nota

A configuração padrão desse componente inclui parâmetros da função Lambda. Recomendamos que você edite somente os parâmetros a seguir para configurar esse componente em seus dispositivos.

lambdaParams

Um objeto que contém os parâmetros da função Lambda desse componente. Esse objeto contém as seguintes informações:

EnvironmentVariables

Um objeto que contém os parâmetros da função Lambda. Esse objeto contém as seguintes informações:

PROCFS_PATH

(Opcional) O caminho para a /proc pasta.

  • Para executar esse componente em um contêiner, use o valor padrão,/host-proc. O componente é executado em um contêiner por padrão.

  • Para executar esse componente no modo sem contêiner, especifique /proc esse parâmetro.

Padrão: /host-proc. Esse é o caminho padrão em que esse componente monta a /proc pasta no contêiner.

nota

Esse componente tem acesso somente para leitura a essa pasta.

SAMPLE_INTERVAL_SECONDS

(Opcional) A quantidade de tempo em segundos entre cada ciclo em que o componente coleta e relata métricas.

O valor mínimo é 300 segundos (5 minutos).

Padrão: 300 segundos

containerMode

(Opcional) O modo de conteinerização desse componente. Escolha uma das seguintes opções:

  • GreengrassContainer— O componente é executado em um ambiente de execução isolado dentro do AWS IoT Greengrass contêiner.

  • NoContainer— O componente não é executado em um ambiente de execução isolado.

    Se você especificar essa opção, deverá especificar /proc para o parâmetro da variável de PROCFS_PATH ambiente.

Padrão: GreengrassContainer

containerParams

(Opcional) Um objeto que contém os parâmetros do contêiner desse componente. O componente usa esses parâmetros se você especificar GreengrassContainer paracontainerMode.

Esse objeto contém as seguintes informações:

memorySize

(Opcional) A quantidade de memória (em kilobytes) a ser alocada para o componente.

O padrão é 50.000 KB.

pubsubTopics

(Opcional) Um objeto que contém os tópicos em que o componente se inscreve para receber mensagens. Você pode especificar cada tópico e se o componente se inscreve nos tópicos do MQTT AWS IoT Core ou nos tópicos locais de publicação/assinatura.

Esse objeto contém as seguintes informações:

0— Este é um índice de matriz como uma string.

Um objeto que contém as seguintes informações:

type

(Opcional) O tipo de mensagem de publicação/assinatura que esse componente usa para assinar mensagens. Escolha uma das seguintes opções:

  • PUB_SUB – Assine mensagens locais de publicar/assinar. Se você escolher essa opção, o tópico não poderá conter curingas do MQTT. Para obter mais informações sobre como enviar mensagens do componente personalizado ao especificar essa opção, consultePublique/assine mensagens locais.

  • IOT_CORE— Assine as mensagens do AWS IoT Core MQTT. Se você escolher essa opção, o tópico poderá conter curingas do MQTT. Para obter mais informações sobre como enviar mensagens de componentes personalizados ao especificar essa opção, consultePublique/assine mensagens MQTT AWS IoT Core.

Padrão: PUB_SUB

topic

(Opcional) O tópico no qual o componente se inscreve para receber mensagens. Se você especificar IotCore paratype, poderá usar curingas MQTT (+e#) neste tópico.

exemplo Exemplo: atualização da mesclagem de configuração (modo contêiner)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }
exemplo Exemplo: atualização de mesclagem de configuração (sem modo de contêiner)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

Dados de entrada

Esse componente não aceita mensagens como dados de entrada.

Dados de saída

Esse componente publica métricas de segurança no seguinte tópico reservado para AWS IoT Device Defender. Esse componente é coreDeviceNamesubstituído pelo nome do dispositivo principal quando ele publica as métricas.

Tópico (AWS IoT Core MQTT): $aws/things/coreDeviceName/defender/metrics/json

exemplo Exemplo de saída
{ "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 obter mais informações sobre as métricas que esse componente relata, consulte Especificação do documento de métricas do dispositivo no Guia do AWS IoT Core desenvolvedor.

Arquivo de log local

Esse componente usa o seguinte arquivo de log.

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
Para ver os registros desse componente
  • Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. Substitua /greengrass/v2 ou C:\greengrass\v2 pelo caminho para a pasta AWS IoT Greengrass raiz.

    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

Licenças

Esse componente é lançado de acordo com o Contrato de Licença de Software Principal do Greengrass.

Changelog

A tabela a seguir descreve as alterações em cada versão do componente.

v3.x

Version (Versão)

Alterações

3.1.1

Correções de erros e melhorias
  • Adiciona novas tentativas para a conexão do cliente quando a conexão não se recupera após uma interrupção na rede.

  • Adiciona uma nova tentativa configurável para publicar métricas.

3.1.0

Correções de erros e melhorias

3.0.1

Corrige um problema na forma como o componente calcula valores delta para métricas.

3.0.0

Atenção

Essa versão não está mais disponível. As melhorias nesta versão estão disponíveis em versões posteriores desse componente.

Versão inicial.

v2.x

Version (Versão)

Alterações

2.0.11

Versão atualizada para a versão 2.11.0 do Greengrass nucleus.

2.0.10

Versão atualizada para a versão 2.7.0 do Greengrass nucleus.

2.0.9

Versão atualizada para a versão 2.6.0 do Greengrass nucleus.

2.0.8

Versão atualizada para a versão 2.5.0 do Greengrass nucleus.

2.0.7

Versão atualizada para a versão 2.4.0 do Greengrass nucleus.

2.0.6

Versão atualizada para a versão 2.3.0 do Greengrass nucleus.

2.0.5

Versão atualizada para a versão 2.2.0 do Greengrass nucleus.

2.0.4

Versão atualizada para a versão 2.1.0 do Greengrass nucleus.

2.0.3

Versão inicial.