publicado 2025-06-06
¿Cómo ocultar el listado de archivos pero permitir las descargas públicas en MinIO?
Esta guía se creó para la versión de MinIO RELEASE.2025-05-24T17-08-30Z, que es la etiqueta de versión más reciente disponible en el momento de la publicación.
Paso 1: Crear un alias del bucket
bash
mc alias set myminio https://minio.example.com YOUR_ACCESS_KEY YOUR_SECRET_KEY
mc mb myminio/public
Paso 2: Configurar la política del bucket para acceso público de solo lectura
bash
mc anonymous set download myminio/public
Esto hace lo siguiente: - Permite listar los archivos del bucket. - Permite descargar cualquier archivo.
Paso 3: Editar el JSON de la política del bucket
Primero, ejecuta el siguiente comando para obtener la política JSON actual creada en el paso anterior.
bash
mc anonymous get-json myminio/public
La salida se verá así: “Esa es la política definida por el preajuste ‘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 línea que permite a cualquiera listar los archivos disponibles en el bucket es s3:ListBucket en la propiedad ‘Action’. Simplemente elimínala y vuelve a subir la política con el siguiente comando.
bash
mc anonymous set-json /path-to-your-edited-json-policy.json myminio/public
Donde el archivo /path-to-your-edited-json-policy.json contiene la versión editada de tu política.
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"
}
Paso 4: Verificar que los listados estén ocultos
Abre la raíz de tu endpoint S3 de MinIO. Por ejemplo ‘youbucket.s3.yourdomain.com’. Si obtienes un error con formato XML que diga ‘Access Denied’, ¡entonces todo funciona como se espera!