

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建控制面板 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 policy。此策略允许您的工作区访问 Amazon S3 存储桶和 AWS IoT TwinMaker 资源。您也可以决定使用[适用于 Amazon Kinesis Video Streams 的AWS IoT Greengrass Edge Connec](https://docs.aws.amazon.com//iot-twinmaker/latest/guide/video-integration.html) tor，这需要对 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 视频播放器面板的访问权限，请按标签对适用于 Amazon Kinesis Video Streams AWS IoT Greengrass 的 Edge Connector 资源进行分组。有关缩小视频资源权限范围的更多信息，请参阅 [创建 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 素材资源请求从 edge 上传视频
<a name="tagging-camera-assets"></a>

使用 Grafana 中的视频播放器，用户可以手动请求将视频从边缘缓存上传到 Kinesis Video Streams。您可以为与您的 Amazon Kinesis Video Streams AWS IoT Greengrass 边缘连接器关联且标有密钥的任何 AWS IoT SiteWise 资产启用此功能。`EdgeConnectorForKVS`

标签值可以是由以下任意字符分隔的 WorkspaceID 列表：`. : + = @ _ / -`。例如，如果您想将与 AWS IoT Greengrass 边缘连接器关联的 AWS IoT SiteWise 资产用于 AWS IoT TwinMaker 跨工作空间的 Amazon Kinesis Video Streams，则可以使用遵循以下模式的标签：。`WorkspaceA/WorkspaceB/WorkspaceC`Grafana 插件强制使用 WorkspaceID AWS IoT TwinMaker 对资产数据摄取进行分组。 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)。