繁体   English   中英

关于复制 S3“CopyObject 操作:访问被拒绝”

[英]On Copying S3 "CopyObject operation: Access Denied"

我想将 Amazon S3 存储桶的内容从账户 A 复制到账户 B。

我尝试运行这个 AWS CLI 命令:

aws s3 cp s3://bucketA s3://bucketB --recursive --acl bucket-owner-full-control

它给出了错误:

调用 CopyObject 操作时发生错误(AccessDenied):Access Denied

我已将s3:getobjects3:putobject权限授予这两个存储桶。

如果涉及加密,那么如果您对用于存储桶/内容的密钥没有 kms 权限,您将收到一条访问被拒绝的消息。 如果相关,请尝试添加 kms 权限。 此外,如果启用了 cloudtrail,它可以提供更好的错误信息。

[编辑] 另一件事,在缩小到特定的存储桶权限之前,您通常需要 s3:list* 来查询存储桶。

通常尝试使用 s3:* 和 kms:*,如果可行,请从那里缩小范围。

在属于不同 AWS 账户的 Amazon S3 存储桶之间复制数据时,您将需要使用对源存储桶具有读取权限并对目标存储桶具有写入权限的单个 AWS 凭证(例如 IAM 用户)。

这需要在源帐户和目标帐户中配置权限。 配置因 IAM 用户属于源账户还是目标账户而异。

如果使用来自源帐户的凭据

  • 在源帐户中,授予 IAM 用户对源存储桶的GetObject权限(这涉及创建存储桶策略)
  • 在目标账户中,在目标存储桶上添加存储桶策略,向源账户中的 IAM 用户授予PutObject权限
  • 使用--acl bucket-owner-full-control复制文件以将所有权授予目标帐户

如果使用来自目标帐户的凭据

  • 在源账户中,在源存储桶上添加存储桶策略,向目标账户中的 IAM 用户授予GetObject权限
  • 在目标账户中,授予 IAM 用户PutObject对目标存储桶的权限(这涉及创建存储桶策略)

暂无
暂无

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

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