Skip to content

~/nube/aws-s3 $ cat 00-teoria.md

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

Lo imprescindible sobre S3

Un modelo breve para comprender las operaciones que vas a realizar.

En tu equipo, un archivo tiene un nombre y una ubicación. Al subirlo a Amazon S3, creas un objeto: sus datos y la información que lo describe. Lo almacenas dentro de un bucket, un contenedor de almacenamiento asociado a una Región de AWS. El archivo original continúa en tu equipo; cargarlo no lo mueve automáticamente.

En los buckets de propósito general que usamos en estas prácticas no existen carpetas como directorios reales. S3 guarda objetos y cada uno tiene una clave: su nombre completo dentro del bucket. Esa clave puede contener barras /, aunque la consola las represente como separaciones entre carpetas.

Por ejemplo, puedes guardar tres objetos con estas claves:

aviso.txt
documentos/aviso.txt
documentos/normas.txt

Para S3 son tres nombres completos. Para ayudarte a navegar, la consola agrupa los dos que comienzan por documentos/ y los muestra dentro de una aparente carpeta llamada documentos. Esa parte común del principio de las claves se llama prefijo.

Por tanto, documentos/aviso.txt no requiere que hayas creado antes un directorio documentos: puedes subir el objeto directamente con esa clave. La barra forma parte de su nombre.

Si utilizas el botón Crear carpeta, la consola puede representar esa carpeta mediante un objeto vacío de cero bytes cuya clave acaba en /, como documentos/. Es un marcador para esa representación visual, no un directorio como los de tu disco. Documentación de AWS sobre carpetas y prefijos.

Mayúsculas y minúsculas importan en toda la clave: Aviso.txt y aviso.txt son diferentes, igual que Documentos/aviso.txt y documentos/aviso.txt.

Crearás los buckets en US East (N. Virginia), us-east-1. La lista de S3 puede mostrar buckets de varias regiones; confirma la Región del recurso, no solo el selector general de la consola. Un bucket de propósito general y espacio de nombres global compartido necesita un nombre disponible en ese espacio. Usarás prefijos de práctica y sufijos aleatorios, sin nombres personales.

La consola es la aplicación web de administración. AWS CLI es un programa de terminal que realiza peticiones a AWS. Ambas interfaces pueden administrar el mismo recurso cuando disponen de permisos. Configurar CLI no crea un bucket ni concede nuevos permisos.

Que un objeto tenga una URL no significa que sea público. La consola utiliza la identidad temporal de tu laboratorio; una ventana privada puede pedir la misma dirección sin firma ni sesión y recibir una denegación.

IAM, gestión de identidades y acceso, relaciona identidades, acciones, recursos y permisos. En estas prácticas no crearás usuarios administradores ni roles. Una política de bucket es un documento de permisos aplicado al bucket. Puede autorizar una operación concreta sobre objetos concretos; no es lo mismo que una política IAM nueva.

Mantendrás las ACL deshabilitadas: son listas de control de acceso, otro mecanismo de permisos que no necesitas habilitar.

BPA significa Block Public Access, bloqueo del acceso público. «Las cuatro activas» significa marcar las cuatro opciones de Permisos → Bloquear acceso público. Son barreras contra publicaciones accidentales:

Opción Qué protege
BlockPublicAcls Rechaza las operaciones que intentan añadir una ACL pública.
IgnorePublicAcls Ignora los permisos públicos concedidos por ACL existentes, sin borrarlas.
BlockPublicPolicy Impide guardar una política de bucket que S3 considere pública. No elimina políticas anteriores.
RestrictPublicBuckets Si la política del bucket es pública, restringe el acceso a identidades autorizadas de su propia cuenta y servicios AWS; bloquea acceso anónimo y entre cuentas, incluso permisos entre cuentas concretos de esa política.

Las dos primeras actúan sobre ACL; las otras dos, sobre políticas. Mantén las cuatro activas para archivos privados, backups, CLI y transferencia acelerada. Los permisos de tu identidad siguen siendo necesarios.

Para publicar el objeto o la web, las prácticas desactivan solo las dos últimas en ese bucket y añaden una política de lectura acotada. Desmarcar una protección no concede acceso por sí solo. Los bloqueos de cuenta u organización pueden seguir impidiendo la publicación. Referencia de AWS sobre BPA.

Compartirás de dos maneras: un objeto público puede leerse anónimamente mientras se mantenga ese permiso; una URL prefirmada incluye una autorización limitada en el tiempo. La segunda no necesita hacer público el bucket. El cifrado SSE-S3 protege datos almacenados mediante claves de S3, pero no sustituye la autorización.

Sin versionado, cargar contenido nuevo con la misma clave sustituye el objeto actual. Con versionado, S3 conserva distintas versiones. Un borrado normal puede añadir un marcador de borrado y ocultar el objeto actual sin destruir su historial. Recuperar datos exige comprobar qué versión o copia utilizas.

Copiar un objeto a otro bucket guarda una copia del contenido seleccionado. No configura por sí solo una copia automática. La replicación automatiza la copia de objetos elegibles entre buckets y necesita requisitos propios. La sincronización compara origen y destino y aplica cambios en una dirección. Ninguna etiqueta «backup» demuestra que puedas restaurar: lo comprobarás recuperando un archivo y leyendo su contenido.

S3 Standard es la clase inicial de almacenamiento de los objetos. Otras clases cambian disponibilidad de acceso y componentes del precio. El almacenamiento, las solicitudes, las versiones y determinadas transferencias o recuperaciones pueden generar coste. Unos pocos archivos pequeños reducen el consumo previsto; no lo convierten en gratuito.

S3 no tiene una operación «parar bucket». Al terminar, retirarás publicaciones, eliminarás objetos y versiones cuando existan y borrarás tus buckets de práctica. End Lab no sustituye esa limpieza. Un saldo sin cambios puede estar pendiente de actualización.