如何与多个客户端共享 quicksight 嵌入仪表板
how to share quicksight embeded dashboard with multiple clients
我想与多个客户共享一个嵌入式 quicksight 仪表板。
我为公司设置了一个大仪表板来访问整个数据。
现在的问题是我想只为每个客户分享他们自己的数据。
我知道我可以根据包含数据库名称的字段使用 RLS 等解决方案过滤行。
但我不知道执行它的最佳方式是什么? (RLS在这里只是一个选项)
第二部分问题。
我将包含新客户数据,但是为新客户共享数据呢?
我需要一个自动解决方案。
此致。
您可以使用行级安全性来仅允许用户或组访问数据的子集。为此,创建一个权限数据集,说明谁(用户或组)可以访问哪些行,然后通过 Row-level 安全按钮附加权限数据集。
对于我的用例,我为每个客户帐户创建了一个 Quicksight 组(使用 boto3 create_group), then add individual users to groups (with boto3 create_group_membership)。组名就是账户id,不会变;描述是帐户名。
权限数据集指定组的成员可以看到匹配的帐户。这些值将是相同的,因为组名是帐户 ID。例如,此 CSV 表示组 abc123
的成员只能看到 account_id
字段为 abc123
:
的行
account_id,GroupName
abc123,abc123
要将帐户添加到 Quicksight:
- 通过 create_group
为帐户创建一个 Quicksight 组
- (重新)从数据库中的帐户列表创建权限数据集
- 将权限数据集上传到 S3
- 使用 create_ingestion
重新获取权限数据集
允许用户访问 Quicksight 数据:
- 通过 register_user 使用 Quicksight
创建 Quicksight 用户
- 通过create_group_membership
将用户添加到帐户组
另见亚马逊 row level security docs。
我想与多个客户共享一个嵌入式 quicksight 仪表板。
我为公司设置了一个大仪表板来访问整个数据。 现在的问题是我想只为每个客户分享他们自己的数据。
我知道我可以根据包含数据库名称的字段使用 RLS 等解决方案过滤行。 但我不知道执行它的最佳方式是什么? (RLS在这里只是一个选项)
第二部分问题。 我将包含新客户数据,但是为新客户共享数据呢? 我需要一个自动解决方案。
此致。
您可以使用行级安全性来仅允许用户或组访问数据的子集。为此,创建一个权限数据集,说明谁(用户或组)可以访问哪些行,然后通过 Row-level 安全按钮附加权限数据集。
对于我的用例,我为每个客户帐户创建了一个 Quicksight 组(使用 boto3 create_group), then add individual users to groups (with boto3 create_group_membership)。组名就是账户id,不会变;描述是帐户名。
权限数据集指定组的成员可以看到匹配的帐户。这些值将是相同的,因为组名是帐户 ID。例如,此 CSV 表示组 abc123
的成员只能看到 account_id
字段为 abc123
:
account_id,GroupName
abc123,abc123
要将帐户添加到 Quicksight:
- 通过 create_group 为帐户创建一个 Quicksight 组
- (重新)从数据库中的帐户列表创建权限数据集
- 将权限数据集上传到 S3
- 使用 create_ingestion 重新获取权限数据集
允许用户访问 Quicksight 数据:
- 通过 register_user 使用 Quicksight 创建 Quicksight 用户
- 通过create_group_membership 将用户添加到帐户组
另见亚马逊 row level security docs。