AWS CLI使用多个凭据同步S3存储桶

时间:2016-08-08 13:42:47

标签: amazon-web-services amazon-s3 aws-cli

我对源S3存储桶具有只读权限。我无法在此源帐户和存储桶上更改权限或任何类型。我没有这个账号。

我想将源存储桶中的所有文件同步到目标存储桶。我拥有包含目标存储区的帐户。

我拥有一组不属于我不拥有的源存储桶的凭据以及我拥有的目标存储桶。

有没有办法使用AWS CLI使用两组凭据在存储桶之间进行同步?

aws s3 sync s3://source-bucket/ --profile source-profile s3://destination-bucket --profile default

如果没有,我如何设置我拥有的目标存储桶的权限,以便我可以与CLI同步?

2 个答案:

答案 0 :(得分:1)

API级别的内置S3复制机制要求将请求提交目标存储桶,识别请求中的源存储桶和对象,并使用单个一组凭据,具有从源读取和写入目标的权限。

这是唯一支持从一个存储桶复制到另一个存储桶而无需下载和上传文件的方法。

标准解决方案位于http://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example2.html

您可以授予其用户写入您的存储桶的权限,也可以授予您的用户访问其存储桶的权限......但如果没有两个帐户所有者的共谋,则无法从一个存储桶复制到另一个存储桶而无需下载和重新上传文件使用这两种权限建立一组凭据。

答案 1 :(得分:0)

对于这个用例,我会考虑Cross-Region Replication Where Source and Destination Buckets Are Owned by Different AWS Accounts

  

...您在源上设置了跨区域复制   一个帐户拥有的存储桶,用于复制目标中的对象   其他帐户拥有的存储桶。

     

该过程与设置跨区域复制时相同   两个存储桶都由同一个帐户拥有,除了您执行一个操作   额外步骤 - 目标存储桶拥有者必须创建存储桶策略   授予源存储区所有者对复制操作的权限。