我需要创建一个对下面的type1目录具有完全访问权限的策略,但是在其他地方没有访问权限,也无法访问其他地方列出的文件。
以下政策几乎成功实现了这一目标。
当用户登录时,他们成功获得拒绝访问错误,因此根目录中没有列出任何文件(访问被拒绝错误)。用户必须直接访问type1目录,使用直接网址 - 这就是我们想要的。
问题是,当通过url访问type1目录时,面包屑显示在页面顶部,用户仍然可以单击devs
目录并查看所有文件。
我想调整以下政策,以便分配此政策的任何用户都无法在 type1
目录之外的任何地方看到任何对象。
这可能吗?我很感激任何建议。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::devs",
"arn:aws:s3:::devs/front-end/type1/*"
]
}
]
}
答案 0 :(得分:0)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::devs"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"devs/front-end/type1/*"
]
}
}
},
{
"Sid": "AllowAllS3ActionsInFolder",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::devs/front-end/type1/*"
]
}
]
}
用户需要在Amazon S3管理控制台中使用预先提供的URL直接跳转到存储桶和文件夹,因为他们无权列出任何其他路径,例如:
https://console.aws.amazon.com/s3/buckets/devs/front-end/type1/?region=ap-southeast-2&tab=overview