我创建了一个简单的策略来访问经过身份验证的(访问密钥/密码)用户的特定存储桶。以下是政策
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::xxxxxxx/*"
]
}
]
}
但是用户无法访问它。如果我用“arn:aws:s3 ::: *”替换资源,它可以工作,但显示所有存储桶到附加用户。
答案 0 :(得分:4)
请改为尝试:
{
"Statement": [
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::xxxxxxx",
"arn:aws:s3:::xxxxxxx/*"
]
}
]
}
您需要在存储桶(/ *)中授予访问权限,然后授予存储桶本身,这是您缺少的部分。
答案 1 :(得分:3)
作为E.J. Brennan建议您可以将存储桶本身添加到资源列表,但这将使用户有权删除存储桶本身。如果您只是希望他们查看存储桶并能够修改其中的对象,除了您目前拥有的内容之外,还可以授予对存储桶的列表访问权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::xxxxxxx"
]
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::xxxxxxx/*"
]
}
]
}