Création et gestion d'un rôle de service pour AWS IoT TwinMaker - AWS IoT TwinMaker

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.

Création et gestion d'un rôle de service pour AWS IoT TwinMaker

AWS IoT TwinMaker nécessite que vous utilisiez un rôle de service pour lui permettre d'accéder aux ressources d'autres services en votre nom. Ce rôle doit entretenir une relation de confiance avec AWS IoT TwinMaker. Lorsque vous créez un espace de travail, vous devez lui attribuer ce rôle. Cette rubrique contient des exemples de politiques qui vous montrent comment configurer les autorisations pour les scénarios courants.

Attribuez la confiance

La politique suivante établit une relation de confiance entre votre rôle et AWS IoT TwinMaker. Attribuez cette relation de confiance au rôle que vous utilisez pour votre espace de travail.

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

Autorisations Amazon S3

La politique suivante autorise votre rôle à lire, supprimer et écrire dans un compartiment Amazon S3. Les espaces de travail stockent les ressources dans Amazon S3. Les autorisations Amazon S3 sont donc requises pour tous les espaces de travail.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucket*", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Effect": "Allow", "Action": [ "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::*/DO_NOT_DELETE_WORKSPACE_*" ] } ] }
Note

Lorsque vous créez un espace de travail, un fichier est AWS IoT TwinMaker créé dans votre compartiment Amazon S3 qui indique qu'il est utilisé par un espace de travail. Cette politique AWS IoT TwinMaker autorise la suppression de ce fichier lorsque vous supprimez l'espace de travail.

AWS IoT TwinMaker place d'autres objets liés à votre espace de travail. Il est de votre responsabilité de supprimer ces objets lorsque vous supprimez un espace de travail.

Attribuer des autorisations à un compartiment Amazon S3 spécifique

Lorsque vous créez un espace de travail dans la AWS IoT TwinMaker console, vous pouvez choisir de AWS IoT TwinMaker créer un compartiment Amazon S3 pour vous. Vous pouvez trouver des informations sur ce bucket à l'aide de la AWS CLI commande suivante.

aws iottwinmaker get-workspace --workspace-id workspace name

L'exemple suivant montre le format de sortie de cette commande.

{ "arn": "arn:aws:iottwinmaker:region:account Id:workspace/workspace name", "creationDateTime": "2021-11-30T11:30:00.000000-08:00", "description": "", "role": "arn:aws:iam::account Id:role/service role name", "s3Location": "arn:aws:s3:::bucket name", "updateDateTime": "2021-11-30T11:30:00.000000-08:00", "workspaceId": "workspace name" }

Pour mettre à jour votre politique afin qu'elle attribue des autorisations pour un compartiment Amazon S3 spécifique, utilisez la valeur debucket name.

La politique suivante permet à votre rôle de lire, de supprimer et d'écrire dans un compartiment Amazon S3 spécifique.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucket*", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket name", "arn:aws:s3:::bucket name/*" ] }, { "Effect": "Allow", "Action": [ "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::iottwinmakerbucket/DO_NOT_DELETE_WORKSPACE_*" ] } ] }

Autorisations pour les connecteurs intégrés

Si votre espace de travail interagit avec d'autres AWS services à l'aide de connecteurs intégrés, vous devez inclure les autorisations pour ces services dans cette politique. Si vous utilisez le type de composant com.amazon.iotsitewise.connector, vous devez inclure des autorisations pour. AWS IoT SiteWise Pour plus d'informations sur les types de composants, consultezUtilisation et création de types de composants.

Note

Si vous interagissez avec d'autres AWS services à l'aide d'un type de composant personnalisé, vous devez accorder au rôle l'autorisation d'exécuter la fonction Lambda qui implémente la fonction dans votre type de composant. Pour de plus amples informations, veuillez consulter Autorisations pour un connecteur vers une source de données externe.

L'exemple suivant montre comment inclure AWS IoT SiteWise dans votre politique.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucket*", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket name", "arn:aws:s3:::bucket name/*" ] }, { "Effect": "Allow", "Action": [ "iotsitewise:DescribeAsset" ], "Resource": "asset ARN" }, { "Effect": "Allow", "Action": [ "iotsitewise:DescribeAssetModel" ], "Resource": "asset model ARN" }, { "Effect": "Allow", "Action": [ "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::*/DO_NOT_DELETE_WORKSPACE_*" ] } ] }

Si vous utilisez le type de composant com.amazon.iotsitewise.connector et que vous devez lire des données de propriété AWS IoT SiteWise, vous devez inclure l'autorisation suivante dans votre politique.

... { "Action": [ "iotsitewise:GetPropertyValueHistory", ], "Resource": [ "AWS IoT SiteWise asset resource ARN" ], "Effect": "Allow" }, ...

Si vous utilisez le type de composant com.amazon.iotsitewise.connector et que vous devez y écrire des données de propriété AWS IoT SiteWise, vous devez inclure l'autorisation suivante dans votre politique.

... { "Action": [ "iotsitewise:BatchPutPropertyValues", ], "Resource": [ "AWS IoT SiteWise asset resource ARN" ], "Effect": "Allow" }, ...

Si vous utilisez le type de composant com.amazon.iotsitewise.connector.edgevideo, vous devez inclure les autorisations pour et Kinesis Video Streams. AWS IoT SiteWise L'exemple de politique suivant montre comment inclure AWS IoT SiteWise les autorisations Kinesis Video Streams dans votre politique.

... { "Action": [ "iotsitewise:DescribeAsset", "iotsitewise:GetAssetPropertyValue" ], "Resource": [ "AWS IoT SiteWise asset resource ARN for the Edge Connector for Kinesis Video Streams" ], "Effect": "Allow" }, { "Action": [ "iotsitewise:DescribeAssetModel" ], "Resource": [ "AWS IoT SiteWise model resource ARN for the Edge Connector for Kinesis Video Streams" ], "Effect": "Allow" }, { "Action": [ "kinesisvideo:DescribeStream" ], "Resource": [ "Kinesis Video Streams stream ARN" ], "Effect": "Allow" }, ...

Autorisations pour un connecteur vers une source de données externe

Si vous créez un type de composant qui utilise une fonction qui se connecte à une source de données externe, vous devez autoriser votre rôle de service à utiliser la fonction Lambda qui implémente la fonction. Pour plus d'informations sur la création de types de composants et de fonctions, consultezUtilisation et création de types de composants.

L'exemple suivant autorise votre rôle de service à utiliser une fonction Lambda.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucket*", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket name", "arn:aws:s3:::bucket name/*" ] }, { "Action": [ "lambda:invokeFunction" ], "Resource": [ "Lambda function ARN" ], "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::*/DO_NOT_DELETE_WORKSPACE_*" ] } ] }

Pour plus d'informations sur la création de rôles et leur attribution de politiques et de relations de confiance à l'aide de la console IAM, de l' AWS CLI API IAM, voir Création d'un rôle pour déléguer des autorisations à un. Service AWS

Modifiez le rôle IAM de votre espace de travail pour utiliser le connecteur de données Athena

Pour utiliser le connecteur de données tabulaires AWS IoT TwinMaker Athena, vous devez mettre à jour le rôle IAM de votre AWS IoT TwinMaker espace de travail. Ajoutez les autorisations suivantes au rôle IAM de votre espace de travail :

Note

Cette modification IAM ne fonctionne que pour les données tabulaires Athena stockées avec AWS Glue Amazon S3. Pour utiliser Athena avec d'autres sources de données, vous devez configurer un rôle IAM pour Athena, voir Gestion des identités et des accès dans Athena.

{ "Effect": "Allow", "Action": [ "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetTableMetadata", "athena:GetWorkGroup", "athena:StartQueryExecution", "athena:StopQueryExecution" ], "Resource": [ "athena resouces arn" ] },// Athena permission { "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases" ], "Resource": [ "glue resouces arn" ] },// This is an example for accessing aws glue { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "Amazon S3 data source bucket resources arn" ] }, // S3 bucket for storing the tabular data. { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:PutObject", "s3:PutBucketPublicAccessBlock" ], "Resource": [ "S3 query result bucket resources arn" ] } // Storing the query results

Consultez la section Gestion des identités et des accès dans Athena pour plus d'informations sur la configuration d'Athena IAM.