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

使用AWS Glue Crawler访问其他账号S3桶遇权限问题求助

问题分析与解决方案

核心问题

Glue Crawler 默认不会自动触发你配置的 sts:AssumeRole 权限去切换到合作方角色,同时还存在两处关键配置缺失,导致爬虫无法访问目标S3桶。

需补充的配置与权限项

  1. 合作方角色需添加信任策略,允许你的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权限,对方也会拒绝扮演请求。

  2. 为Glue Crawler配置专属连接,指定使用合作方角色访问目标桶
    仅给Glue角色添加sts:AssumeRole权限还不够,需要通过连接明确告诉爬虫使用哪个角色访问目标S3桶:

    • 进入AWS Glue控制台,创建新的S3类型连接
    • 在连接配置中选择「使用IAM角色访问另一个账户的S3存储桶」,填入合作方角色的ARN
    • 将该连接关联到你的Glue Crawler的目标数据源配置中
  3. 确认Glue角色权限无额外限制(可选)
    虽然你已附加AmazonS3FullAccess和AWSGlueServiceRole,但需检查是否存在权限边界、拒绝策略等限制了角色的实际权限范围,确保sts:AssumeRole和Glue相关权限能正常生效。

逻辑验证

你的Boto3代码能正常访问,是因为手动执行了sts:AssumeRole流程,直接使用合作方角色的临时凭证访问S3;但Glue爬虫不会自动触发这个流程,必须通过连接配置指定要使用的角色,同时配合合作方角色的信任策略,才能完成权限链的打通。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:05:55