Melhores práticas de segurança do AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

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á.

Melhores práticas de segurança do AWS IoT Greengrass

Este tópico contém as melhores práticas de segurança para o AWS IoT Greengrass.

Conceder o mínimo possível de permissões

Siga o princípio de privilégio mínimo usando o conjunto mínimo de permissões em perfis do IAM. Limite o uso do caractere curinga * para as propriedades Action e Resource em suas políticas do IAM. Em vez disso, declare um conjunto finito de ações e recursos quando possível. Para obter mais informações sobre as melhores práticas de privilégio mínimo e outras de políticas, consulte Práticas recomendadas de políticas.

A melhor prática de privilégio mínimo também se aplica às políticas do AWS IoT anexadas ao núcleo do Greengrass e aos dispositivos cliente.

Não codificar credenciais em funções do Lambda

Não codifique credenciais em suas funções do Lambda definidas pelo usuário. Como proteger melhor suas credenciais:

  • Para interagir com serviços da AWS, defina permissões para ações e recursos específicos na função de grupo do Greengrass.

  • Use segredos locais para armazenar suas credenciais. Ou, se a função usar o SDK da AWS, use credenciais da cadeia de provedores de credenciais padrão.

Não registrar em log informações confidenciais

Você deve impedir o registro de credenciais e outras informações de identificação pessoal (PII). Recomendamos que você implemente as seguintes proteções, mesmo que o acesso aos registros locais em um dispositivo principal exija privilégios de root e o acesso aos CloudWatch registros exija permissões do IAM.

  • Não use informações confidenciais em caminhos de tópico MQTT.

  • Não use informações confidenciais em nomes, tipos e atributos de dispositivo (coisa) no registro do AWS IoT Core.

  • Não registre informações confidenciais em suas funções do Lambda definidas pelo usuário.

  • Não use informações confidenciais nos nomes e IDs dos recursos do Greengrass:

    • Conectores

    • Núcleos

    • Dispositivos

    • Funções

    • Grupos

    • Loggers

    • Recursos (local, machine learning ou segredo)

    • Assinaturas

Criar assinaturas direcionadas

As assinaturas controlam o fluxo de informações em um grupo do Greengrass definindo como as mensagens são trocadas entre serviços, dispositivos e funções do Lambda. Para garantir que um aplicativo possa fazer apenas o que deve fazer, suas assinaturas devem permitir que os editores enviem mensagens apenas para tópicos específicos e limitar os assinantes para receber mensagens apenas de tópicos necessários para sua funcionalidade.

Manter o relógio do dispositivo sincronizado

É importante ter a hora exata no seu dispositivo. Os certificados X.509 têm data e hora de expiração. O relógio em seu dispositivo é usado para verificar se um certificado de servidor ainda é válido. Os relógios do dispositivo podem atrasar ao longo do tempo ou as baterias podem descarregar.

Para obter mais informações, consulte a melhor prática Manter o relógio do dispositivo sincronizado no Guia do desenvolvedor do AWS IoT Core.

Gerenciar a autenticação de dispositivos com o núcleo do Greengrass

Os dispositivos cliente do Greengrass podem executar FreeRTOS ou usar o SDK do dispositivo da AWS IoT ou a API de descoberta do AWS IoT Greengrass para obter informações de descoberta usadas para conexão e autenticação com o núcleo no mesmo grupo do Greengrass. As informações de detecção incluem:

  • Informações de conectividade para o núcleo do Greengrass que esteja no mesmo grupo do Greengrass que o dispositivo cliente. Essas informações incluem o endereço do host e o número da porta de cada endpoint do dispositivo de núcleo.

  • O certificado CA de grupo usado para assinar o certificado de servidor MQTT local. Os dispositivos cliente usam o certificado CA de grupo para validar o certificado de servidor MQTT apresentado pelo núcleo.

Veja a seguir as melhores práticas de dispositivos cliente para gerenciar a autenticação mútua com um núcleo do Greengrass. Essas práticas podem ajudar a reduzir seus riscos se seu dispositivo principal estiver comprometido.

Valide o certificado de servidor MQTT local para cada conexão.

Os dispositivos cliente devem validar o certificado do servidor MQTT apresentado pelo núcleo sempre que estabelecerem uma conexão com o núcleo. Esta validação é o lado do dispositivo cliente da autenticação mútua entre um dispositivo de núcleo e dispositivos cliente. Os dispositivos cliente devem ser capazes de detectar uma falha e encerrar a conexão.

Não codifique informações de detecção.

Os dispositivos cliente devem confiar em operações de detecção para obter informações de conectividade do núcleo e o certificado CA do grupo, mesmo que o núcleo use um endereço IP estático. Os dispositivos cliente não devem codificar essas informações de detecção.

Atualize periodicamente as informações de detecção.

Os dispositivos cliente devem executar periodicamente a detecção para atualizar as informações de conectividade do núcleo e o certificado CA do grupo. Recomendamos que os dispositivos cliente atualizem essas informações antes de estabelecerem uma conexão com o núcleo. Como as durações mais curtas entre as operações de detecção podem minimizar o tempo de exposição potencial, recomendamos que os dispositivos cliente se desconectem e se reconectem periodicamente para acionar a atualização.

Se você perder o controle de um dispositivo de núcleo do Greengrass e quiser impedir que dispositivos cliente transmitam dados para o núcleo, faça o seguinte:

  1. Remova o núcleo do Greengrass do grupo do Greengrass.

  2. Rode o certificado CA do grupo No console do AWS IoT, você pode girar o certificado CA na página Configurações do grupo. Na AWS IoT Greengrass API, você pode usar a CreateGroupCertificateAuthorityação.

    Também recomendamos o uso de criptografia total do disco se o disco rígido do dispositivo principal estiver vulnerável a roubo.

Para ter mais informações, consulte Autorização e autenticação do dispositivo para o AWS IoT Greengrass.

Consulte também