【发布时间】:2017-01-15 23:36:02
【问题描述】:
我知道这个问题可能已被多次询问,但我尝试了这些解决方案,但没有奏效。因此,在新线程中询问它以获得明确的解决方案。
我创建了一个具有 S3 只读权限(获取和列出所有 S3 资源)的 IAM 用户,但是当我尝试使用 HDFS 命令从 EMR 集群访问 S3 时,它会为某些文件夹引发“错误代码 403 禁止”异常。其他帖子中的人已将其回答为权限问题;我没有找到正确的解决方案,因为它是“禁止访问”而不是“拒绝访问”。此错误的行为仅出现在存储桶内的某些文件夹(包含对象)和某些空文件夹中。据观察,如果我使用本机 API 调用,那么它可以正常工作,如下所示:
使用 s3a 调用时出现异常“禁止”:
hdfs dfs -ls s3a://<bucketname>/<folder>
使用s3原生调用s3n和s3时没有错误:
hdfs dfs -ls s3://<bucketname>/<folder>
hdfs dfs -ls s3n://<bucketname>/<folder>
对于空文件夹也观察到了类似的行为,我理解在 S3 上只有对象是物理文件,而其余的“存储桶和文件夹”只是一个占位符。但是,如果我创建一个新的空文件夹,则 s3a 调用不会引发此异常。
附: - 根 IAM 访问密钥超出此异常。
【问题讨论】:
标签: amazon-web-services hadoop amazon-s3 emr