【发布时间】:2017-08-24 05:40:29
【问题描述】:
我已将以下存储桶策略应用于my-bucket.myapp.com S3 存储桶:
{
"Version": "2008-10-17",
"Id": "PreventAccidentalDeletePolicy",
"Statement": [
{
"Sid": "PreventAccidentalDelete",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:DeleteBucket",
"s3:DeleteObject”
],
"Resource": [
“arn:aws:s3:::my-bucket.myapp.com”,
"arn:aws:s3:::my-bucket.myapp.com/*"
]
}
]
}
然后在控制台中,当我尝试删除存储桶(右键单击,删除)时,我收到了我期望的错误:Access Denied。
但是,问题来了,问题是它仍然删除了 在桶中的所有对象
为什么会这样?
甚至在版本化存储桶中也会发生这种情况。它只是擦除所有版本并且对象已消失。
【问题讨论】:
-
我试过这个,我面临同样的问题。也许您可以向 AWS 报告此情况
-
我试过了。他们的论坛很没用。如果可以的话,也许我会发送支持请求。
-
是的,通过电话或聊天的支持请求通常可以为我解决问题
-
是的,非常有趣! “删除桶”命令不是 API 调用,它实际上触发管理控制台中的代码删除对象,然后删除桶(如向导)。出于某种原因,即使用户无法在控制台中直接删除对象,它也可以删除对象。
-
你是用root账号删除bucket吗?这可能是个问题。但由于 S3 策略是基于资源的策略,您甚至可以拒绝 root,因为您在主体中提到了“*”。
标签: amazon-web-services amazon-s3