本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建控制面板 IAM 角色
借助 AWS IoT TwinMaker,您可以控制 Grafana 控制面板上的数据访问权限。Grafana 控制面板用户应具有不同的权限范围来查看数据,某些情况下还要有写入数据的权限。例如,警报操作员可能没有查看视频的权限,而管理员拥有所有资源的权限。Grafana 通过数据源定义权限,而凭证和 IAM 角色在数据源中提供。AWS IoT TwinMaker 数据源获取具有该角色权限的 AWS 凭证。如果未提供 IAM 角色,Grafana 将使用凭证的范围,该范围不会被 AWS IoT TwinMaker 缩小。
要在 Grafana 中使用 AWS IoT TwinMaker 控制面板,您需要创建一个 IAM 角色并附加策略。您可以使用以下模板来帮助创建这些策略。
创建 IAM 策略
在 IAM 控制台创建一个名为
的 IAM policy。此策略允许您的工作区访问 Amazon S3 存储桶和 AWS IoT TwinMaker 资源。您也可以决定使用AWS IoT Greengrass Amazon Kinesis Video Streams 边缘连接器,这需要 Kinesis Video Streams 的权限和为该组件配置的 AWS IoT SiteWise 资产。要适合您的用例,请选择以下策略模板之一。YourWorkspaceId
DashboardPolicy
- 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 中视频播放器面板的访问权限,请按标签对 AWS IoT GreengrassAmazon Kinesis Video Streams 边缘连接器资源进行分组。有关缩小视频资源权限范围的更多信息,请参阅 创建 AWS IoT TwinMaker 视频播放器策略。
- 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: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 存储桶的只读访问权限以加载场景。
工作区中所有实体和组件的 AWS IoT TwinMaker 只读访问权限。
流媒体播放您账户中所有 Kinesis Video Streams 视频的只读访问权限。
您账户中所有 AWS IoT SiteWise 资产的财产价值历史记录只读访问权限。
将数据摄取到标有键
EdgeConnectorForKVS
和值workspaceId
的 AWS IoT SiteWise 资产的任何属性中。
标记您的摄像头 AWS IoT SiteWise 资产请求从边缘上传视频
使用 Grafana 中的视频播放器,用户可以手动请求将视频从边缘缓存上传到 Kinesis Video Streams。您可以为任何与 AWS IoT GreengrassAmazon Kinesis Video Streams 边缘连接器关联且标有键 EdgeConnectorForKVS
的 AWS IoT SiteWise 资产启用此功能。
标签值可以是由以下任意字符分隔的 WorkspaceID 列表:. : + = @ _ / -
。例如,如果要跨 AWS IoT TwinMaker 工作区使用与AWS IoT Greengrass Amazon Kinesis Video Streams 边缘连接器关联的 AWS IoT SiteWise 资产,则可以使用遵循以下模式的标签:WorkspaceA/WorkspaceB/WorkspaceC
。Grafana 插件强制使用 AWS IoT TwinMakerWorkspaceID 对 AWS IoT SiteWise 资产数据摄取进行分组。
向控制面板策略添加更多权限
AWS IoT TwinMakerGrafana 插件使用您的身份验证提供程序来 AssumeRole 调用您创建的控制面板角色。在内部,该插件通过在 AssumeRole 调用中使用会话策略来限制您有权访问的最大权限范围。有关会话策略的更多信息,请参阅会话策略。
这是您可以为 AWS 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
更多权限的语句,它们将无法在 AWS IoT TwinMaker 插件上运行。这是为了确保该插件使用最低必要权限而设计的。
但您可以进一步缩小权限范围。有关信息,请参阅 创建 AWS IoT TwinMaker 视频播放器策略。
创建 Grafana 控制面板 IAM 角色
在 IAM 控制台中,创建名为
的 IAM 角色。将 YourWorkspaceId
DashboardRole
附加到角色上。YourWorkspaceId
DashboardPolicy
要编辑控制面板角色的信任策略,您必须授予 Grafana 身份验证提供程序调用控制面板角色上 AssumeRole
的权限。使用以下模板更新信任策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "
ARN of Grafana authentication provider
" }, "Action": "sts:AssumeRole" } ] }
有关如何创建 Grafana 环境和查找身份验证提供程序的更多信息,请参阅 设置 Grafana 环境。