建立和管理 的服務角色 AWS IoT TwinMaker - AWS IoT TwinMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立和管理 的服務角色 AWS IoT TwinMaker

AWS IoT TwinMaker 要求您使用服務角色,以允許它代表您存取其他 服務中的資源。此角色必須與 具有信任關係 AWS IoT TwinMaker。建立工作區時,您必須將此角色指派給工作區。本主題包含示範如何設定常見案例許可的範例政策。

指派信任

下列政策會在您的角色與 之間建立信任關係 AWS IoT TwinMaker。將此信任關係指派給您用於工作區的角色。

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

Amazon S3 許可

下列政策可讓您的角色從 Amazon S3 儲存貯體讀取和刪除和寫入。Workspaces 在 Amazon S3 中存放資源,因此所有工作區都需要 Amazon S3 許可。

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

當您建立工作區時, 會在 Amazon S3 儲存貯體中 AWS IoT TwinMaker 建立檔案,指出工作區正在使用該檔案。當您刪除工作區時,此政策會授予刪除該檔案的 AWS IoT TwinMaker 許可。

AWS IoT TwinMaker 會放置與工作區相關的其他物件。刪除工作區時,您有責任刪除這些物件。

將許可指派給特定 Amazon S3 儲存貯體

當您在 AWS IoT TwinMaker 主控台中建立工作區時,您可以選擇 AWS IoT TwinMaker 為您建立 Amazon S3 儲存貯體。您可以使用下列 AWS CLI 命令找到此儲存貯體的相關資訊。

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

下列範例顯示此命令輸出的格式。

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

若要更新您的政策,以便為特定 Amazon S3 儲存貯體指派許可,請使用 的值 bucket name.

下列政策可讓您的角色從特定 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_*" ] } ] }

內建連接器的許可

如果您的工作區使用內建連接器與其他 AWS 服務互動,您必須在此政策中包含這些服務的許可。如果您使用 com.amazon.iotsitewise.connector 元件類型,則必須包含 的許可 AWS IoT SiteWise。如需元件類型的詳細資訊,請參閱 使用和建立元件類型

注意

如果您使用自訂元件類型與其他 AWS 服務互動,您必須授予角色許可,才能執行在元件類型中實作 函數的 Lambda 函數。如需詳細資訊,請參閱外部資料來源連接器的許可

下列範例顯示如何包含在政策 AWS IoT SiteWise 中。

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

如果您使用 com.amazon.iotsitewise.connector 元件類型,且需要從 讀取屬性資料 AWS IoT SiteWise,則必須在政策中包含下列許可。

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

如果您使用 com.amazon.iotsitewise.connector 元件類型,且需要將屬性資料寫入 AWS IoT SiteWise,則必須在政策中包含下列許可。

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

如果您使用 com.amazon.iotsitewise.connector.edgevideo 元件類型,則必須包含 AWS IoT SiteWise 和 Kinesis Video Streams 的許可。下列範例政策示範如何在政策中包含 AWS IoT SiteWise 和 Kinesis Video Streams 許可。

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

外部資料來源連接器的許可

如果您建立的元件類型使用連接至外部資料來源的 函數,您必須授予服務角色許可,才能使用實作 函數的 Lambda 函數。如需建立元件類型和函數的詳細資訊,請參閱 使用和建立元件類型

下列範例授予服務角色使用 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_*" ] } ] }

如需使用IAM主控台、 和 來建立角色和為其指派政策和信任關係的詳細資訊 AWS CLI IAMAPI,請參閱建立角色以將許可委派給 AWS 服務

修改工作區IAM角色以使用 Athena 資料連接器

若要使用 AWS IoT TwinMaker Athena 表格式資料連接器 ,您必須更新 AWS IoT TwinMaker 工作區IAM角色。將下列許可新增至工作區IAM角色:

注意

此IAM變更僅適用於與 AWS Glue 和 Amazon S3 一起存放的 Athena 表格資料。若要將 Athena 與其他資料來源搭配使用,您必須為 Athena 設定IAM角色,請參閱 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

如需 Athena 組態的詳細資訊,請參閱 Athena 中的 Identity 和存取管理。 IAM