没有为EMR默认IAM角色设置fs.s3.awsAccessKeyId和fs.s3.awsSecretAccessKey

时间:2015-07-22 03:44:20

标签: emr elastic-map-reduce amazon-emr

我的一项EMR工作依赖于分别从fs.s3.awsAccessKeyIdfs.s3.awsSecretAccessKey属性获取AWS访问密钥ID和秘密访问密钥。但是,当我使用默认的EC2和EMR角色运行EMR集群时,这些属性不存在。

如何在运行具有默认角色的EMR群集时获取这些访问密钥,此时此时需要使用IAM角色?我可以做的一种方法是自己明确设置这些属性,但我想看看我是否遗漏了其他东西。

1 个答案:

答案 0 :(得分:2)

使用角色而非硬编码密钥是最佳做法(http://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)。 EMR上的一个示例是底层Hadoop FS调用使用分配给EC2实例的角色来生成临时安全凭证。

您的应用程序可以构建为执行相同的操作(http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-ec2instance.html),以便从指定的角色获取临时访问密钥和带有令牌的秘密,而不是从固定配置中读取它。