Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Bucket策略拒绝S3:DeleteBucket和S3:DeleteObject仍然删除对象_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services Bucket策略拒绝S3:DeleteBucket和S3:DeleteObject仍然删除对象

Amazon web services Bucket策略拒绝S3:DeleteBucket和S3:DeleteObject仍然删除对象,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我已将以下桶策略应用于my bucket.myapp.comS3桶: { "Version": "2008-10-17", "Id": "PreventAccidentalDeletePolicy", "Statement": [ { "Sid": "PreventAccidentalDelete", "Effect": "Deny", "Principal": {

我已将以下桶策略应用于
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/*"
            ]
        }
    ]
}
然后在控制台中,当我尝试删除bucket(右键单击,删除)时,我得到了预期的错误:
访问被拒绝

但问题是,它仍然会删除桶中的所有对象

为什么会发生这种情况


甚至在版本化的bucket中也会发生这种情况。它只会擦除所有版本,对象也会消失。

建议的最佳做法是,除了创建初始IAM用户之外,不要使用根帐户,这样您就可以添加限制以防止此类事件。如果有人有一个用例需要以编程方式执行此行为,他们不希望在系统中设置限制作为“安全防护”。用户应遵循最佳实践,并根据其情况实施必要的保护措施

amazon授权s3对象操作的确切过程:


本文档的第2 | A节描述了在用户上下文中应用于根帐户的行为:“如果请求是使用AWS帐户的根凭据发出的,Amazon S3将跳过此步骤。”

我尝试了这一点,我面临着同样的问题。也许你可以向AWSI报告。他们的论坛很没用。如果可以的话,也许我会发送一个支持请求。是的,通过电话或聊天的支持请求通常可以解决我的问题。是的,非常有趣!“Delete Bucket”命令不是API调用,它实际上会触发管理控制台中的代码来删除对象,然后删除Bucket(就像向导一样)。由于某些原因,即使用户无法在控制台中直接删除对象,它也可以删除对象。您是否使用根帐户删除bucket?这可能是个问题。但由于S3策略是基于资源的策略,您甚至可以拒绝root,正如您在原则上提到的“*”。