亚马逊QuickSight 是一种完全托管的云原生商业智能 (BI) 服务,可以轻松连接到您的数据、创建交互式仪表板,并与数万名用户共享这些信息,既可以在 QuickSight 本身内,也可以作为软件嵌入到软件中服务 (SaaS) 应用程序。
QuickSight 企业版最近添加了使用标签的行级安全性 (RLS),这是一项新功能,允许开发人员与成千上万的用户共享单个仪表板,同时确保每个用户只能查看和访问特定数据。 这意味着当独立软件供应商 (ISV) 在他们的应用程序中添加 QuickSight 嵌入式仪表板时,他们不必在 QuickSight 中配置他们的最终用户,并且可以简单地设置标签以根据仪表板是谁来过滤数据被送达。 例如,如果 ISV 想要设置一个仪表板,该仪表板将与某个应用程序的 20,000 个客户的 100 名用户共享,并且客户中的所有用户都可以访问相同的数据,则此新功能允许您共享一个仪表板所有用户,而无需在 QuickSight 中设置或管理 20,000 名用户。
使用标签实施的 RLS 确保每个最终用户只能看到与其相关的数据,而 QuickSight 会自动扩展以满足用户并发性,以确保每个最终用户都能看到始终如一的快速性能。 在这篇文章中,我们将研究如何实现这一点。
解决方案概述
要在没有用户配置的情况下嵌入仪表板,我们使用 API 为匿名用户生成嵌入 URL,与 QuickSight 配合使用 会话容量定价. 使用此 API,嵌入服务器(SaaS 应用程序中的逻辑)确定和管理向其显示仪表板的用户的身份(与在 QuickSight 中配置和管理此身份相反)。
下图显示了嵌入式仪表板的示例工作流,该仪表板基于使用带标签的 RLS 访问应用程序的人员来保护数据。
在这种情况下,ISV 有一个由两个最终用户访问的 SaaS 应用程序。 一个是经理,另一个是现场主管。 两个用户都访问相同的应用程序和应用程序中嵌入的相同 QuickSight 仪表板,并且他们未在 QuickSight 中配置。 当站点主管访问仪表板时,他们只能看到与其站点相关的数据,而当经理访问仪表板时,他们会看到与其管理的所有站点相关的数据。
为实现此行为,我们使用了一项新功能,可以使用标签配置行级安全性。 这种在嵌入式仪表盘上保护数据的方法仅在仪表盘嵌入而无需用户配置(也称为 匿名嵌入). 该过程包括两个步骤:
- 在用于构建仪表板的数据集的列上设置标签键。
- 匿名嵌入仪表板时,在运行时设置标签键的值。
在用于构建仪表板的数据集中的列上设置标签键
ISV 或开发人员可以使用 CreateDataset
or UpdateDataset
API如下:
在前面的示例代码中, row-level-permission-tag-configuration
是可用于在数据集的列上定义标签键的元素。 对于每个标签,您可以定义以下可选项目:
- 标签多值分隔符 – 当在列上设置此选项时,您可以在运行时将多个值传递给标记,并且这些值由为此选项设置的字符串分隔。 在此示例中,逗号设置为分隔符字符串。
- 匹配所有值 – 当在列上设置此选项时,您可以在运行时传递列的所有值,并且这些值由为此选项设置的字符串表示。 在此示例中,星号设置为匹配所有字符串。
定义标签后,我们可以使用以下命令启用或禁用这些规则 Status
API 的元素。 在这种情况下,值设置为 ENABLED
. 要禁用规则,值为 DISABLED
. 启用标签后,我们可以在运行时将值传递给标签,以根据谁正在访问仪表板来保护显示的数据。
每个数据集最多可以有 50 个标签键。
我们收到以下回复 CreateDataset
or UpdateDataset
API:
使作者能够在创作分析时访问受标签键保护的数据
在数据集上设置并启用标签键后,它就会受到保护。 作者在使用此数据集创作仪表板时看不到任何数据。 在创作仪表板时,必须授予他们查看数据集中任何数据的权限。 要授予 QuickSight 作者查看数据集中数据的权限,请创建权限文件或规则数据集。 有关详细信息,请参阅 为行级安全性创建数据集规则. 以下是示例规则数据集。
用户名 | 列_名称_1 | 列_名称_2 | 列_名称_3 |
管理员/示例作者 |
在此示例数据集中,我们在 UserName 列中列出了作者的用户名。 其他三列是我们设置标签键的数据集中的列。 对于添加到此表的作者,这些列的值留空。 这使作者能够在创作分析时不受任何限制地查看这些列中的所有数据。
嵌入仪表板时在运行时将值设置为标签键
为数据集的列设置标签键后,开发人员在嵌入仪表板时在运行时为键设置值。 开发者调用API GenerateDashboardEmbedURLForAnonymousUser
嵌入仪表板并将值传递给元素中的标签键 SessionTags
,如以下示例代码所示:
由于此功能可保护未在 QuickSight 中配置的用户的数据,因此 API 调用适用于 AnonymousUser
仅因此此功能仅适用于 API GenerateDashboardEmbedURLForAnonymousUser
.
前面的示例代码具有以下组件:
- 针对
tag_name_1
,你设置两个值(value1
和value2
) 使用TagMultiValueDelimiter
在设置标签键时定义(在本例中为逗号)。 - 针对
tag_name_2
,您将一个值设置为星号。 这使该标签键能够分配该列的所有值,因为我们将星号定义为MatchAllValue
之前在列上设置标签键时。 - 针对
tag_name_3
,你设置一个值(value3
).
API响应定义
API的响应有 EmbedURL
, Status
及 RequestID
. 您可以将此 URL 嵌入到您的 HTML 页面中。 此仪表板中的数据根据调用嵌入 API 时传递给标签键的值进行保护 GenerateDashboardEmbedURLForAnonymousUser
:
- 嵌入网址(字符串) – 可以放入服务器端网页以嵌入仪表板的一次性 URL。 此 URL 的有效期为 5 分钟。 API 操作为 URL 提供了一个
auth_code
允许一次(且仅一次)登录到有效期最长为 10 小时的用户会话的值。 此 URL 根据为 RLS 标签键设置的值呈现应用 RLS 规则的仪表板。 - 状态(整数) – 请求的 HTTP 状态。
- RequestId(字符串) – 此操作的 AWS 请求 ID。
细粒度的访问控制
您可以通过使用动态实现细粒度的访问控制 AWS身份和访问管理 (IAM) 策略生成。 有关详细信息,请参阅 使用动态生成的 IAM 策略隔离 SaaS 租户. 当使用 GenerateEmbedUrlForAnonymousUser
API 嵌入,你需要在 IAM 策略中提及两种资源类型:你的匿名用户实际上属于的命名空间 ARN,以及可以在 AuthorizedResourceArns
输入参数值。 使用此 API 生成的会话可以访问授权资源和与命名空间共享的资源(仪表板)。
因为匿名用户是命名空间的一部分,所以他们可以访问与命名空间共享的任何仪表板,无论他们是否通过 AuthorizedResourceArns
参数。
为了允许调用者身份为任何用户和任何仪表板生成 URL, Resource
策略块可以设置为 *
. 允许调用者身份为特定名称空间中的任何匿名用户生成 URL(例如 Tenant1
),则 Resource
策略的一部分可以设置为 arn:aws:quicksight:us-east-1:<YOUR_AWS_ACCOUNT_ID>:namespace/Tenant1
. 这与仪表板 ID 相同。 对于动态策略生成,您还可以为命名空间和用户使用占位符。
以下代码是一个示例 IAM 策略:
用例
OkTank 是医疗保健领域的 ISV。 他们有一个 SaaS 应用程序,全国不同地区的不同医院使用该应用程序来管理他们的收入。 OkTank 有数千名医疗保健员工访问他们的应用程序,并在其应用程序的 QuickSight 仪表板中嵌入了与其业务相关的操作。 OkTank 不想在 QuickSight 中单独管理他们的用户,而是希望根据来自哪个医院的哪个用户访问他们的应用程序来保护数据。 OkTank 在运行时通过使用标签的行级安全性来保护仪表板上的数据。
OkTank 在中部、东部、南部和西部地区设有医院(北部医院、南部医院和市区医院)。
在此示例中,以下用户访问 OkTank 的应用程序和嵌入式仪表板。 每个用户都有一定级别的限制规则,这些规则定义了他们可以在仪表板中访问的数据。 PowerUser
是一个超级用户,可以查看所有医院和地区的数据。
OkTank 应用程序的用户 | 医院 | 区域 |
北方用户 | 北方医院 | 中部和东部 |
北区 | 北方医院 | 所有地区 |
南方用户 | 南方医院 | 南部 |
南方行政区 | 南方医院 | 所有地区 |
超级用户 | 所有医院 | 所有地区 |
这些用户均未在 QuickSight 中配置。 OkTank 在自己的应用程序中管理这些用户,因此知道每个用户属于哪个地区和医院。 当这些用户中的任何一个访问应用程序中的嵌入式 QuickSight 仪表板时,OkTank 必须保护仪表板上的数据,以便用户只能看到他们所在地区和医院的数据。
首先,OkTank 在他们用来驱动仪表板的数据集上创建了标签键。 在他们的 UpdateDataset
API调用, RowLevelPermissionTagConfiguration
数据集上的元素如下:
其次,在运行时通过 GenerateDashboardEmbedURLForAnonymousUser
API,他们设置 SessionTags
对于每个用户。
SessionTags
NorthUser
,在 GenerateDashboardEmbedURLForAnonymousUser
API调用如下:
SessionTags
NorthAdmin
如下面所述:
SessionTags
SouthUser
如下面所述:
SessionTags
SouthAdmin
如下面所述:
SessionTags
PowerUser
如下面所述:
下面的截图显示了什么 SouthUser
见于南方地区的南方医院。
下面的截图显示了什么 SouthAdmin
查看所有地区的南方医院。
下面的截图显示了什么 PowerUser
查看与所有地区的所有医院有关的信息。
基于会话标签,OkTank 已经保护了嵌入式仪表板上的数据,这样每个用户只能根据他们的访问权限看到特定数据。 你可以 访问仪表板 作为用户之一(通过在右上角的下拉菜单中更改用户)并查看数据如何根据用户选择而变化。
总体而言,通过使用标签的行级安全性,OkTank 能够在其 SaaS 应用程序中提供引人注目的分析体验,同时确保每个用户只看到适当的数据,而无需在 QuickSight 中配置和管理用户。 QuickSight 提供高度可扩展、安全的分析选项,您可以在几天内设置并投入生产,而不是之前的几周或几个月。
结论
为未在 QuickSight 中配置的用户嵌入仪表板和使用标签的行级安全性相结合,使开发人员和 ISV 能够快速、轻松地为其应用程序用户设置复杂的、自定义的分析——所有这些都无需任何基础设施设置或管理,同时扩展到数百万用户. 更多更新来自 QuickSight 嵌入式分析,请参阅 Amazon QuickSight 用户指南中的新增功能.
作者简介
拉吉·西瓦苏布拉马尼亚姆 是 AWS 的专家解决方案架构师,专注于分析。 Raji 在为全球财富 20 强和财富 500 强公司设计端到端企业数据管理、商业智能和分析解决方案方面拥有 100 年的经验。 她在综合医疗保健数据和分析方面拥有丰富的经验,包括管理市场、医生定位和患者分析等各种医疗保健数据集。 在业余时间,Raji 喜欢远足、瑜伽和园艺。
斯里坎特·巴赫蒂 是 Amazon QuickSight 的全球专业高级解决方案架构师。 他的职业生涯始于顾问,并为多个私人和政府组织工作。 后来,他在 PerkinElmer Health and Sciences & eResearch Technology Inc 工作,负责为使用 AWS 服务和无服务器计算的报告平台设计和开发高流量 Web 应用程序、高度可扩展和可维护的数据管道。
卡里姆·赛义德-穆罕默德 是 Amazon QuickSight 的产品经理。 他专注于嵌入式分析、API 和开发人员体验。 在加入 QuickSight 之前,他曾在 AWS Marketplace 和 Amazon 零售担任 PM。 Kareem 的职业生涯始于开发人员,然后担任呼叫中心技术、本地专家和 Expedia 广告的 PM。 他曾在麦肯锡公司担任过一段时间的顾问。
- '
- "
- &
- 000
- 100
- 11
- ACCESS
- 账号管理
- 操作
- 广告
- 所有类型
- Amazon
- 分析
- API
- APIs
- 应用
- 应用领域
- 应用领域
- 应用
- 作者
- AWS
- 建立
- 商业
- 商业智能
- 呼叫
- 容量
- 寻找工作
- 码
- 柱
- 公司
- 公司
- 计算
- 顾问
- 合作伙伴
- XNUMX月XNUMX日
- data
- 数据管理
- 开发商
- 开发
- 曼哈顿市中心
- 员工
- 企业
- 体验
- 高效率
- 专栏
- 政府
- 健康管理
- 医疗保健
- 此处
- 高
- 徒步旅行
- 医院
- 医院
- 创新中心
- HTTPS
- IAM
- 身分
- 包含
- 信息
- 基础设施
- 房源搜索
- 互动
- IT
- 键
- 键
- Level
- 本地
- 制作
- 颠覆性技术
- 市场
- 市场
- 匹配
- 个月
- 新功能
- 北
- 运营
- 附加选项
- 其他名称
- 性能
- 医生
- 平台
- 政策
- 功率
- 私立
- 产品
- 生产
- 资源
- 资源
- 响应
- 零售
- 收入
- 滚
- 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。
- SaaS的
- 缩放
- 科学
- 保安
- 看到
- 选
- 无服务器
- 特色服务
- 集
- 设置
- Share
- 共用的,
- 短
- 网站
- So
- 软件
- 解决方案
- 南部
- 太空
- 开始
- 个人陈述
- Status
- 技术
- 专业技术
- 次
- 最佳
- 交通
- 最新动态
- 用户
- 折扣值
- 卷筒纸
- 网络应用
- 西部
- WHO
- 中
- 工作流程
- 合作
- 世界
- 年
- 瑜伽