Skip to content

~/nube/aws-s3 $ cat 01-creacion-bucket.md

  • Introducción a la nube pública
  • AWS-S3

Crear, publicar, versionar y recuperar

Comprueba el contenido, los permisos y la recuperación de tus archivos.

Una asociación prepara una jornada y necesita guardar un aviso, publicar una copia informativa y recuperar datos si alguien modifica o borra el archivo. Trabajarás en tu cuenta de Learner Lab, con navegador y textos ficticios de menos de 10 KiB. No crearás usuarios ni roles.

Si ya hiciste la creación o publicación en clase, utiliza esos apartados como referencia. Comprueba especialmente la recuperación de versiones y del backup: ver un recurso creado no demuestra que hayas recuperado datos.

Trabajarás por fases, con un máximo de dos buckets de esta práctica a la vez. Termina y elimina el bucket básico antes de crear el versionado y su copia. Si interrumpes la sesión, limpia los recursos creados; puedes reconstruir la fase que necesites después.

Crear un bucket privado y recuperar el aviso

Section titled “Crear un bucket privado y recuperar el aviso”
  1. Abre Learner Lab, pulsa Start Lab si está detenido y espera a que el acceso AWS esté listo. Abre su consola; no utilices una cuenta particular de pago. Anota el saldo mostrado o «actualización pendiente».
  2. Busca S3, abre Buckets y reconoce el inventario previo. No modificarás recursos de otros trabajos.
  3. Pulsa Create bucket / Crear bucket. Elige un nombre que empiece por aws-s3-basico- y termine en ocho letras minúsculas o números aleatorios. Usa solo minúsculas, números y guiones; el nombre completo tendrá entre 3 y 63 caracteres. Si ya existe, cambia el sufijo.
  4. Revisa esta configuración antes de crear:
Opción Valor inicial
Región us-east-1
Tipo General purpose / Propósito general
Espacio de nombres, si aparece Shared global namespace
Object Ownership Bucket owner enforced / ACL deshabilitadas
Block Public Access Las cuatro opciones activas
Versionado Deshabilitado
Cifrado SSE-S3, claves gestionadas por S3
Object Lock Deshabilitado

No copies la configuración de otro recurso ni actives web, replicación, KMS o funciones adicionales. Comprueba las propiedades y permisos del bucket creado. Si se ha indicado us-west-2 como alternativa del aula, usa esa Región conscientemente durante toda la fase.

  1. Descarga aviso.txt o créalo con un editor de texto:
AVISO DE PRUEBA
Jornada de herramientas para la nube
Sala: aula 1
Revision: 1
  1. En Objects / Objetos, pulsa Upload / Cargar, Add files / Añadir archivos, selecciona el archivo y revisa que el destino es tu bucket. Conserva S3 Standard y carga. No subas la carpeta que lo contiene: la clave debe ser aviso.txt.
  2. Selecciona el objeto y usa Download / Descargar. Abre la nueva copia y comprueba sala y revisión. El navegador puede añadir un sufijo al nombre descargado; compara el contenido.

Comprueba: el objeto existe y lo recuperas mediante tu sesión autorizada. Copia su propiedad Object URL / URL del objeto, una dirección HTTPS sin parámetros después de ?, y ábrela en privada: inicialmente la petición anónima debe denegarse. No uses Open o Download como prueba de anonimato, porque son operaciones autorizadas. Un AccessDenied aislado no prueba existencia; acabas de comprobarla aparte.

Publicar solo un archivo y volver a retirarlo

Section titled “Publicar solo un archivo y volver a retirarlo”

Vas a autorizar únicamente la lectura anónima de aviso.txt. Una política no necesita conceder escritura ni listar todo el bucket.

  1. En Permissions / Permisos → Block Public Access → Edit, desmarca el control global si hace falta para editar opciones individuales. Mantén BlockPublicAcls e IgnorePublicAcls activas. Desactiva solo BlockPublicPolicy y RestrictPublicBuckets en este bucket. Guíate por los identificadores y la descripción de cada opción, aunque cambien las etiquetas del idioma. Guarda y confirma lo que solicite la consola. Conserva ACL deshabilitadas.
  2. Abre la política de un objeto en un editor. Sustituye NOMBRE_DEL_BUCKET por el nombre real de tu bucket. Solo debe autorizar s3:GetObject sobre arn:aws:s3:::tu-nombre/aviso.txt.
  3. En Bucket policy / Política de bucket → Edit, pega el JSON adaptado y guarda. Si ya había una política que no reconoces, no la sustituyas: revisa si estás en el bucket correcto.
  4. Pide la misma Object URL sin firma en una nueva ventana privada. Comprueba que ahora puedes leer el aviso. No publiques su dirección en entregas; basta con indicar resultado y contenido.

El comodín Principal: "*" permite lectores anónimos; la acción y el recurso limitan lo autorizado. Esta política no concede carga, borrado ni listado. Desactivar un bloqueo no concede por sí solo acceso: el permiso de lectura lo aporta la política.

Si los controles de cuenta u organización impiden guardar, no intentes cambiarlos para eludir la restricción. Registra el mensaje y detén la publicación; la creación privada puede estar permitida aunque esta operación no lo esté.

Retira la publicación: elimina la política que acabas de añadir, reactiva las cuatro opciones BPA y repite una petición nueva sin firma, descartando una copia en caché. Debe volver a denegarse. Vacía este bucket y elimínalo desde la lista; confirma su ausencia antes de seguir.

Crear versiones y recuperar contenido anterior

Section titled “Crear versiones y recuperar contenido anterior”

Crea ahora un bucket aws-s3-versiones- con sufijo propio y la configuración privada de la tabla, pero habilita Bucket Versioning. No habilites Object Lock. Descarga el aviso de revisión 1 y el de revisión 2 a dos carpetas locales distintas: ambos archivos deben conservar el nombre aviso.txt.

  1. Carga el de revisión 1 directamente en el bucket. Descarga y comprueba Sala: aula 1 y Revision: 1.
  2. Carga el de revisión 2 con la misma clave aviso.txt. Descarga el objeto actual: debe indicar aula 2 y Revision: 2.
  3. Activa Show versions / Mostrar versiones. Identifica las dos entradas del mismo nombre y sus identificadores distintos. No entregues sus identificadores completos; usa «primera» y «segunda» en tu registro.
  4. Abre o selecciona específicamente la versión anterior y descárgala. Comprueba que contiene la revisión 1, evita abrir una descarga antigua de tu equipo.
  5. Para convertir ese contenido en actual conservando el historial, vuelve a cargar la copia descargada de la versión anterior, con el nombre aviso.txt. Desactiva Show versions para descargar el objeto actual y verificar su contenido. Activa de nuevo la vista: habrá una nueva versión actual y se conservarán las anteriores.

S3 guarda cada versión completa, no solo las diferencias. Recuperar una versión mediante descarga y nueva carga conserva el historial y añade almacenamiento; no es lo mismo que eliminar permanentemente una versión.

  1. Con Show versions desactivado, selecciona el objeto actual aviso.txt y usa Delete / Eliminar. Lee la confirmación y comprueba que estás realizando un borrado normal del objeto, no seleccionando una versión concreta.
  2. La lista normal ya no debe mostrar el objeto. Activa Show versions e identifica la entrada cuyo tipo es Delete marker / Marcador de borrado.
  3. Selecciona solo ese marcador, comprueba su tipo y elimínalo permanentemente. No selecciones las entradas que contienen datos.
  4. Vuelve a la vista normal. Descarga el objeto que reaparece y comprueba el contenido anterior al borrado.

El marcador ocultaba el objeto actual; retirarlo permite volver a ver la versión que había debajo. Si no puedes identificarlo con seguridad o no tienes permiso para borrarlo, detente y registra el bloqueo. No repitas borrados al azar.

Crear una copia en otro bucket y ensayar la restauración

Section titled “Crear una copia en otro bucket y ensayar la restauración”

Crearás aws-s3-copia- con sufijo propio, en la misma Región, privado, SSE-S3 y versionado deshabilitado. Ahora tendrás dos buckets de esta práctica: el versionado y el destino de copia.

  1. En la vista normal del bucket versionado, selecciona aviso.txt y usa Actions / Acciones → Copy / Copiar. Indica como destino la raíz del bucket aws-s3-copia-..., conservando la clave. Revisa el destino y confirma la copia con la acción final que muestre la consola.
  2. En el destino, descarga el objeto y comprueba su contenido. Copiar la versión actual no copia automáticamente todo su historial.
  3. Para comprobar la independencia, actualiza solo el origen cargando la revisión 2. El objeto del destino debe conservar el contenido copiado antes; no has configurado sincronización automática.
  4. Borra normalmente el objeto actual del origen. Para recuperar desde el backup, selecciona el objeto del bucket de copia y usa Copy hacia la raíz del bucket de origen, con la misma clave.
  5. Descarga del origen y comprueba que has recuperado el contenido de la copia. La escritura en el origen versionado crea una nueva versión actual.

Esta es una copia manual comprobada, no una replicación automática ni un sistema completo de respaldo histórico. Si ya trabajaste otro mecanismo en clase, identifica cuál y compara su recuperación; no lo des por equivalente por el nombre «backup».

Ampliación: observar replicación automática

Section titled “Ampliación: observar replicación automática”

Realízala únicamente si está habilitada para tu laboratorio y se ha comprobado un rol existente compatible. No crees roles: LabRole solo sirve si sus permisos y confianza permiten que S3 lo asuma.

  1. Antes de configurar nada, verifica con el entorno disponible que S3 admite el rol existente y las operaciones necesarias. Si no se ha validado, conserva la práctica de copia manual y registra que no has ejecutado replicación.
  2. Con origen y destino identificados, habilita versionado también en el destino. En el origen abre Management / Administración → Replication rules / Reglas de replicación → Create rule.
  3. Identifica la regla, el alcance de los objetos y el destino de tu propia cuenta. Usa solo las regiones autorizadas us-east-1 y us-west-2; no reproduzcas Londres del vídeo. Si mantienes ambos en la misma Región, estarás practicando replicación en la misma Región.
  4. Selecciona el rol existente validado, nunca «Create new role». Revisa opciones y coste; no añadas Replication Time Control, Batch Replication ni otras funciones. Guarda únicamente si el entorno validado permite completar ese flujo.
  5. Carga después un objeto nuevo o una nueva versión en origen. Observa el estado de replicación y comprueba contenido en destino. La operación es asíncrona: no prometas inmediatez ni midas su duración solo comparando las fechas del objeto.

Los objetos anteriores a la regla no se incluyen automáticamente en la replicación en vivo. La réplica añade almacenamiento y solicitudes; entre regiones puede añadir transferencia. Si falla, registra estado y mensaje, sin presentar la copia manual como ejecución de replicación. Deshabilita y elimina la regla de prueba antes de limpiar los buckets. El destino ahora también tiene versiones: inclúyelas en la limpieza.

En cada bucket propio, revisa nombre e inventario. En los versionados, Show versions muestra versiones de datos y marcadores: hay que eliminarlos todos para vaciar realmente. Puedes usar Empty / Vaciar del bucket comprobando que la operación retira todas las versiones y marcadores y no presenta fallos. No basta con borrar los objetos de la vista normal ni con suspender el versionado. Sin Object Lock ni retención, termina vaciando y eliminando los dos buckets y actualiza el inventario. Si queda algún recurso, anótalo y resuelve la incidencia antes de afirmar cierre completo. Revisa el saldo y pulsa End Lab si has terminado la sesión.

Síntoma Comprobación útil
Nombre ocupado o formato distinto Cambia el sufijo y revisa Shared global namespace.
AccessDenied al publicar Revisa sesión, recurso y controles efectivos; no alteres IAM ni controles superiores.
No aparece una versión nueva Comprueba misma clave, versionado habilitado y que realmente cargaste el segundo archivo.
El objeto sigue oculto Identifica el marcador actual; no elimines versiones de datos para buscarlo.
El bucket no se elimina Revisa versiones, marcadores y resultado de Empty. No confundas listado normal vacío con bucket vacío.

A entregar: una tabla con creación/descarga, petición privada antes y después de publicar, retirada de publicación, recuperación de versión, recuperación tras borrado y restauración desde la copia. Anota contenido comprobado, estado real y limpieza. Si realizaste replicación, añade una fila independiente con el estado observado. Utiliza alias para los buckets y como máximo tres recortes útiles, sin cabeceras de cuenta ni firmas. No necesitas una captura por paso.

Fuentes de consulta: creación, BPA, recuperación de versiones, marcadores, copia y requisitos de replicación.