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 : 10/10/2024
Merci !