Authentification et autorisation d'appareil pour AWS IoT Greengrass - AWS IoT Greengrass

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.

Authentification et autorisation d'appareil pour AWS IoT Greengrass

Dans les environnements AWS IoT Greengrass, les appareils utilisent des certificats X.509 pour l'authentification et des stratégies AWS IoT pour l'autorisation. Les certificats et les stratégies permettent aux appareils de se connecter en toute sécurité avec d’autres appareils, AWS IoT Core et AWS IoT Greengrass.

Les certificats X.509 sont des certificats numériques qui font appel à la norme d'infrastructure de clé publique X.509 pour associer une clé publique à l’identité contenue dans un certificat. Les certificats X.509 sont émis par une entité de confiance appelée autorité de certification (CA). Celle-ci gère un ou plusieurs certificats spéciaux appelés certificats d'autorité de certification, qu'elle utilise pour émettre des certificats X.509. Seule l'autorité du certificat a accès aux certificats d'autorité de certification.

Les stratégies AWS IoT définissent l'ensemble des opérations autorisées pour les appareils AWS IoT. Plus précisément, elles autorisent et refusent l'accès aux opérations de plan de données AWS IoT Core et AWS IoT Greengrass, telles que la publication de messages MQTT et la récupération de shadows d’appareil.

Tous les périphériques nécessitent une entrée dans le registre AWS IoT Core et un certificat X.509 activé avec une stratégie AWS IoT jointe. Les appareils se répartissent en deux catégories :

  • Appareils Greengrass Core

    Les appareils Greengrass Core utilisent des certificats et des AWS IoT politiques pour se connecter à AWS IoT Core et. AWS IoT Greengrass Les certificats et les politiques permettent également AWS IoT Greengrass de déployer des composants et des configurations sur les appareils principaux.

  • Appareils clients

    Les appareils clients MQTT utilisent des certificats et des politiques pour se connecter au AWS IoT Greengrass service AWS IoT Core et le utiliser. Cela permet aux appareils clients d'utiliser la découverte du AWS IoT Greengrass cloud pour rechercher et se connecter à un appareil principal de Greengrass. Un appareil client utilise le même certificat pour se connecter au service AWS IoT Core cloud et aux appareils principaux. Les appareils clients utilisent également les informations de découverte pour l'authentification mutuelle avec le périphérique principal. Pour plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Certificats X.509

La communication entre les appareils principaux et les appareils clients et entre les appareils AWS IoT Core et/ou AWS IoT Greengrass doit être authentifiée. Cette authentification mutuelle est basée sur les certificats d'appareils X.509 enregistrés et sur des clés de chiffrement.

Dans un environnement AWS IoT Greengrass, les appareils utilisent des certificats avec des clés publiques et privées pour les connexions TLS (Transport Layer Security) suivantes :

  • Le composant AWS IoT client de l'appareil principal de Greengrass qui se connecte à Internet AWS IoT Core et AWS IoT Greengrass via Internet.

  • Appareils clients qui se AWS IoT Greengrass connectent via Internet pour découvrir les appareils principaux.

  • Le composant broker MQTT sur le cœur de Greengrass se connectant aux appareils Greengrass du groupe via le réseau local.

AWS IoT Greengrassles appareils principaux stockent les certificats dans le dossier racine de Greengrass.

Certificats d'autorité de certification (CA)

Les appareils principaux et les appareils clients de Greengrass téléchargent un certificat CA racine utilisé pour l'authentification auprès des services AWS IoT Core etAWS IoT Greengrass. Nous vous recommandons d'utiliser un certificat d'autorité de certification racine Amazon Trust Services (ATS), tel que Amazon Root CA 1. Pour de plus amples informations, veuillez consulter Certificats d'autorité de certification pour l'authentification du serveur dans le Manuel du développeur AWS IoT Core.

Les appareils clients téléchargent également un certificat CA du périphérique principal Greengrass. Ils utilisent ce certificat pour valider le certificat du serveur MQTT sur le périphérique principal lors de l'authentification mutuelle.

Rotation des certificats sur le broker MQTT local

Lorsque vous activez la prise en charge des appareils clients, les appareils principaux de Greengrass génèrent un certificat de serveur MQTT local que les appareils clients utilisent pour l'authentification mutuelle. Ce certificat est signé par le certificat CA de l'appareil principal, que celui-ci stocke dans le AWS IoT Greengrass cloud. Les appareils clients récupèrent le certificat CA du périphérique principal lorsqu'ils découvrent le périphérique principal. Ils utilisent le certificat CA du périphérique principal pour vérifier le certificat du serveur MQTT du périphérique principal lorsqu'ils se connectent au périphérique principal. Le certificat CA du périphérique principal expire au bout de 5 ans.

Le certificat du serveur MQTT expire tous les 7 jours par défaut, et vous pouvez configurer cette durée entre 2 et 10 jours. Cette période limitée est basée sur les bonnes pratiques en matière de sécurité. Cette rotation permet d'atténuer le risque qu'un attaquant vole le certificat du serveur MQTT et la clé privée pour se faire passer pour le périphérique principal de Greengrass.

Le périphérique principal de Greengrass fait pivoter le certificat du serveur MQTT 24 heures avant son expiration. Le périphérique principal Greengrass génère un nouveau certificat et redémarre le broker MQTT local. Dans ce cas, tous les appareils clients connectés au périphérique principal de Greengrass sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique principal de Greengrass après un court laps de temps.

Stratégies AWS IoT pour les opérations de plan de données

Utilisez AWS IoT des politiques pour autoriser l'accès aux plans de AWS IoT Greengrass données AWS IoT Core et. Le plan de AWS IoT Core données fournit des opérations pour les appareils, les utilisateurs et les applications. Ces opérations incluent la possibilité de se connecter à des sujets AWS IoT Core et de s'y abonner. Le plan AWS IoT Greengrass de données fournit des opérations pour les appareils Greengrass. Pour plus d’informations, consultez Actions de stratégie AWS IoT Greengrass V2. Ces opérations incluent la capacité de résoudre les dépendances des composants et de télécharger des artefacts de composants publics.

Une AWS IoT politique est un document JSON similaire à une politique IAM. Elle contient une ou plusieurs instructions de stratégie qui spécifient les propriétés suivantes :

  • Effect. Le mode d'accès, qui peut être Allow ouDeny.

  • Action. Liste des actions autorisées ou refusées par la politique.

  • Resource. Liste des ressources sur lesquelles l'action est autorisée ou refusée.

AWS IoTles politiques * le prennent en charge en tant que caractère générique et traitent les caractères génériques MQTT (+et#) comme des chaînes littérales. Pour plus d'informations sur le * caractère générique, consultez la section Utilisation du caractère générique dans les ARN des ressources du Guide de l'AWS Identity and Access Managementutilisateur.

Pour de plus amples informations, veuillez consulter Stratégies AWS IoT et Actions de stratégie AWS IoT dans le Manuel du développeur AWS IoT Core.

Important

Les variables de politique des objets (iot:Connection.Thing.*) ne sont pas prises en charge dans AWS IoT les politiques relatives aux appareils principaux ou aux opérations du plan de données Greengrass. Vous pouvez plutôt utiliser un caractère générique correspondant à plusieurs appareils portant des noms similaires. Par exemple, vous pouvez spécifier MyGreengrassDevice* de correspondre MyGreengrassDevice1MyGreengrassDevice2, et ainsi de suite.

Note

AWS IoT Corevous permet d'associer des AWS IoT politiques à des groupes d'objets afin de définir des autorisations pour des groupes d'appareils. Les politiques relatives aux groupes d'objets n'autorisent pas l'accès aux opérations du plan de AWS IoT Greengrass données. Pour autoriser un objet à accéder à une opération de plan de AWS IoT Greengrass données, ajoutez l'autorisation à une AWS IoT politique que vous associez au certificat de l'objet.

Actions de stratégie AWS IoT Greengrass V2

AWS IoT Greengrass V2définit les actions politiques suivantes que les appareils principaux et clients de Greengrass peuvent utiliser dans AWS IoT les politiques. Pour spécifier une ressource pour une action de politique, vous utilisez le Amazon Resource Name (ARN) de la ressource.

Principales actions de l'appareil
greengrass:GetComponentVersionArtifact

Accorde l'autorisation d'obtenir une URL présignée pour télécharger un artefact de composant public ou un artefact de composant Lambda.

Cette autorisation est évaluée lorsqu'un périphérique principal reçoit un déploiement qui spécifie un composant public ou un Lambda contenant des artefacts. Si l'appareil principal possède déjà l'artefact, il ne le télécharge pas à nouveau.

Type de ressource : componentVersion

Format ARN de la ressource : arn:aws:greengrass:region:account-id:components:component-name:versions:component-version

greengrass:ResolveComponentCandidates

Accorde l'autorisation d'identifier une liste de composants répondant aux exigences relatives aux composants, à la version et à la plate-forme pour un déploiement. En cas de conflit entre les exigences ou s'il n'existe aucun composant répondant aux exigences, cette opération renvoie une erreur et le déploiement échoue sur le périphérique.

Cette autorisation est évaluée lorsqu'un périphérique principal reçoit un déploiement qui spécifie des composants.

Type de ressource : Aucune

Format ARN de la ressource : *

greengrass:GetDeploymentConfiguration

Accorde l'autorisation d'obtenir une URL présignée pour télécharger un document de déploiement volumineux.

Cette autorisation est évaluée lorsqu'un périphérique principal reçoit un déploiement qui spécifie un document de déploiement supérieur à 7 Ko (si le déploiement cible un objet) ou 31 Ko (si le déploiement cible un groupe d'objets). Le document de déploiement inclut les configurations des composants, les politiques de déploiement et les métadonnées de déploiement. Pour plus d’informations, consultez Déployer AWS IoT Greengrass des composants sur des appareils.

Cette fonctionnalité est disponible pour les versions 2.3.0 et ultérieures du composant Greengrass nucleus.

Type de ressource : Aucune

Format ARN de la ressource : *

greengrass:ListThingGroupsForCoreDevice

Accorde l'autorisation d'obtenir la hiérarchie des groupes d'objets d'un appareil principal.

Cette autorisation est vérifiée lorsqu'un périphérique principal reçoit un déploiement deAWS IoT Greengrass. Le périphérique principal utilise cette action pour déterminer s'il a été supprimé d'un groupe d'objets depuis le dernier déploiement. Si le périphérique principal a été supprimé d'un groupe d'objets et que ce groupe d'objets est la cible d'un déploiement sur le périphérique principal, le périphérique principal supprime les composants installés par ce déploiement.

Cette fonctionnalité est utilisée par les versions 2.5.0 et ultérieures du composant Greengrass nucleus.

Type de ressource : thing (appareil principal)

Format ARN de la ressource : arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:VerifyClientDeviceIdentity

Accorde l'autorisation de vérifier l'identité d'un appareil client qui se connecte à un appareil principal.

Cette autorisation est évaluée lorsqu'un périphérique principal exécute le composant d'authentification du périphérique client et reçoit une connexion MQTT d'un périphérique client. L'appareil client présente son certificat d'AWS IoTappareil. Ensuite, le périphérique principal envoie le certificat de l'appareil au service AWS IoT Greengrass cloud pour vérifier l'identité de l'appareil client. Pour plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Type de ressource : Aucune

Format ARN de la ressource : *

greengrass:VerifyClientDeviceIoTCertificateAssociation

Accorde l'autorisation de vérifier si un appareil client est associé à un AWS IoT certificat.

Cette autorisation est évaluée lorsqu'un périphérique principal exécute le composant d'authentification du périphérique client et autorise un périphérique client à se connecter via MQTT. Pour plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Note

Pour qu'un appareil principal puisse utiliser cette opération, le rôle de service Greengrass doit être associé à votre rôle Compte AWS et autoriser cette autorisation. iot:DescribeCertificate

Type de ressource : thing (appareil client)

Format ARN de la ressource : arn:aws:iot:region:account-id:thing/client-device-thing-name

greengrass:PutCertificateAuthorities

Accorde l'autorisation de télécharger des certificats d'autorité de certification (CA) que les appareils clients peuvent télécharger pour vérifier le périphérique principal.

Cette autorisation est évaluée lorsqu'un périphérique principal installe et exécute le composant d'authentification du périphérique client. Ce composant crée une autorité de certification locale et utilise cette opération pour télécharger ses certificats CA. Les appareils clients téléchargent ces certificats CA lorsqu'ils utilisent l'opération Discover pour trouver les périphériques principaux auxquels ils peuvent se connecter. Lorsque les appareils clients se connectent à un courtier MQTT sur un périphérique principal, ils utilisent ces certificats CA pour vérifier l'identité du périphérique principal. Pour plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Type de ressource : Aucune

Format de l'ARN : *

greengrass:GetConnectivityInfo

Accorde l'autorisation d'obtenir des informations de connectivité pour un appareil principal. Ces informations décrivent comment les appareils clients peuvent se connecter au périphérique principal.

Cette autorisation est évaluée lorsqu'un périphérique principal installe et exécute le composant d'authentification du périphérique client. Ce composant utilise les informations de connectivité pour générer des certificats CA valides à télécharger sur le service AWS IoT Greengrass cloud lors de l'PutCertificateAuthoriesopération. Les appareils clients utilisent ces certificats CA pour vérifier l'identité du périphérique principal. Pour plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Vous pouvez également utiliser cette opération sur le plan AWS IoT Greengrass de contrôle pour afficher les informations de connectivité d'un périphérique principal. Pour plus d'informations, consultez GetConnectivityInfo dans la Référence d'API AWS IoT Greengrass V1.

Type de ressource : thing (appareil principal)

Format ARN de la ressource : arn:aws:iot:region:account-id:thing/core-device-thing-name

greengrass:UpdateConnectivityInfo

Accorde l'autorisation de mettre à jour les informations de connectivité d'un appareil principal. Ces informations décrivent comment les appareils clients peuvent se connecter au périphérique principal.

Cette autorisation est évaluée lorsqu'un périphérique principal exécute le composant de détection IP. Ce composant identifie les informations dont les appareils clients ont besoin pour se connecter au périphérique principal sur le réseau local. Ce composant utilise ensuite cette opération pour télécharger les informations de connectivité vers le service AWS IoT Greengrass cloud, afin que les appareils clients puissent récupérer ces informations avec l'opération Discover. Pour plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Vous pouvez également utiliser cette opération sur le plan de AWS IoT Greengrass contrôle pour mettre à jour manuellement les informations de connectivité d'un périphérique principal. Pour plus d'informations, consultez UpdateConnectivityInfo dans la Référence d'API AWS IoT Greengrass V1.

Type de ressource : thing (appareil principal)

Format ARN de la ressource : arn:aws:iot:region:account-id:thing/core-device-thing-name

Actions relatives à l'appareil client
greengrass:Discover

Accorde l'autorisation de découvrir les informations de connectivité pour les appareils principaux auxquels un appareil client peut se connecter. Ces informations décrivent comment le périphérique client peut se connecter aux périphériques principaux. Un appareil client ne peut découvrir que les périphériques principaux auxquels vous l'avez associé à l'aide de cette BatchAssociateClientDeviceWithCoreDeviceopération. Pour plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Type de ressource : thing (appareil client)

Format ARN de la ressource : arn:aws:iot:region:account-id:thing/client-device-thing-name

Mettre à jour la AWS IoT politique d'un appareil principal

Vous pouvez utiliser les AWS IoT consoles AWS IoT Greengrass et ou l'AWS IoTAPI pour consulter et mettre à jour la AWS IoT politique d'un appareil principal.

Note

Si vous avez utilisé le programme d'installation du logiciel AWS IoT Greengrass Core pour provisionner des ressources, votre appareil principal dispose d'une AWS IoT politique qui autorise l'accès à toutes les AWS IoT Greengrass actions (greengrass:*). Vous pouvez suivre ces étapes pour restreindre l'accès aux seules actions utilisées par un appareil principal.

  1. Dans le menu de navigation de la AWS IoT Greengrassconsole, choisissez Core devices.

  2. Sur la page des appareils principaux, choisissez le périphérique principal à mettre à jour.

  3. Sur la page de détails de l'appareil principal, choisissez le lien vers l'objet de l'appareil principal. Ce lien ouvre la page des détails de l'objet dans la AWS IoT console.

  4. Sur la page des détails de l'objet, sélectionnez Certificats.

  5. Dans l'onglet Certificats, choisissez le certificat actif de l'objet.

  6. Sur la page des détails du certificat, sélectionnez Policies.

  7. Dans l'onglet Politiques, choisissez la AWS IoT politique à revoir et à mettre à jour. Vous pouvez ajouter les autorisations requises à n'importe quelle politique associée au certificat actif de l'appareil principal.

    Note

    Si vous avez utilisé le programme d'installation du logiciel AWS IoT Greengrass Core pour provisionner des ressources, vous avez deux AWS IoT règles. Nous vous recommandons de choisir la politique nommée GreengrassV2IoTThingPolicy, si elle existe. Les appareils principaux que vous créez avec le programme d'installation rapide utilisent ce nom de politique par défaut. Si vous ajoutez des autorisations à cette politique, vous les accordez également aux autres appareils principaux qui utilisent cette politique.

  8. Dans l'aperçu des politiques, choisissez Modifier la version active.

  9. Passez en revue la politique et ajoutez, supprimez ou modifiez des autorisations selon vos besoins.

  10. Pour définir une nouvelle version de politique comme version active, sous État de la version de politique, sélectionnez Définir la version modifiée comme version active pour cette politique.

  11. Choisissez Enregistrer en tant que nouvelle version.

  1. Énumérez les principes de base de l'appareilAWS IoT. Les principaux de l'objet peuvent être des certificats de périphériques X.509 ou d'autres identifiants. Exécutez la commande suivante et MyGreengrassCoreremplacez-la par le nom du périphérique principal.

    aws iot list-thing-principals --thing-name MyGreengrassCore

    L'opération renvoie une réponse répertoriant les principaux éléments du périphérique principal.

    { "principals": [ "arn:aws:iot:us-west-2:123456789012:cert/certificateId" ] }
  2. Identifiez le certificat actif de l'appareil principal. Exécutez la commande suivante et remplacez CertificateID par l'ID de chaque certificat de l'étape précédente jusqu'à ce que vous trouviez le certificat actif. L'ID du certificat est la chaîne hexadécimale à la fin de l'ARN du certificat. L'--queryargument indique de n'afficher que le statut du certificat.

    aws iot describe-certificate --certificate-id certificateId --query 'certificateDescription.status'

    L'opération renvoie le statut du certificat sous forme de chaîne. Par exemple, si le certificat est actif, cette opération produit des résultats"ACTIVE".

  3. AWS IoTRépertoriez les politiques associées au certificat. Exécutez la commande suivante et remplacez l'ARN du certificat par l'ARN du certificat.

    aws iot list-principal-policies --principal arn:aws:iot:us-west-2:123456789012:cert/certificateId

    L'opération renvoie une réponse répertoriant les AWS IoT politiques associées au certificat.

    { "policies": [ { "policyName": "GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassTESCertificatePolicyMyGreengrassCoreTokenExchangeRoleAlias" }, { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy" } ] }
  4. Choisissez la politique à consulter et à mettre à jour.

    Note

    Si vous avez utilisé le programme d'installation du logiciel AWS IoT Greengrass Core pour provisionner des ressources, vous avez deux AWS IoT règles. Nous vous recommandons de choisir la politique nommée GreengrassV2IoTThingPolicy, si elle existe. Les appareils principaux que vous créez avec le programme d'installation rapide utilisent ce nom de politique par défaut. Si vous ajoutez des autorisations à cette politique, vous les accordez également aux autres appareils principaux qui utilisent cette politique.

  5. Obtenez le document de la politique. Exécutez la commande suivante et remplacez GreengrassV2IoT par le nom ThingPolicy de la politique.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy

    L'opération renvoie une réponse contenant le document de la politique et d'autres informations relatives à la politique. Le document de politique est un objet JSON sérialisé sous forme de chaîne.

    { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\"iot:Connect\\",\ \\"iot:Publish\\",\ \\"iot:Subscribe\\",\ \\"iot:Receive\\",\ \\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "defaultVersionId": "1", "creationDate": "2021-02-05T16:03:14.098000-08:00", "lastModifiedDate": "2021-02-05T16:03:14.098000-08:00", "generationId": "f19144b798534f52c619d44f771a354f1b957dfa2b850625d9f1d0fde530e75f" }
  6. Utilisez un convertisseur en ligne ou un autre outil pour convertir la chaîne du document de politique en objet JSON, puis enregistrez-la dans un fichier nomméiot-policy.json.

    Par exemple, si l'outil jq est installé, vous pouvez exécuter la commande suivante pour obtenir le document de politique, le convertir en objet JSON et enregistrer le document de politique en tant qu'objet JSON.

    aws iot get-policy --policy-name GreengrassV2IoTThingPolicy --query 'policyDocument' | jq fromjson >> iot-policy.json
  7. Passez en revue le document de politique et ajoutez, supprimez ou modifiez des autorisations selon les besoins.

    Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour ouvrir le fichier.

    nano iot-policy.json

    Lorsque vous aurez terminé, le document de politique peut ressembler à la AWS IoTpolitique minimale pour les appareils principaux.

  8. Enregistrez les modifications en tant que nouvelle version de la politique. Exécutez la commande suivante et remplacez GreengrassV2IoT par le nom ThingPolicy de la politique.

    aws iot create-policy-version --policy-name GreengrassV2IoTThingPolicy --policy-document file://iot-policy.json --set-as-default

    L'opération renvoie une réponse similaire à l'exemple suivant en cas de succès.

    { "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{\ \\"Version\\": \\"2012-10-17\\",\ \\"Statement\\": [\ {\ \\"Effect\\": \\"Allow\\",\ \\"Action\\": [\ \\t\\t\\"iot:Connect\\",\ \\t\\t\\"iot:Publish\\",\ \\t\\t\\"iot:Subscribe\\",\ \\t\\t\\"iot:Receive\\",\ \\t\\t\\"greengrass:*\\"\ ],\ \\"Resource\\": \\"*\\"\ }\ ]\ }", "policyVersionId": "2", "isDefaultVersion": true }

AWS IoTPolitique minimale pour les appareils AWS IoT Greengrass V2 principaux

Important

Les versions ultérieures du composant Greengrass nucleus nécessitent des autorisations supplémentaires sur la politique minimaleAWS IoT. Vous devrez peut-être mettre à jour les AWS IoT politiques de vos appareils principaux pour accorder des autorisations supplémentaires.

  • Les appareils principaux qui exécutent Greengrass nucleus v2.5.0 et versions ultérieures utilisent l'greengrass:ListThingGroupsForCoreDeviceautorisation de désinstaller des composants lorsque vous supprimez un périphérique principal d'un groupe d'objets.

  • Les appareils principaux qui exécutent Greengrass nucleus v2.3.0 et versions ultérieures utilisent l'greengrass:GetDeploymentConfigurationautorisation de prendre en charge des documents de configuration de déploiement volumineux.

L'exemple de stratégie suivant comprend l'ensemble d'actions minimum requis pour prendre en charge la fonctionnalité Greengrass de base pour l'appareil de votre noyau.

  • La Connect politique inclut le * caractère générique après le nom de l'objet principal de l'appareil (par exemple,core-device-thing-name*). L'appareil principal utilise le même certificat d'appareil pour souscrire plusieurs abonnements simultanésAWS IoT Core, mais l'ID client d'une connexion peut ne pas correspondre exactement au nom de l'appareil principal. Après les 50 premiers abonnements, l'appareil principal l'utilise core-device-thing-name#number comme identifiant client, qui number augmente pour chaque 50 abonnements supplémentaires. Par exemple, lorsqu'un périphérique principal nommé MyCoreDevice crée 150 abonnements simultanés, il utilise les identifiants client suivants :

    • Abonnements 1 à 50 : MyCoreDevice

    • Abonnements 51 à 100 : MyCoreDevice#2

    • Abonnements 101 à 150 : MyCoreDevice#3

    Le caractère générique permet au périphérique principal de se connecter lorsqu'il utilise ces identifiants clients dotés d'un suffixe.

  • La stratégie énumère les rubriques MQTT et les filtres de rubrique vers lesquels l'appareil du noyau peut publier des messages, auxquels il peut s'abonner et desquels il peut recevoir des messages, y compris les rubriques utilisées pour le shadow. Pour faciliter l'échange de messages entre AWS IoT Core les composants Greengrass et les appareils clients, spécifiez les sujets et les filtres de sujets que vous souhaitez autoriser. Pour de plus amples informations, veuillez consulter Exemples de stratégie de publication/abonnement dans le Manuel du développeur AWS IoT Core.

  • La politique autorise la publication dans la rubrique suivante pour les données de télémétrie.

    $aws/things/core-device-thing-name/greengrass/health/json

    Vous pouvez supprimer cette autorisation pour les appareils principaux sur lesquels vous désactivez la télémétrie. Pour plus d’informations, consultez Collectez les données de télémétrie relatives à l'état du système à partir des principaux appareils AWS IoT Greengrass.

  • La politique accorde l'autorisation d'assumer un rôle IAM par le biais d'un alias de AWS IoT rôle. Le périphérique principal utilise ce rôle, appelé rôle d'échange de jetons, pour acquérir des AWS informations d'identification qu'il peut utiliser pour authentifier les AWS demandes. Pour plus d’informations, consultez Autoriser les appareils principaux à interagir avec les AWS services.

    Lorsque vous installez le logiciel AWS IoT Greengrass Core, vous créez et joignez une deuxième AWS IoT politique qui inclut uniquement cette autorisation. Si vous incluez cette autorisation dans la AWS IoT politique principale de votre appareil principal, vous pouvez détacher et supprimer l'autre AWS IoT politique.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "arn:aws:iot:region:account-id:client/core-device-thing-name*" }, { "Effect": "Allow", "Action": [ "iot:Receive", "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrass/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/greengrassv2/health/json", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/jobs/*", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name/shadow/*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:region:account-id:rolealias/token-exchange-role-alias-name" }, { "Effect": "Allow", "Action": [ "greengrass:GetComponentVersionArtifact", "greengrass:ResolveComponentCandidates", "greengrass:GetDeploymentConfiguration", "greengrass:ListThingGroupsForCoreDevice" ], "Resource": "*" } ] }

AWS IoTPolitique minimale de prise en charge des appareils clients

L'exemple de politique suivant inclut l'ensemble minimal d'actions requises pour prendre en charge l'interaction avec les appareils clients sur un périphérique principal. Pour prendre en charge les appareils clients, un périphérique principal doit disposer des autorisations définies dans cette AWS IoT politique, en plus de la AWS IoTpolitique minimale pour le fonctionnement de base.

  • La politique permet au périphérique principal de mettre à jour ses propres informations de connectivité. Cette autorisation (greengrass:UpdateConnectivityInfo) n'est requise que si vous déployez le composant de détection IP sur le périphérique principal.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topicfilter/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/update/delta", "arn:aws:iot:region:account-id:topic/$aws/things/core-device-thing-name-gci/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "greengrass:PutCertificateAuthorities", "greengrass:VerifyClientDeviceIdentity" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "greengrass:VerifyClientDeviceIoTCertificateAssociation" ], "Resource": "arn:aws:iot:region:account-id:thing/*" }, { "Effect": "Allow", "Action": [ "greengrass:GetConnectivityInfo", "greengrass:UpdateConnectivityInfo" ], "Resource": [ "arn:aws:iot:region:account-id:thing/core-device-thing-name" ] } ] }

AWS IoTPolitique minimale pour les appareils clients

L'exemple de politique suivant inclut l'ensemble minimal d'actions requises pour qu'un appareil client découvre les périphériques principaux auxquels il se connecte et communique via MQTT. La AWS IoT politique de l'appareil client doit inclure l'greengrass:Discoveraction permettant à l'appareil de découvrir les informations de connectivité pour les appareils principaux Greengrass associés. Dans la Resource section, spécifiez l'Amazon Resource Name (ARN) de l'appareil client, et non l'ARN du périphérique principal Greengrass.

  • La politique permet la communication sur tous les sujets du MQTT. Pour suivre les meilleures pratiques de sécurité, limitez les iot:Publishiot:Subscribe, et iot:Receive les autorisations à l'ensemble minimal de sujets requis par un appareil client pour votre cas d'utilisation.

  • La politique permet à l'objet de découvrir les principaux appareils pour AWS IoT tout. Pour suivre les meilleures pratiques de sécurité, limitez l'greengrass:Discoverautorisation à l'AWS IoTobjet de l'appareil client ou à un caractère générique correspondant à un ensemble d'AWS IoTéléments.

    Important

    Les variables de politique des objets (iot:Connection.Thing.*) ne sont pas prises en charge dans AWS IoT les politiques relatives aux appareils principaux ou aux opérations du plan de données Greengrass. Vous pouvez plutôt utiliser un caractère générique correspondant à plusieurs appareils portant des noms similaires. Par exemple, vous pouvez spécifier MyGreengrassDevice* de correspondre MyGreengrassDevice1MyGreengrassDevice2, et ainsi de suite.

  • La AWS IoT politique d'un appareil client n'exige généralement pas d'autorisations ou d'iot:DeleteThingShadowactions iot:GetThingShadowiot:UpdateThingShadow, car le périphérique principal de Greengrass gère les opérations de synchronisation parallèle pour les appareils clients. Pour permettre au périphérique principal de gérer les ombres des périphériques clients, vérifiez que la AWS IoT politique du périphérique principal autorise ces actions et que la Resource section inclut les ARN des appareils clients.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topicfilter/*" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/*" ] }, { "Effect": "Allow", "Action": [ "greengrass:Discover" ], "Resource": [ "arn:aws:iot:region:account-id:thing/*" ] } ] }