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

为何我的EMR集群无法访问指定私有S3存储桶?

可能导致EMR集群无法访问私有S3存储桶的原因
  • EMR_EC2_DefaultRole缺少Assume x-role的权限
    你仅配置了x-role允许EMR_EC2_DefaultRole执行sts:AssumeRole操作,但EMR_EC2_DefaultRole本身未被授予调用sts:AssumeRole访问x-role的权限。需在EMR_EC2_DefaultRole的权限策略中添加如下语句:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": "arn:aws:iam::current_account_number:role/x-role"
            }
        ]
    }
    
  • EMR集群未正确关联EMR_EC2_DefaultRole
    检查EMR集群的实例配置文件(Instance Profile)是否确实关联了EMR_EC2_DefaultRole。若集群使用的是其他实例角色,即便x-role信任了EMR_EC2_DefaultRole,也无法生效。

  • 未在EMR作业中显式指定使用x-role
    EMR实例默认使用EMR_EC2_DefaultRole的权限,不会自动切换到x-role。需在作业配置中明确指定:

    • Spark作业可添加配置:spark.hadoop.fs.s3a.roleARN=arn:aws:iam::current_account_number:role/x-role
    • Hadoop作业可在core-site.xml中设置fs.s3a.roleARN参数
  • S3桶策略未明确允许x-role访问
    尽管x-role拥有访问所有S3资源的权限,但私有S3桶的资源策略可能存在拒绝规则,或未明确允许x-role访问。检查桶策略是否包含如下允许语句:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::current_account_number:role/x-role"
                },
                "Action": "s3:*",
                "Resource": [
                    "arn:aws:s3:::your-bucket-name",
                    "arn:aws:s3:::your-bucket-name/*"
                ]
            }
        ]
    }
    
  • x-role存在权限限制条件
    若x-role的权限策略设置了条件限制(如MFA验证、特定IP范围),而EMR实例不符合这些条件,也会导致访问失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:24:22