这是我的第一篇文章,所以任何提示都非常感谢 .
我目前有一个应用于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": "*"
}
]
}