我想使用lambda从外部s3帐户下载备份文件。我有访问密钥ID,秘密访问密钥,存储桶名称和区域名称。然后将其与我的私有s3存储桶同步。 可能吗?又如何?
答案 0 :(得分:0)
您的要求似乎是:
Bucket-A
的{{1}}中存储数据Account-A
中的Bucket-B
最简单的方法是使用Account-B
命令,因为它可以直接在存储区之间(甚至在区域之间!)传输数据,而无需下载和上传。
为此,您将需要一组凭据,这些凭据对CopyObject()
具有读取权限,对Bucket-A
具有写入权限。可以是:
Bucket-B
中的IAM User-A
可以读取Account-A
,并且Bucket-A
上的存储桶策略允许Bucket-B
写入User-A
, OR Bucket-B
中的一个IAM User-B
可以写入Account-B
,而Bucket-B
上的存储桶策略允许对Bucket-A
的读取访问使用存储桶策略意味着一组凭证可以同时使用User-B
命令来读取和写入。否则,您将需要使用一组凭据来下载对象,而使用另一组凭据来上传对象。那不是一个聪明的方法。
请参阅:Provide Cross-Account Access to Objects In S3 Buckets
运行复制命令的最简单方法是使用AWS Command-Line Interface (CLI) CopyObject()
或aws s3 cp
命令。在您的情况下,如果您希望同步文件的内容,则可以使用aws s3 sync
。
最后一个选择是使用Cross-Region Replication - Amazon Simple Storage Service,但这仅适用于不同区域中的存储桶。这些存储桶可以属于不同的AWS账户。