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.
Autoriser les utilisateurs et les services cloud à utiliser les tâches AWS IoT
Pour autoriser vos utilisateurs et vos services cloud, vous devez utiliser des politiques IAM à la fois sur le plan de contrôle et sur le plan de données. Les politiques doivent être utilisées avec le protocole HTTPS et doivent utiliser l’authentification Signature Version 4 (port 443) AWS pour authentifier les utilisateurs.
Note
AWS IoT Core les politiques ne doivent pas être utilisées sur le plan de contrôle. Seules les politiques IAM sont utilisées pour autoriser les utilisateurs ou les services cloud. Pour de plus amples informations sur les types de politiques requises à utiliser, veuillez consulter Type de politique requis pour AWS IoT Jobs.
Les politiques IAM sont des documents JSON qui contiennent des déclarations de politique. Les déclarations de politique utilisent les éléments Effet, Action et Ressource pour préciser les ressources, les actions autorisées ou rejetées et les conditions dans lesquelles les actions sont autorisées ou rejetées. Pour de plus amples informations, veuillez consulter Références des éléments de stratégie JSON IAM dans le Guide de l’utilisateur IAM.
Avertissement
Nous vous recommandons de ne pas utiliser d'autorisations génériques, comme "Action":
["iot:*"]
dans vos politiques ou AWS IoT Core politiques IAM. L’utilisation d’autorisations génériques n’est pas une bonne pratique de sécurité recommandée. Pour plus d'informations, consultez AWS IoT
la politique trop permissive.
Politiques IAM sur le plan de contrôle
Sur le plan de contrôle, les politiques IAM utilisent le préfixe iot:
associé à l’action pour autoriser le fonctionnement de l’API de tâches correspondante. Par exemple, l’action de politique iot:CreateJob
accorde à l’utilisateur l’autorisation d’utiliser l’API CreateJob
.
Le tableau suivant contient les actions de politique IAM et les autorisations d’utilisation des actions d’API. Pour plus d'informations sur les types de ressources, consultez la section Types de ressources définis par AWS IoT. Pour plus d'informations sur AWS IoT les actions, consultez la section Actions définies par AWS IoT.
Actions de politique | Opération API | Types de ressources | Description |
---|---|---|---|
iot:AssociateTargetsWithJob |
AssociateTargetsWithJob |
|
Représente l’autorisation d’associer un groupe à une tâche continue. L’autorisation iot:AssociateTargetsWithJob est vérifiée chaque fois qu’une demande est faite d’associer les cibles. |
iot:CancelJob |
CancelJob |
tâche | Représente l’autorisation d’annuler une tâche. L’autorisation iot:CancelJob est vérifiée chaque fois qu’une demande est faite d’annuler une tâche. |
iot:CancelJobExecution |
CancelJobExecution |
|
Représente l’autorisation d’annuler une exécution de tâche. L’autorisation iot: CancelJobExecution est vérifiée chaque fois qu’une demande est faite d’annuler une exécution de tâche. |
iot:CreateJob |
CreateJob |
|
Représente l’autorisation de créer une tâche. L’autorisation iot:
CreateJob est vérifiée chaque fois qu’une demande est faite de créer une tâche. |
iot:CreateJobTemplate |
CreateJobTemplate |
|
Représente l’autorisation de créer un modèle de tâche. L’autorisation iot: CreateJobTemplate est vérifiée chaque fois qu’une demande est faite de créer un modèle de tâche. |
iot:DeleteJob |
DeleteJob |
tâche | Représente l’autorisation de supprimer une tâche. L’autorisation iot:
DeleteJob est vérifiée chaque fois qu’une demande est faite de supprimer une tâche. |
iot:DeleteJobTemplate |
DeleteJobTemplate |
modèle de tâche | Représente l’autorisation de supprimer un modèle de tâche. L’autorisation iot: CreateJobTemplate est vérifiée chaque fois qu’une demande est faite de supprimer un modèle de tâche. |
iot:DeleteJobExecution |
DeleteJobTemplate |
|
Représente l’autorisation de supprimer une exécution de tâche. L’autorisation iot: DeleteJobExecution est vérifiée chaque fois qu’une demande est faite de supprimer une exécution de tâche. |
iot:DescribeJob |
DescribeJob |
tâche | Représente l’autorisation de décrire une tâche. L’autorisation iot:
DescribeJob est vérifiée chaque fois qu’une demande est faite de décrire une tâche. |
iot:DescribeJobExecution |
DescribeJobExecution |
|
Représente l’autorisation de décrire une exécution de tâche. L’autorisation iot: DescribeJobExecution est vérifiée chaque fois qu’une demande est faite de décrire une exécution de tâche. |
iot:DescribeJobTemplate |
DescribeJobTemplate |
modèle de tâche | Représente l’autorisation de décrire un modèle de tâche. L’autorisation iot: DescribeJobTemplate est vérifiée chaque fois qu’une demande est faite de décrire un modèle de tâche. |
iot:DescribeManagedJobTemplate |
DescribeManagedJobTemplate |
modèle de tâche | Représente l’autorisation de décrire un modèle de tâche gérée. L’autorisation iot: DescribeManagedJobTemplate est vérifiée chaque fois qu’une demande est faite de décrire un modèle de tâche gérée. |
iot:GetJobDocument |
GetJobDocument |
tâche | Représente l’autorisation d’obtenir le document de tâche correspondant à une tâche. L’autorisation iot:GetJobDocument est vérifiée chaque fois qu’une demande est faite d’obtenir un document de tâche. |
iot:ListJobExecutionsForJob |
ListJobExecutionsForJob |
tâche | Représente l’autorisation de répertorier les exécutions de tâche d’une tâche. L’autorisation iot:ListJobExecutionsForJob est vérifiée chaque fois qu’une demande est faite de répertorier les exécutions d’une tâche. |
iot:ListJobExecutionsForThing |
ListJobExecutionsForThing |
thing | Représente l’autorisation de répertorier les exécutions de tâche d’une tâche. L’autorisation iot:ListJobExecutionsForThing est vérifiée chaque fois qu’une demande est faite de répertorier les exécutions d’un objet. |
iot:ListJobs |
ListJobs |
none | Représente l’autorisation de répertorier les tâches. L’autorisation iot:ListJobs est vérifiée chaque fois qu’une demande est faite de répertorier les tâches. |
iot:ListJobTemplates |
ListJobTemplates |
none | Représente l’autorisation de répertorier les modèles de tâche. L’autorisation iot:ListJobTemplates est vérifiée chaque fois qu’une demande est faite répertorier les modèles de tâche. |
iot:ListManagedJobTemplates |
ListManagedJobTemplates |
none | Représente l’autorisation de répertorier les modèles de tâches gérées. L’autorisation iot:ListManagedJobTemplates est vérifiée chaque fois qu’une demande est faite répertorier les modèles de tâche gérée. |
iot:UpdateJob |
UpdateJob |
tâche | Représente l’autorisation de mettre à jour une tâche. L’autorisation iot:UpdateJob est vérifiée chaque fois qu’une demande est faite de mettre une tâche. |
iot:TagResource |
TagResource |
|
Octroie l'autorisation de baliser une ressource spécifique. |
iot:UntagResource |
UntagResource |
|
Octroie l'autorisation d'annuler le balisage d'une ressource spécifique. |
L’exemple suivant illustre une politique IAM qui autorise l’utilisateur à effectuer les actions suivantes pour votre objet et groupe d’objets IoT.
Dans l'exemple, remplacez :
-
region
avec votre Région AWS, par exempleus-east-1
. -
account-id
avec votre Compte AWS numéro, par exemple57EXAMPLE833
. -
thing-group-name
avec le nom de votre groupe d'objets IoT pour lequel vous ciblez des emplois, tel queFirmwareUpdateGroup
. -
thing-name
avec le nom de l'objet IoT pour lequel vous ciblez des emplois, par exempleMyIoTThing
.
Vous pouvez empêcher les principaux d’effectuer des appels d’API vers le point de terminaison de votre plan de contrôle à partir d’adresses IP spécifiques. Pour spécifier les adresses IP qui peuvent être autorisées, dans l’élément Condition de votre politique IAM, utilisez la clé de condition globale aws:SourceIp
.
L'utilisation de cette clé de condition peut également empêcher d'autres Service AWS personnes d'effectuer ces appels d'API en votre nom, par exemple AWS CloudFormation. Pour autoriser l'accès à ces services, utilisez la clé de condition aws:ViaAWSService
globale associée à la SourceIp clé aws :. Cela garantit que la restriction d’accès à l’adresse IP source s’applique uniquement aux requêtes faites directement par un principal. Pour plus d'informations, voir AWS: Refuse l'accès à AWS en fonction de l'adresse IP source.
L’exemple suivant montre comment autoriser uniquement une adresse IP spécifique qui peut effectuer des appels d’API vers le point de terminaison du plan de contrôle. La clé aws:ViaAWSService
est définie sur true
, ce qui permet aux autres services d’effectuer des appels d’API en votre nom.
Politiques IAM sur le plan de données
Les politiques IAM sur le plan de données utilisent le préfixe iotjobsdata:
pour autoriser les opérations d’API de tâches que les utilisateurs peuvent effectuer. Sur le plan de données, vous pouvez autoriser un utilisateur à utiliser l’API DescribeJobExecution
en utilisant l’action de politique iotjobsdata:DescribeJobExecution
.
Avertissement
L’utilisation de politiques IAM sur le plan de données n’est pas recommandée lorsque vous ciblez des tâches AWS IoT pour vos appareils. Nous vous recommandons d’utiliser des politiques IAM sur le plan de contrôle pour que les utilisateurs puissent créer et gérer des tâches. Sur le plan de données, pour autoriser les appareils à récupérer les exécutions de tâches et à mettre à jour le statut d’exécution, utilisez AWS IoT Core politiques pour le protocole HTTPS.
Les opérations d’API qui doivent être autorisées sont généralement effectuées en tapant des commandes CLI. L’exemple suivant un exemple d’un utilisateur exécutant une opération DescribeJobExecution
.
Dans l'exemple, remplacez :
-
region
avec votre Région AWS, par exempleus-east-1
. -
account-id
avec votre Compte AWS numéro, par exemple57EXAMPLE833
. -
thing-name
avec le nom de l'objet IoT pour lequel vous ciblez des emplois, par exemplemyRegisteredThing
. -
est l’identifiant unique de la tâche ciblée à l’aide de l’API.job-id
aws iot-jobs-data describe-job-execution \ --endpoint-url "https://
account-id
.jobs.iot.region
.amazonaws.com" \ --job-idjobID
--thing-namething-name
Un exemple de politique IAM autorisant cette action est présenté ci-dessous :
Vous pouvez empêcher les principaux d’effectuer des appels d’API vers le point de terminaison de votre plan de données à partir d’adresses IP spécifiques. Pour spécifier les adresses IP qui peuvent être autorisées, dans l’élément Condition de votre politique IAM, utilisez la clé de condition globaleaws:SourceIp
.
L'utilisation de cette clé de condition peut également empêcher d'autres Service AWS personnes d'effectuer ces appels d'API en votre nom, par exemple AWS CloudFormation. Pour autoriser l’accès à ces services, utilisez la clé de condition globale aws:ViaAWSService
avec la clé de condition aws:SourceIp
. Cela garantit que la restriction d’accès à l’adresse IP ne s’applique qu’aux demandes directement effectuées par le principal. Pour plus d'informations, voir AWS: Refuse l'accès à AWS en fonction de l'adresse IP source.
L’exemple suivant montre comment autoriser uniquement une adresse IP spécifique qui peut effectuer des appels d’API vers le point de terminaison du plan de données.
L’exemple suivant montre comment empêcher des adresses IP ou des plages d’adresses spécifiques d’effectuer des appels d’API vers le point de terminaison du plan de données.
Si vous effectuez une opération d’API à la fois sur le plan de contrôle et sur le plan de données, votre action de politique du plan de contrôle doit utiliser le préfixe iot:
, et votre action de stratégie de plan de données doit utiliser le préfixe iotjobsdata:
.
Par exemple, l’API DescribeJobExecution
peut être utilisée à la fois dans le plan de contrôle et dans le plan de données. Sur le plan de contrôle, l'DescribeJobExecutionAPI est utilisée pour décrire l'exécution d'une tâche. Sur le plan de données, l' DescribeJobExecutionAPI est utilisée pour obtenir les détails de l'exécution d'une tâche.
La politique IAM suivante autorise un utilisateur à utiliser l’API DescribeJobExecution
à la fois sur le plan de contrôle et sur le plan de données.
Dans l'exemple, remplacez :
-
region
avec votre Région AWS, par exempleus-east-1
. -
account-id
avec votre Compte AWS numéro, par exemple57EXAMPLE833
. -
thing-name
avec le nom de l'objet IoT pour lequel vous ciblez des emplois, par exempleMyIoTThing
.
Autoriser le balisage des ressources IoT
Pour mieux contrôler les tâches et les modèles de tâches que vous pouvez créer, modifier ou utiliser, vous pouvez associer des balises aux tâches ou aux modèles de tâches. Les balises vous aident également à identifier les propriétaires et à attribuer et répartir les coûts en les plaçant dans des groupes de facturation et en y attachant des balises.
Lorsqu'un utilisateur souhaite baliser ses tâches ou les modèles de tâches qu'il a créés à l'aide du AWS Management Console ou du AWS CLI, votre politique IAM doit autoriser l'utilisateur à les baliser. Pour accorder des autorisations, votre politique IAM doit utiliser l’action iot:TagResource
.
Note
Si votre politique IAM n’inclut pas l’action iot:TagResource
, toute CreateJob
ou CreateJobTemplate
contenant une balise renverra une erreur AccessDeniedException
.
Lorsque vous souhaitez étiqueter vos tâches ou les modèles de tâches que vous avez créés à l'aide du AWS Management Console ou du AWS CLI, votre politique IAM doit autoriser ces tâches. Pour accorder des autorisations, votre politique IAM doit utiliser l’action iot:TagResource
.
Pour obtenir des informations générales sur le balisage des ressources, veuillez consulter Marquer vos ressources AWS IoT.
Reportez-vous aux exemples de politique IAM suivants octroyant des autorisations de balisage :
Exemple 1
Utilisateur qui exécute la commande suivante pour créer une tâche et l’associer à un environnement spécifique.
Dans cet exemple, remplacez :
-
region
avec votre Région AWS, par exempleus-east-1
. -
account-id
avec votre Compte AWS numéro, par exemple57EXAMPLE833
. -
thing-name
avec le nom de l'objet IoT pour lequel vous ciblez des emplois, par exempleMyIoTThing
.
aws iot create-job --job-id
test_job
--targets "arn:aws:iot:region
:account-id
:thing/thingOne
" --document-source "https://s3.amazonaws.com/amzn-s3-demo-bucket/job-document.json" --description "test job description" --tags Key=environment,Value=beta
Pour cet exemple, vous devez utiliser la politique IAM suivante :