Bonnes pratiques de sécurité pour AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Bonnes pratiques de sécurité pour AWS IoT Greengrass

Cette rubrique contient les bonnes pratiques en matière de sécurité pour AWS IoT Greengrass.

Accorder le moins d’autorisations possibles

Respectez le principe du moindre privilège en utilisant l'ensemble minimal d'autorisations dans les rôles IAM. Limitez l'utilisation du * caractère générique pour les Resource propriétés Action et dans vos politiques IAM. Au lieu de cela, déclarez un ensemble fini d'actions et de ressources lorsque cela est possible. Pour plus d'informations sur le moindre privilège et les autres bonnes pratiques en matière de stratégie, veuillez consulter Bonnes pratiques en matière de politiques.

La meilleure pratique du moindre privilège s'applique également aux AWS IoT politiques que vous attachez à votre cœur de Greengrass et à vos appareils clients.

Ne codez pas en dur les informations d'identification dans les fonctions Lambda

Ne codez pas en dur les informations d'identification dans vos fonctions Lambda définies par l'utilisateur. Pour mieux protéger vos informations d'identification :

  • Pour interagir avec les services AWS, définissez des autorisations pour des actions et des ressources spécifiques dans le rôle de groupe Greengrass.

  • Utilisez les secrets locaux pour stocker vos informations d'identification. Ou, si la fonction utilise le AWS SDK, utilisez les informations d'identification de la chaîne de fournisseurs d'informations d'identification par défaut.

Ne journalisez pas les informations sensibles

Vous devez empêcher la journalisation des informations d'identification et d'autres informations personnelles identifiables (PII). Nous vous recommandons de mettre en œuvre les mesures de protection suivantes, même si l'accès aux journaux locaux sur un appareil principal nécessite des privilèges root et que l'accès aux CloudWatch journaux nécessite des autorisations IAM.

  • N'utilisez pas d'informations sensibles dans les chemins de rubrique MQTT.

  • N'utilisez pas d'informations sensibles dans les noms, les types et les attributs d’appareil (objet) dans le registre AWS IoT Core.

  • N'enregistrez pas d'informations sensibles dans vos fonctions Lambda définies par l'utilisateur.

  • N'utilisez pas d'informations sensibles dans les noms et identifiants de ressource Greengrass :

    • Connecteurs

    • Cœurs

    • Appareils

    • Fonctions

    • Groups

    • Loggers

    • Ressources (local, Machine Learning ou secret)

    • Abonnements

Créer des abonnements ciblés

Les abonnements contrôlent le flux d'informations dans un groupe Greengrass en définissant la manière dont les messages sont échangés entre les services, les appareils et les fonctions Lambda. Pour vous assurer qu'une application ne peut faire que ce qu'elle est censée faire, vos abonnements doivent permettre aux éditeurs d'envoyer des messages à des rubriques spécifiques uniquement, et limiter les abonnés à recevoir des messages de rubriques nécessaires à leur fonctionnalité.

Veiller à la synchronisation de l'horloge de votre appareil

Il est important que l'heure soit exacte sur votre appareil. Les certificats X.509 ont une date et une heure d'expiration. L'horloge de votre appareil est utilisée pour vérifier qu'un certificat de serveur est toujours valide. Les horloges de l'appareil peuvent se décaler au fil du temps ou les batteries peuvent se décharger.

Pour de plus amples informations, veuillez consulter les bonnes pratiques décrites dans la section Veiller à la synchronisation de l'horloge de votre appareil dans le Manuel du développeur AWS IoT Core.

Gérer l'authentification des appareils avec le noyau Greengrass

Les appareils clients peuvent exécuter FreeRTOS ou utiliser AWS IoTle Device SDK AWS IoT Greengrass ou l'API Discovery pour obtenir les informations de découverte utilisées pour se connecter et s'authentifier auprès du noyau d'un même groupe Greengrass. Les informations de découverte comprennent :

  • Informations de connectivité pour le cœur de Greengrass qui se trouve dans le même groupe Greengrass que l'appareil client. Ces informations comprennent l'adresse de l'hôte et le numéro de port de chaque point de terminaison pour l’appareil noyau.

  • Le certificat d'autorité de certification de groupe utilisé pour signer le certificat de serveur MQTT local. Les appareils clients utilisent le certificat CA du groupe pour valider le certificat du serveur MQTT présenté par le noyau.

Voici les meilleures pratiques permettant aux appareils clients de gérer l'authentification mutuelle avec un noyau Greengrass. Ces pratiques peuvent vous aider à atténuer vos risques si votre appareil noyau est endommagé.

Valider le certificat de serveur MQTT local pour chaque connexion.

Les appareils clients doivent valider le certificat de serveur MQTT présenté par le cœur chaque fois qu'ils établissent une connexion avec le cœur. Cette validation concerne le dispositif client dans le cadre de l'authentification mutuelle entre un dispositif principal et des appareils clients. Les appareils clients doivent être en mesure de détecter une panne et de mettre fin à la connexion.

Ne pas coder en dur les informations de découverte.

Les appareils clients doivent s'appuyer sur des opérations de découverte pour obtenir les informations de connectivité de base et le certificat de l'autorité de certification du groupe, même si le cœur utilise une adresse IP statique. Les appareils clients ne doivent pas coder en dur ces informations de découverte.

Mettre à jour périodiquement les informations de découverte.

Les appareils clients doivent régulièrement exécuter la détection pour mettre à jour les informations de connectivité de base et le certificat de l'autorité de certification du groupe. Nous recommandons aux appareils clients de mettre à jour ces informations avant d'établir une connexion avec le cœur. Étant donné que des durées plus courtes entre les opérations de découverte peuvent réduire le temps d'exposition potentiel, nous recommandons que les appareils clients se déconnectent et se reconnectent régulièrement pour déclencher la mise à jour.

Si vous perdez le contrôle d'un appareil principal de Greengrass et que vous souhaitez empêcher les appareils clients de transmettre des données au cœur, procédez comme suit :

  1. Retirez le noyau Greengrass du groupe Greengrass.

  2. Effectuez une rotation du certificat de CA de groupe. Dans la AWS IoT console, vous pouvez faire pivoter le certificat CA sur la page Paramètres du groupe. Dans l'AWS IoT GreengrassAPI, vous pouvez utiliser l'CreateGroupCertificateAuthorityaction.

    Nous vous recommandons également d'utiliser le chiffrement complet du disque si le disque dur de votre appareil principal est susceptible d’être volé.

Pour plus d’informations, consultez Authentification et autorisation d'appareil pour AWS IoT Greengrass.

Consultez aussi