如何与多个客户端共享 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 数据:

另见亚马逊 row level security docs