繁体   English   中英

Amazon S3错误代码403禁止从EMR群集

[英]Amazon S3 Error Code 403 Forbidden from EMR cluster

我知道这个问题可能已被多次询问,但我尝试了这些解决方案而且没有锻炼。 因此,在新的线程中询问它是否有明确的解决方案。

我创建了一个具有S3只读权限的IAM用户(所有S3资源上的Get和List)但是当我尝试使用HDFS命令从EMR集群访问S3时,它会抛出某些文件夹的“Error Code 403 Forbidden”异常。 其他帖子中的人已将其回答为许可问题; 我没有找到正确的解决方案,因为它是“禁止”而不是“拒绝访问”。 此错误的行为仅出现在存储桶内的某些文件夹(包含对象)和某些空文件夹中。 据观察,如果我使用本机API调用,那么它正常工作如下:

使用s3a调用时出现“禁止访问”异常:

hdfs dfs -ls s3a://<bucketname>/<folder>

使用s3本机调用s3ns3时没有错误:

hdfs dfs -ls s3://<bucketname>/<folder>

hdfs dfs -ls s3n://<bucketname>/<folder>

对于空文件夹也观察到类似的行为,我理解在S3上只有对象是物理文件,而其余的“桶和文件夹”只是一个占位符。 但是,如果我创建一个新的空文件夹,那么s3a调用不会抛出此异常。

PS - Root IAM访问密钥超过此异常。

我建议您在issues.apache.org,HADOOP项目,组件fs / s3 上使用您正在使用的确切hadoop版本提交JIRA。 添加堆栈跟踪作为第一个注释,因为这是我们开始计算正在发生的事情的唯一方法。

FWIW,除了简单的只读和R / W之外,我们还没有测试过受限制的权限; 在路径上混合权限不可避免地会破坏事物,因为客户端代码期望能够在桶中获取HEAD,GET和LIST中的任何内容。

顺便说一句,Hadoop S3客户端都通过创建带有“/”后缀的0字节对象来模拟空目录,e / g“folder /”; 然后在其上使用HEAD来探测空桶。 在空目录下添加数据时,模拟父目录为DELETE-d。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM