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

AWS Quicksight通过Boto3创建仪表盘报ACCESS_DENIED错误如何解决

问题原因
  • QuickSight的资源权限体系仅支持QuickSight内部主体(用户、群组)授权,不支持普通IAM角色、Lambda执行角色这类IAM层面的主体,这就是你给Lambda执行角色授予数据集权限时触发only QuickSight principals are supported at this point报错的根本原因。
  • CloudShell执行命令可以成功,是因为你登录CloudShell所用的AWS账号身份,已经提前被添加为QuickSight的授权用户,天然具备CUDOS模板、已创建数据集的访问权限。
  • Lambda运行时默认使用自身的执行角色调用API,该执行角色未被注册为QuickSight的内部用户,因此访问数据集、模板源时就会触发ACCESS_DENIED报错。
解决方案
  • 首先将Lambda执行角色注册为QuickSight的合法用户:进入QuickSight控制台,点击右上角「管理QuickSight」→「管理用户」→「添加用户」,用户类型选择「IAM角色」,填入Lambda执行角色的ARN,权限等级至少选择「作者」。
  • 完成注册后,再给这个已经被QuickSight识别的Lambda执行角色授予已创建数据集的访问权限,此时就不会再触发无效主体的报错。
  • 给Lambda执行角色的IAM权限策略中添加QuickSight相关操作权限,参考策略片段如下:
{
    "Effect": "Allow",
    "Action": [
        "quicksight:CreateDashboard",
        "quicksight:DescribeTemplate",
        "quicksight:DescribeDataSet",
        "quicksight:PassDataSet"
    ],
    "Resource": [
        "arn:aws:quicksight:*:<你的AWS账号ID>:template/*cudos*",
        "arn:aws:quicksight:*:<你的AWS账号ID>:dataset/*",
        "arn:aws:quicksight:*:<你的AWS账号ID>:dashboard/*"
    ]
}
  • 调用create_dashboardAPI时,确认SourceEntity中填写的CUDOS模板ARN为当前区域可用的公开模板ARN,同时TemplateVersion参数填写模板当前有效的版本号,避免版本不兼容引发的隐藏权限报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:09:00