publié 2025-06-06
Comment masquer la liste des fichiers tout en autorisant les téléchargements publics dans MinIO ?
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!