创建控制面板 IAM 角色 - Amazon IoT TwinMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建控制面板 IAM 角色

借助 Amazon IoT TwinMaker,您可以控制 Grafana 控制面板上的数据访问权限。Grafana 控制面板用户应具有不同的权限范围来查看数据,某些情况下还要有写入数据的权限。例如,警报操作员可能没有查看视频的权限,而管理员拥有所有资源的权限。Grafana 通过数据源定义权限,而凭证和 IAM 角色在数据源中提供。Amazon IoT TwinMaker 数据源获取具有该角色权限的 Amazon 凭证。如果未提供 IAM 角色,Grafana 将使用凭证的范围,该范围不会被 Amazon IoT TwinMaker 缩小。

要在 Grafana 中使用 Amazon IoT TwinMaker 控制面板,您需要创建一个 IAM 角色并附加策略。您可以使用以下模板来帮助创建这些策略。

创建 IAM 策略

在 IAM 控制台创建一个名为 YourWorkspaceIdDashboardPolicy 的 IAM policy。此策略允许您的工作区访问 Amazon S3 存储桶和 Amazon IoT TwinMaker 资源。您也可以决定使用Amazon IoT Greengrass Amazon Kinesis Video Streams 边缘连接器,这需要 Kinesis Video Streams 的权限和为该组件配置的 Amazon 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 IoT GreengrassAmazon Kinesis Video Streams 边缘连接器资源进行分组。有关缩小视频资源权限范围的更多信息,请参阅 创建 Amazon IoT TwinMaker 视频播放器策略

3。所有视频权限

如果您不想对视频进行分组,则可以通过 Grafana 视频播放器将其全部设置为可访问。任何有权访问 Grafana 工作区的人都可以播放您账户中任何流媒体的视频,并对任何 Amazon 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 存储桶的只读访问权限以加载场景。

  • 工作区中所有实体和组件的 Amazon IoT TwinMaker 只读访问权限。

  • 流媒体播放您账户中所有 Kinesis Video Streams 视频的只读访问权限。

  • 您账户中所有 Amazon IoT SiteWise 资产的财产价值历史记录只读访问权限。

  • 将数据摄取到标有键 EdgeConnectorForKVS 和值 workspaceId 的 Amazon IoT SiteWise 资产的任何属性中。

标记您的摄像头 Amazon IoT SiteWise 资产请求从边缘上传视频

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

标签值可以是由以下任意字符分隔的 WorkspaceID 列表:. : + = @ _ / -。例如,如果要跨 Amazon IoT TwinMaker 工作区使用与Amazon IoT Greengrass Amazon Kinesis Video Streams 边缘连接器关联的 Amazon IoT SiteWise 资产,则可以使用遵循以下模式的标签:WorkspaceA/WorkspaceB/WorkspaceC。Grafana 插件强制使用 Amazon IoT TwinMakerWorkspaceID 对 Amazon IoT SiteWise 资产数据摄取进行分组。

向控制面板策略添加更多权限

Amazon IoT TwinMakerGrafana 插件使用您的身份验证提供程序来 AssumeRole 调用您创建的控制面板角色。在内部,该插件通过在 AssumeRole 调用中使用会话策略来限制您有权访问的最大权限范围。有关会话策略的更多信息,请参阅会话策略

这是您可以为 Amazon 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 更多权限的语句,它们将无法在 Amazon IoT TwinMaker 插件上运行。这是为了确保该插件使用最低必要权限而设计的。

但您可以进一步缩小权限范围。有关信息,请参阅 创建 Amazon 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 环境