无法通过Lake Formation授予Glue表跨账号访问权限问题咨询
故障根因分析
- 缺失Lake Formation数据湖管理员权限:
AWSLakeFormationCrossAccountManager仅提供IAM侧的操作权限,但跨账号授予操作首先要求操作身份被添加为Lake Formation的数据湖管理员,未完成该配置的情况下即使附加了托管策略也会触发权限报错,这是该场景下最常见的故障原因。 - IAM策略未实际生效:附加托管策略后未等待IAM权限同步(通常最长5分钟延迟),或当前登录身份存在IAM权限边界、所属AWS组织的SCP(服务控制策略)屏蔽了跨账号授权相关权限。
- Glue Data Catalog资源策略限制:账号A的Glue目录默认存在资源策略限制,未放开当前操作身份的
glue:GrantPermissions、glue:GetDatabases等相关权限,即使有IAM权限也会被资源策略拦截。 - 操作身份不匹配:附加策略的角色和实际控制台登录使用的身份不一致,比如实际使用的是IAM用户而非角色,或角色ARN填写错误。
解决方案
- 确认操作身份匹配:在账号A的AWS控制台右上角点击身份信息,确认当前登录的ARN与你附加托管策略的角色ARN完全一致。如果使用的是IAM用户,需要将
AWSLakeFormationCrossAccountManager策略附加到对应用户而非角色上。 - 配置Lake Formation数据湖管理员权限:
- 进入账号A的Lake Formation控制台,左侧菜单选择「权限」-「数据湖管理员」
- 点击「添加管理员」,选择你当前使用的操作身份(角色/用户),保存配置
- 检查并补充Glue Data Catalog资源策略:
- 进入账号A的Glue控制台,左侧菜单选择「设置」
- 找到「目录资源策略」,确认存在以下权限段,缺失则补充:
{ "Effect": "Allow", "Principal": { "AWS": "替换为你的操作身份ARN" }, "Action": [ "glue:GrantPermissions", "glue:RevokePermissions", "glue:GetDatabases", "glue:GetTables" ], "Resource": "*" }
- 排除上层权限限制:检查当前操作身份是否配置了IAM权限边界,所属AWS组织是否配置了禁止Lake Formation跨账号操作的SCP策略,移除对应限制。
- 等待权限同步后重试:所有配置完成后等待5分钟再进行跨账号授权操作,避免IAM和Lake Formation的权限同步延迟导致配置未生效。
内容的提问来源于stack exchange,提问作者Ricardo Francois
相关产品推荐
相关产品推荐

