S3 存储桶创建:限制为特定名称模式
S3 Bucket Creation: Restrict to Specific Name Pattern
有没有办法指定存储桶创建策略,以便具有分配角色的用户只能创建具有指定名称模式的存储桶,例如 company-dbbackup-*
而不能创建其他名称模式?
例如,将允许用户创建名称为 company-dbbackup-March2017
和 company-dbbackup-fullarchive
的存储桶,但不能创建名称为 test-bucketname-invalid
.
的存储桶
我现在拥有的:
{
"Sid": "Stmt1493212897117",
"Action": [
"s3:CreateBucket",
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
}
但这允许我创建任何名称的存储桶。
事实证明它相对简单(除非我忽略了什么)。我只是将权限拆分如下:
{
"Sid": "RestrictCreationToNamePolicy",
"Action": [
"s3:CreateBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::company-dbbackup-*"
}
{
"Sid": "AllowListingOfBuckets",
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
}
我还没有找到一种方法来限制只列出具有命名策略的存储桶。如果我将第二条语句限制在资源 arn:aws:s3:::company-dbbackup-*
上,我在尝试列出存储桶时收到拒绝访问。
编辑:显然限制列表是不可能的,here's a good Stack Overflow answer with possible workarounds. Here's also another good discussion。
有没有办法指定存储桶创建策略,以便具有分配角色的用户只能创建具有指定名称模式的存储桶,例如 company-dbbackup-*
而不能创建其他名称模式?
例如,将允许用户创建名称为 company-dbbackup-March2017
和 company-dbbackup-fullarchive
的存储桶,但不能创建名称为 test-bucketname-invalid
.
我现在拥有的:
{
"Sid": "Stmt1493212897117",
"Action": [
"s3:CreateBucket",
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
}
但这允许我创建任何名称的存储桶。
事实证明它相对简单(除非我忽略了什么)。我只是将权限拆分如下:
{
"Sid": "RestrictCreationToNamePolicy",
"Action": [
"s3:CreateBucket"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::company-dbbackup-*"
}
{
"Sid": "AllowListingOfBuckets",
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
}
我还没有找到一种方法来限制只列出具有命名策略的存储桶。如果我将第二条语句限制在资源 arn:aws:s3:::company-dbbackup-*
上,我在尝试列出存储桶时收到拒绝访问。
编辑:显然限制列表是不可能的,here's a good Stack Overflow answer with possible workarounds. Here's also another good discussion。