~/nube/aws-s3 $ cat 03-acceso-temporal.md
- Introducción a la nube pública
- AWS-S3
Compartir con un enlace temporal
Autoriza la lectura de un objeto privado y comprueba la caducidad.
El encargo y la diferencia con publicar
Section titled “El encargo y la diferencia con publicar”Necesitas facilitar un aviso a una persona durante unos minutos, manteniendo el bucket privado. Una URL prefirmada incorpora una autorización para una operación sobre un objeto; quien posee el enlace puede usarla durante su vigencia. No es una petición anónima sin autorización, aunque no haya una sesión AWS iniciada en su navegador.
Trabaja individualmente, con tu cuenta Learner Lab, navegador y editor. Pruébalo en una ventana privada de tu propio equipo: no necesitas enviar el enlace a otra persona. Utilizarás un bucket nuevo y un solo archivo ficticio; las prácticas anteriores terminan con sus recursos eliminados.
Preparar un objeto privado comprobado
Section titled “Preparar un objeto privado comprobado”- Activa Learner Lab y abre la consola desde su enlace AWS. Registra saldo y tiempo disponibles.
- En S3, crea
aws-s3-temporal-XXXX. Eligeus-east-1, General purpose y Shared global namespace si aparece. Mantén Bucket owner enforced/ACL deshabilitadas, las cuatro BPA activas, versionado deshabilitado, SSE-S3 y Object Lock deshabilitado. No añadas políticas públicas. - Crea un archivo llamado
aviso.txtcon el siguiente contenido:
Sala: aula 1Revision: 1- Y subelo a la raíz.
- Descárgalo desde la consola y comprueba el contenido.
- Abre los detalles de
aviso.txty copia Object URL (URL del objeto). Pega esa dirección en una ventana privada del navegador. Debe aparecer un error de acceso, comoAccessDenied.
Punto de control: desde la consola puedes descargar el archivo porque has iniciado sesión en AWS. Con la URL del objeto en una ventana privada, el acceso debe estar denegado. Para esta prueba, copia Object URL; no uses los botones Open o Download.
Crear y probar el enlace de cinco minutos
Section titled “Crear y probar el enlace de cinco minutos”- En Objects selecciona
aviso.txty abre Object actions / Actions → Share with a presigned URL. - Elige Minutes / Minutos: 5. Comprueba la unidad y pulsa Create presigned URL. Copia el enlace completo, sin editar sus parámetros.
- Anota localmente hora de creación con segundos y hora prevista de vencimiento; no copies la URL al registro.
- Abre una ventana privada nueva, pega el enlace y solicita el archivo. Debe mostrarse el texto o descargarse; si se descarga, abre esa copia nueva y comprueba su contenido. Registra hora y resultado.
- Vuelve a la consola normal y comprueba que las cuatro opciones BPA siguen activas. No ha sido necesario hacer público el bucket: la URL prefirmada utiliza los permisos de la identidad que la genera. Puedes consultar qué protege cada opción BPA.
La consola permite un plazo de entre un minuto y doce horas, pero las credenciales de tu laboratorio son temporales: pueden caducar antes y limitar la duración efectiva. El enlace puede reutilizarse durante su vigencia; no es una entrada de un solo uso. Generar otro no revoca el anterior.
Mantén el enlace únicamente en el portapapeles durante la comparación. No copies otra cosa hasta la prueba posterior; si lo pierdes y generas otro, reinicia el registro de tiempos. No publiques ni captures sus parámetros, aunque el contenido del aviso sea ficticio.
Comprobar el vencimiento mediante una petición nueva
Section titled “Comprobar el vencimiento mediante una petición nueva”Mientras pasan los minutos, completa los resultados ya observados y explica qué diferencia hay entre la petición sin firma y la firmada. Mantén el objeto sin modificar.
- Espera al menos seis minutos desde la creación: cinco de duración y uno de margen de reloj.
- Cierra todas las ventanas privadas anteriores y abre una nueva, sin cerrar la consola normal.
- Pega el mismo enlace conservado en el portapapeles y realiza una nueva petición. No generes otro para esta prueba.
- Registra hora y mensaje. Lo esperado es que ya no permita obtener el archivo; el código o texto exacto puede variar.
- Comprueba desde la consola autorizada que el objeto sigue existiendo y puede descargarse. Que venza un enlace no borra el objeto.
Una pestaña antigua, una descarga iniciada mientras el enlace era válido o una copia local abierta después no prueban acceso nuevo. Si sospechas caché o no puedes distinguir una nueva petición, registra resultado no concluyente y repite con un enlace nuevo y la temporización completa. No afirmes caducidad observada si generaste otra URL entre ambas pruebas.
Reto: elegir qué tipo de acceso necesita cada caso
Section titled “Reto: elegir qué tipo de acceso necesita cada caso”Responde en una frase por caso, sin crear nuevos recursos:
- Una página informativa debe poder consultarse anónimamente mientras esté publicada.
- Un archivo privado debe poder leerse durante unos minutos con un enlace.
- Una persona ya descargó el aviso y el enlace acaba de vencer: explica qué controlas todavía y qué no puedes borrar de su equipo.
La caducidad controla nuevas peticiones; no elimina copias descargadas. Si retiras el objeto de un bucket sin versionado, no se servirá mientras siga ausente. Reponer la misma clave antes de que venza un enlace todavía válido podría permitir leer el contenido nuevo. No utilices End Lab como garantía de revocación inmediata.
Si algo falla
Section titled “Si algo falla”| Síntoma | Comprobación |
|---|---|
| El enlace firmado falla inmediatamente | Revisa copia íntegra, sesión temporal, clave y existencia del objeto. No cambies permisos públicos para arreglarlo. |
| SignatureDoesNotMatch | Vuelve a copiar el enlace completo sin modificar caracteres ni parámetros. |
| ExpiredToken o denegación antes del plazo | Comprueba vigencia de credenciales y hora de generación; renueva la sesión antes de repetir. |
| Parece funcionar después del vencimiento | Distingue caché, descarga antigua y petición nueva al mismo enlace. |
| La URL sin firma obtiene el objeto | Revisa que no lleve parámetros y que el bucket sea el privado correcto; detén la prueba si existe publicación inesperada. |
Limpiar y A entregar
Section titled “Limpiar y A entregar”En tu bucket, elimina aviso.txt y verifica el listado vacío; elimina después el bucket y confirma su ausencia al actualizar el inventario. No hay versiones previstas. Si aparecen versiones, marcadores u Object Lock, revisa esa configuración antes de declarar que todo está eliminado. Registra saldo o actualización pendiente, cierra privadas y sustituye el portapapeles copiando un texto inocuo. Pulsa End Lab si has terminado la sesión. Si queda un recurso, registra el estado real.
Fuentes: compartir por consola, vigencia y credenciales temporales y GetObject.