Canaux
# Tout
RSS
Retour aux notes

publié 2025-06-06

Comment masquer la liste des fichiers tout en autorisant les téléchargements publics dans MinIO ?

l-you avatarLiterally You

Ce guide a été créé pour la version MinIO RELEASE.2025-05-24T17-08-30Z, qui est le tag de version le plus récent au moment de la publication.

Étape 1: Créer un alias de bucket

bash

mc alias set myminio https://minio.example.com YOUR_ACCESS_KEY YOUR_SECRET_KEY
mc mb myminio/public

Étape 2: Définir la politique du bucket pour un accès public en lecture seule

bash

mc anonymous set download myminio/public

Cela fait ce qui suit : - Autorise l’affichage de la liste des fichiers du bucket. - Autorise le téléchargement de n’importe quel fichier.

Étape 3: Modifier le JSON de la politique du bucket

Commencez par exécuter la commande suivante pour obtenir la politique JSON actuelle créée à l’étape précédente.

bash

mc anonymous get-json myminio/public

La sortie ressemblera à ceci : “C’est la politique définie par le préréglage ‘download’.

json

{
 "Statement": [
  {
   "Action": [
    "s3:GetBucketLocation",
    "s3:ListBucket"
   ],
   "Effect": "Allow",
   "Principal": {
    "AWS": [
     "*"
    ]
   },
   "Resource": [
    "arn:aws:s3::: public"
   ]
  },
  {
   "Action": [
    "s3:GetObject"
   ],
   "Effect": "Allow",
   "Principal": {
    "AWS": [
     "*"
    ]
   },
   "Resource": [
    "arn:aws:s3::: public/*"
   ]
  }
 ],
 "Version": "2012-10-17"
}

La ligne qui permet à quiconque de lister les fichiers disponibles dans le bucket est s3:ListBucket dans la propriété ‘Action’. Supprimez-la simplement et mettez la politique à jour avec la commande suivante.

bash

mc anonymous set-json /path-to-your-edited-json-policy.json myminio/public

Où le fichier /path-to-your-edited-json-policy.json contient la version modifiée de votre politique.

json

{
 "Statement": [
  {
   "Action": [
    "s3:GetBucketLocation"
   ],
   "Effect": "Allow",
   "Principal": {
    "AWS": [
     "*"
    ]
   },
   "Resource": [
    "arn:aws:s3::: public"
   ]
  },
  {
   "Action": [
    "s3:GetObject"
   ],
   "Effect": "Allow",
   "Principal": {
    "AWS": [
     "*"
    ]
   },
   "Resource": [
    "arn:aws:s3:::public/*"
   ]
  }
 ],
 "Version": "2012-10-17"
}

Étape 4: Vérifier que les listes sont masquées

Ouvrez la racine de votre endpoint S3 MinIO. Par exemple ‘youbucket.s3.yourdomain.com’. Si vous obtenez une erreur au format XML indiquant ‘Access Denied’, alors tout fonctionne comme prévu!