要实现此目标,可以使用 AWS Identity and Access Management (IAM) 和 S3 Bucket Policy。下面是一个示例:
首先,创建一个 IAM 策略,将其附加到用户、组或角色上,以允许他们上传特定扩展名的对象,但不允许他们在该桶中创建文件夹。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::bucket-name/*",
"Condition": {
"StringLike": {
"s3:prefix": [
"",
"allowed-folder/*"
],
"s3:x-amz-meta-filetype": [
"allowed-ext1",
"allowed-ext2"
]
}
}
},
{
"Effect": "Deny",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket-name/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-meta-filetype": [
"allowed-ext1",
"allowed-ext2"
]
}
}
},
{
"Effect": "Deny",
"Action": [
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:RestoreObject"
],
"Resource": "arn:aws:s3:::bucket-name/*",
"Condition": {
"StringNotLike": {
"s3:prefix": [
"",
"allowed-folder/*"
]
}
}
},
{
"Effect": "Deny",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucket-name/*",
"Condition": {
"Null": {
"s3:prefix": true
}
}
}
]
}
接下来,创建一个桶策略,限制用户、组或角色不得在 S3 桶中创建文件夹,除非它们有特定的前缀和特定的扩展名。
{
"Version": "2012-10-17",
"Statement": [
{
上一篇:AWSS3请求速率过高,请降低