我的一项EMR工作依赖于分别从fs.s3.awsAccessKeyId
和fs.s3.awsSecretAccessKey
属性获取AWS访问密钥ID和秘密访问密钥。但是,当我使用默认的EC2和EMR角色运行EMR集群时,这些属性不存在。
如何在运行具有默认角色的EMR群集时获取这些访问密钥,此时此时需要使用IAM角色?我可以做的一种方法是自己明确设置这些属性,但我想看看我是否遗漏了其他东西。
答案 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),以便从指定的角色获取临时访问密钥和带有令牌的秘密,而不是从固定配置中读取它。