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

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

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

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

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

IAM ポリシーを作成する

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

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

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

{ "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 のビデオプレーヤーパネルへのアクセスを制限するには、Amazon Kinesis Video Stream用 AWS IoT Greengrass エッジコネクタのリソースをタグ別にグループ化します。動画リソースへのアクセス許可範囲を絞り込む方法の詳細については、「AWS IoT TwinMaker ビデオプレーヤーポリシーの作成」を参照してください。

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

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

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

{ "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 への読み取り専用アクセス。

  • アカウント内のすべての キネシス ビデオ ストリーム 動画をストリーミングするための読み取り専用アクセス。

  • アカウント内のすべての AWS IoT SiteWise アセットの資産価値履歴への読み取り専用アクセス。

  • キー EdgeConnectorForKVS と値 workspaceId がタグ付けされた AWS IoT SiteWise アセットの任意のプロパティへのデータインジェスト。

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

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

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

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

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

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

{ "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 をダッシュボードロールに呼び出すためのアクセス許可を付与する必要があります。次のテンプレートを使用して信頼ポリシーを更新します。

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

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