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 du dispositif client.

Note

Les appareils clients sont des appareils IoT locaux qui se connectent à un appareil principal de Greengrass pour envoyer MQTT des messages 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 du périphérique client n'est plus disponible. Nous vous recommandons vivement de passer à la version 2.3.1 ou ultérieure de l'authentification du périphérique client.

Les versions de ce composant sont les suivantes :

  • 2.4.x

  • 2.3.x

  • 2.2.x

  • 2,1x

  • 2,0.x

Type

Ce composant est un composant de plugin (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 GreengrassJournaux de surveillance.

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

Système d’exploitation

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

  • Linux

  • Windows

Prérequis

Ce composant répond aux exigences suivantes :

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

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

    • greengrass:GetConnectivityInfo, où les ressources incluent celles 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 connecté au périphérique principal

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish, où les ressources incluent ARN le MQTT sujet suivant :

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

    • iot:Subscribe, où les ressources incluent les filtres ARNs de MQTT rubrique suivants :

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

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

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

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

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

    Pour plus d’informations, consultez Stratégies AWS IoT pour les opérations de plan de données et AWS IoTPolitique minimale de prise en charge des appareils clients.

  • (Facultatif) Pour utiliser l'authentification hors ligne, le rôle AWS Identity and Access Management (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 l'authentification hors ligne.

  • Le composant d'authentification du périphérique client est compatible pour s'exécuter dans unVPC. Pour déployer ce composant dans unVPC, les éléments suivants sont requis.

    • Le composant d'authentification de l'appareil client doit disposer d'une connectivité AWS IoT data, d' AWS IoT informations d'identification et d'Amazon S3.

Points de terminaison et ports

Ce composant doit être capable d'effectuer des demandes sortantes vers les points de terminaison 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.

Point de terminaison 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, il déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez satisfaire aux exigences relatives au composant et à toutes ses dépendances pour réussir le déploiement du composant. Cette section répertorie les dépendances des 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 de chaque version du composant dans la AWS IoT Greengrass console. Sur la page de détails du composant, recherchez la liste des dépendances.

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 de 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 de 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 de 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 de 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 de Greengrass >=2,6,0 <2,1,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 de Greengrass >=2,6,0 <2,1,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 de 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 de 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 de 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 de 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 de Greengrass >=2,2,0 <2,7,0 Flexible
2.0.4

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

Dépendance Versions compatibles Type de dépendance
Noyau de 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 de 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 de 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 de Greengrass >=2,2,0 <2,3,0 Flexible

Pour plus d'informations sur les dépendances des composants, consultez la référence de la recette 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 MQTT courtier local. Si l'autorisation d'abonnement existante du client est révoquée, le client ne pourra plus s'abonner à un sujet. Il continuera toutefois à recevoir des messages provenant de tous les sujets précédemment abonnés. Pour éviter ce comportement, le MQTT courtier 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 broker MQTT 3.1.1 (Moquette), il redémarre chaque semaine par défaut lorsque le certificat du serveur change, obligeant les clients à se réautoriser. 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
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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 le nom commence ou se termine par la chaîne que vous spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise l'mqtt:publishopération.

Vous pouvez spécifier le * caractère générique n'importe où dans la variable de ressource pour autoriser 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'objet dans le AWS IoT Core registre pour lequel la politique est évaluée. AWS IoT Core utilise le certificat présenté par l'appareil lorsqu'il s'authentifie pour déterminer quel é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 des certificats pour ce périphérique principal. Cet objet contient les informations suivantes :

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) au bout de laquelle le certificat MQTT du serveur 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 fait pivoter le certificat MQTT du serveur local 24 heures avant son expiration. Le MQTT courtier, tel que le composant MQTT courtier Moquette, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à ce périphérique principal sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique 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 de l'appareil client actifs. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un appareil central unique, sans les réauthentifier.

Par défaut : 2500

cloudRequestQueueSize

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

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.

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 délivrer les certificats des appareils clients, Greengrass contourne les contrôles de politique d'autorisation pour les opérations des appareils clients. MQTT Le composant d'authentification du périphérique client fait entièrement confiance aux clients à l'aide de 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 les appareils clients à l'aide d'une autorité de certification différente ou d'une autorité de certification intermédiaire, 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.

certificateUri

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

certificateChainUri

Emplacement de la chaîne de certificats pour l'autorité de certification du périphérique principal. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un système de fichiers URI ou d'un URI système pointant 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 système de fichiers URI ou d'un URI système pointant 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.

metrics

(Facultatif) Les options de métriques pour ce périphérique principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur d'authentification du périphérique client. Cet objet contient les informations suivantes :

disableMetrics

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

Par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification du dispositif client agrège les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence à laquelle les métriques sont publiées, car l'agent de télémétrie les publie toujours une fois par jour.

Par défaut : 3600

startupTimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant passe à BROKEN s'il dépasse ce délai.

Par défaut : 120

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

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 : 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 du périphérique client et se terminant par la 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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 le nom commence ou se termine par la chaîne que vous spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise 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 identificateurs de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas le faire"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) au bout de laquelle le certificat MQTT du serveur 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 fait pivoter le certificat MQTT du serveur local 24 heures avant son expiration. Le MQTT courtier, tel que le composant MQTT courtier Moquette, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à ce périphérique principal sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique 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 de l'appareil client actifs. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un appareil central unique, sans les réauthentifier.

Par défaut : 2500

cloudRequestQueueSize

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

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.

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 délivrer les certificats des appareils clients, Greengrass contourne les contrôles de politique d'autorisation pour les opérations des appareils clients. MQTT Le composant d'authentification du périphérique client fait entièrement confiance aux clients à l'aide de 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 les appareils clients à l'aide d'une autorité de certification différente ou d'une autorité de certification intermédiaire, 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.

certificateUri

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

certificateChainUri

Emplacement de la chaîne de certificats pour l'autorité de certification du périphérique principal. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un système de fichiers URI ou d'un URI système pointant 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 système de fichiers URI ou d'un URI système pointant 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.

metrics

(Facultatif) Les options de métriques pour ce périphérique principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur d'authentification du périphérique client. Cet objet contient les informations suivantes :

disableMetrics

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

Par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification du dispositif client agrège les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence à laquelle les métriques sont publiées, car l'agent de télémétrie les publie toujours une fois par jour.

Par défaut : 3600

startupTimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant passe à BROKEN s'il dépasse ce délai.

Par défaut : 120

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

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise 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 identificateurs de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas le faire"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) au bout de laquelle le certificat MQTT du serveur 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 fait pivoter le certificat MQTT du serveur local 24 heures avant son expiration. Le MQTT courtier, tel que le composant MQTT courtier Moquette, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à ce périphérique principal sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique 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 de l'appareil client actifs. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un appareil central unique, sans les réauthentifier.

Par défaut : 2500

cloudRequestQueueSize

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

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.

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 délivrer les certificats des appareils clients, Greengrass contourne les contrôles de politique d'autorisation pour les opérations des appareils clients. MQTT Le composant d'authentification du périphérique client fait entièrement confiance aux clients à l'aide de 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 les appareils clients à l'aide d'une autorité de certification différente ou d'une autorité de certification intermédiaire, 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.

certificateUri

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

certificateChainUri

Emplacement de la chaîne de certificats pour l'autorité de certification du périphérique principal. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un système de fichiers URI ou d'un URI système pointant 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 système de fichiers URI ou d'un URI système pointant 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.

metrics

(Facultatif) Les options de métriques pour ce périphérique principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur d'authentification du périphérique client. Cet objet contient les informations suivantes :

disableMetrics

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

Par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification du dispositif client agrège les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence à laquelle les métriques sont publiées, car l'agent de télémétrie les publie toujours une fois par jour.

Par défaut : 3600

startupTimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant passe à BROKEN s'il dépasse ce délai.

Par défaut : 120

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

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise 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 identificateurs de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas le faire"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) au bout de laquelle le certificat MQTT du serveur 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 fait pivoter le certificat MQTT du serveur local 24 heures avant son expiration. Le MQTT courtier, tel que le composant MQTT courtier Moquette, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à ce périphérique principal sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique 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 de l'appareil client actifs. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un appareil central unique, sans les réauthentifier.

Par défaut : 2500

cloudRequestQueueSize

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

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.

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 :

certificateUri

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

certificateChainUri

Emplacement de la chaîne de certificats pour l'autorité de certification du périphérique principal. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un système de fichiers URI ou d'un URI système pointant 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 système de fichiers URI ou d'un URI système pointant 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.

metrics

(Facultatif) Les options de métriques pour ce périphérique principal. Les mesures d'erreur ne s'afficheront qu'en cas d'erreur d'authentification du périphérique client. Cet objet contient les informations suivantes :

disableMetrics

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

Par défaut : false

aggregatePeriodSeconds

Période d'agrégation en secondes qui détermine la fréquence à laquelle l'authentification du dispositif client agrège les métriques et les envoie à l'agent de télémétrie. Cela ne change pas la fréquence à laquelle les métriques sont publiées, car l'agent de télémétrie les publie toujours une fois par jour.

Par défaut : 3600

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

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise 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 identificateurs de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas le faire"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) au bout de laquelle le certificat MQTT du serveur 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 fait pivoter le certificat MQTT du serveur local 24 heures avant son expiration. Le MQTT courtier, tel que le composant MQTT courtier Moquette, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à ce périphérique principal sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique 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 de l'appareil client actifs. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un appareil central unique sans les réauthentifier.

Par défaut : 2500

cloudRequestQueueSize

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

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.

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.

certificateUri

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

certificateChainUri

Emplacement de la chaîne de certificats pour l'autorité de certification du périphérique principal. Il doit s'agir de la chaîne de certificats complète remontant à votre autorité de certification racine. Il peut s'agir d'un système de fichiers URI ou d'un URI système pointant 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 système de fichiers URI ou d'un URI système pointant 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 : mise à jour de la fusion de configurations (à l'aide d'une politique restrictive)

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise 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 identificateurs de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas le faire"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) au bout de laquelle le certificat MQTT du serveur 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 fait pivoter le certificat MQTT du serveur local 24 heures avant son expiration. Le MQTT courtier, tel que le composant MQTT courtier Moquette, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à ce périphérique principal sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique 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 de l'appareil client actifs. Vous pouvez augmenter ce nombre pour permettre à un plus grand nombre d'appareils clients de se connecter à un appareil central unique sans les réauthentifier.

Par défaut : 2500

cloudRequestQueueSize

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

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.

Par défaut : 1

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

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise 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 identificateurs de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas le faire"resources": "mqtt:clientId:*".

statementDescription

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

certificates

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

serverCertificateValiditySeconds

(Facultatif) Durée (en secondes) au bout de laquelle le certificat MQTT du serveur 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 fait pivoter le certificat MQTT du serveur local 24 heures avant son expiration. Le MQTT courtier, tel que le composant MQTT courtier Moquette, génère un nouveau certificat et redémarre. Dans ce cas, tous les appareils clients connectés à ce périphérique principal sont déconnectés. Les appareils clients peuvent se reconnecter au périphérique principal après un court laps de temps.

Par défaut : 604800 (7 jours)

Valeur minimale : 172800 (2 jours)

Valeur maximale : 864000 (10 jours)

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

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 les 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 parmi les options suivantes :

  • 2021-03-05

definitions

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

Cet objet contient les informations suivantes :

groupNameKey

Nom de ce groupe d'appareils. Remplacez groupNameKey avec un nom qui vous permet d'identifier ce groupe d'appareils.

Cet objet contient les informations suivantes :

selectionRule

Requête qui indique quels appareils clients sont membres 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 est membre de ce groupe de dispositifs. Si le dispositif client est membre, le dispositif principal utilise la politique de ce groupe d'appareils pour autoriser les actions du dispositif client.

Chaque règle de sélection comprend au moins une clause de règle de sélection, qui est une requête d'expression unique pouvant correspondre aux 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 du AWS IoT parc dans le Guide du AWS IoT Core développeur.

Utilisez le * caractère générique pour associer plusieurs appareils clients à une seule 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 spécifiez. Vous pouvez également utiliser ce caractère générique pour correspondre à tous les appareils clients.

Note

Pour sélectionner une valeur contenant deux points (:), éliminez les deux points par une barre oblique inverse ()\\. Dans des formats tels queJSON, vous devez éviter les barres obliques inversées. Vous devez donc saisir deux barres obliques inversées 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' AWS IoT objet d'un appareil client.

Exemple de règle de sélection

La règle de sélection suivante correspond aux appareils clients dont les noms sont MyClientDevice1 ouMyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2
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 de règle de sélection (correspond à tous les appareils)

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

thingName: *
policyName

Politique d'autorisation 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. Remplacez policyNameKey avec 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. Remplacez statementNameKey avec un nom qui vous aide à identifier cette déclaration de politique.

Cet objet contient les informations suivantes :

operations

Liste des opérations permettant d'utiliser les ressources de cette politique.

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

  • mqtt:connect— Accorde l'autorisation de se connecter à l'appareil principal. Les appareils clients doivent disposer de cette autorisation pour se connecter à un périphérique principal.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:clientId:deviceClientId— Limitez l'accès en fonction de l'ID client utilisé par un appareil client pour se connecter au MQTT courtier de l'appareil principal. Remplacez deviceClientId avec l'ID client à utiliser.

  • mqtt:publish— Accorde l'autorisation de publier MQTT des messages sur des sujets.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topic:mqttTopic— Limitez l'accès en fonction du MQTT sujet sur lequel un appareil client publie un message. Remplacez mqttTopic avec le sujet à utiliser.

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

  • mqtt:subscribe— Accorde l'autorisation de s'abonner aux filtres de MQTT sujets pour recevoir des messages.

    Cette opération prend en charge les ressources suivantes :

    • mqtt:topicfilter:mqttTopicFilter— Limitez l'accès en fonction des MQTT sujets sur lesquels un appareil client peut s'abonner à des messages. Remplacez mqttTopicFilter avec le filtre de rubrique à utiliser.

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

      L'appareil client peut s'abonner aux filtres de rubrique exacts 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 d'effectuer 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 MQTT thématiques (mqtt:topic:mqttTopic) dans une politique qui précise 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 identificateurs de ressources partiels. Par exemple, vous pouvez spécifier"resources": "*", mais vous ne pouvez pas le faire"resources": "mqtt:clientId:*".

statementDescription

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

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

L'exemple de configuration suivant indique d'autoriser les appareils clients dont le nom commence par MyClientDevice à se connecter et à publier/souscrire 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 : mise à jour de la fusion de configurations (à l'aide d'une politique permissive)

L'exemple de configuration suivant indique d'autoriser tous les appareils clients à se connecter et à publier/souscrire 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 consulter 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. Remplacer /greengrass/v2 ou C:\greengrass\v2 avec le chemin d'accès au 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.1

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

2.5.0

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

  • Autorise les ressources politiques avec 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 avec le selectionRule paramètre.

Corrections de bugs et améliorations

Résout un problème selon lequel 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 du périphérique client pour émettre des métriques 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 selon lequel 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
  • Prend en charge la mise en cache des informations de nom d'hôte afin que le composant génère correctement les sujets de certificat lors du redémarrage 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 au périphérique 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 MQTT courtier.

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 selon lequel le certificat MQTT du serveur 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 permettant d'appeler des 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 MQTT courtier personnalisé, par exemple. Pour plus d'informations, voir 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 de MQTT courtage. Vous pouvez configurer le certificat du 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 configuration.

  • Résout un problème selon lequel le certificat MQTT du serveur 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 Moquette broker MQTT.

  • Améliore les messages enregistrés par ce composant 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 faites pivoter 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.