这是我的第一篇文章,所以任何提示都非常感谢 .

我目前有一个应用于S3bucket的策略,旨在防止用户使用公共ACL上传对象 . 通过带有指定固定ACL的powershell工具进行上传时,它可以工作:

Write-S3Object -bucketname isrmtestbucket -File C:\Users\user\Desktop\DemoFolder\text.txt -CannedACLName private

但是,如果我删除CannedACLName,它将被拒绝 .

Write-S3Object -bucketname isrmtestbucket -File C:\Users\user\Desktop\DemoFolder\text.txt

我已阅读亚马逊文档,它表示默认情况下对象上传为“私有” . 其中包含在政策中 .

这是ACL:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "DenyPublic",
        "Effect": "Deny",
        "Principal": "*",
        "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl"
        ],
        "Resource": "arn:aws:s3:::testbucket/*",
        "Condition": {
            "StringNotLike": {
                "s3:x-amz-acl": [
                    "private",
                    "NoACL",
                    "bucket-owner-full-control",
                    "bucket-owner-read"
                ]
            }
        }
    }
]

}

旁注:如果我尝试在GUI中创建文件夹,则在应用策略时也会拒绝该文件夹 .

任何指导都会很棒我对这个有点头疼 .

以下是用户的策略S3策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "*"
    }
]

}