2017-04-27 4 views
1

Existe-t-il un moyen de spécifier une stratégie de création de compartiment de sorte qu'un utilisateur avec le rôle affecté ne puisse créer que des groupes de noms tels que company-dbbackup-* et aucun autre modèle de nom? Par exemple, l'utilisateur serait autorisé à créer un compartiment avec les noms company-dbbackup-March2017 et company-dbbackup-fullarchive mais pas test-bucketname-invalid.Création de compartiment S3: Restreindre au modèle de nom spécifique

Ce que j'ai en ce moment:

{ 
    "Sid": "Stmt1493212897117", 
    "Action": [ 
     "s3:CreateBucket", 
     "s3:ListAllMyBuckets" 
    ], 
    "Effect": "Allow", 
    "Resource": "arn:aws:s3:::*" 
} 

Mais cela me permet de créer des seaux avec un nom.

Répondre

0

Il se révèle être relativement simple (à moins que je l'ai oublié quelque chose). J'ai simplement divisé les autorisations comme suit:

{ 
    "Sid": "RestrictCreationToNamePolicy", 
    "Action": [ 
     "s3:CreateBucket" 
    ], 
    "Effect": "Allow", 
    "Resource": "arn:aws:s3:::company-dbbackup-*" 
} 

{ 
    "Sid": "AllowListingOfBuckets", 
    "Action": [ 
     "s3:ListAllMyBuckets" 
    ], 
    "Effect": "Allow", 
    "Resource": "arn:aws:s3:::*" 
} 

Je ne l'ai pas trouvé un moyen de limiter la liste que des seaux avec la politique de nommage. Si je limite la deuxième instruction à la ressource arn:aws:s3:::company-dbbackup-*, j'obtiens un accès refusé lors de la tentative de liste des compartiments.

EDIT: Apparemment restreindre la liste est impossible, here's a good Stack Overflow answer avec des solutions de contournement possibles. Voici also another good discussion.