使用AWS Glue Crawler访问其他账号S3桶遇权限问题求助
问题分析与解决方案
核心问题
Glue Crawler 默认不会自动触发你配置的 sts:AssumeRole 权限去切换到合作方角色,同时还存在两处关键配置缺失,导致爬虫无法访问目标S3桶。
需补充的配置与权限项
合作方角色需添加信任策略,允许你的Glue爬虫角色扮演它
合作方提供的RoleToAssume角色的信任策略(Trust Policy)必须新增规则,允许你的Glue爬虫角色ARN作为可信实体。示例配置如下:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::你的AWS账号ID:role/你的Glue爬虫角色名称" }, "Action": "sts:AssumeRole" } ] }这一步是让合作方角色认可你的Glue角色具备扮演它的资格,否则即使你的角色拥有
sts:AssumeRole权限,对方也会拒绝扮演请求。为Glue Crawler配置专属连接,指定使用合作方角色访问目标桶
仅给Glue角色添加sts:AssumeRole权限还不够,需要通过连接明确告诉爬虫使用哪个角色访问目标S3桶:- 进入AWS Glue控制台,创建新的S3类型连接
- 在连接配置中选择「使用IAM角色访问另一个账户的S3存储桶」,填入合作方角色的ARN
- 将该连接关联到你的Glue Crawler的目标数据源配置中
确认Glue角色权限无额外限制(可选)
虽然你已附加AmazonS3FullAccess和AWSGlueServiceRole,但需检查是否存在权限边界、拒绝策略等限制了角色的实际权限范围,确保sts:AssumeRole和Glue相关权限能正常生效。
逻辑验证
你的Boto3代码能正常访问,是因为手动执行了sts:AssumeRole流程,直接使用合作方角色的临时凭证访问S3;但Glue爬虫不会自动触发这个流程,必须通过连接配置指定要使用的角色,同时配合合作方角色的信任策略,才能完成权限链的打通。
内容的提问来源于stack exchange,提问作者bone2
相关产品推荐
相关产品推荐

