0. Datos del alumno
En progresoIntroduce tu nombre y apellidos para iniciar el laboratorio.
🪣 Tarea 2: Crear bucket S3 con tags
BloqueadaCrea un bucket S3 siguiendo las convenciones de nomenclatura de AWS y añade etiquetas (tags) para organización y seguimiento de costos. Los tags son fundamentales en entornos empresariales.
• 3-63 caracteres, solo minúsculas (a-z), números (0-9) y guiones (-)
• Debe empezar con letra o número
• No puede terminar en guión ni contener ".."
• Debe incluir tu apellido o identificador único (mínimo 11 caracteres en total)
• Recomendado: proyecto-TIPO-YYYY-identificador
🔐 Tarea 3: Configurar versionado y cifrado
BloqueadaEl versionado protege contra borrados accidentales y el cifrado garantiza seguridad de datos en reposo. Ambas son características esenciales para buckets de producción según AWS Well-Architected Framework.
🌐 Tarea 4: Activar hosting estático
BloqueadaConfigura el bucket para servir contenido web estático. Debes especificar documentos de índice y error, además de configurar opciones de redirección si es necesario.
📄 Tarea 5: Subir index.html y error.html
BloqueadaSube los archivos HTML de tu sitio web. Ambos deben ser válidos y contener estructura HTML5 completa. El index.html será tu página principal y error.html se mostrará cuando haya errores.
📝 index.html (Página principal)
• Declaración <!DOCTYPE html>
• Etiquetas: <html>, <head>, <body>, <title>, <h1>, <meta charset>
• Mínimo 200 caracteres
• Debe incluir al menos un <p> con contenido descriptivo
• Atributo lang en <html>
⚠️ error.html (Página de error)
• Misma estructura que index.html
• Título debe mencionar "Error" o "404"
• <h1> debe indicar que la página no existe
• Mínimo 150 caracteres
🌍 Tarea 6: Configurar CORS (Cross-Origin Resource Sharing)
BloqueadaCORS permite que tu sitio web cargue recursos desde otros dominios de forma segura. Configura las reglas CORS en formato JSON según las especificaciones de AWS.
• JSON válido sintácticamente
• Debe contener el array "CORSRules"
• Al menos una regla con: AllowedOrigins, AllowedMethods, AllowedHeaders
• AllowedMethods debe incluir al menos "GET"
• AllowedOrigins puede ser ["*"] o dominios específicos
• MaxAgeSeconds debe estar entre 0 y 86400
🔓 Tarea 7: Establecer permisos de acceso público
BloqueadaConfigura el Block Public Access y los permisos ACL del bucket. Debes balancear accesibilidad con seguridad según las mejores prácticas de AWS.
📜 Tarea 8: Crear política de bucket (Bucket Policy)
BloqueadaEscribe una política de bucket en JSON que defina permisos granulares. Esta es la forma más potente y recomendada de gestionar permisos en S3.
• JSON sintácticamente válido
• Version = "2012-10-17" (versión actual de IAM)
• Statement debe ser un array no vacío
• Cada statement necesita: Sid, Effect, Principal, Action, Resource
• Effect = "Allow" (no "Deny" para este lab)
• Principal = "*" (acceso público)
• Action = "s3:GetObject" (lectura de objetos)
• Resource = "arn:aws:s3:::NOMBRE-DE-TU-BUCKET/*" (con el nombre real de tu bucket)
• El ARN debe terminar en "/*" para aplicar a todos los objetos
♻️ Tarea 9: Configurar ciclo de vida (Lifecycle Policy)
BloqueadaLas reglas de ciclo de vida automatizan la transición de objetos entre clases de almacenamiento y la eliminación de versiones antiguas, optimizando costos.
📊 Tarea 10: Habilitar logging y métricas
BloqueadaEl logging de acceso y las métricas de CloudWatch son esenciales para monitorización, auditoría y troubleshooting en entornos de producción.
📝 Server Access Logging
📈 CloudWatch Métricas
🧪 Tarea 11: Pruebas de funcionamiento
BloqueadaRealiza pruebas exhaustivas para verificar que todas las configuraciones funcionan correctamente. Este paso simula QA (Quality Assurance) antes de despliegue a producción.
Lista de verificación de pruebas
📋 Tarea 12: Documentación y verificación final
BloqueadaDocumenta tu configuración completa y realiza la verificación final del laboratorio. La documentación es crítica para mantenimiento y auditorías.
📊 Resumen de tu configuración
| Bucket: | - |
| Región: | - |
| URL del sitio: | - |
| Versionado: | - |
| Cifrado: | - |
| CORS: | - |
| Logging: | - |
| Lifecycle: | - |