我无法将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;请求ID:XXXX), S3扩展请求ID:XXXXX **
请指导那是什么,我缺少什么?
我已完成以下步骤
使用新的EMR安全策略和以下配置分类手动创建EMR集群
"fs.s3.enableServerSideEncryption": "true",
"fs.s3.serverSideEncryption.kms.keyId":"KEYID"
答案 0 :(得分:3)
默认情况下,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/