Définir les droits d’accès à S3 pour donner un accès public en lecture

S3 est assez merveilleux, mais aussi assez compliqué pour gérer les droits d’administration. Jusqu’à présent, sur mon S3, je m’embêtais à gérer les droits fichier par fichier pour lui donner un accès en lecture public.

Je me suis penché sur la question, et en fait ce n’est pas si compliqué à comprendre, encore faut-il avoir la bonne syntaxe. Voilà la politique que j’ai mise en place :

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*" },
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket/*"
}
] }
  • Version : c’est le numéro de version de la policy. Ne mettez pas la date du jour, copiez la même date que moi (ça revient en gros à dire « j’utilise la version 3 du système de policy »).
  • Statement : ce sont les règles de la policy. Ici, il y en a une seule. Voyons ce que ça dit à l’intérieur :
    • Effect : Allow (autoriser) ou Deny (refuser). Par défaut, tout est refusé par sécurité. Il faut donc explicitement autoriser des choses.
    • Principal : le nom de l’utilisateur à qui on donne le droit. Ici, l’étoile * signifie « tout le monde, y compris le grand public sur internet sans compte AWS ».
    • Action : c’est l’action qu’on veut autoriser (il peut y en avoir plusieurs). Ici,  s3:GetObject  permet de télécharger un objet (un fichier). La liste des actions peut être retrouvée dans la doc. Oui, il y en a beaucoup ! Parmi les plus importantes, citons :
      • s3:DeleteObject : autorise la suppression des fichiers
      • s3:GetObject  : autorise la lecture des fichiers et leur téléchargement
      • s3:PutObject   : autorise l’ajout de fichiers
      • s3:ListBucket  : autorise la récupération du nom de tous les fichiers dans le bucket
      • s3:ListAllMyBuckets  : autorise l’affichage de la liste de tous les buckets.
    • Resource : le nom de la ressource qui est autorisée. Il y a un format un peu spécial. Ici,  arn:aws:s3:::examplebucket/*  indique qu’on effectue l’autorisation sur tous les fichiers (  *  ) du bucket nommé  examplebucket  .

Ainsi, tout fichier sera accessible en lecture, mais pas en écriture.

Source

A voir aussi

Streamer son écran de PC comme un pro sur différents supports

Pour streamer localement votre écran de PC comme un pro, avec la plus faible latence …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *