2017-03-02 2 views
0

J'ai un compartiment Amazon S3 contenant un dossier. Mon exigence est que de nombreux utilisateurs IAM téléchargent des fichiers dans ce dossier via la console de gestion. Cependant, les utilisateurs ne doivent pas pouvoir voir/télécharger les fichiers téléchargés par d'autres utilisateurs IAM.Comment empêcher d'autres utilisateurs de voir les fichiers téléchargés sur Amazon S3

La création d'un dossier différent et l'écriture d'une stratégie IAM pour accéder au compartiment et le préfixe du nom de dossier sont acceptables, mais nous ne le souhaitons pas car nous avons environ 100 utilisateurs qui téléchargent les fichiers.

Répondre

4

Stratégies de compartiment + stratégies IAM est la seule solution.

Les objets S3 n'ont pas d'associations d'utilisateurs intégrées (comme les autres systèmes de fichiers locaux, comme NTFS ou ext3/4). La seule façon de différencier les fichiers d'un utilisateur d'un autre est de placer un identifiant dans la clé de l'objet ou par (peut-être) les tags d'un objet S3.

Mais vous ne pouvez pas échapper à l'aide de stratégies de compartiment. Vous pouvez éviter d'écrire de nombreuses politiques en faisant une utilisation intelligente des variables politiques seau comme:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": ["s3:ListBucket"], 
     "Effect": "Allow", 
     "Resource": ["arn:aws:s3:::mybucket"], 
     "Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}} 
    }, 
    { 
     "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"] 
    } 
    ] 
} 

Source: IAM Policy Variables Overview

En utilisant la variable $(aws:username}, vous pouvez avoir cette seule politique applicable à tous les utilisateurs. Demandez-leur simplement de mettre leurs propres fichiers dans un dossier avec leur propre nom d'utilisateur dans le nom.