【问题标题】:Trouble integrating EMR with S3将 EMR 与 S3 集成时遇到问题
【发布时间】:2017-08-28 19:49:03
【问题描述】:

我无法将 EMR 与 S3 集成,即实施 EMRFS

EMR 版本:emr-5.4.0

当我运行 hdfs dfs -ls s3://pathto/bucket/ 时出现以下错误

ls:com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;请求编号:XXXX), S3 扩展请求 ID:XXXXX**

请指导那是什么,我缺少什么?

我已经完成了以下步骤

  1. 为 EMR 创建了 KMS 密钥
  2. 在新创建的 KMS 密钥中添加了 EMR_EC2_DefaultRole 作为密钥用户
  3. 为 EMR 创建了 S3 服务器端加密安全配置策略
  4. 为 S3 存储桶访问的角色/EMR_EC2_DefaultRole 和 EMR_DefaultRole 创建了新的内联策略
  5. 使用新的 EMR 安全策略和以下配置分类手动创建 EMR 集群

    "fs.s3.enableServerSideEncryption": "true",
    "fs.s3.serverSideEncryption.kms.keyId":"KEYID"
    

【问题讨论】:

    标签: amazon-web-services hadoop amazon-s3 emr amazon-iam


    【解决方案1】:

    默认情况下,EMR 将使用实例配置文件凭据 (EMR_EC2_DefaultRole) 访问您的 S3 存储桶。该错误表示此角色没有访问 S3 存储桶的必要权限。

    您需要验证该角色的 IAM 角色政策,以允许对存储桶和对象执行必要的 S3 操作(如 s3:list*)。还要检查您是否有任何明确的拒绝等。 http://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html

    访问也可能由于您尝试访问的 S3 存储桶上设置的存储桶策略而被拒绝。 http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html https://aws.amazon.com/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-s3-resources/

    您的 EMR 集群可能使用 VPC endpoint for S3 访问 S3 而不是 Internet/NAT。在这种情况下,您还需要验证 VPC 端点策略。 https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3

    【讨论】:

      猜你喜欢
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2014-05-23
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      相关资源
      最近更新 更多