Articles sur : Stockage objet

S3cmd : Gestion des policies pour un bucket public

Pré-requis


Avoir configuré s3cmd sur son ordinateur
Avoir fait une demande de mise en "public" du bucket

S3 - Gestion des policy pour un bucket public
Il est possible de gérer l'accès des documents à mettre en ligne depuis un bucket passé en "public".
Cette gestion est réalisée en modifiant la politique (policy) associée à ce bucket.

Après demande de mise en public d'un bucket


Par défaut, dès lors que nous vous fournissons les accès à votre bucket public, tout ce qui se trouve à l'intérieur du bucket est rendu public et nous envoyons par défaut un fichier index.html.

Voici le fichier de policy qui est entré par défaut :

{
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "AWS":[
               ""
            ]
         },
         "Action":"s3:GetObject",
         "Resource":[
            "arn:aws:s3:::<nom_du_bucket>/*"
         ]
      }
   ]
}


Restriction d'un dossier pour l'affichage public


Créer un fichier sur votre machine en local contenant les lignes suivantes :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::<nom_du_bucket>/Data/*",
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": ["*"]
      },
      "Action": "s3:GetObject",
      "Resource": ["arn:aws:s3:::<nom_du_bucket>/index.html"]
    }
  ]
}


La date de la version ne doit pas être modifiée.
<nom_du_bucket> doit être remplacé par le nom du bucket. Il est possible d'en protéger plusieurs.

La première hiérarchie refuse de partager publiquement le dossier Data/ et son contenu

{
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::<nom_du_bucket>/Data/*",
}


La deuxième hiérarchie accepte de partager publiquement le document "index.html"
{
      "Effect": "Allow",
      "Principal": {
        "AWS": ["*"]
      },
      "Action": "s3:GetObject",
      "Resource": ["arn:aws:s3:::<nom_du_bucket>/index.html"]
 }


Par défaut, si un fichier ne correspond à aucune de ces 2 règles, il n'est pas partagé publiquement.

Modifier une policy



Appliquer la politique :



s3cmd setpolicy /chemin/du/fichier/nom_du_fichier s3://<nom_du_bucket>


Vérifier la politique :



s3cmd info s3://<nom_du_bucket>


Supprimer la politique :



s3cmd delpolicy s3://<nom_du_bucket>

Mis à jour le : 26/03/2024

Cet article a-t-il répondu à vos questions ?

Partagez vos commentaires

Annuler

Merci !