2013-03-20 85 views
1

当我使用“wget”命令将文件从亚马逊S3下载到亚马逊EC2实例 时,它提供以下消息和文件未被下载。将文件从S3下载到EC2时出错

如何解决这个问题..?

命令: - >

"wget https://s3.amazonaws.com/docsbucket/intro.doc" 

错误消息: - >

"Resolving s3.amazonaws.com... 207.171.163.225 
Connecting to s3.amazonaws.com|207.171.163.225|:443... connected. 
HTTP request sent, awaiting response... 403 Forbidden 
2013-03-20 13:06:00 ERROR 403: Forbidden." 

回答

1

除非文件是公开的,你需要用钥匙来验证下载文件。这可能是最简单的工具,如s3cmd

+0

你能PLZ告诉我,我该怎么办呢? – Pravin 2013-03-20 16:16:47

1

您应该启动您的EC2实例并具有从S3存储桶读取的权限。

最简单的方法是使用角色。您只需在AWS的IAM(身份和访问管理)服务中创建一个可以从S3读取的角色。然后你用这个角色启动你的实例。 AWS将负责为实例获取正确的凭据,并且您可以使用S3 CLI工具获取您的S3对象。

您可以使用相同的“技巧”来访问其他资源和对这些资源的其他操作。

您可以在AWS单证阅读更多关于它:http://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html

+0

IAM角色将获得实例的凭据,但您仍然需要使用使用这些凭据的机制。 wget命令不使用任何凭据,并且IAM不会添加它们。建议使用像s3cmd这样的工具是一个不错的选择。这将利用任何定义的角色。 – 2013-03-21 01:04:26

+0

你说得对。我更新了答案以纠正它。 – Guy 2013-03-21 13:47:36