- Es uno de los bloques principales de construcción de AWS → Se promociona como un almacenamiento de “escalado infinito”.
- Muchos servicios de AWS internos usan S3 como integración también.
Casos de uso:
- Backup y almacenamiento
- Recuperación ante desastres
- Archive
- Almacenamiento de nube híbrida
- App hosting
- Media hosting
- Data lakes & big data analytics
- Software delivery
- Static website
- Buckets:
- Funcionan como directorios que almacenan archivos (objetos)
- Estos buckets deben tener un nombre globalmente único, pero se definen a nivel de región.
- Naming convention: Sin mayúsculas, sin underscore, no una IP.
- Objects:
- Archivos que tienen una Key.
- Key → Es el Full path al archivo. Ex.
s3://my-bucket/my_file.txt o s3://my_bucket/my_folder/my_file.txt
- Entonces los objetos se componen de un prefijo (ruta hasta al archivo) y el nombre del objeto.
- No existen realmente directorios (aunque la UI intente hacernos pensar que sí)
- Los valores de objeto son el contenido del body:
- Tamaño máximo es 5TB o 5000 GB
- Si se sube más de 5GB, entonces se debe usar el “multi-part upload”.
- Hay metadatos, tags para seguridad y ciclo de vida, y un Version ID si tenemos el versioning habilitado.
- Apuntes del Hands-on:
- Un bucket se crea en la región en la que tengo seleccionada.
- Siempre “General purpose”, el tipo de bucket de “Directory” es out-of-scope para el examen.
- Por defecto, se bloquea todo el acceso público al bucket.
- Se puede habilitar el versioning para el bucket, aunque por defecto no estén.
- Se puede elegir la forma de encriptación
- Se pueden subir archivos directamente desde mi PC.
- No puedo acceder por defecto con la URL pública (aunque dentro de la UI del objeto en específico pueda darle a
Open y me llevará a un enlace que es el mismo que la URL pública pero con un signature que envía mis credenciales).
Amazon S3 Security:
- Basados en usuario:
- Uso de políticas de IAM, que permite indicar qué llamadas son permitidas para un usuario específico de IAM.
- Basadas en recursos:
- Bucket policies, que permiten settear reglas para el bucket desde la consola de S3. Allows cross account.
- Object Access Control List (ACL) → Más granular (puede ser desactivado).
- Bucket Access Control List (ACL) → Menos común (puede ser desactivado).
<aside>
💡
Un IAM principal puede accedeer a un objeto de S3 si se lo permiten los permisos de IAM o lo permite el recurso de policy. Siempre y cuando no haya un DENY explícito.
</aside>