amazon-web-services - 将文件从一个存储桶复制到不同帐户中的另一个存储桶仍将 s3 文件所有者设置为源文件所有者

标签 amazon-web-services amazon-s3 aws-sdk

我的一个帐户中有一个存储桶,我正在尝试将此存储桶中的内容复制到另一个帐户中的另一个存储桶:

在这里我发现:AWS S3 copy files and folders between two buckets

以下命令:

aws s3 sync s3://mybucket-src s3://mybucket-target

就可以了。但问题是,当我在目标存储桶中复制图像时,我看到:

enter image description here

正如您所看到的,加密已从无更改为拒绝访问。因此,现在当我尝试手动公开图像时,它不起作用,我什至无法打开图像。

谁能帮我解决我的问题吗?

这是我的目标政策:

{ "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 对象。

你有两个选择:

  1. 在将未加密的文件存储到目标存储桶之前,重做解密文件的副本。
  2. 在帐户之间共享加密 key 。

如何启用对现有自定义 key 的跨帐户访问。

在 KMS 控制台中,单击您要启用跨账户访问的自定义 key 别名。

在“ key 用法”部分中,查找“外部帐户”子部分,然后单击“添加外部帐户”。键入您希望能够使用此 key 的账户的 12 位 AWS 账户 ID。对您要添加的每个其他外部帐户重复此过程。完成后单击“保存更改”。

Share Custom Encryption Keys

关于amazon-web-services - 将文件从一个存储桶复制到不同帐户中的另一个存储桶仍将 s3 文件所有者设置为源文件所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47274522/

相关文章:

python - 当该依赖项是 numpy/scipy/...(其他一些)时,pip install 没有正确处理依赖项?

amazon-web-services - AWS Cognito - 帮助理解经过身份验证和未经身份验证的访问

php - Amazon S3 为每个对象创建唯一键

objective-c - 哪种方法更好 : retrieve images from AWS S3 or download it and store locally in a temp folder to be displayed?

java - 提供商链未获取 AWS 凭证文件

javascript - 当从异步函数返回 Promise 时会发生什么?

php - 无法在 php 上显示错误,只是白屏

amazon-web-services - AWS cloudfront url 重写

javascript - 如何检索通过 CollectionFS :S3 上传到 Amazon S3 的图像

javascript - 查找附加到 Cognito 组的 RoleArn