You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将AWS QuickSight仪表盘嵌入外部应用时,如何按登录用户过滤数据?

AWS QuickSight 嵌入外部应用并实现用户级数据自动过滤方案

前置条件确认

首先确保你的QuickSight数据集里存在和外部应用登录体系完全对齐的创作者唯一标识字段,比如创作者账号ID、绑定邮箱等,这是后续数据过滤的核心匹配依据。

第一步:配置行级安全性(RLS,核心过滤逻辑)

QuickSight原生的行级安全性可以直接实现基于用户的数据过滤,无需额外开发仪表盘过滤组件:

  • 首先创建RLS规则表,表结构至少包含2个字段:UserIdentity(存储对应用户的唯一标识,和外部应用登录态返回的用户ID/邮箱完全一致)、CreatorId(存储该用户可访问的创作者ID,一个用户可对应多行规则)
  • 进入QuickSight控制台打开目标数据集,选择「行级安全性」,关联你创建的RLS规则表,将UserIdentity设为用户名列,和数据集里的创作者ID字段做关联
  • 完成配置后先做权限验证:用测试用户身份预览仪表盘,确认仅能看到对应用户的视频播放量、点赞数等权限内数据,无越权访问情况

第二步:生成嵌入URL适配数千外部用户场景

针对数千外部用户的场景,推荐使用匿名会话嵌入模式,无需为每个用户单独创建QuickSight账号,成本更低:

  • 先为调用嵌入接口的IAM角色配置quicksight:GenerateEmbedUrlForAnonymousUser接口调用权限
  • 后端调用嵌入接口时,在SessionTags参数中传入当前登录用户的唯一标识,和RLS规则表中的UserIdentity值完全匹配,示例调用代码:
import boto3

qs_client = boto3.client("quicksight", region_name="你的AWS区域")
response = qs_client.generate_embed_url_for_anonymous_user(
    AwsAccountId="你的AWS账号ID",
    Namespace="default",
    SessionTags=[
        {
            "Key": "UserIdentity",
            "Value": "当前外部应用登录用户的唯一标识"
        }
    ],
    ExperienceConfiguration={
        "Dashboard": {
            "InitialDashboardId": "目标仪表盘的ID"
        }
    },
    # 会话有效期可按需调整,建议和外部应用登录有效期保持一致
    SessionLifetimeInMinutes=60
)
embed_url = response["EmbedUrl"]
  • 前端将返回的embed_url传入QuickSight前端嵌入SDK,即可渲染出已经过用户维度过滤的仪表盘

可选优化项

  • 若用户量超过10万,建议将RLS规则表关联你的用户业务库做动态查询,避免频繁手动更新静态规则表
  • 嵌入时可添加DisableDownload、DisableShare等参数,禁用数据下载、分享功能,提升数据安全性
  • 如果需要给部分用户分配编辑、导出等特殊权限,可以改用GenerateEmbedUrlForRegisteredUser接口,对接QuickSight的用户权限体系

内容的提问来源于stack exchange,提问作者Patric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:06:04