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 バケットの読み書きをロールで許可します。ワークスペースは 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 バケットにアクセス許可を割り当てるようにポリシーを更新するには、バケット名の値を使用します。

次のポリシーでは、ロールによる特定の 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 コンソール、、および IAM API を使用してロールを作成し、ポリシー AWS CLIと信頼関係を割り当てる方法の詳細については、「 にアクセス許可を委任するロールの作成 AWS のサービス」を参照してください。

Athena データコネクタを使用するようにワークスペース IAM ロールを変更する

AWS IoT TwinMaker Athena 表形式データコネクタ を使用するには、 AWS IoT TwinMaker ワークスペースの IAM ロールを更新する必要があります。ワークスペース IAM ロールに次のアクセス許可を追加する:

注記

この IAM 変更は、 AWS Glue および Amazon S3 に保存されている Athena 表形式データでのみ機能します。Athena を他のデータソースで使用するには、Athena の IAM ロールを設定する必要があります。「Athena の ID とアクセス管理」を参照してください。

{ "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 の ID とアクセス管理」をご覧ください。