View a markdown version of this page

Authentification de l'appareil client - 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 de l'appareil client

Le composant d'authentification du dispositif client (aws.greengrass.clientdevices.Auth) authentifie les dispositifs clients et autorise les actions des dispositifs clients.

Note

Les appareils clients sont des appareils IoT locaux qui se connectent à un appareil central Greengrass pour envoyer des messages MQTT et des données à traiter. Pour de plus amples informations, veuillez consulter Interagissez avec les appareils IoT locaux.

Versions

Note

La version 2.3.0 d'authentification des appareils clients n'est plus disponible. Nous vous recommandons vivement de passer à la version 2.3.1 ou ultérieure d'authentification des appareils clients.

Les versions de ce composant sont les suivantes :

  • 2.5.x

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

Type

Ce composant est un composant de plug-in (aws.greengrass.plugin). Le noyau Greengrass exécute ce composant dans la même machine virtuelle Java (JVM) que le noyau. Le noyau redémarre lorsque vous modifiez la version de ce composant sur le périphérique principal.

Ce composant utilise le même fichier journal que le noyau Greengrass. Pour de plus amples informations, veuillez consulter AWS IoT Greengrass Journaux de surveillance.

Pour de plus amples informations, veuillez consulter Types de composant.

Système d’exploitation

Ce composant peut être installé sur les appareils principaux qui exécutent les systèmes d'exploitation suivants :

  • Linux

  • Windows

Exigences

Ce composant répond aux exigences suivantes :

  • Le rôle de service Greengrass doit être associé à votre rôle de service Compte AWS et autoriser cette iot:DescribeCertificate autorisation.

  • La AWS IoT politique de l'appareil principal doit autoriser les autorisations suivantes :

    • greengrass:GetConnectivityInfo, où les ressources incluent l'ARN du périphérique principal qui exécute ce composant

    • greengrass:VerifyClientDeviceIoTCertificateAssociation, où les ressources incluent le nom de ressource Amazon (ARN) de chaque appareil client qui se connecte à l'appareil principal

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish, où les ressources incluent l'ARN de la rubrique MQTT suivante :

      • $aws/things/coreDeviceThingName*-gci/shadow/get

    • iot:Subscribe, où les ressources incluent les ARN des filtres thématiques MQTT suivants :

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    • iot:Receive, où les ressources incluent les ARN des sujets MQTT suivants :

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    Pour plus d’informations, consultez AWS IoT politiques relatives aux opérations du plan de données et AWS IoT Politique minimale de prise en charge des appareils clients.

  • (Facultatif) Pour utiliser l'authentification hors ligne, le rôle Gestion des identités et des accès AWS (IAM) utilisé par le AWS IoT Greengrass service doit contenir l'autorisation suivante :

    • greengrass:ListClientDevicesAssociatedWithCoreDevicepour permettre au périphérique principal de répertorier les clients pour une authentification hors ligne.

  • Le composant d'authentification de l'appareil client est pris en charge pour fonctionner dans un VPC. Pour déployer ce composant dans un VPC, les conditions suivantes sont requises.

    • Le composant d'authentification de l'appareil client doit être connecté à Amazon S3 AWS IoT data, à des AWS IoT informations d'identification et à Amazon S3.

Points de terminaison et ports

Ce composant doit être capable d'effectuer des requêtes sortantes vers les terminaux et les ports suivants, en plus des points de terminaison et des ports requis pour le fonctionnement de base. Pour de plus amples informations, veuillez consulter Autoriser le trafic des appareils via un proxy ou un pare-feu.

Endpoint Port Obligatoire Description

iot.region.amazonaws.com

443 Oui

Utilisé pour obtenir des informations sur les AWS IoT certificats d'objets.

Dépendances

Lorsque vous déployez un composant, déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez répondre aux exigences relatives au composant et à toutes ses dépendances pour pouvoir le déployer avec succès. Cette section répertorie les dépendances pour les versions publiées de ce composant et les contraintes de version sémantiques qui définissent les versions des composants pour chaque dépendance. Vous pouvez également consulter les dépendances pour chaque version du composant dans la AWS IoT Greengrass console. Sur la page des détails des composants, recherchez la liste des dépendances.

2.5.5

Le tableau suivant répertorie les dépendances pour la version 2.5.5 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,17,0 Flexible
2.5.4

Le tableau suivant répertorie les dépendances pour la version 2.5.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,16,0 Flexible
2.5.2 – 2.5.3

Le tableau suivant répertorie les dépendances pour les versions 2.5.2 et 2.5.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,15,0 Flexible
2.5.1

Le tableau suivant répertorie les dépendances pour la version 2.5.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,14,0 Flexible
2.4.4 - 2.5.0

Le tableau suivant répertorie les dépendances pour la version 2.4.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,13,0 Flexible
2.4.3

Le tableau suivant répertorie les dépendances pour la version 2.4.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,12,0 Flexible
2.4.1 and 2.4.2

Le tableau suivant répertorie les dépendances pour les versions 2.4.1 et 2.4.2 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,11,0 Flexible
2.3.0 – 2.4.0

Le tableau suivant répertorie les dépendances pour les versions 2.3.0 à 2.4.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,10,0 Flexible
2.3.0

Le tableau suivant répertorie les dépendances pour la version 2.3.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,10,0 Flexible
2.2.3

Le tableau suivant répertorie les dépendances pour la version 2.2.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > =2,6,0 <=2,9,0 Flexible
2.2.2

Le tableau suivant répertorie les dépendances pour la version 2.2.2 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > =2,6,0 <=2,8,0 Flexible
2.2.1

Le tableau suivant répertorie les dépendances pour la version 2.2.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,8,0 Flexible
2.2.0

Le tableau suivant répertorie les dépendances pour la version 2.2.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,6,0 < 2,7,0 Flexible
2.1.0

Le tableau suivant répertorie les dépendances pour la version 2.1.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,2,0 < 2,7,0 Flexible
2.0.4

Le tableau suivant répertorie les dépendances de la version 2.0.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,2,0 < 2,6,0 Flexible
2.0.2 and 2.0.3

Le tableau suivant répertorie les dépendances pour les versions 2.0.2 et 2.0.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,2,0 < 2,5,0 Flexible
2.0.1

Le tableau suivant répertorie les dépendances pour la version 2.0.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,2,0 < 2,4,0 Flexible
2.0.0

Le tableau suivant répertorie les dépendances pour la version 2.0.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,2,0 < 2,3,0 Flexible

Pour plus d'informations sur les dépendances des composants, consultez la référence des recettes des composants.

Configuration

Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.

Note

L'autorisation d'abonnement est évaluée lors d'une demande d'abonnement du client auprès du courtier MQTT local. Si l'autorisation d'abonnement existante du client est révoquée, le client ne pourra plus s'abonner à une rubrique. Il continuera toutefois à recevoir des messages provenant de sujets précédemment abonnés. Pour éviter ce comportement, le courtier MQTT local doit être redémarré après avoir révoqué l'autorisation d'abonnement afin de forcer la réautorisation des clients.

Pour le composant MQTT 5 broker (EMQX), mettez à jour la restartIdentifier configuration pour redémarrer le broker MQTT 5.

Pour le composant MQTT 3.1.1 broker (Moquette), il redémarre chaque semaine par défaut lorsque le certificat du serveur change, obligeant les clients à effectuer une nouvelle autorisation. Vous pouvez forcer un redémarrage soit en modifiant les informations de connectivité (adresses IP) du périphérique principal, soit en effectuant un déploiement pour supprimer le composant broker, puis le déployer à nouveau ultérieurement.

v2.5.0 – 2.5.4
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client fait partie de ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique au début et à la fin du nom de l'objet pour faire correspondre les appareils clients dont les noms commencent ou se terminent par la chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom se termine parMyClientDevice.

thingName: *MyClientDevice
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

resources

La liste des ressources permettant les opérations prévues dans cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique n'importe où dans la variable de ressource pour permettre l'accès à toutes les ressources. Par exemple, vous pouvez spécifier mqtt:topic:my* d'autoriser l'accès aux ressources correspondant à cette entrée.

La variable de ressource suivante est prise en charge :

  • mqtt:topic:${iot:Connection.Thing.ThingName}

    Cela correspond au nom de l'élément du AWS IoT Core registre pour lequel la politique est évaluée. AWS IoT Core utilise le certificat présenté par l'appareil lors de son authentification pour déterminer l'élément à utiliser pour vérifier la connexion. Cette variable de politique n'est disponible que lorsqu'un appareil se connecte via MQTT ou MQTT via le WebSocket protocole.

statementDescription

(Facultatif) Description de cette déclaration de politique.

certificates

(Facultatif) Les options de configuration du certificat pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) après laquelle le certificat du serveur MQTT local expire. Vous pouvez configurer cette option pour personnaliser la fréquence à laquelle les appareils clients se déconnectent et se reconnectent au périphérique principal.

Ce composant effectue une rotation du certificat du serveur MQTT local 24 heures avant son expiration. Le courtier MQTT, tel que le composant de courtier Moquette MQTT, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à cet appareil principal sont déconnectés. Les appareils clients peuvent se reconnecter à l'appareil principal après une courte période.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

performance

(Facultatif) Les options de configuration des performances pour ce périphérique principal. Cet objet contient les informations suivantes :

maxActiveAuthTokens

(Facultatif) Le nombre maximum de jetons d'autorisation actifs sur l'appareil client. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un seul périphérique principal, sans les réauthentifier.

Valeur par défaut : 2500

cloudRequestQueueSize

(Facultatif) Le nombre maximum de AWS Cloud demandes à mettre en file d'attente avant que ce composant ne rejette les demandes.

Valeur par défaut : 100

maxConcurrentCloudRequests

(Facultatif) Le nombre maximum de demandes simultanées à envoyer au AWS Cloud. Vous pouvez augmenter ce nombre pour améliorer les performances d'authentification sur les appareils principaux auxquels vous connectez un grand nombre d'appareils clients.

Valeur par défaut : 1

certificateAuthority

(Facultatif) Options de configuration de l'autorité de certification pour remplacer l'autorité intermédiaire du périphérique principal par votre propre autorité de certification intermédiaire.

Note

Si vous configurez votre appareil principal Greengrass avec une autorité de certification (CA) personnalisée et que vous utilisez la même autorité de certification pour émettre des certificats d'appareil client, Greengrass contourne les contrôles de politique d'autorisation pour les opérations MQTT des appareils clients. Le composant d'authentification de l'appareil client fait entièrement confiance aux clients utilisant des certificats signés par l'autorité de certification pour laquelle il est configuré.

Pour limiter ce comportement lors de l'utilisation d'une autorité de certification personnalisée, créez et signez des appareils clients à l'aide d'une autorité de certification intermédiaire ou d'une autorité de certification différente, puis ajustez les certificateChainUri champs certificateUri et pour qu'ils pointent vers l'autorité de certification intermédiaire appropriée.

Cet objet contient les informations suivantes.

URI du certificat

Emplacement du certificat. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers un certificat stocké dans un module de sécurité matériel.

certificateChainUri

Emplacement de la chaîne de certificats pour le périphérique principal CA. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une chaîne de certificats stockée dans un module de sécurité matériel.

privateKeyUri

Emplacement de la clé privée de l'appareil principal. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une clé privée de certificat stockée dans un module de sécurité matériel.

security

(Facultatif) Options de configuration de sécurité pour ce périphérique principal. Cet objet contient les informations suivantes.

clientDeviceTrustDurationMinutes

Durée en minutes pendant laquelle les informations d'authentification d'un appareil client peuvent être fiables avant qu'il ne soit nécessaire de s'authentifier à nouveau auprès de l'appareil principal. La valeur par défaut est 1.

metrics

(Facultatif) Les options de métriques pour cet appareil principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur lors de l'authentification de l'appareil client. Cet objet contient les informations suivantes :

disableMetrics

Si le disableMetrics champ est défini comme suittrue, l'authentification de l'appareil client ne collectera pas de métriques.

Valeur par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification de l'appareil client regroupe les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence de publication des métriques, car l'agent de télémétrie les publie toujours une fois par jour.

Valeur par défaut : 3600

démarrage TimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant passe à un ERRORED état supérieur à ce délai.

Valeur par défaut : 120

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique de nom d'objet)

L'exemple de configuration suivant permet aux appareils clients de publier sur des sujets commençant par le nom de l'objet de l'appareil client et se terminant par une chaînetopic.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "myThing": { "selectionRule": "thingName: *", "policyName": "MyThingNamePolicy" } }, "policies": { "MyThingNamePolicy": { "policyStatement": { "statementDescription": "mqtt publish", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:${iot:Connection.Thing.ThingName}/*/topic" ] } } } } }
v2.4.5
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client appartient à ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique au début et à la fin du nom de l'objet pour faire correspondre les appareils clients dont les noms commencent ou se terminent par la chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom se termine parMyClientDevice.

thingName: *MyClientDevice
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource prend en charge les caractères génériques + des # rubriques et MQTT. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

      L'appareil client peut s'abonner exactement aux filtres thématiques que vous autorisez. Par exemple, si vous autorisez l'appareil client à s'abonner à la mqtt:topicfilter:client/+/status ressource, il peut s'y abonner client/+/status mais pasclient/client1/status.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les actions.

resources

La liste des ressources permettant les opérations prévues par cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les ressources. Vous ne pouvez pas utiliser le * caractère générique pour faire correspondre des identifiants de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas spécifier"resources": "mqtt:clientId:*".

statementDescription

(Facultatif) Description de cette déclaration de politique.

certificates

(Facultatif) Les options de configuration du certificat pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) après laquelle le certificat du serveur MQTT local expire. Vous pouvez configurer cette option pour personnaliser la fréquence à laquelle les appareils clients se déconnectent et se reconnectent au périphérique principal.

Ce composant effectue une rotation du certificat du serveur MQTT local 24 heures avant son expiration. Le courtier MQTT, tel que le composant de courtier Moquette MQTT, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à cet appareil principal sont déconnectés. Les appareils clients peuvent se reconnecter à l'appareil principal après une courte période.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

performance

(Facultatif) Les options de configuration des performances pour ce périphérique principal. Cet objet contient les informations suivantes :

maxActiveAuthTokens

(Facultatif) Le nombre maximum de jetons d'autorisation actifs sur l'appareil client. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un seul périphérique principal, sans les réauthentifier.

Valeur par défaut : 2500

cloudRequestQueueSize

(Facultatif) Le nombre maximum de AWS Cloud demandes à mettre en file d'attente avant que ce composant ne rejette les demandes.

Valeur par défaut : 100

maxConcurrentCloudRequests

(Facultatif) Le nombre maximum de demandes simultanées à envoyer au AWS Cloud. Vous pouvez augmenter ce nombre pour améliorer les performances d'authentification sur les appareils principaux auxquels vous connectez un grand nombre d'appareils clients.

Valeur par défaut : 1

certificateAuthority

(Facultatif) Options de configuration de l'autorité de certification pour remplacer l'autorité intermédiaire du périphérique principal par votre propre autorité de certification intermédiaire.

Note

Si vous configurez votre appareil principal Greengrass avec une autorité de certification (CA) personnalisée et que vous utilisez la même autorité de certification pour émettre des certificats d'appareil client, Greengrass contourne les contrôles de politique d'autorisation pour les opérations MQTT des appareils clients. Le composant d'authentification de l'appareil client fait entièrement confiance aux clients utilisant des certificats signés par l'autorité de certification pour laquelle il est configuré.

Pour limiter ce comportement lors de l'utilisation d'une autorité de certification personnalisée, créez et signez des appareils clients à l'aide d'une autorité de certification intermédiaire ou d'une autorité de certification différente, puis ajustez les certificateChainUri champs certificateUri et pour qu'ils pointent vers l'autorité de certification intermédiaire appropriée.

Cet objet contient les informations suivantes.

URI du certificat

Emplacement du certificat. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers un certificat stocké dans un module de sécurité matériel.

certificateChainUri

Emplacement de la chaîne de certificats pour le périphérique principal CA. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une chaîne de certificats stockée dans un module de sécurité matériel.

privateKeyUri

Emplacement de la clé privée de l'appareil principal. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une clé privée de certificat stockée dans un module de sécurité matériel.

security

(Facultatif) Options de configuration de sécurité pour ce périphérique principal. Cet objet contient les informations suivantes.

clientDeviceTrustDurationMinutes

Durée en minutes pendant laquelle les informations d'authentification d'un appareil client peuvent être fiables avant qu'il ne soit nécessaire de s'authentifier à nouveau auprès de l'appareil principal. La valeur par défaut est 1.

metrics

(Facultatif) Les options de métriques pour cet appareil principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur lors de l'authentification de l'appareil client. Cet objet contient les informations suivantes :

disableMetrics

Si le disableMetrics champ est défini comme suittrue, l'authentification de l'appareil client ne collectera pas de métriques.

Valeur par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification de l'appareil client regroupe les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence de publication des métriques, car l'agent de télémétrie les publie toujours une fois par jour.

Valeur par défaut : 3600

démarrage TimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant passe à un ERRORED état supérieur à ce délai.

Valeur par défaut : 120

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.2 - v2.4.4
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client fait partie de ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique à la fin du nom de l'objet pour faire correspondre les appareils clients dont le nom commence par une chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource prend en charge les caractères génériques + des # rubriques et MQTT. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

      L'appareil client peut s'abonner exactement aux filtres thématiques que vous autorisez. Par exemple, si vous autorisez l'appareil client à s'abonner à la mqtt:topicfilter:client/+/status ressource, il peut s'y abonner client/+/status mais pasclient/client1/status.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les actions.

resources

La liste des ressources permettant les opérations prévues par cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les ressources. Vous ne pouvez pas utiliser le * caractère générique pour faire correspondre des identifiants de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas spécifier"resources": "mqtt:clientId:*".

statementDescription

(Facultatif) Description de cette déclaration de politique.

certificates

(Facultatif) Les options de configuration du certificat pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) après laquelle le certificat du serveur MQTT local expire. Vous pouvez configurer cette option pour personnaliser la fréquence à laquelle les appareils clients se déconnectent et se reconnectent au périphérique principal.

Ce composant effectue une rotation du certificat du serveur MQTT local 24 heures avant son expiration. Le courtier MQTT, tel que le composant de courtier Moquette MQTT, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à cet appareil principal sont déconnectés. Les appareils clients peuvent se reconnecter à l'appareil principal après un court laps de temps.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

performance

(Facultatif) Les options de configuration des performances pour ce périphérique principal. Cet objet contient les informations suivantes :

maxActiveAuthTokens

(Facultatif) Le nombre maximum de jetons d'autorisation actifs sur l'appareil client. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un seul périphérique principal, sans les réauthentifier.

Valeur par défaut : 2500

cloudRequestQueueSize

(Facultatif) Le nombre maximum de AWS Cloud demandes à mettre en file d'attente avant que ce composant ne rejette les demandes.

Valeur par défaut : 100

maxConcurrentCloudRequests

(Facultatif) Le nombre maximum de demandes simultanées à envoyer au AWS Cloud. Vous pouvez augmenter ce nombre pour améliorer les performances d'authentification sur les appareils principaux auxquels vous connectez un grand nombre d'appareils clients.

Valeur par défaut : 1

certificateAuthority

(Facultatif) Options de configuration de l'autorité de certification pour remplacer l'autorité intermédiaire du périphérique principal par votre propre autorité de certification intermédiaire.

Note

Si vous configurez votre appareil principal Greengrass avec une autorité de certification (CA) personnalisée et que vous utilisez la même autorité de certification pour émettre des certificats d'appareil client, Greengrass contourne les contrôles de politique d'autorisation pour les opérations MQTT des appareils clients. Le composant d'authentification de l'appareil client fait entièrement confiance aux clients utilisant des certificats signés par l'autorité de certification pour laquelle il est configuré.

Pour limiter ce comportement lors de l'utilisation d'une autorité de certification personnalisée, créez et signez des appareils clients à l'aide d'une autorité de certification intermédiaire ou d'une autorité de certification différente, puis ajustez les certificateChainUri champs certificateUri et pour qu'ils pointent vers l'autorité de certification intermédiaire appropriée.

Cet objet contient les informations suivantes.

URI du certificat

Emplacement du certificat. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers un certificat stocké dans un module de sécurité matériel.

certificateChainUri

Emplacement de la chaîne de certificats pour le périphérique principal CA. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une chaîne de certificats stockée dans un module de sécurité matériel.

privateKeyUri

Emplacement de la clé privée de l'appareil principal. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une clé privée de certificat stockée dans un module de sécurité matériel.

security

(Facultatif) Options de configuration de sécurité pour ce périphérique principal. Cet objet contient les informations suivantes.

clientDeviceTrustDurationMinutes

Durée en minutes pendant laquelle les informations d'authentification d'un appareil client peuvent être fiables avant qu'il ne soit nécessaire de s'authentifier à nouveau auprès de l'appareil principal. La valeur par défaut est 1.

metrics

(Facultatif) Les options de métriques pour cet appareil principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur lors de l'authentification de l'appareil client. Cet objet contient les informations suivantes :

disableMetrics

Si le disableMetrics champ est défini comme suittrue, l'authentification de l'appareil client ne collectera pas de métriques.

Valeur par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification de l'appareil client regroupe les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence de publication des métriques, car l'agent de télémétrie les publie toujours une fois par jour.

Valeur par défaut : 3600

démarrage TimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant passe à un ERRORED état supérieur à ce délai.

Valeur par défaut : 120

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.4.0 - v2.4.1
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client appartient à ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique à la fin du nom de l'objet pour faire correspondre les appareils clients dont le nom commence par une chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource prend en charge les caractères génériques + des # rubriques et MQTT. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

      L'appareil client peut s'abonner exactement aux filtres thématiques que vous autorisez. Par exemple, si vous autorisez l'appareil client à s'abonner à la mqtt:topicfilter:client/+/status ressource, il peut s'y abonner client/+/status mais pasclient/client1/status.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les actions.

resources

La liste des ressources permettant les opérations prévues par cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les ressources. Vous ne pouvez pas utiliser le * caractère générique pour faire correspondre des identifiants de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas spécifier"resources": "mqtt:clientId:*".

statementDescription

(Facultatif) Description de cette déclaration de politique.

certificates

(Facultatif) Les options de configuration du certificat pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) après laquelle le certificat du serveur MQTT local expire. Vous pouvez configurer cette option pour personnaliser la fréquence à laquelle les appareils clients se déconnectent et se reconnectent au périphérique principal.

Ce composant effectue une rotation du certificat du serveur MQTT local 24 heures avant son expiration. Le courtier MQTT, tel que le composant de courtier Moquette MQTT, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à cet appareil principal sont déconnectés. Les appareils clients peuvent se reconnecter à l'appareil principal après une courte période.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

performance

(Facultatif) Les options de configuration des performances pour ce périphérique principal. Cet objet contient les informations suivantes :

maxActiveAuthTokens

(Facultatif) Le nombre maximum de jetons d'autorisation actifs sur l'appareil client. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un seul périphérique principal, sans les réauthentifier.

Valeur par défaut : 2500

cloudRequestQueueSize

(Facultatif) Le nombre maximum de AWS Cloud demandes à mettre en file d'attente avant que ce composant ne rejette les demandes.

Valeur par défaut : 100

maxConcurrentCloudRequests

(Facultatif) Le nombre maximum de demandes simultanées à envoyer au AWS Cloud. Vous pouvez augmenter ce nombre pour améliorer les performances d'authentification sur les appareils principaux auxquels vous connectez un grand nombre d'appareils clients.

Valeur par défaut : 1

certificateAuthority

(Facultatif) Options de configuration de l'autorité de certification pour remplacer l'autorité intermédiaire du périphérique principal par votre propre autorité de certification intermédiaire. Cet objet contient les informations suivantes.

Cet objet contient les informations suivantes :

URI du certificat

Emplacement du certificat. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers un certificat stocké dans un module de sécurité matériel.

certificateChainUri

Emplacement de la chaîne de certificats pour le périphérique principal CA. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une chaîne de certificats stockée dans un module de sécurité matériel.

privateKeyUri

Emplacement de la clé privée de l'appareil principal. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une clé privée de certificat stockée dans un module de sécurité matériel.

security

(Facultatif) Options de configuration de sécurité pour ce périphérique principal. Cet objet contient les informations suivantes.

clientDeviceTrustDurationMinutes

Durée en minutes pendant laquelle les informations d'authentification d'un appareil client peuvent être fiables avant qu'il ne soit nécessaire de s'authentifier à nouveau auprès de l'appareil principal. La valeur par défaut est 1.

metrics

(Facultatif) Les options de métriques pour cet appareil principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur lors de l'authentification de l'appareil client. Cet objet contient les informations suivantes :

disableMetrics

Si le disableMetrics champ est défini comme suittrue, l'authentification de l'appareil client ne collectera pas de métriques.

Valeur par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification de l'appareil client regroupe les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence de publication des métriques, car l'agent de télémétrie les publie toujours une fois par jour.

Valeur par défaut : 3600

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.3.x
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client appartient à ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique à la fin du nom de l'objet pour faire correspondre les appareils clients dont le nom commence par une chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource prend en charge les caractères génériques + des # rubriques et MQTT. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

      L'appareil client peut s'abonner exactement aux filtres thématiques que vous autorisez. Par exemple, si vous autorisez l'appareil client à s'abonner à la mqtt:topicfilter:client/+/status ressource, il peut s'y abonner client/+/status mais pasclient/client1/status.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les actions.

resources

La liste des ressources permettant les opérations prévues par cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les ressources. Vous ne pouvez pas utiliser le * caractère générique pour faire correspondre des identifiants de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas spécifier"resources": "mqtt:clientId:*".

statementDescription

(Facultatif) Description de cette déclaration de politique.

certificates

(Facultatif) Les options de configuration du certificat pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) après laquelle le certificat du serveur MQTT local expire. Vous pouvez configurer cette option pour personnaliser la fréquence à laquelle les appareils clients se déconnectent et se reconnectent au périphérique principal.

Ce composant effectue une rotation du certificat du serveur MQTT local 24 heures avant son expiration. Le courtier MQTT, tel que le composant de courtier Moquette MQTT, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à cet appareil principal sont déconnectés. Les appareils clients peuvent se reconnecter à l'appareil principal après une courte période.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

performance

(Facultatif) Les options de configuration des performances pour ce périphérique principal. Cet objet contient les informations suivantes :

maxActiveAuthTokens

(Facultatif) Le nombre maximum de jetons d'autorisation actifs sur l'appareil client. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un seul périphérique cœur sans les réauthentifier.

Valeur par défaut : 2500

cloudRequestQueueSize

(Facultatif) Le nombre maximum de AWS Cloud demandes à mettre en file d'attente avant que ce composant ne rejette les demandes.

Valeur par défaut : 100

maxConcurrentCloudRequests

(Facultatif) Le nombre maximum de demandes simultanées à envoyer au AWS Cloud. Vous pouvez augmenter ce nombre pour améliorer les performances d'authentification sur les appareils principaux auxquels vous connectez un grand nombre d'appareils clients.

Valeur par défaut : 1

certificateAuthority

(Facultatif) Options de configuration de l'autorité de certification pour remplacer l'autorité intermédiaire du périphérique principal par votre propre autorité de certification intermédiaire. Cet objet contient les informations suivantes.

URI du certificat

Emplacement du certificat. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers un certificat stocké dans un module de sécurité matériel.

certificateChainUri

Emplacement de la chaîne de certificats pour le périphérique principal CA. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une chaîne de certificats stockée dans un module de sécurité matériel.

privateKeyUri

Emplacement de la clé privée de l'appareil principal. Il peut s'agir d'un URI de système de fichiers ou d'un URI qui pointe vers une clé privée de certificat stockée dans un module de sécurité matériel.

security

(Facultatif) Options de configuration de sécurité pour ce périphérique principal. Cet objet contient les informations suivantes.

clientDeviceTrustDurationMinutes

Durée en minutes pendant laquelle les informations d'authentification d'un appareil client peuvent être fiables avant qu'il ne soit nécessaire de s'authentifier à nouveau auprès du périphérique principal. La valeur par défaut est 1.

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.2.x
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client appartient à ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique à la fin du nom de l'objet pour faire correspondre les appareils clients dont le nom commence par une chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource prend en charge les caractères génériques + des # rubriques et MQTT. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

      L'appareil client peut s'abonner exactement aux filtres thématiques que vous autorisez. Par exemple, si vous autorisez l'appareil client à s'abonner à la mqtt:topicfilter:client/+/status ressource, il peut s'y abonner client/+/status mais pasclient/client1/status.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les actions.

resources

La liste des ressources permettant les opérations prévues par cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les ressources. Vous ne pouvez pas utiliser le * caractère générique pour faire correspondre des identifiants de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas spécifier"resources": "mqtt:clientId:*".

statementDescription

(Facultatif) Description de cette déclaration de politique.

certificates

(Facultatif) Les options de configuration du certificat pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) après laquelle le certificat du serveur MQTT local expire. Vous pouvez configurer cette option pour personnaliser la fréquence à laquelle les appareils clients se déconnectent et se reconnectent au périphérique principal.

Ce composant effectue une rotation du certificat du serveur MQTT local 24 heures avant son expiration. Le courtier MQTT, tel que le composant de courtier Moquette MQTT, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à cet appareil principal sont déconnectés. Les appareils clients peuvent se reconnecter à l'appareil principal après une courte période.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

performance

(Facultatif) Les options de configuration des performances pour ce périphérique principal. Cet objet contient les informations suivantes :

maxActiveAuthTokens

(Facultatif) Le nombre maximum de jetons d'autorisation actifs sur l'appareil client. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un seul périphérique cœur sans les réauthentifier.

Valeur par défaut : 2500

cloudRequestQueueSize

(Facultatif) Le nombre maximum de AWS Cloud demandes à mettre en file d'attente avant que ce composant ne rejette les demandes.

Valeur par défaut : 100

maxConcurrentCloudRequests

(Facultatif) Le nombre maximum de demandes simultanées à envoyer au AWS Cloud. Vous pouvez augmenter ce nombre pour améliorer les performances d'authentification sur les appareils principaux auxquels vous connectez un grand nombre d'appareils clients.

Valeur par défaut : 1

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.1.x
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client appartient à ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique à la fin du nom de l'objet pour faire correspondre les appareils clients dont le nom commence par une chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource prend en charge les caractères génériques + des # rubriques et MQTT. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

      L'appareil client peut s'abonner exactement aux filtres thématiques que vous autorisez. Par exemple, si vous autorisez l'appareil client à s'abonner à la mqtt:topicfilter:client/+/status ressource, il peut s'y abonner client/+/status mais pasclient/client1/status.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les actions.

resources

La liste des ressources permettant les opérations prévues par cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les ressources. Vous ne pouvez pas utiliser le * caractère générique pour faire correspondre des identifiants de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas spécifier"resources": "mqtt:clientId:*".

statementDescription

(Facultatif) Description de cette déclaration de politique.

certificates

(Facultatif) Les options de configuration du certificat pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) après laquelle le certificat du serveur MQTT local expire. Vous pouvez configurer cette option pour personnaliser la fréquence à laquelle les appareils clients se déconnectent et se reconnectent au périphérique principal.

Ce composant effectue une rotation du certificat du serveur MQTT local 24 heures avant son expiration. Le courtier MQTT, tel que le composant de courtier Moquette MQTT, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à cet appareil principal sont déconnectés. Les appareils clients peuvent se reconnecter à l'appareil principal après une courte période.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.0.x
deviceGroups

Les groupes d'appareils sont des groupes d'appareils clients autorisés à se connecter et à communiquer avec un appareil principal. Utilisez des règles de sélection pour identifier des groupes d'appareils clients et définissez des politiques d'autorisation des appareils clients qui spécifient les autorisations pour chaque groupe d'appareils.

Cet objet contient les informations suivantes :

formatVersion

Version du format pour cet objet de configuration.

Sélectionnez l’une des options suivantes :

  • 2021-03-05

definitions

Les groupes de périphériques pour ce périphérique principal. Chaque définition spécifie une règle de sélection pour évaluer si un appareil client fait partie du groupe. Chaque définition spécifie également la politique d'autorisations à appliquer aux appareils clients qui correspondent à la règle de sélection. Si un appareil client est membre de plusieurs groupes d'appareils, les autorisations de l'appareil sont composées de la politique d'autorisations de chaque groupe.

Cet objet contient les informations suivantes :

groupNameKey

Le nom de ce groupe d'appareils. groupNameKeyRemplacez-le par un nom qui vous aide à identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui spécifie quels appareils clients font partie de ce groupe d'appareils. Lorsqu'un dispositif client se connecte, le dispositif principal évalue cette règle de sélection pour déterminer si le dispositif client appartient à ce groupe d'appareils. Si l'appareil client est membre, le périphérique principal utilise la politique de ce groupe d'appareils pour autoriser les actions de l'appareil client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête à expression unique pouvant correspondre à des dispositifs clients. Les règles de sélection utilisent la même syntaxe de requête que l'indexation des AWS IoT flottes. Pour plus d'informations sur la syntaxe des règles de sélection, consultez la section Syntaxe des requêtes d'indexation de AWS IoT flotte dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une clause de règle de sélection. Vous pouvez utiliser ce caractère générique à la fin du nom de l'objet pour faire correspondre les appareils clients dont le nom commence par une chaîne que vous avez spécifiée. Vous pouvez également utiliser ce caractère générique pour faire correspondre tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), remplacez les deux points par une barre oblique inverse ()\\. Dans les formats tels que JSON, vous devez éviter les barres obliques inverses. Vous devez donc saisir deux barres obliques inverses avant le caractère deux-points. Par exemple, spécifiez thingName: MyTeam\\\\:ClientDevice1 de sélectionner un objet dont le nom estMyTeam:ClientDevice1.

Vous pouvez spécifier le sélecteur suivant :

  • thingName— Le nom de l'appareil d'un AWS IoT client.

Exemple Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont le nom est MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
Exemple Exemple de règle de sélection (utiliser des caractères génériques)

La règle de sélection suivante correspond aux appareils clients dont le nom commence parMyClientDevice.

thingName: MyClientDevice*
Exemple Exemple de règle de sélection (correspond à tous les appareils)

La règle de sélection suivante correspond à tous les appareils clients.

thingName: *
policyName

La politique d'autorisations qui s'applique aux appareils clients de ce groupe d'appareils. Spécifiez le nom d'une politique que vous définissez dans l'policiesobjet.

policies

Les politiques d'autorisation des appareils clients pour les appareils clients qui se connectent au périphérique principal. Chaque politique d'autorisation spécifie un ensemble d'actions et les ressources sur lesquelles un appareil client peut effectuer ces actions.

Cet objet contient les informations suivantes :

policyNameKey

Le nom de cette politique d'autorisation. policyNameKeyRemplacez-la par un nom qui vous aide à identifier cette politique d'autorisation. Vous utilisez ce nom de stratégie pour définir la stratégie qui s'applique à un groupe d'appareils.

Cet objet contient les informations suivantes :

statementNameKey

Le nom de cette déclaration de politique. statementNameKeyRemplacez-le par un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

La liste des opérations permettant d'utiliser les ressources prévues dans cette politique.

Vous pouvez inclure l'une des opérations suivantes :

  • mqtt:connect— Autorise la connexion à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un appareil principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Restreignez l'accès en fonction de l'ID client qu'un appareil client utilise pour se connecter au broker MQTT de l'appareil principal. deviceClientIdRemplacez-le par l'ID client à utiliser.

  • mqtt:publish— Autorise la publication de messages MQTT sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Restreignez l'accès en fonction de la rubrique MQTT dans laquelle un appareil client publie un message. mqttTopicRemplacez-le par le sujet à utiliser.

      Cette ressource ne prend pas en charge les caractères génériques de rubrique MQTT.

  • mqtt:subscribe— Permet de s'abonner aux filtres thématiques MQTT pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Restreignez l'accès en fonction des sujets MQTT auxquels un appareil client peut s'abonner à des messages. mqttTopicFilterRemplacez-le par le filtre thématique à utiliser.

      Cette ressource prend en charge les caractères génériques + des # rubriques et MQTT. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

      L'appareil client peut s'abonner exactement aux filtres thématiques que vous autorisez. Par exemple, si vous autorisez l'appareil client à s'abonner à la mqtt:topicfilter:client/+/status ressource, il peut s'y abonner client/+/status mais pasclient/client1/status.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les actions.

resources

La liste des ressources permettant les opérations prévues par cette politique. Spécifiez les ressources qui correspondent aux opérations de cette politique. Par exemple, vous pouvez spécifier une liste de ressources thématiques MQTT (mqtt:topic:mqttTopic) dans une politique qui spécifie l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique pour autoriser l'accès à toutes les ressources. Vous ne pouvez pas utiliser le * caractère générique pour faire correspondre des identifiants de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas spécifier"resources": "mqtt:clientId:*".

statementDescription

(Facultatif) Description de cette déclaration de politique.

Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant spécifie d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
Exemple Exemple : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant spécifie d'autoriser tous les appareils clients à se connecter et ce, publish/subscribe sur tous les sujets.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }

Fichier journal local

Ce composant utilise le même fichier journal que le composant Greengrass Nucleus.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
Pour afficher les journaux de ce composant
  • Exécutez la commande suivante sur le périphérique principal pour afficher le fichier journal de ce composant en temps réel. Remplacez /greengrass/v2 ou C:\greengrass\v2 par le chemin du dossier AWS IoT Greengrass racine.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Journal des modifications

Le tableau suivant décrit les modifications apportées à chaque version du composant.

Version

Modifications

2.5.7

Met à jour la version du composant pour la version 2.18.0 de Greengrass Nucleus.

2.5.6

Met à jour la version du composant pour la version 2.17.0 de Greengrass Nucleus.

2.5.5

Version mise à jour pour la version 2.16.0 de Greengrass Nucleus.

2,5.4

Version mise à jour pour la version 2.15.0 de Greengrass Nucleus.

2.5.3

Corrections de bugs et améliorations
  • Résout un problème qui empêchait les appareils clients de se connecter à l'appareil principal en raison de certificats clients obsolètes.

2.5.2

Version mise à jour pour la version 2.14.0 de Greengrass Nucleus.

2.5.1

Corrections de bugs et améliorations
  • Supporte le point de terminaison FIPS.

2.5.0

Nouvelles fonctionnalités
  • Permet la substitution de ${iot:Connection.Thing.ThingName} variables pour les ressources politiques.

  • Autorise les ressources stratégiques comportant des caractères génériques tels quemqtt:topic:my*.

2.4.5

Nouvelles fonctionnalités

Ajoute la prise en charge des préfixes génériques pour sélectionner des noms d'objets à l'aide du selectionRule paramètre.

Corrections de bugs et améliorations

Résout un problème en raison duquel les certificats ne sont pas mis à jour avec les nouvelles informations de connectivité dans certains cas.

2.4.4

Version mise à jour pour la version 2.12.0 de Greengrass Nucleus.

2.4.3

Version mise à jour pour la version 2.11.0 de Greengrass Nucleus.

2.4.2

Nouvelles fonctionnalités

Ajoute une nouvelle option startupTimeoutSeconds de configuration.

2.4.1

Version mise à jour pour la version 2.10.0 de Greengrass Nucleus.

2.4.0

Nouvelles fonctionnalités
  • Ajoute la prise en charge de l'authentification des appareils clients pour émettre des mesures opérationnelles qui seront publiées par l'agent de télémétrie.

Corrections de bugs et améliorations
  • Résout un problème en raison duquel l'authentification de l'appareil client prend plus de 10 secondes pour vérifier l'identité d'un appareil client.

  • Corrections et améliorations mineures supplémentaires.

2.3.2

Corrections de bugs et améliorations
  • Ajoute la prise en charge de la mise en cache des informations de nom d'hôte afin que le composant génère correctement les sujets de certificat lorsqu'il est redémarré en mode hors connexion.

2.3.1

Corrections de bugs et améliorations
  • Corrige une fuite de mémoire.

2.3.0

Avertissement

Cette version n'est plus disponible. Les améliorations apportées à cette version sont disponibles dans les versions ultérieures de ce composant.

Nouvelles fonctionnalités

  • Ajoute la prise en charge de l'authentification hors ligne des appareils clients afin qu'ils puissent continuer à se connecter à l'appareil principal lorsque celui-ci n'est pas connecté à Internet.

  • Ajoute la prise en charge de l'autorité de certification fournie par le client que le périphérique principal utilise comme certificat racine pour générer des certificats de courtier MQTT.

2.2.3

Version mise à jour pour la version 2.8.0 de Greengrass Nucleus.

2.2.2

Corrections de bugs et améliorations
  • Résout un problème en raison duquel le certificat du serveur MQTT local change plus souvent que prévu dans certains scénarios.

2.2.1

Version mise à jour pour la version 2.7.0 de Greengrass Nucleus.

2.2.0

Nouvelles fonctionnalités
  • Ajoute la prise en charge de composants personnalisés pour appeler les opérations de communication interprocessus (IPC) afin d'authentifier et d'autoriser les appareils clients. Vous pouvez utiliser ces opérations dans un composant de courtier MQTT personnalisé, par exemple. Pour plus d'informations, consultez IPC : Authentifier et autoriser les appareils clients.

  • Ajoute les threadPoolSize options maxActiveAuthTokenscloudQueueSize,, et que vous pouvez configurer pour ajuster les performances de ce composant.

2.1.0

Nouvelles fonctionnalités
  • Ajoute l'serverCertificateValiditySecondsoption que vous pouvez configurer pour personnaliser la date d'expiration du certificat du serveur MQTT Broker. Vous pouvez configurer le certificat de serveur pour qu'il expire au bout de 2 à 10 jours.

Corrections de bugs et améliorations
  • Résout les problèmes liés à la façon dont ce composant gère les mises à jour de réinitialisation de la configuration.

  • Résout un problème en raison duquel le certificat du serveur MQTT local change plus souvent que prévu dans certains scénarios.

    Pour appliquer ce correctif, vous devez également utiliser la version 2.1.0 ou ultérieure du composant de courtage Moquette MQTT.

  • Améliore les messages que ce composant enregistre lors de la rotation des certificats.

  • Version mise à jour pour la version 2.6.0 de Greengrass Nucleus.

2.0.4

Version mise à jour pour la version 2.5.0 de Greengrass Nucleus.

2.0.3

Corrections de bugs et améliorations
  • Les informations d'identification sont désormais actualisées si vous alternez la clé privée de l'appareil principal.

  • Mises à jour pour rendre les messages du journal plus clairs.

2.0.2

Version mise à jour pour la version 2.4.0 de Greengrass Nucleus.

2.0.1

Version mise à jour pour la version 2.3.0 de Greengrass Nucleus.

2.0.0

Première version.