Crear y administrar un rol de servicio para AWS IoT TwinMaker - AWS IoT TwinMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crear y administrar un rol de servicio para AWS IoT TwinMaker

AWS IoT TwinMaker requiere que utilice un rol de servicio para permitir que obtenga acceso a los recursos de otros servicios en su nombre. Este rol debe tener una relación de confianza con AWS IoT TwinMaker. Al crear un espacio de trabajo, debe asignar este rol al espacio de trabajo. Este tema contiene ejemplos de políticas que le muestran cómo configurar permisos para escenarios comunes.

Asignar confianza

La siguiente política establece una relación de confianza entre su función y AWS IoT TwinMaker. Asigna esta relación de confianza al rol que utiliza para su espacio de trabajo.

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

Permisos de Amazon S3

La siguiente política permite a su rol leer, eliminar y escribir en un bucket de Amazon S3. Los espacios de trabajo almacenan recursos en Amazon S3, por lo que los permisos de Amazon S3 son necesarios para todos los espacios de trabajo.

{ "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_*" ] } ] }
nota

Cuando creas un espacio de trabajo, AWS IoT TwinMaker crea un archivo en tu bucket de Amazon S3 que indica que lo está utilizando un espacio de trabajo. Esta política da AWS IoT TwinMaker permiso para eliminar ese archivo cuando eliminas el espacio de trabajo.

AWS IoT TwinMaker coloca otros objetos relacionados con su espacio de trabajo. Es su responsabilidad eliminar estos objetos al eliminar un espacio de trabajo.

Asignar permisos a un bucket de Amazon S3 específico

Al crear un espacio de trabajo en la AWS IoT TwinMaker consola, puede optar por AWS IoT TwinMaker crear un bucket de Amazon S3 para usted. Puede encontrar información sobre este depósito mediante el siguiente AWS CLI comando.

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

El siguiente ejemplo muestra el formato de los resultados de este comando.

{ "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" }

Para actualizar su política de modo que asigne permisos a un bucket de Amazon S3 específico, utilice el valor del nombre del bucket.

La siguiente política permite a su rol leer, eliminar y escribir en un bucket de Amazon S3.

{ "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_*" ] } ] }

Permisos para conectores integrados

Si su espacio de trabajo interactúa con otros AWS servicios mediante conectores integrados, debe incluir los permisos para esos servicios en esta política. Si utiliza el tipo de componente com.amazon.iotsitewise.connector, debe incluir los permisos para AWS IoT SiteWise. Para obtener más información acerca de los tipos de componentes, consulte Uso y creación de tipos de componentes.

nota

Si interactúa con otros AWS servicios mediante un tipo de componente personalizado, debe conceder al rol permiso para ejecutar la función Lambda que implementa la función en su tipo de componente. Para obtener más información, consulte Permisos para un conector a un origen de datos externo.

En el siguiente ejemplo, se muestra cómo incluirlo AWS IoT SiteWise en la política.

{ "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 utilizas el tipo de componente com.amazon.iotsitewise.connector y necesitas leer los datos de las propiedades AWS IoT SiteWise, debes incluir el siguiente permiso en tu política.

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

Si utilizas el tipo de componente com.amazon.iotsitewise.connector y necesitas escribir datos de propiedad en él, debes incluir el siguiente permiso en tu política. AWS IoT SiteWise

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

Si utiliza el tipo de componente com.amazon.iotsitewise.connector.edgevideo, debe incluir los permisos para Kinesis Video Streams. AWS IoT SiteWise El siguiente ejemplo de política muestra cómo incluir los permisos AWS IoT SiteWise de Kinesis Video Streams en su política.

... { "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" }, ...

Permisos para un conector a un origen de datos externo

Si crea un tipo de componente que utiliza una función que se conecta a un origen de datos externo, debe conceder permiso a su rol de servicio para usar la función de Lambda que implementa la función. Para obtener más información sobre la creación de tipos de componentes y funciones, consulte Uso y creación de tipos de componentes.

El siguiente ejemplo da permiso a su rol de servicio para usar una función de Lambda.

{ "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_*" ] } ] }

Para obtener más información sobre cómo crear roles y asignarles políticas y relaciones de confianza mediante la consola de IAM, la API de IAM y la AWS CLI API de IAM, consulte Crear un rol para delegar permisos a un. Servicio de AWS

Modifique el rol de IAM de su espacio de trabajo para utilizar el conector de datos Athena

Para utilizar el conector de datos tabulares AWS IoT TwinMaker Athena, debe actualizar la función de IAM de su AWS IoT TwinMaker espacio de trabajo. Añada los siguientes permisos al rol de IAM de su espacio de trabajo:

nota

Este cambio de IAM solo funciona para los datos tabulares de Athena almacenados en AWS Glue Amazon S3. Para usar Athena con otros orígenes de datos, debe configurar un rol de IAM para Athena, consulte Administración de identidades y acceso en 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

Lea la sección Administración de identidades y acceso en Athena para obtener más información sobre la configuración de IAM de Athena.