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 IAM politiques à la fois sur le plan de contrôle et sur le plan de données. Les politiques doivent être utilisées avec le HTTPS protocole et doivent utiliser l'authentification AWS Signature Version 4 (port 443) pour authentifier les utilisateurs.
Note
AWS IoT Core les politiques ne doivent pas être utilisées sur le plan de contrôle. Seules IAM les politiques 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.
IAMles politiques sont JSON des documents 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 plus d'informations, reportez-vous à la section Référence des éléments de IAM JSON politique dans le guide de IAM l'utilisateur.
Avertissement
Nous vous recommandons de ne pas utiliser d'autorisations génériques, comme "Action":
["iot:*"]
dans vos IAM politiques ou AWS IoT Core politiques. 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.
IAMpolitiques sur le plan de contrôle
Sur le plan de contrôle, IAM les politiques utilisent le iot:
préfixe associé à l'action pour autoriser l'APIopération des tâches correspondantes. Par exemple, l'action iot:CreateJob
stratégique accorde à l'utilisateur l'autorisation d'utiliser le CreateJob
API.
Le tableau suivant présente une liste des actions de IAM stratégie et des autorisations permettant d'utiliser ces API actions. 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.
IAMactions politiques sur le plan de contrôle | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Actions de politique | APIopération | 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 montre une IAM politique qui autorise l'utilisateur à effectuer les actions suivantes pour votre objet et votre 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
.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:CreateJobTemplate", "iot:CreateJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thinggroup/thing-group-name
" }, { "Action": [ "iot:DescribeJob", "iot:CancelJob", "iot:DeleteJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:region
:account-id
:job/*" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region
:account-id
:thing/thing-name
" "arn:aws:iot:region
:account-id
:job/*" ] } ] }
Vous pouvez empêcher les principaux de passer des API appels 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 IAM politique, utilisez la clé de condition aws:SourceIp
globale.
L'utilisation de cette clé de condition peut également empêcher d'autres AWS service personnes de API passer ces appels 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 API appels vers le point de terminaison du plan de contrôle. La aws:ViaAWSService
touche est réglée surtrue
, ce qui permet aux autres services de passer des API appels en votre nom.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJobTemplate", "iot:CreateJob" ], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "
123.45.167.89
" } }, "Bool": {"aws:ViaAWSService": "true"} } ], }
IAMpolitiques relatives au plan de données
IAMles politiques du plan de données utilisent le iotjobsdata:
préfixe pour autoriser les tâches API que les utilisateurs peuvent effectuer. Sur le plan de données, vous pouvez autoriser un utilisateur à utiliser le DescribeJobExecution
APIen utilisant l'action iotjobsdata:DescribeJobExecution
de politique.
Avertissement
L'utilisation IAM de politiques sur le plan de données n'est pas recommandée lorsque vous ciblez des AWS IoT tâches pour vos appareils. Nous vous recommandons d'utiliser des IAM politiques sur le plan de contrôle pour permettre aux utilisateurs de créer et de 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 relatives au HTTPS protocole.
Les API opérations qui doivent être autorisées sont généralement effectuées en tapant CLI des commandes. 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 duAPI.job-id
aws iot-jobs-data describe-job-execution \ --endpoint-url "https://
account-id
.jobs.iot.region
.amazonaws.com" \ --job-idjobID
--thing-namething-name
Voici un exemple de IAM politique qui autorise cette action :
{ "Version": "2012-10-17", "Statement": { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thing/thing-name
", } }
Vous pouvez empêcher les principaux de passer des API appels 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 IAM politique, utilisez la clé de condition aws:SourceIp
globale.
L'utilisation de cette clé de condition peut également empêcher d'autres AWS service personnes de API passer ces appels 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 API appels vers le point de terminaison du plan de données.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iotjobsdata:*"], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "
123.45.167.89
" } }, "Bool": {"aws:ViaAWSService": "false"} } ], }
L'exemple suivant montre comment empêcher des adresses IP ou des plages d'adresses spécifiques d'effectuer des API appels vers le point de terminaison du plan de données.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["iotjobsdata:*"], "Condition": { "IpAddress": { "aws:SourceIp": [ "
123.45.167.89
", "192.0.2.0/24
", "203.0.113.0/24
" ] } }, "Resource": ["*"], } ], }
Si vous effectuez une API opération à 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 iot:
préfixe, et votre action de stratégie de plan de données doit utiliser le iotjobsdata:
préfixe.
Par exemple, il DescribeJobExecution
API peut être utilisé à la fois dans le plan de contrôle et dans le plan de données. Sur le plan de contrôle, le DescribeJobExecutionAPIest utilisé pour décrire l'exécution d'une tâche. Sur le plan de données, le DescribeJobExecutionAPIest utilisé pour obtenir les détails de l'exécution d'une tâche.
La IAM politique suivante autorise un utilisateur à utiliser le à la fois DescribeJobExecution
API 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
.
{ "Version": "2012-10-17", "Statement": [ { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:
region
:account-id
:thing/thing-name
" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region
:account-id
:thing/thing-name
" "arn:aws:iot:region
:account-id
:job/*" ] } ] }
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 étiqueter 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 IAM politique doit autoriser l'utilisateur à les baliser. Pour accorder des autorisations, votre IAM politique doit utiliser l'iot:TagResource
action.
Note
Si votre IAM politique n'inclut pas l'iot:TagResource
action, toute action CreateJob
ou toute action CreateJobTemplate
comportant une balise renverra une AccessDeniedException
erreur.
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 IAM politique doit autoriser ces tâches. Pour accorder des autorisations, votre IAM politique doit utiliser l'iot:TagResource
action.
Pour obtenir des informations générales sur le balisage des ressources, veuillez consulter . Marquer vos ressources AWS IoT.
Reportez-vous aux exemples de IAM politiques suivants accordant 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/my-s3-bucket/job-document.json" --description "test job description" --tags Key=environment,Value=beta
Pour cet exemple, vous devez utiliser la IAM politique suivante :
{ "Version": "2012-10-17", "Statement": { "Action": [ "iot:CreateJob", "iot:CreateJobTemplate", "iot:TagResource" ], "Effect": "Allow", "Resource": [ "arn:aws:iot:aws-region:
account-id
:job/*", "arn:aws:iot:aws-region:account-id
:jobtemplate/*" ] } }