

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

# AWS IoT TwinMaker Grafana ダッシュボードの統合
<a name="grafana-integration"></a>

AWS IoT TwinMaker は、アプリケーションプラグインを介した Grafana 統合をサポートします。Grafana バージョン 10.4.0 以降のバージョンを使用して、デジタルツインアプリケーションを操作します。 AWS IoT TwinMaker プラグインには、デジタルツインデータに接続するためのカスタムパネル、ダッシュボードテンプレート、データソースが用意されています。

Grafana のオンボーディングとダッシュボードのアクセス許可の設定方法の詳細については、次のトピックを参照してください。

**Topics**
+ [Grafana シーンビューアーの CORS の設定](cors-configuration-grafana.md)
+ [Grafana 環境の設定](grafana-environment.md)
+ [ダッシュボード IAM ロールの作成](dashboard-IAM-role.md)
+ [AWS IoT TwinMaker ビデオプレイヤーポリシーの作成](tm-video-policy.md)

**注記**  
Amazon S3 バケットの CORS (クロスオリジンリソース共有) の設定を変更して、Grafana ユーザーインターフェイスがバケットからリソースをロードできるようにする必要があります。手順については、「[Grafana シーンビューアーの CORS の設定](cors-configuration-grafana.md)」を参照してください。

 AWS IoT TwinMaker Grafana プラグインの詳細については、[AWS IoT TwinMaker アプリ](https://grafana.com/grafana/plugins/grafana-iot-twinmaker-app/)のドキュメントを参照してください。

Grafana プラグインの主要コンポーネントについては、以下を参照してください。
+ [AWS IoT TwinMaker データソース](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/datasource/README.md)
+ [ダッシュボードテンプレート](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/datasource/dashboards/README.md)
+ [シーンビューアーパネル](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/scene-viewer/README.md)
+ [ビデオプレイヤーパネル](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/video-player/README.md)

# Grafana シーンビューアーの CORS の設定
<a name="cors-configuration-grafana"></a>

 AWS IoT TwinMaker Grafana プラグインには CORS (クロスオリジンリソース共有) 設定が必要です。これにより、Grafana ユーザーインターフェイスは Amazon S3 バケットからリソースをロードできます。CORS の設定がないと、Grafana ドメインは Amazon S3 バケット内のリソースにアクセスできないため、シーンビューアーに「ネットワーク障害により 3D シーンのロードに失敗しました」というエラーメッセージが表示されます。

Amazon S3 バケットに CORS を設定するには、次の手順を実行します。

1. IAM コンソールにサインインし、[Amazon S3 コンソール](https://console.aws.amazon.com/s3/)を開きます。

1. **バケット**リストで、 AWS IoT TwinMaker ワークスペースのリソースバケットとして使用するバケットの名前を選択します。

1. 「**アクセス許可**」 を選択します。

1. **[クロスオリジンリソース共有]** セクションで **[編集]** を選択して CORS エディタを開きます。

1.  **[CORS 設定エディタ]** のテキストボックスで、Grafana ワークスペースドメイン `GRAFANA-WORKSPACE-DOMAIN` を自分のドメインに置き換えて、次の JSON CORS 設定を入力するか、コピーして貼り付けます。
**注記**  
`"AllowedOrigins":` JSON 要素の先頭にあるアスタリスク `*` 文字はそのままにしておく必要があります。

   ```
           [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "GET",
               "PUT",
               "POST",
               "DELETE",
               "HEAD"
           ],
           "AllowedOrigins": [
               "*GRAFANA-WORKSPACE-DOMAIN"
           ],
           "ExposeHeaders": [
               "ETag"
           ]
       }
   ]
   ```

1. **変更を保存**を選択して CORS 設定を完了します。

Amazon S3 バケットでの CORS の詳細については、[「Cross-Origin Resource Sharing (CORS) ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html)の使用」を参照してください。

# Grafana 環境の設定
<a name="grafana-environment"></a>

Amazon Managed Grafana を使用してフルマネージド型のサービスを使用することも、自分で管理する Grafana 環境を設定することもできます。Amazon Managed Grafana を使用すると、オープンソースの Grafana をニーズに合わせて迅速にデプロイ、運用、スケールできます。または、Grafana サーバーを管理する独自のインフラストラクチャを設定することもできます。

Grafana 環境オプションの詳細については、次のトピックを参照してください。
+ [Amazon Managed Grafana](amazon-managed-grafana.md)
+ [セルフマネージド型 Grafana](self-managed-grafana.md)

# Amazon Managed Grafana
<a name="amazon-managed-grafana"></a>

Amazon Managed Grafana には AWS IoT TwinMaker プラグインが用意されているため、Grafana AWS IoT TwinMaker とすばやく統合できます。Amazon Managed Grafana が Grafana サーバーを管理するため、お客様はハードウェアやその他の Grafana インフラストラクチャを構築、パッケージ化、デプロイすることなく、データを視覚化することができます。Amazon Managed Grafana の詳細については、「[Amazon Managed Grafana とは](https://docs.aws.amazon.com//grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)」を参照してください。

**注記**  
Amazon Managed Grafana は現在、Grafana プラグインのバージョン **1.3.1** AWS IoT TwinMaker をサポートしています。

## Amazon Managed Grafana の前提条件
<a name="amazon-managed-grafana-prereqs"></a>

Amazon Managed Grafana ダッシュボード AWS IoT TwinMaker で を使用するには、まず次の前提条件を完了します。
+  AWS IoT TwinMaker ワークスペースを作成します。ワークスペースの作成の詳細については、[「 の開始方法 AWS IoT TwinMaker](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/twinmaker-gs.html)」を参照してください。

**注記**  
 AWS マネジメントコンソールで Amazon Managed Grafana ワークスペースを初めて作成する場合、 AWS IoT TwinMaker は表示されません。ただし、プラグインはすべてのワークスペースに既にインストールされています。 AWS IoT TwinMaker プラグインはオープンソースのGrafana プラグインリストで確認できます。 AWS IoT TwinMaker データソースは、[データソース] ページで **[データソースを追加]** を選択することで確認できます。

Amazon Managed Grafana ワークスペースを作成すると、Grafana インスタンスのアクセス許可を管理するための IAM ロールが自動的に作成されます。これは**ワークスペース IAM ロール**と呼ばれます。これは、Grafana のすべての AWS IoT TwinMaker データソースを設定するために使用する認証プロバイダーオプションです。Amazon Managed Grafana は AWS IoT TwinMakerのアクセス許可の自動追加をサポートしていないため、これらのアクセス許可は手動で設定する必要があります。手動によるアクセス許可の詳細については、「[ダッシュボード IAM ロールの作成](dashboard-IAM-role.md)」を参照してください。

# セルフマネージド型 Grafana
<a name="self-managed-grafana"></a>

Grafana を実行する独自のインフラストラクチャをホストすることを選択できます。Grafana をマシン上でローカルで実行する方法については、「[Grafana のインストール](https://grafana.com/docs/grafana/latest/installation/)」を参照してください。 AWS IoT TwinMaker プラグインは、公開中の Grafana カタログで利用可能です。このプラグインを Grafana 環境にインストールする方法については、「[AWS IoT TwinMaker アプリケーション](https://grafana.com/grafana/plugins/grafana-iot-twinmaker-app/?tab=installation)」を参照してください。

Grafana をローカルで実行する場合、ダッシュボードを簡単に共有したり、複数のユーザーにアクセスを提供したりすることはできません。ローカル Grafana を使ったダッシュボードの共有に関するスクリプト形式のクイックスタートガイドについては、「[AWS IoT TwinMaker サンプルリポジトリ](https://github.com/aws-samples/aws-iot-twinmaker-samples)」を参照してください。このリソースでは、Grafana 環境を Cloud9 で、Amazon EC2 をパブリックエンドポイントでホストする手順を説明します。

TwinMaker データソースの設定にどの認証プロバイダーを使用するかを決定する必要があります。環境の認証情報は、デフォルトの認証情報チェーンに基づいて設定します (「[デフォルトの認証情報プロバイダーチェーンの使用](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default)」を参照)。デフォルト認証情報は、どのユーザーまたはロールの永久認証情報でもかまいません。例えば、Amazon EC2 で Grafana を実行している場合、デフォルトの認証情報チェーンは [Amazon EC2 実行ロール](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)にアクセスでき、これが認証プロバイダーになります。[ダッシュボード IAM ロールの作成](dashboard-IAM-role.md) の手順では、認証プロバイダーの IAM Amazon リソースネーム (ARN) が必要です。

# ダッシュボード IAM ロールの作成
<a name="dashboard-IAM-role"></a>

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

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

## IAM ポリシーを作成する
<a name="IAM-policy"></a>

IAM コンソールで `YourWorkspaceIdDashboardPolicy` と呼ばれる IAM ポリシーを作成します。このポリシーは、ワークスペースに Amazon S3 バケットと AWS IoT TwinMaker リソースへのアクセスを許可します。また、[AWS IoT Greengrass Amazon Kinesis Video Streams 用の Edge Connector](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/video-integration.html) を使用することもできます。これには、コンポーネント用に設定された Kinesis Video Streams と AWS IoT SiteWise アセットに対するアクセス許可が必要です。ユースケースに合わせて、次のいずれかのポリシーテンプレートを選択します。

**1. 動画へのアクセス許可なしポリシー**  
Grafana の[ビデオプレイヤーパネル](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/video-player/README.md)を使用しない場合は、次のテンプレートを使用してポリシーを作成します。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iottwinmaker:Get*",
                "iottwinmaker:List*"
            ],
            "Resource": [
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iottwinmaker:ListWorkspaces",
            "Resource": "*"
        }
    ]
}
```
Amazon S3 の各バケットは、ワークスペースごとに作成されます。ダッシュボードに表示できる 3D モデルとシーンが含まれています。[SceneViewer](https://github.com/grafana/grafana-iot-twinmaker-app/blob/main/src/panels/scene-viewer/README.md) パネルは、このバケットから項目をロードします。

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

**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:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333: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 アセットリクエストビデオアップロードのタグ付け
<a name="tagging-camera-assets"></a>

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 アセットデータの取り込みをグループ化することを強制します。

## ダッシュボードポリシーにさらにアクセス許可を追加する
<a name="adding-more-permissions"></a>

 AWS IoT TwinMaker Grafana プラグインは、認証プロバイダーを使用して、作成したダッシュボードロールで AssumeRole を呼び出します。内部的には、プラグインは AssumeRole 呼び出しのセッションポリシーを使用して、アクセス許可の最大範囲を制限します。セッションポリシーの詳細については、「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」を参照してください。

 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:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333: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 ビデオプレイヤーポリシーの作成](tm-video-policy.md)」を参照してください。

## Grafana ダッシュボード IAM ロールの作成
<a name="grafana-IAM-role"></a>

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 環境の設定](grafana-environment.md)」を参照してください。

# AWS IoT TwinMaker ビデオプレイヤーポリシーの作成
<a name="tm-video-policy"></a>

以下は、Grafana の AWS IoT TwinMaker プラグインに必要なすべての動画へのアクセス許可を含むポリシーのテンプレートです。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iottwinmaker:Get*",
                "iottwinmaker:List*"
            ],
            "Resource": [
                "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/workspaceId",
                "arn:aws:iottwinmaker:us-east-1:111122223333: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*"
                }
            }
        }
    ]
}
```

------

ポリシー全体についての詳細については、[IAM ポリシーを作成する](dashboard-IAM-role.md#IAM-policy) トピックの「**すべての動画へのアクセス許可ポリシーのテンプレート**」を参照してください。

## リソースへのアクセス範囲の絞り込み
<a name="scope-down-access"></a>

Grafana のビデオプレイヤーパネルは、Kinesis Video Streams と IoT SiteWise を直接呼び出して、完全なビデオ再生エクスペリエンスを提供します。 AWS IoT TwinMaker ワークスペースに関連付けられていないリソースへの不正アクセスを回避するには、ワークスペースダッシュボードロールの IAM ポリシーに条件を追加します。

## GET アクセス許可の範囲の絞り込み
<a name="scope-down-GET-permissions"></a>

リソースにタグを付けることで、Amazon Kinesis Video Streams と AWS IoT SiteWise アセットへのアクセスの範囲を絞り込むことができます。workspaceId に基づいて AWS IoT SiteWise カメラアセットに AWS IoT TwinMaker タグを付け、ビデオアップロードリクエスト機能を有効にしている可能性があります。[「エッジからビデオをアップロードする](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/dashboard-IAM-role.html#tagging-camera-assets)」トピックを参照してください。同じタグキーと値のペアを使用して、 AWS IoT SiteWise アセットへの GET アクセスを制限したり、Kinesis Video Streams に同じ方法でタグ付けしたりできます。

その後、`YourWorkspaceIdDashboardPolicy` 内の kinesisvideo ステートメントと iotsitewise ステートメントにこの条件を追加できます。

```
"Condition": {
  "StringLike": {
    "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
  } 
}
```

### 実際の使用事例: カメラのグループ化
<a name="use-cases"></a>

このシナリオには、工場でクッキーを焼くプロセスを監視するカメラが多数あります。クッキー生地の束は生地部屋で作られ、生地は冷凍部屋で冷凍され、クッキーは焼成部屋で焼かれます。これらの各部屋にはカメラがあり、異なるオペレーターチームが各プロセスを個別に監視しています。各グループのオペレーターに、それぞれの部屋の権限を与えたいと考えています。クッキー工場のデジタルツインを構築する場合、使用するワークスペースは 1 つだけですが、カメラのアクセス許可範囲は部屋ごとに設定する必要があります。

このようなアクセス許可の分離は、GroupingID に基づいてカメラのグループにタグを付けることで実現できます。このシナリオでは、グループ ID は BatterRoom、FreezerRoom、BakingRoom です。各部屋のカメラは Kinesis Video Streams に接続されており、Key = `EdgeConnectorForKVS`、Value = `BatterRoom` のタグが付いている必要があります。値には、次のいずれかの文字で区切られたグループのリストを指定できます: `. : + = @ _ / -`。

`YourWorkspaceIdDashboardPolicy` を修正するには、以下のポリシーステートメントを使用します。

```
...,
{
  "Effect": "Allow",
  "Action": [
    "kinesisvideo:GetDataEndpoint",
    "kinesisvideo:GetHLSStreamingSessionURL"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*groupingId*"
    } 
  }
},
{
  "Effect": "Allow",
  "Action": [
    "iotsitewise:GetAssetPropertyValue",
    "iotsitewise:GetInterpolatedAssetPropertyValues"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*groupingId*"
    } 
  }
},
...
```

これらのステートメントは、ストリーミングビデオの再生と AWS IoT SiteWise プロパティ履歴へのアクセスをグループ内の特定のリソースに制限します。`groupingId` はユースケースによって定義されます。このシナリオでは、roomId になります。

## down AWS IoT SiteWise BatchPutAssetPropertyValue アクセス許可の範囲
<a name="scope-down-BatchPutAssetPropertyValue"></a>

このアクセス許可を与えると、[ビデオプレイヤーの動画アップロードリクエスト機能](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/dashboard-IAM-role.html#tagging-camera-assets)が有効になります。動画をアップロードするときは、時間範囲を指定し [Grafana ダッシュボード] パネルで **[送信]** を選択してリクエストを送信できます。

IoTSitewise:BatchPutAssetPropertyValue アクセス許可を付与するには、デフォルトポリシーを使用します。

```
...,
{
  "Effect": "Allow",
  "Action": [
    "iotsitewise:BatchPutAssetPropertyValue"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
    } 
  }
},
...
```

このポリシーを使用すると、ユーザーは AWS IoT SiteWise カメラアセット上の任意のプロパティに対して BatchPutAssetPropertyValue を呼び出すことができます。ステートメントの条件で指定することで、特定の PropertyId の認可を制限できます。

```
{
  ...
  "Condition": {
    "StringEquals": {
      "iotsitewise:propertyId": "propertyId"
    } 
  }
  ...
}
```

Grafana のビデオプレイヤーパネルは、VideoUploadRequest と名前の付いた測定プロパティにデータを取り込み、エッジキャッシュから Kinesis Video Streams への動画のアップロードを開始します。 AWS IoT SiteWise コンソールでこのプロパティの propertyId を見つけます。`YourWorkspaceIdDashboardPolicy` を修正するには、次のポリシーステートメントを使用します。

```
...,
{
  "Effect": "Allow",
  "Action": [
    "iotsitewise:BatchPutAssetPropertyValue"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:ResourceTag/EdgeConnectorForKVS": "*workspaceId*"
    },
    "StringEquals": {
      "iotsitewise:propertyId": "VideoUploadRequestPropertyId"
    }
  }
},
...
```

このステートメントは、データの取り込みをタグ付けされた AWS IoT SiteWise カメラアセットの特定のプロパティに制限します。詳細については、「[AWS IoT SiteWise と IAM の連携](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html)」を参照してください。