我的一个帐户中有一个存储桶,我正在尝试将此存储桶中的内容复制到另一个帐户中的另一个存储桶:
在这里我发现:AWS S3 copy files and folders between two buckets
以下命令:
aws s3 sync s3://mybucket-src s3://mybucket-target
就可以了。但问题是,当我在目标存储桶中复制图像时,我看到:
正如您所看到的,加密已从无更改为拒绝访问。因此,现在当我尝试手动公开图像时,它不起作用,我什至无法打开图像。
谁能帮我解决我的问题吗?
这是我的目标政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAll", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::xxxxxxxxxxxx:root", "" ] }, "Action": "", "Resource": [ "arn:aws:s3:::test", "arn:aws:s3:::test/*" ] } ] }
此外,两个存储桶上均未默认加密
更新: 还有一件事可能会提供线索:我在另一个具有相同 s3 设置的帐户上进行了测试,并且可以正常工作,但这两个帐户存在相同的问题。我不确定会出现什么问题,因为我什至没有在 s3 上使用加密。我认为帐户设置出现问题,或者可能是 aws 中的错误
更新:
还有一件事我还注意到,在新帐户中复制的文件的所有者仍然是最后一个帐户。所以它引用的是最后一个所有者
最佳答案
我的回答假设您已使用 KMS 托管 key (SSE-KMS) 加密 S3 对象。
你有两个选择:
- 在将未加密的文件存储到目标存储桶之前,重做解密文件的副本。
- 在帐户之间共享加密 key 。
如何启用对现有自定义 key 的跨帐户访问。
在 KMS 控制台中,单击您要启用跨账户访问的自定义 key 别名。
在“ key 用法”部分中,查找“外部帐户”子部分,然后单击“添加外部帐户”。键入您希望能够使用此 key 的账户的 12 位 AWS 账户 ID。对您要添加的每个其他外部帐户重复此过程。完成后单击“保存更改”。
关于amazon-web-services - 将文件从一个存储桶复制到不同帐户中的另一个存储桶仍将 s3 文件所有者设置为源文件所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47274522/