【发布时间】:2021-07-29 13:12:59
【问题描述】:
我有两个帐户:帐户 A 和帐户 B。
我正在账户 A 中执行 Athena 查询,并希望将查询结果填充到账户 B 的 S3 存储桶中。
我已经在单个帐户中测试了无数次执行此操作的脚本,因此我知道我的代码没有问题。 Athena 中的查询历史也表明我的代码已经运行成功,所以一定是权限问题。
我能够在帐户 B 中看到一个包含 CSV 文件的对象以及查询结果(如预期的那样),但由于某种原因无法打开或下载它以查看内容。当我尝试这样做时,我只看到以下 XML 代码:
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
在文件属性中,我在Server-side encryption settings 和You don't have permission to get object ACL 下看到了Unknown Error,并显示了一条关于不允许s3:GetObjectAcl 操作的消息。
我尝试通过账户 B 中的存储桶策略为账户 A 和账户 B 授予完整的 S3 权限,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "This is for Account A",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::iam-number-account-a:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-bucket-name",
"arn:aws:s3:::my-bucket-name/*"
]
},
{
"Sid": "This is for Account B",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::iam-number-account-b:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-bucket-name",
"arn:aws:s3:::my-bucket-name/*"
]
}
]
}
其他一些可能导致我的问题的存储桶(帐户 B)配置设置:
-
默认加密:禁用
-
阻止公共访问:关闭所有内容
-
对象所有权:首选存储桶所有者
-
访问控制列表:
Bucket Owner - 账户 B:对象(List、Write)、Bucket ACL(Read、Write)
外部帐户 - 帐户 A:对象(写入)、存储桶 ACL(写入)
如果有人可以帮助确定我的问题以及我需要解决的问题,我们将不胜感激。几个小时以来,我一直在努力寻找解决方案。
【问题讨论】:
标签: amazon-web-services permissions account amazon-s3