View a markdown version of this page

Contrôler l'accès avec AWS IoT FleetWise - AWS Internet des objets FleetWise

AWS L'IoT n' FleetWise est plus ouvert aux nouveaux clients. Les FleetWise clients AWS IoT existants peuvent continuer à utiliser le service. Le Guide pour la mobilité connectée AWS fournit des conseils sur la manière de développer et de déployer des services modulaires pour les solutions de mobilité connectée qui peuvent être utilisés pour atteindre des capacités équivalentes à celles de AWS l'IoT FleetWise.

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.

Contrôler l'accès avec AWS IoT FleetWise

Important

L'accès à certaines FleetWise fonctionnalités de AWS l'Internet des objets est actuellement bloqué. Pour de plus amples informations, veuillez consulter AWS Disponibilité des régions et des fonctionnalités dans AWS l'IoT FleetWise.

Les sections suivantes expliquent comment contrôler l'accès à vos AWS IoT FleetWise ressources et en provenance de celles-ci. Les informations qu'ils couvrent incluent la manière d'accorder l'accès à votre application afin que AWS l'IoT FleetWise puisse transférer les données des véhicules pendant les campagnes. Ils décrivent également comment vous pouvez accorder l' AWS IoT FleetWise accès à votre compartiment Amazon S3 (S3) ou à la base de données et à la table Amazon Timestream pour stocker des données, ou aux messages MQTT utilisés pour envoyer des données depuis des véhicules.

La technologie permettant de gérer toutes ces formes d'accès est Gestion des identités et des accès AWS (IAM). Pour plus d'informations sur IAM, consultez En quoi consiste IAM ?.

Octroi AWS IoT FleetWise autorisation d'envoyer et de recevoir des données sur un sujet MQTT

Lorsque vous utilisez une rubrique MQTT, vos véhicules envoient des données à l'aide du courtier de messages AWS IoT MQTT. Vous devez AWS IoT FleetWise autoriser l'inscription à la rubrique MQTT que vous spécifiez. Si vous utilisez également des AWS IoT règles pour agir ou acheminer des données vers d'autres destinations, vous devez associer des politiques à un rôle IAM pour permettre de transférer des données AWS IoT FleetWise vers IoT Rules.

En outre, vos autres applications ou appareils peuvent s'abonner à la rubrique que vous spécifiez pour recevoir les données du véhicule en temps quasi réel, et ces applications ou appareils doivent bénéficier des autorisations et de l'accès nécessaires.

Pour plus d'informations sur l'utilisation de MQTT et sur les rôles et autorisations requis, consultez :

Avant de commencer, vérifiez les points suivants :

Important
  • Vous devez utiliser la même AWS région lorsque vous créez des ressources de campagne de véhicules pour AWS l'IoT FleetWise. Si vous changez de AWS région, vous risquez de rencontrer des difficultés pour accéder aux ressources.

  • AWS L'IoT FleetWise est disponible dans l'est des États-Unis (Virginie du Nord) et en Europe (Francfort).

Vous pouvez utiliser le AWS CLI pour créer un rôle IAM avec une politique de confiance pour la messagerie MQTT. Pour créer un rôle IAM, exécutez la commande suivante.

Pour créer un rôle IAM avec une politique de confiance
  • IotTopicExecutionRoleRemplacez-le par le nom du rôle que vous créez.

  • trust-policyRemplacez-la par le fichier JSON contenant la politique de confiance.

aws iam create-role --role-name IotTopicExecutionRole --assume-role-policy-document file://trust-policy.json
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "mqttTopicTrustPolicy", "Effect": "Allow", "Principal": { "Service": "iotfleetwise.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:iotfleetwise:region:123456789012:campaign/campaign-name" ], "aws:SourceAccount": [ "123456789012" ] } } } ] }

Créez une politique d'autorisations pour autoriser AWS l'IoT FleetWise à publier des messages sur la rubrique MQTT que vous avez spécifiée. Pour créer une politique d'autorisations, exécutez la commande suivante.

Pour créer une politique d'autorisations
  • AWSIoTFleetwiseAccessIotTopicPermissionsPolicyRemplacez-le par le nom de la politique que vous créez.

  • permissions-policyRemplacez-le par le nom du fichier JSON contenant la politique d'autorisations.

aws iam create-policy --policy-name AWSIoTFleetwiseAccessIotTopicPermissionsPolicy --policy-document file://permissions-policy.json
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "topic-arn" ] } ] }
Pour associer la politique d'autorisations à votre rôle IAM
  1. À partir de la sortie, copiez l'Amazon Resource Name (ARN) de la politique d'autorisations.

  2. Pour associer la politique d'autorisations IAM à votre rôle IAM, exécutez la commande suivante.

    • permissions-policy-arnRemplacez-le par l'ARN que vous avez copié à l'étape précédente.

    • IotTopicExecutionRoleRemplacez-le par le nom du rôle IAM que vous avez créé.

    aws iam attach-role-policy --policy-arn permissions-policy-arn --role-name IotTopicExecutionRole

Pour plus d'informations, consultez la section Gestion de l'accès aux AWS ressources dans le Guide de l'utilisateur IAM.

Octroi AWS IoT FleetWise accès à une destination Amazon S3

Lorsque vous utilisez une destination Amazon S3, que vous AWS IoT FleetWise transmettez les données du véhicule à votre compartiment S3 et que vous pouvez éventuellement utiliser une AWS KMS clé que vous possédez pour le chiffrement des données. Si la journalisation des erreurs est activée, envoie AWS IoT FleetWise également les erreurs de livraison de données à votre groupe de CloudWatch journaux et à vos flux. Vous devez disposer d'un rôle IAM lors de la création d'un flux de diffusion.

AWS IoT FleetWise utilise une politique de compartiment avec le principal de service pour la destination S3. Pour plus d'informations sur l'ajout de politiques de compartiment, consultez la section Ajouter une politique de compartiment à l'aide de la console Amazon S3 dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Utilisez la politique d'accès suivante pour activer AWS IoT FleetWise l'accès à votre compartiment S3. Si vous n'êtes pas propriétaire du compartiment S3, ajoutez s3:PutObjectAcl à la liste des actions Amazon S3. Cela donne au propriétaire du bucket un accès complet aux objets livrés par AWS IoT FleetWise. Pour plus d'informations sur la manière dont vous pouvez sécuriser l'accès aux objets de vos compartiments, consultez des exemples de politiques relatives aux compartiments dans le guide de l'utilisateur d'Amazon Simple Storage Service.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket-name" }, { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*", "Condition": { "StringEquals": { "aws:SourceArn": "campaign-arn", "aws:SourceAccount": "123456789012" } } } ] }

La politique de bucket suivante s'applique à toutes les campagnes associées à un compte dans une AWS région.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::bucket-name" }, { "Effect": "Allow", "Principal": { "Service": [ "iotfleetwise.amazonaws.com" ] }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:iotfleetwise:region:123456789012:campaign/*", "aws:SourceAccount": "123456789012" } } } ] }

Si une clé KMS est associée à votre compartiment S3, la clé devra respecter la politique suivante. Pour plus d'informations sur la gestion des clés, consultez la section Protection des données à l'aide du chiffrement côté serveur à l'aide de AWS Key Management Service clés (SSE-KMS) dans le guide de l'utilisateur d'Amazon Simple Storage Service.

{ "Version": "2012-10-17", "Effect": "Allow", "Principal": { "Service": "iotfleetwise.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" }
Important

Lorsque vous créez un compartiment, S3 crée une liste de contrôle d'accès (ACL) par défaut qui confère au propriétaire de la ressource un contrôle total sur celle-ci. Si AWS l'IoT ne FleetWise parvient pas à transmettre des données à S3, assurez-vous de désactiver l'ACL sur le compartiment S3. Pour plus d'informations, consultez Désactivation des listes de contrôle d'accès pour tous les nouveaux compartiments et application de la propriété des objets dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Octroi AWS IoT FleetWise accès à une destination Amazon Timestream

Lorsque vous utilisez une destination de flux temporel, AWS IoT FleetWise transmet les données du véhicule à une table de flux temporel. Vous devez associer les politiques au rôle IAM pour permettre d'envoyer des données AWS IoT FleetWise à Timestream.

Si vous utilisez la console pour créer une campagne, AWS IoT associe FleetWise automatiquement la politique requise au rôle.

Note

Amazon Timestream n'est pas disponible dans la région Asie-Pacifique (Mumbai).

Avant de commencer, vérifiez les points suivants :

Important
  • Vous devez utiliser la même AWS région lorsque vous créez des ressources Timestream pour AWS l'IoT. FleetWise Si vous changez de AWS région, il se peut que vous rencontriez des difficultés pour accéder aux ressources du flux temporel.

  • AWS L'IoT FleetWise est disponible dans l'est des États-Unis (Virginie du Nord), en Europe (Francfort) et en Asie-Pacifique (Mumbai).

  • Pour la liste des régions prises en charge, consultez la section Points de terminaison et quotas du flux temporel dans le. Références générales AWS

  • Vous devez disposer d'une base de données Timestream. Pour un didacticiel, consultez la section Création d'une base de données dans le guide du développeur Amazon Timestream.

  • Une table doit être créée dans la base de données Timestream spécifiée. Pour un didacticiel, voir Créer un tableau dans le manuel Amazon Timestream Developer Guide.

Vous pouvez utiliser le AWS CLI pour créer un rôle IAM avec une politique de confiance pour Timestream. Pour créer un rôle IAM, exécutez la commande suivante.

Pour créer un rôle IAM avec une politique de confiance
  • TimestreamExecutionRoleRemplacez-le par le nom du rôle que vous créez.

  • trust-policyRemplacez-le par le fichier .json qui contient la politique de confiance.

aws iam create-role --role-name TimestreamExecutionRole --assume-role-policy-document file://trust-policy.json
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "timestreamTrustPolicy", "Effect": "Allow", "Principal": { "Service": "iotfleetwise.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:iotfleetwise:region:123456789012:campaign/campaign-name" ], "aws:SourceAccount": [ "123456789012" ] } } } ] }

Créez une politique d'autorisations pour autoriser AWS l'IoT FleetWise à écrire des données dans Timestream. Pour créer une politique d'autorisations, exécutez la commande suivante.

Pour créer une politique d'autorisations
  • AWSIoTFleetwiseAccessTimestreamPermissionsPolicyRemplacez-le par le nom de la politique que vous créez.

  • permissions-policyRemplacez-le par le nom du fichier JSON contenant la politique d'autorisations.

aws iam create-policy --policy-name AWSIoTFleetwiseAccessTimestreamPermissionsPolicy --policy-document file://permissions-policy.json
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "timestreamIngestion", "Effect": "Allow", "Action": [ "timestream:WriteRecords", "timestream:Select", "timestream:DescribeTable" ], "Resource": "table-arn" }, { "Sid": "timestreamDescribeEndpoint", "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints" ], "Resource": "*" } ] }
Pour associer la politique d'autorisations à votre rôle IAM
  1. À partir de la sortie, copiez l'Amazon Resource Name (ARN) de la politique d'autorisations.

  2. Pour associer la politique d'autorisations IAM à votre rôle IAM, exécutez la commande suivante.

    • permissions-policy-arnRemplacez-le par l'ARN que vous avez copié à l'étape précédente.

    • TimestreamExecutionRoleRemplacez-le par le nom du rôle IAM que vous avez créé.

    aws iam attach-role-policy --policy-arn permissions-policy-arn --role-name TimestreamExecutionRole

Pour plus d'informations, consultez la section Gestion de l'accès aux AWS ressources dans le Guide de l'utilisateur IAM.

Octroi AWS IoT Device Management autorisation de générer la charge utile pour les commandes avec AWS IoT FleetWise

Lorsque vous utilisez la fonction de commandes pour démarrer l'exécution d'une commande, AWS IoT Device Management la commande et ses paramètres sont extraits de la demande entrante. Il a ensuite besoin d'autorisations pour accéder aux FleetWise ressources AWS IoT afin de valider la demande et de générer la charge utile. La charge utile est ensuite envoyée au véhicule AWS IoT Device Management via MQTT vers la rubrique de demande de commande à laquelle votre véhicule est abonné.

Vous devez d'abord créer un rôle IAM qui accorde AWS IoT Device Management les autorisations requises pour générer la charge utile. Fournissez ensuite l'ARN de ce rôle à l'CreateCommandAPI à l'aide du roleArn champ. Voici quelques exemples de politiques.

Important

Pour le rôle IAM, vous devez utiliser le même Région AWS que celui dans lequel vous avez créé le véhicule et les ressources de commande. Si vous changez Région AWS, vous risquez de rencontrer des difficultés pour accéder aux ressources.

Le rôle IAM doit respecter la politique de confiance suivante.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RemoteCommandsTrustPolicy", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

L'exemple suivant montre comment accorder des autorisations pour générer la charge utile pour tous les véhicules immatriculés en tant que AWS IoT objets.

Note
  • Cette politique peut être trop permissive. Utilisez le principe du moindre privilège pour vous assurer de n'accorder que les autorisations nécessaires.

  • Pour refuser des autorisations, passez "Effect": "Allow" à "Effect": "Deny" dans la politique IAM.

Dans cet exemple, remplacez :

  • regionavec l' Région AWS endroit où vous utilisez les FleetWise ressources AWS IoT.

  • 111122223333avec ton Compte AWS numéro.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "*" } ] }

L'exemple suivant montre comment accorder des autorisations pour générer la charge utile d'un véhicule spécifique enregistré en tant qu' AWS IoT objet.

Dans cet exemple, remplacez :

  • regionavec l' Région AWS endroit où vous utilisez les FleetWise ressources AWS IoT.

  • 111122223333avec ton Compte AWS numéro.

  • <VEHICLE_NAME>avec le nom IoT de votre véhicule.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "arn:aws:iot:us-east-1:111122223333:thing/<VEHICLE_NAME>" } ] }

L'exemple suivant montre comment accorder des autorisations pour générer la charge utile pour l'actionneur d'un véhicule spécifique.

Dans cet exemple, remplacez :

  • regionavec l' Région AWS endroit où vous utilisez les FleetWise ressources AWS IoT.

  • 111122223333avec ton Compte AWS numéro.

  • <VEHICLE_NAME>avec le nom IoT de votre véhicule.

  • <SIGNAL_FQN>avec le nom du signal, par exemple<Vehicle.actuator2>.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "arn:aws:iot:us-east-1:111122223333:thing/<VEHICLE_NAME>", "Condition": { "ForAnyValue:StringEquals": { "iotfleetwise:Signals": [ "<SIGNAL_FQN>" ] } } } ] }

L'exemple suivant montre comment accorder des autorisations pour générer la charge utile pour un véhicule et un modèle d'état spécifiques.

Dans cet exemple, remplacez :

  • regionest l' Région AWS endroit où vous utilisez les FleetWise ressources AWS IoT.

  • 111122223333est ton Compte AWS numéro.

  • <VEHICLE_NAME>est le nom de l'objet IoT pour votre véhicule.

  • <STATE_TEMPLATE_ID>avec l'identifiant de votre modèle d'état.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": [ "arn:aws:iot:us-east-1:111122223333:thing/<VEHICLE_NAME>", "arn:aws:iotfleetwise:us-east-1:111122223333:state-template/<STATE_TEMPLATE_ID>" ] } ] }

Si vous avez activé les clés KMS gérées par le client pour AWS IoT FleetWise, l'exemple suivant montre comment accorder des autorisations pour générer la charge utile.

Dans cet exemple, remplacez :

  • regionavec l' Région AWS endroit où vous utilisez les FleetWise ressources AWS IoT.

  • 111122223333avec ton Compte AWS numéro.

  • <KMS_KEY_ID>avec l'identifiant de votre clé KMS.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotfleetwise:GenerateCommandPayload", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-1:111122223333:key/<KMS_KEY_ID>" } ] }