为S3提供基于Hadoop/Spark IAM角色的访问的正确方法是什么?

dre*_*mer 5 hadoop amazon-s3 amazon-ec2 amazon-iam apache-spark

我们在EC2上运行Hadoop集群,并将EC2实例连接到可以访问S3存储桶的角色,例如:"stackoverflow-example".

有几个用户将Spark作业放在集群中,我们过去使用过键但不想继续并希望迁移到角色,因此放在Hadoop集群上的任何作业都将使用与ec2实例关联的角色.做了很多搜索并找到了10张以上的门票,其中一些仍然是开放的,其中一些是固定的,其中一些没有任何评论.

想知道是否仍然可以将IAM角色用于放置在Hadoop集群上的作业(Spark,Hive,HDFS,Oozie等).大多数教程都在讨论传递密钥(fs.s3a.access.key,fs.s3a.secret.key),这些密钥不够好,也不安全.我们还遇到了Ambari凭证提供商的问题.

一些参考:

https://issues.apache.org/jira/browse/HADOOP-13277

https://issues.apache.org/jira/browse/HADOOP-9384

https://issues.apache.org/jira/browse/SPARK-16363

Ste*_*ran 2

您链接到 HADOOP-13277 的第一个内容是“我们可以拥有 IAM 吗?” JIRA 被关闭“你在 s3a 中有这个”。第二个是 HADOOP-9384,是“将 IAM 添加到 S3n”,关闭为“切换到 s3a”。还有SPARK-16363?不完整的 bugrep。

如果您使用S3a,并且不设置任何secrets,那么s3a客户端将回退到查看特殊的EC2实例元数据HTTP服务器,并尝试从那里获取secrets。

那它:它应该可以工作。