ダッシュボード IAM ロールの作成 - AWS IoT TwinMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ダッシュボード IAM ロールの作成

を使用すると AWS IoT TwinMaker、Grafana ダッシュボードのデータアクセスを制御できます。Grafana ダッシュボードのユーザーは、データを表示したり、場合によってはデータを書き込んだりするために、さまざまなアクセス許可の範囲を持つ必要があります。例えば、アラームオペレーターには動画を視聴するアクセス許可がない場合がありますが、管理者にはすべてのリソースに対するアクセス許可があります。Grafana は、認証情報と IAM ロールが提供されるデータソースを通じてアクセス許可を定義します。 AWS IoT TwinMaker データソースは、そのロールのアクセス許可を持つ AWS 認証情報を取得します。IAM ロールが指定されていない場合、Grafana は認証情報の範囲を使用しますが、これを減らすことはできません AWS IoT TwinMaker。

Grafana で AWS IoT TwinMaker ダッシュボードを使用するには、IAM ロールを作成し、ポリシーをアタッチします。次のテンプレートを使用して、これらのポリシーを作成できます。

IAM ポリシーを作成する

IAM コンソールで YourWorkspaceIdDashboardPolicy と呼ばれる IAM ポリシーを作成します。このポリシーは、ワークスペースに Amazon S3 バケットと AWS IoT TwinMaker リソースへのアクセスを許可します。また、AWS IoT Greengrass Amazon Kinesis Video Streams 用の Edge Connector を使用することもできます。これには、コンポーネント用に設定された Kinesis Video Streams と AWS IoT SiteWise アセットのアクセス許可が必要です。ユースケースに合わせて、次のいずれかのポリシーテンプレートを選択します。

1. 動画へのアクセス許可なしポリシー

Grafana のビデオプレイヤーパネルを使用しない場合は、次のテンプレートを使用してポリシーを作成します。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucketName/*", "arn:aws:s3:::bucketName" ] }, { "Effect": "Allow", "Action": [ "iottwinmaker:Get*", "iottwinmaker:List*" ], "Resource": [ "arn:aws:iottwinmaker:region:accountId:workspace/workspaceId", "arn:aws:iottwinmaker:region:accountId:workspace/workspaceId/*" ] }, { "Effect": "Allow", "Action": "iottwinmaker:ListWorkspaces", "Resource": "*" } ] }

Amazon S3 の各バケットは、ワークスペースごとに作成されます。ダッシュボードに表示できる 3D モデルとシーンが含まれています。SceneViewer パネルは、このバケットから項目をロードします。

2。動画へのアクセス許可範囲絞り込みポリシー

Grafana の Video Player パネルへのアクセスを制限するには、 AWS IoT Greengrass Edge Connector for Amazon Kinesis Video Streams リソースをタグでグループ化します。動画リソースへのアクセス許可範囲を絞り込む方法の詳細については、「AWS IoT TwinMaker ビデオプレイヤーポリシーの作成」を参照してください。

3. すべての動画へのアクセス許可

動画をグループ化しない場合は、Grafana ビデオプレイヤーからすべての動画にアクセスできるようにすることができます。Grafana ワークスペースにアクセスできるユーザーは、アカウント内の任意のストリームの動画を再生でき、任意の AWS IoT SiteWise アセットへの読み取り専用アクセス権を持ちます。これには、今後作成されるすべてのリソースが含まれます。

次のテンプレートを使用してポリシーを作成します。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucketName/*", "arn:aws:s3:::bucketName" ] }, { "Effect": "Allow", "Action": [ "iottwinmaker:Get*", "iottwinmaker:List*" ], "Resource": [ "arn:aws:iottwinmaker:region:accountId:workspace/workspaceId", "arn:aws:iottwinmaker:region:accountId:workspace/workspaceId/*" ] }, { "Effect": "Allow", "Action": "iottwinmaker:ListWorkspaces", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kinesisvideo:GetDataEndpoint", "kinesisvideo:GetHLSStreamingSessionURL" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iotsitewise:GetAssetPropertyValue", "iotsitewise:GetInterpolatedAssetPropertyValues" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iotsitewise:BatchPutAssetPropertyValue" ], "Resource": "*", "Condition": { "StringLike": { "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*" } } } ] }

このポリシーテンプレートで、次のアクセス許可が付与されます。

  • シーンをロードするための S3 バケットへの読み取り専用アクセス。

  • ワークスペース AWS IoT TwinMaker 内のすべてのエンティティとコンポーネントの への読み取り専用アクセス。

  • アカウント内のすべての Kinesis Video Streams 動画をストリーミングするための読み取り専用アクセス。

  • アカウント内のすべての AWS IoT SiteWise アセットのプロパティ値履歴への読み取り専用アクセス。

  • キー EdgeConnectorForKVSと値 でタグ付けされた AWS IoT SiteWise アセットのプロパティへのデータ取り込みworkspaceId

エッジからのカメラ AWS IoT SiteWise アセットリクエストビデオアップロードのタグ付け

Grafana のビデオプレイヤーを使用すると、ユーザーは動画をエッジキャッシュから Kinesis Video Streams にアップロードするよう手動でリクエストできます。この機能は、Amazon Kinesis Video Streams 用 AWS IoT Greengrass Edge Connector に関連付けられており、キー でタグ付けされている AWS IoT SiteWise アセットに対して有効にできますEdgeConnectorForKVS

タグ値には、以下の文字のいずれかで区切られた WorkspaceID のリストを使用できます: . : + = @ _ / -。例えば、 AWS IoT TwinMaker ワークスペース間で AWS IoT Greengrass Edge Connector for Amazon Kinesis Video Streams に関連付けられた AWS IoT SiteWise アセットを使用する場合は、次のパターンに従うタグを使用できます: WorkspaceA/WorkspaceB/WorkspaceC。Grafana プラグインは、 AWS IoT TwinMaker workspaceId を使用して AWS IoT SiteWise アセットデータの取り込みをグループ化することを強制します。

ダッシュボードポリシーにさらにアクセス許可を追加する

AWS IoT TwinMaker Grafana プラグインは、認証プロバイダーを使用して、作成したダッシュボードロールで AssumeRole を呼び出します。内部的には、プラグインは AssumeRole 呼び出しのセッションポリシーを使用して、アクセス許可の最大範囲を制限します。セッションポリシーの詳細については、「セッションポリシー」を参照してください。

AWS IoT TwinMaker ワークスペースのダッシュボードロールに設定できる最大許容ポリシーは次のとおりです。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::bucketName/*", "arn:aws:s3:::bucketName" ] }, { "Effect": "Allow", "Action": [ "iottwinmaker:Get*", "iottwinmaker:List*" ], "Resource": [ "arn:aws:iottwinmaker:region:accountId:workspace/workspaceId", "arn:aws:iottwinmaker:region:accountId:workspace/workspaceId/*" ] }, { "Effect": "Allow", "Action": "iottwinmaker:ListWorkspaces", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kinesisvideo:GetDataEndpoint", "kinesisvideo:GetHLSStreamingSessionURL" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iotsitewise:GetAssetPropertyValue", "iotsitewise:GetInterpolatedAssetPropertyValues" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iotsitewise:BatchPutAssetPropertyValue" ], "Resource": "*", "Condition": { "StringLike": { "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*" } } } ] }

アクセス許可Allowを追加すると、 AWS IoT TwinMaker プラグインでは機能しません。これは、プラグインが必要最小限のアクセス許可を使用するための設計によるものです。

ただし、アクセス許可の範囲をさらに絞り込むこともできます。詳細については、「AWS IoT TwinMaker ビデオプレイヤーポリシーの作成」を参照してください。

Grafana ダッシュボード IAM ロールの作成

IAM コンソールを使用して YourWorkspaceIdDashboardRole と呼ばれる IAM ロールを作成します。YourWorkspaceIdDashboardPolicy をロールにアタッチします。

ダッシュボードロールの信頼ポリシーを編集するには、Grafana 認証プロバイダーに AssumeRole をダッシュボードロールに呼び出すためのアクセス許可を付与する必要があります。次のテンプレートを使用して信頼ポリシーを更新します。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "ARN of Grafana authentication provider" }, "Action": "sts:AssumeRole" } ] }

Grafana 環境の作成と認証プロバイダーの検索の詳細については、「Grafana 環境の設定」を参照してください。