创建 Amazon IoT TwinMaker 视频播放器策略 - Amazon IoT TwinMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建 Amazon IoT TwinMaker 视频播放器策略

以下是一个策略模板,其中包含在 Grafana 中使用 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*" } } } ] }

有关完整策略的更多信息,请参阅 创建 IAM 策略 主题中的所有视频权限策略模板。

缩小访问资源的权限范围

Grafana 中的视频播放器面板直接调用 Kinesis Video Streams SiteWise 和 IoT,以提供完整的视频播放体验。为避免未经授权访问与您的 Amazon IoT TwinMaker 工作区无关的资源,请为您工作区控制面板角色的 IAM policy 添加条件。

缩小 GET 权限范围

您可以通过标记资源来缩小 Amazon Kinesis Video Streams 和 Amazon IoT SiteWise 资产的访问权限范围。您可能已根据 Amazon IoT TwinMaker WorkspaceID 为 Amazon IoT SiteWise 摄像头资产添加了标签,以启用视频上传请求功能,请参阅从边缘上传视频主题。您可以使用相同的标签键值对来限制对 Amazon IoT SiteWise 资产的 GET 访问权限,也可以用同样的方式标记您的 Kinesis Video Streams。

然后,您可以将此条件添加到 YourWorkspaceIdDashboardPolicy 中的 kinesisvideo 和 iotsitewise 语句:

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

真实生活用例:对摄像头进行分组

在此场景中,您有大量的摄像头监视工厂烘焙饼干的过程。成批的饼干面糊在面糊室制作,面糊在冷冻室冷冻,饼干在烘焙室烘烤。每个房间都有摄像头,不同的操作员团队分别监视每个过程。您希望每组操作员都获得各自工作间的授权。在为饼干厂构建数字孪生时,使用的是单个工作区,但摄像头权限需要按工作间划分范围。

您可以通过根据摄像头组的 GroupingId 标记摄像头组来实现这种权限分离。在这种情况下,GroupingID 为 BatterRoom FreezerRoom、和。 BakingRoom每个房间的摄像头都连接到 Kinesis Video Streams,并且应该有一个键为 EdgeConnectorForKVS、值为 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*" } } }, ...

这些语句限制对分组中特定资源的流媒体视频播放和 Amazon IoT SiteWise 属性历史记录访问权限。groupingId 由您的用例定义。在我们的场景中,它将是 RoomID。

范围缩小Amazon IoT SiteWise BatchPutAssetPropertyValue 权限

提供此权限可开启视频播放器中的视频上传请求功能。上传视频时,您可以指定一个时间范围,并在 Grafana 控制面板上选择提交来提交请求。

要授予 iotsitewise: BatchPutAssetPropertyValue 权限,请使用默认策略:

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

通过使用此政策,用户可以调 BatchPutAssetPropertyValue 用Amazon IoT SiteWise相机资产上的任何属性。您可以通过在语句的条件中指定特定 PropertyID 来限制对它的授权。

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

Grafana 中的 “视频播放器” 面板将数据提取到 VideoUploadRequest名为的测量属性中,以启动将视频从边缘缓存上传到 Kinesis Video Streams 的操作。在 Amazon IoT SiteWise 控制台找到该属性的 PropertyID。要修改 YourWorkspaceIdDashboardPolicy,请使用以下策略语句:

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

此语句将摄取数据限制在已标记的 Amazon IoT SiteWise 摄像头资产的特定属性。有关更多信息,请参阅Amazon IoT SiteWise 如何与 IAM 结合使用