Arquitectura del Entorno
Este tutorial aborda la implementación de un clúster distribuido de MinIO en una red privada, gestionado mediante un proxy inverso Nginx para balanceo de carga. El puerto 9000 se expone hacia la red pública para facilitar el acceso a los recursos desde el exterior.
Fase 1: Preparación del Servidor MinIO
1. Creación y Políticas del Bucket
En primer lugar, acceda al panel de administración de MinIO y genere un nuevo bucket, por ejemplo, playedu-media. A continuación, defina una política de acceso personalizada (Access Policy) en la sección de configuración avanzada:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowBucketLevelOperations",
"Effect": "Allow",
"Principal": {"AWS": ["*"]},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": ["arn:aws:s3:::playedu-media"]
},
{
"Sid": "AllowObjectLevelOperations",
"Effect": "Allow",
"Principal": {"AWS": ["*"]},
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject"
],
"Resource": ["arn:aws:s3:::playedu-media/*"]
}
]
}
2. Gestión de Identidades y Credenciales
Guarde la configuración JSON anterior como una nueva política de IAM. Posteriormente, diríjase a la sección de usuarios para crear una identidad dedicada a la aplicación. Asigne la política recién creada a este usuario y genere un par de credenciales de acceso (Service Account). Es fundamental registrar el Access Key y el Secret Key generados, ya que serán requeridos en los siguientes pasos.
Fase 2: Vinculación con PlayEdu
Configuración del Proveedor de Almacenamiento
Ingrese a la consola de administración de PlayEdu y configure el almacenamiento de objetos utilizando las credenciales (Access Key y Secret Key) obtenidas en MinIO. Apunte la conexión al endpoint interno de su infraestructura.
Consideraciones sobre la Carga de Archivos
- Imágenes: Pueden subirse directamente desde la interfaz web expuesta a internet.
- Videos y Documentos: Por restricciones de ancho de banda y seguridad, la carga de archivos pesados debe realizarse exclusivamente accediendo a la consola de PlayEdu a través de la red local (intranet).
Una vez completada la carga interna, los estudiantes podrán reproducir los videos sin problemas al acceder a la plataforma desde la red pública.
Fase 3: Integración de MinIO en Nextcloud
MinIO también puede actuar como backend de almacenamiento externo para Nextcloud gracias a su compatibilidad nativa con la API de S3.
1. Habilitación del Módulo
Navegue al mercado de aplicaciones de Nextcloud y active el complemento External storage support.
2. Configuración del Almacenamiento Externo
En el panel de administración, acceda a la sección de almacenamiento externo y complete los siguientes campos:
- Nombre de la carpeta: Etiqueta visible para los usuarios finales (ej.
Repositorio_Corporativo). - Tipo de almacenamiento: Seleccione
Amazon S3.
Parámetros de conexión:
Bucket: nextcloud-data (o el nombre de su contenedor específico)
Hostname: IP_interna_del_servidor_minio (permite tráfico interno incluso si Nextcloud está en la nube)
Port: 9000
Region: us-east-1 (valor por defecto en MinIO)
Access Key: [Su Access Key de MinIO]
Secret Key: [Su Secret Key de MinIO]
Opciones avanzadas y permisos:
- SSL: Actívelo si su proxy Nginx o MinIO nativo usa HTTPS.
- Legacy (v2) Auth: Manténgalo desactivado para usar la firma v4 moderna.
- Path Style: Habilítelo si la URL de acceso se basa en IP y puerto en lugar de subdominios virtuales.
- Verificación SSL: Desactívelo solo si utiliza certificados autofirmados en entornos de prueba.
- Disponibilidad: Restrinja el acceso a grupos o usuarios específicos para evitar modificaciones no autorizadas en los archivos.
- Compartir: En el menú de opciones adicionales (tres puntos), active la casilla de compartir para permitir que los usuraios distribuyan enlaces de estos archivos externos.