作为IAM用户,我已获得对S3存储桶的完全访问权限。
在查看AWS管理控制台>我的安全证书>用户> my_username时,AmazonS3FullAccess
的策略如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
但是,我无法通过AWS管理控制台下载其他IAM用户上传的对象。尝试下载对象时,出现以下xml错误页面:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>CB7861FFD8043D3D</RequestId>
<HostId>
whN/Ftumk8fRJcEyugQI7rpLC1F+00YJ7cM3bTILY9COmiuS0j2v7r37mbPf7B4tqYKTzNkjdfM=
</HostId>
</Error>
这些其他IAM用户具有与我相同的权限,并且对其对象的权限进行了任何特定的更改。
存储桶的所有者(还创建了IAM用户帐户)试图将我的Canonical ID添加到有问题的对象的权限中,但是没有用。但是,他可以下载任何IAM用户上传的对象。
上面JSON中的权限设置是否不足以完全访问其他IAM用户创建的对象?所有IAM用户都是在同一帐户下创建的。我们如何轻松地进行设置,以便组中的任何IAM用户都可以访问彼此的对象?
编辑:认为这是一个跨帐户问题,但是我相信所有IAM用户都是在同一帐户中创建的。相应地更改了措辞。
一些其他信息: 实际的存储桶策略如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Bucket Policy",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::123456789012:root",
"arn:aws:iam::987654321012:user/my_username"
]
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::my_bucket/*",
"arn:aws:s3:::my_bucket"
]
}
]
}
我已将我的用户信息添加到Principal中,但是在阅读了有关IAM用户的更多信息后,这似乎没有必要。虽然,这似乎也不是问题。
答案 0 :(得分:0)
显然,此问题更多是由于我正在使用存储在DBFS根目录(https://kb.databricks.com/dbfs/dbfs-root-permissions.html)中的Databricks创建文件。我认为使用Databricks并不重要,但确实如此。
具有访问问题的对象均使用DBFS CLI上传。使用dbutils将对象复制到FileStore(https://docs.databricks.com/user-guide/advanced/filestore.html)之后,我现在可以访问这些对象。