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

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

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

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

指派信任

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

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

Amazon S3 許可

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

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

當您建立工作區時, 會在 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 儲存貯體的許可,請使用儲存貯體名稱的值。

下列政策可讓您的角色從特定 Amazon S3 儲存貯體讀取和刪除和寫入。

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

內建連接器的許可

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

注意

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

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

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

如果您使用 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 函數的許可。

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

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

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

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

注意

此 IAM 變更僅適用於與 AWS Glue 和 Amazon S3 一起存放的 Athena 表格式資料。若要將 Athena 與其他資料來源搭配使用,您必須為 Athena 設定 IAM 角色,請參閱 Athena 中的 Identity and Access Management

{ "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 IAM 組態的詳細資訊,請參閱 Athena 中的 Identity and Access Management