Cifrado en reposo y en tránsito con servicios de claves
Activar el cifrado en reposo es una casilla y casi nunca es la parte difícil. Lo que importa es quién tiene la clave, quién puede usarla y qué queda registrado cuando alguien la usa: ahí es donde el cifrado protege o no protege de nada.
Datos de proveedores verificados contra la documentación oficial el 19 de sept de 2026.
“¿Los datos están cifrados?” es la pregunta que aparece en toda auditoría, y la respuesta casi siempre es sí, porque hoy los servicios de nube cifran en reposo por defecto.
La pregunta útil es otra: si alguien se lleva una copia de la base, ¿le sirve de algo? Y eso no depende de que haya cifrado, sino de quién puede pedirle a la nube que lo descifre. El cifrado en reposo protege del disco robado, no del permiso de más.
En tránsito y en reposo protegen cosas distintas
| En tránsito | En reposo | |
|---|---|---|
| Protege de | Que alguien lea o altere lo que viaja por la red | Que alguien lea el medio donde están guardados |
| Cómo se hace | TLS entre cliente y servicio, y entre servicios internos | El servicio cifra antes de escribir en disco |
| Quién lo administra | Certificados: emisión y renovación | Claves: rotación y permisos de uso |
| Qué no cubre | Nada de lo que ya llegó y se guardó | A quien tenga permiso de leer por la API |
De ahí sale la aclaración que más falta hace: el cifrado en reposo es transparente. Una consulta autorizada recibe los datos en claro, porque el servicio los descifra al leerlos. No protege contra credenciales robadas, ni contra un permiso mal puesto, ni contra una consulta que exporta todo. Para eso están los permisos, la red y la auditoría.
Una clave que cifra claves
Ningún servicio cifra terabytes con la clave que uno administra. Se usa una jerarquía de dos niveles, y entenderla explica por qué la rotación es barata.
Cómo se cifra un objeto
- El servicio genera una clave de datos única para ese objeto o ese volumen.
- Cifra los datos con esa clave, que es rápida y local.
- Le pide al servicio de claves que cifre la clave de datos con la clave maestra.
- Guarda la clave de datos cifrada al lado de los datos, y descarta la versión en claro.
- Para leer, pide descifrar la clave de datos —ahí se registra el acceso— y con ella descifra.
Antes de seguir, predecí
| Capacidad | AWS | Google Cloud | Azure |
|---|---|---|---|
| Servicio de claves | KMS | Cloud KMS | Key Vault y Managed HSM |
| Clave del proveedor, transparente | Clave gestionada por AWS | Cifrado por defecto de Google | Claves gestionadas por Microsoft |
| Clave propia, con permisos y auditoría | Clave gestionada por el cliente | Clave gestionada por el cliente | Clave gestionada por el cliente |
| Secretos de aplicación | Secrets Manager y Parameter Store | Secret Manager | Key Vault (secretos) |
La clave propia sirve por los permisos, no por el algoritmo
La clave del proveedor y la propia cifran exactamente igual de bien. La diferencia es de control.
Qué se gana con una clave administrada por uno
- Permiso separado: usar la clave es un permiso distinto de leer el recurso. Alguien con acceso al bucket pero sin permiso sobre la clave no puede leer nada.
- Registro de cada uso: cada operación de descifrado queda en el registro de auditoría, con quién y desde dónde. Es de las señales más útiles que existen.
- Botón de apagado: deshabilitar la clave vuelve ilegibles los datos sin borrarlos, que es la respuesta rápida ante un incidente.
- Política propia de rotación, y condiciones: por ejemplo, permitir el uso sólo desde un servicio determinado.
Antes de seguir, predecí
Secretos: lo que no es cifrado pero se confunde
Las contraseñas de terceros, los tokens de API y las credenciales que no se pueden reemplazar por un rol viven en un gestor de secretos, que es un servicio distinto del de claves aunque se apoye en él.
Cómo se maneja un secreto que no se puede evitar
- No está en el repositorio ni en la imagen: se lee en tiempo de ejecución.
- No está en una variable de entorno si se puede evitar: las variables se imprimen en los volcados de error y en los paneles de configuración.
- Se lee con un rol, así que quién lo leyó queda registrado.
- Se rota, idealmente con la rotación automática que ofrecen los gestores para las bases gestionadas del propio proveedor.
- Se cachea en memoria con un vencimiento corto: leerlo en cada request cuesta plata y latencia.
Cierre
Autoevaluación
¿Lo entendiste?
Práctica