S3 存储桶创建:限制为特定名称模式

S3 Bucket Creation: Restrict to Specific Name Pattern

有没有办法指定存储桶创建策略,以便具有分配角色的用户只能创建具有指定名称模式的存储桶,例如 company-dbbackup-* 而不能创建其他名称模式?

例如,将允许用户创建名称为 company-dbbackup-March2017company-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