将 EMR 与 S3 集成时遇到问题
Trouble integrating EMR with S3
我在将 EMR 与 S3 集成时遇到问题,即实施 EMRFS
电子病历版本:emr-5.4.0
当我 运行 hdfs dfs -ls s3://pathto/bucket/
我得到以下错误
ls: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XXXX),
S3 Extended Request ID: XXXXX**
请指导那是什么,我缺少什么?
我已完成以下步骤
- 为 EMR 创建了 KMS 密钥
- 在新创建的 KMS 密钥中添加 EMR_EC2_DefaultRole 作为密钥用户
- 为 EMR 创建了 S3 服务器端加密安全配置策略
- 为 role/EMR_EC2_DefaultRole 和 EMR_DefaultRole 为 S3 存储桶访问创建了新的内联策略
使用新的 EMR 安全策略和以下配置分类手动创建了 EMR 集群
"fs.s3.enableServerSideEncryption": "true",
"fs.s3.serverSideEncryption.kms.keyId":"KEYID"
默认情况下,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 而不是 Internet/NAT 来访问 S3。在这种情况下,您还需要验证 VPC 端点策略。
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3
我在将 EMR 与 S3 集成时遇到问题,即实施 EMRFS
电子病历版本:emr-5.4.0
当我 运行 hdfs dfs -ls s3://pathto/bucket/
我得到以下错误
ls: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XXXX), S3 Extended Request ID: XXXXX**
请指导那是什么,我缺少什么?
我已完成以下步骤
- 为 EMR 创建了 KMS 密钥
- 在新创建的 KMS 密钥中添加 EMR_EC2_DefaultRole 作为密钥用户
- 为 EMR 创建了 S3 服务器端加密安全配置策略
- 为 role/EMR_EC2_DefaultRole 和 EMR_DefaultRole 为 S3 存储桶访问创建了新的内联策略
使用新的 EMR 安全策略和以下配置分类手动创建了 EMR 集群
"fs.s3.enableServerSideEncryption": "true", "fs.s3.serverSideEncryption.kms.keyId":"KEYID"
默认情况下,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 而不是 Internet/NAT 来访问 S3。在这种情况下,您还需要验证 VPC 端点策略。 https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3