AWS实例distcp到s3 - 访问密钥

时间:2015-10-17 18:15:14

标签: hadoop amazon-web-services amazon-s3 hdfs distcp

如果我有一个使用角色创建的EC2实例,那么从hdfs到s3获取访问密钥以执行distcp的最佳实践方法是什么?

我不想使用我们的自动部署工具向实例发送访问密钥,因为这意味着将密钥存储在视线中。有没有办法让实例使用CLI请求一组密钥?

我需要将它们用于hadoop distcp /data s3n://<access_key>:<secret_key>@mybucket/baackup/data

1 个答案:

答案 0 :(得分:3)

当使用角色启动Amazon EC2实例时,实例将通过Instance Metadata Service获得对临时安全密钥的访问权限。它的工作原理如下:

  • 在身份和访问管理(IAM)中创建角色
  • 授予角色
  • 适当的权限
  • 选择了该角色后,启动了启动的Amazon EC2实例。如果您使用Amazon Elastic MapReduce(EMR)来启动实例,那么通常会为它们分配一个特定于EMR的角色(您可以修改它)
  • 通过网址http://169.254.169.254/latest/meta-data/iam/security-credentials/
  • 为实例提供了一组临时安全凭证

调用AWS SDK的软件知道自动查看此URL以检索安全凭据。如果您使用的软件没有自动查看此URL,您可以提取它们并将它们传递给软件。

请参阅:Retrieving Security Credentials from Instance Metadata