无法通过Athena在QuickSight中查看Glue Catalog表的问题求助
问题:QuickSight无法通过Athena查看Glue Catalog表
已执行操作
- Athena界面可正常查看并查询Glue数据库和表
- 尝试将QuickSight用户添加到Lake Formation(未主动启用LF,不确定必要性)
- 为QuickSight服务角色添加内联策略(曾尝试将Action设为*),策略内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetSchemaVersion", "glue:ListSchemaVersions", "kms:*" ], "Resource": [ "*" ] } ] } - 参考过AWS博客文章《Securely analyze your data with AWS Lake Formation and Amazon QuickSight》
解决方案
1. 检查QuickSight与Athena的区域和数据源配置
- 登录QuickSight控制台,进入数据准备→数据源,找到目标Athena数据源
- 确认数据源选择的区域与Glue Catalog、Athena所在区域完全一致
- 点击编辑数据源,验证关联的IAM角色是否为你配置了权限的那个角色
2. 补全QuickSight服务角色的核心权限
现有策略缺少Glue Catalog元数据读取和Athena操作的关键权限,替换为以下策略(替换<你的区域>和<你的账号ID>为实际值):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions", "glue:GetSchemaVersion", "glue:ListSchemaVersions", "kms:*" ], "Resource": [ "arn:aws:glue:<你的区域>:<你的账号ID>:catalog", "arn:aws:glue:<你的区域>:<你的账号ID>:database/*", "arn:aws:glue:<你的区域>:<你的账号ID>:table/*/*" ] }, { "Effect": "Allow", "Action": "athena:*", "Resource": "*" } ] }
QuickSight需要读取Glue的数据库、表、分区元数据,以及执行Athena查询的权限才能展示和访问数据。
3. 处理Lake Formation权限(若环境默认启用LF)
部分AWS新区域默认启用Lake Formation,即便未主动使用,也需配置:
- 登录Lake Formation控制台,进入权限→数据权限,为QuickSight服务角色/用户添加目标数据库和表的
DESCRIBE权限 - 检查数据湖设置,若启用了“仅Lake Formation权限控制”,需确保权限覆盖到对应资源
4. 手动触发元数据同步
- 在QuickSight的数据源页面,找到Athena数据源,点击刷新数据源
- 进入数据集页面,选择基于该数据源的数据集,点击刷新数据集,强制同步Glue元数据
5. 验证QuickSight用户/群组权限
- 若使用用户直接访问而非服务角色,需确保用户自身IAM策略包含Glue和Athena的必要权限
- 检查用户所属的QuickSight群组,确认群组拥有该数据源和数据集的访问权限
内容的提问来源于stack exchange,提问作者Shenanigator
相关产品推荐
相关产品推荐

