uwe*_*uwe 14 permissions amazon-s3
在Amazon S3控制台中,我只看到"上传/删除"的权限选项.有没有办法允许上传但不能删除?
Ste*_*pel 19
您在AWS管理控制台中直接看到的权限基于S3可用的初始和相对简单的访问控制列表(ACL),它基本上区分了READ和WRITE权限,请参阅指定权限:
- READ - 允许被授权者列出存储桶中的对象
- WRITE - 允许被授权者创建,覆盖和删除存储桶中的任何对象
这些限制已通过添加存储桶策略(在存储桶级别应用的权限)和IAM策略(在用户级别应用的权限)得到解决,并且所有这三者也可以一起使用(这可能变得相当复杂,如下所述),请参阅整个图片的访问控制.
您的用例可能需要相应的存储桶策略,您也可以直接从S3控制台添加该策略.单击添加存储桶策略将打开存储桶策略编辑器,其中包含指向几个示例的链接以及强烈推荐的AWS Policy Generator,它允许您组合解决用例的策略.
对于其他锁定的存储桶,最简单的形式可能如此(请确保根据您的需要调整主体和资源):
{
"Statement": [
{
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket_name>/<key_name>",
"Principal": {
"AWS": [
"*"
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
根据您的使用案例,您可以通过组合各种允许和拒绝操作等轻松编写相当复杂的策略- 这显然也会产生无意的权限,因此正常的测试是关键; 因此,请一起使用ACL和存储桶策略或IAM和存储桶策略时,请注意这些问题.
最后,您可能希望查看我在简单AWS用户策略中指定单个存储桶的问题的答案,这解决了另一个常见的策略陷阱.
Pun*_*roi 10
您可以将no-delete策略附加到s3存储桶.例如,如果您不希望此IAM用户对任何存储桶或任何对象执行任何删除操作,则可以设置如下内容:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1480692207000",
"Effect": "Deny",
"Action": [
"s3:DeleteBucket",
"s3:DeleteBucketPolicy",
"s3:DeleteBucketWebsite",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用政策模拟器https://policysim.aws.amazon.com查看您的政策,以检查您的设置是否符合预期.
希望这可以帮助!
小智 5
这工作完美。感谢Pung Worathiti Manosroi。结合以下提到的政策:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectAcl",
"s3:PutObjectAcl",
"s3:ListBucket",
"s3:GetBucketAcl",
"s3:PutBucketAcl",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::mybucketname/*",
"Condition": {}
},
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*",
"Condition": {}
},
{
"Effect": "Deny",
"Action": [
"s3:DeleteBucket",
"s3:DeleteBucketPolicy",
"s3:DeleteBucketWebsite",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": "arn:aws:s3:::mybucketname/*",
"Condition": {}
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16421 次 |
| 最近记录: |