如何使用 s3cmd 在不同 aws 帐户的 s3 存储桶之间传输数据?
command will be like this: s3cmd rsync s3://acc1_bucket/folder/ s3://acc2_bucket/folder --recursive
但是那么它将如何识别第二个存储桶环境呢?这样做的正确方法是什么?
如何使用 s3cmd 在不同 aws 帐户的 s3 存储桶之间传输数据?
command will be like this: s3cmd rsync s3://acc1_bucket/folder/ s3://acc2_bucket/folder --recursive
但是那么它将如何识别第二个存储桶环境呢?这样做的正确方法是什么?
您可以使用Minio 客户端(又名 mc),它的开源并与 AWS S3 兼容。
在 Linux 上安装 Minio 客户端
添加 AWS S3 凭证
使用 mc mirror 将对象/存储桶从一个帐户转移到另一个帐户。
在此示例中,别名为“mys3one”且存储桶名称为“photos”的 s3 账户被镜像到别名为“mys3two”且存储桶名称为 photo2 的 s3 账户。
您可以通过将其添加到 cron 来自动执行相同的操作,因此可以在需要时定期同步内容。
希望能帮助到你。免责声明:我为Minio工作
您只需在 S3 存储桶策略中授权您的 IAM 用户访问 buvket,如下所示:
然后,由于这是跨账户,您还必须允许您的 IAM 用户执行 S3 调用,方法是将策略附加到您的 IAM 用户,如下所示:
只需配置您的 cli,您就可以访问您的存储桶跨帐户。
帐户使用不同的凭据。无法从一个帐户同步到另一个帐户并提供单独的凭据。这样做的唯一方法是允许使用临时帐户公开访问第二个存储桶。
如果这不是一个选项,那么您最好的选择是:
s3 sync s3://acct1/bucket . --profile acct1 s3 sync . s3://acct2/bucket --profile acct2