

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

# 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)」を参照してください。