Blindando tus Datos en la Nube: Cifrado en Amazon S3
El cifrado es el proceso de convertir datos legibles en un formato codificado que solo puede ser descifrado con la clave correcta. Esto significa que, si llegan a “robarte” tu información, sin la clave no podrán leer su contenido.
Amazon S3 ofrece múltiples capas y opciones de cifrado para proteger los datos tanto en tránsito como en reposo.
Tipos de Cifrado en Amazon S3
1. Cifrado del lado del servidor (SSE)
AWS S3 ofrece tres opciones principales de cifrado del lado del servidor:
SSE-S3 (Cifrado con claves administradas por Amazon S3)
Características clave: Utiliza el algoritmo AES-256. Encriptación por defecto en AWS S3.
Ventajas: Implementación sencilla, sin costo adicional
Recomendado para: Organizaciones con requisitos básicos de seguridad
SSE-KMS (Cifrado con AWS Key Management Service)
Características clave: Utiliza AWS KMS para gestionar las claves de cifrado
Ventajas: Mayor control sobre las claves, registro de auditoría y rotación automática
Recomendado para: Empresas con necesidades de cumplimiento normativo
SSE-C (Cifrado con Claves Proporcionadas por el Cliente)
Características clave: El cliente proporciona y gestiona sus propias claves
Ventajas: Control total sobre las claves de cifrado
Recomendado para: Organizaciones con requisitos estrictos de seguridad y políticas específicas de gestión de claves
2. Cifrado del Lado del Cliente
Características clave: Los datos se cifran antes de enviarlos a S3. El usuario es el único responsable de la administración y resguardo de sus datos de encriptación.
Ventajas: Mayor seguridad ya que los datos nunca están sin cifrar en AWS
Recomendado para: Datos altamente sensibles o cuando se requiere cumplimiento con regulaciones estrictas.
Poniendo en práctica lo aprendido
Creando un bucket
Al momento de crear un bucket, podemos seleccionar el tipo de encriptación de nuestro bucket. Con esto, todos los objetos heredarán esta encriptación.
Si cargamos objetos al bucket, y seleccionamos dicho objeto, podremos ver que su método de encriptación es la misma que seleccionamos cuando el bucket fue creado.
Cambiando el método de encriptación de un bucket
Por temas de seguridad o temas normativos, podemos cambiar el método de encriptación ya sea de un objeto específico o de todo el bucket.
Nota: Al cambiar el método de encriptación del bucket, únicamente los objetos nuevos tendrán el nuevo método de encriptación. Objetos existentes se mantienen con el método de encriptación con el cual fueron cargados al bucket.
Cambiando el método de encriptación de los objetos
Podemos cambiar el método de encriptación en cualquier momento. Si el bucket tiene habilitado el versionamiento, se creará una nueva versión del objeto con el nuevo método de encriptación seleccionado. Si no está habilitado el versionamiento en el bucket, el archivo será reemplazado con el nuevo método de encriptación.
Las siguientes imágenes muestran el archivo “replica_objetos_s3.jpg“, sin ninguna versión usando el método de encriptación “SSE-S3“
Procedemos a cambiar el método de encriptación presionando el botón “editar“ sobre la sección “Configuración del cifrado del lado del servidorInformación“ del objeto.
Luego de confirmar el cambio del método de encriptación sobre el objeto “replica_objetos_s3.jpg“, vemos que se ha creado una nueva versión del objeto.
Creando una política de bucket para forzar el tipo de encriptación de los objetos
Para cumplir con regulaciones legales o asegurar que tus objetos cumplan con tu requerimiento de encriptación, puedes crear políticas de bucket para rechazar cargas de objetos que no utilicen cierto cifrado. La siguiente política indica que se rechace la carga de objetos en el bucket “demo-bucket-encriptado-js“ cuyos objetos NO se suban con el método de encriptación “aws:kms”
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::demo-bucket-encriptado-js/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
}
]
}
Para esto clic sobre el tab Permisos, sección “Política de bucket“ clic en botón “Editar“.
Luego de configurar la política, tratamos de subir un objeto y vemos que esta subida de archivos será bloqueada.
Para corregir esto, al momento de subir el archivo debemos seleccionar manualmente el método de encriptación del objeto. Para esto seleccionamos el botón propiedades y establecemos el método de encriptación.
Luego de esto, el objeto se sube correctamente.
Mejores Prácticas de Cifrado en S3
Activar el cifrado predeterminado: Recuerda configurar el cifrado predeterminado para todos tus buckets S3.
Utilizar AWS CloudTrail: Monitoriza y registra todas las operaciones relacionadas con tus claves KMS.
Implementar el principio de privilegio mínimo: Limita los permisos de acceso a lo estrictamente necesario.
Implementar el control de versiones: Activa el control de versiones en buckets críticos para preservar, recuperar y restaurar versiones anteriores.
Conclusiones
El cifrado en Amazon S3 es una capa esencial en cualquier estrategia de seguridad en la nube. La selección del método de encriptación no solo protege tus datos sino que también ayuda a cumplir con los requisitos normativos de tu empresa.
Ten presente que la seguridad en la nube es una responsabilidad compartida: AWS proporciona una infraestructura segura y las herramientas adecuadas, pero tú eres responsable de configurar y gestionar adecuadamente el cifrado de tus buckets.