繁体   English   中英

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

[英]AWS CLI syncing S3 buckets with multiple credentials

我对源 S3 存储桶具有只读访问权限。 我无法更改此源帐户和存储桶的权限或任何此类内容。 我不拥有这个帐户。

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

对于我不拥有的源存储桶和我拥有的目标存储桶,我有一组单独的凭据。

有没有一种方法可以使用 AWS CLI 在使用两组凭证的存储桶之间进行同步?

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

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

内置S3复制机构,在API级别,需要请求被提交目标桶,识别该请求内的源区和物件,和使用组同时具有授权从源读取凭证和写入目标。

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

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

您可以授予他们的用户写入您的存储桶的权限,或者他们可以授予您的用户访问其存储桶的权限……但是,如果没有两个帐户所有者的共谋建立一个存储桶,就不可能在不下载和重新上传文件的情况下从一个存储桶复制到另一个存储桶具有这两种权限的一组凭据。

为此使用rclone 它很方便,但它确实会下载和上传我认为的文件,这使得它对于大数据量来说很慢。

rclone --config=creds.cfg copy source:bucket-name1/path/ destination:bucket-name2/path/

信用证.cfg:

[source]
type = s3
provider = AWS
access_key_id = AAA
secret_access_key = bbb

[target]
type = s3
provider = AWS
access_key_id = CCC
secret_access_key = ddd

对于这个用例,我会考虑跨区域复制,其中源和目标存储桶由不同的 AWS 账户拥有

...您在一个账户拥有的源存储桶上设置跨区域复制,以复制另一个账户拥有的目标存储桶中的对象。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM