dashboard - 如何与多个客户端共享 quicksight 嵌入式仪表板
问题描述
我想与多个客户共享一个嵌入式快速查看仪表板。
我为公司设置了一个大仪表板来访问整个数据。现在的问题是我只想为每个客户分享他们自己的数据。
我知道我可以根据包含数据库名称的字段使用 RLS 等解决方案过滤行。但我不知道执行它的最佳方法是什么?(RLS 在这里只是一个选项)
问题的第二部分。我将包含新的客户数据,但如何为新客户共享?我需要一个自动解决方案。
问候。
解决方案
您可以使用行级安全性来仅允许用户或组访问数据的子集。为此,请创建一个权限数据集,说明谁(用户或组)可以访问哪些行,然后通过行级安全按钮附加权限数据集。
对于我的用例,我为每个客户帐户创建一个 Quicksight 组(使用 boto3 create_group ),然后将单个用户添加到组(使用 boto3 create_group_membership )。组名是账户ID,因为它不会改变;描述是帐户名称。
权限数据集指定组的成员可以看到匹配的帐户。这些值将相同,因为组名是帐户 ID。例如,这个 CSV 表示组的成员abc123
只能看到account_id
字段所在的行abc123
:
account_id,GroupName
abc123,abc123
要将帐户添加到 Quicksight:
- 通过create_group为帐户创建 Quicksight 组
- (重新)从数据库中的帐户列表创建权限数据集
- 将权限数据集上传到 S3
- 使用create_ingestion重新摄取权限数据集
要允许用户访问 Quicksight 数据:
- 使用 Quicksight 通过register_user创建Quicksight用户
- 通过create_group_membership将用户添加到帐户组
另请参阅 Amazon 的行级安全文档。
推荐阅读
- python - 如何将 Python 中的多个集合与生成器表达式合并?
- java - GridLayout 中的按钮对齐方式
- python - 使用 mpi4py 并行启动子进程时减速
- javascript - JS变量在AJAX成功中不起作用
- ios - 在 UITableView 中嵌入的自定义 UICollectionView 中执行 Segue
- hadoop - 同时使用最大值和总和
- java - 使用 Spring Cucumber Serenity 进行自动装配步骤
- angular - 共享 UI 组件
- ruby-on-rails - Rails 规范仅通过示例,但整个文件失败
- permissions - Carrierwave 以非公开方式上传文件