我想将数据从S3传输到远程服务器。 S3上的数据受到保护,当我尝试在远程服务器上使用带有凭据的AWS CLI时出现AccessDenied
错误。
但是,当我在E2实例中并使用相同的命令时,我可以访问受保护的文件。
是否可以直接将这些文件从E2实例传输到我的远程服务器?
以前我会:
然而,这些文件很大,如果我能够在E2实例中从S3转移到我的远程服务器,我将在一半的时间内执行传输。
这可能吗?我试过了
aws s3 cp s3://protected-bucket/data/data.txt user_name@remote-server.edu:/path/to/data/
它失败了。我也尝试了aws s3 sync
,但也失败了。
答案 0 :(得分:1)
您可以从Amazon EC2实例而不是远程服务器访问文件这一事实表明您使用一组不同的凭据来访问Amazon S3。
很可能已将 IAM角色分配给您的EC2实例。如果是,则会自动提供AWS Command-Line Interface (CLI)可以使用的凭据。
您需要为远程服务器创建IAM用户,然后为该IAM用户生成访问密钥和密钥。在远程服务器上,运行aws configure
并输入这些凭据。您需要根据需要为该IAM用户分配权限,以授予对S3存储桶的访问权限。
请参阅:Managing Access Keys for IAM Users - AWS Identity and Access Management
答案 1 :(得分:0)
您可以使用AWS SDK boto3将文件从S3下载到远程服务器。
http://boto3.readthedocs.io/en/latest/guide/s3-example-download-file.html