KMS
📘 ¿Qué es AWS KMS?
AWS Key Management Service (KMS) es un servicio administrado que permite crear, administrar y controlar el uso de claves de cifrado utilizadas para proteger datos en AWS y en tus propias aplicaciones.
KMS facilita la cifrado automático de datos en reposo y en tránsito, sin necesidad de que gestiones tus propias soluciones criptográficas.
🧠 ¿Para qué sirve?
-
Cifrar datos almacenados en servicios de AWS como S3, EBS, RDS, Redshift, etc.
-
Generar y almacenar claves criptográficas seguras (simétricas y asimétricas)
-
Firmar digitalmente mensajes o transacciones
-
Controlar acceso granular a claves mediante IAM y políticas de clave
-
Registrar uso de claves con CloudTrail para auditorías
🧩 Componentes clave
| Componente | Descripción |
|---|---|
| CMK (Customer Master Key) | Clave principal creada y gestionada por el usuario o AWS |
| Key Policy | Política de control de acceso específica de cada clave |
| Envelope Encryption | Técnica que cifra los datos con una clave de datos y luego cifra esa clave con la CMK |
| Automatic Key Rotation | Rotación automática cada 1 año para claves gestionadas por AWS |
| Grants | Permiten delegar permisos de uso temporal de una clave |
🔐 Tipos de claves
| Tipo de clave | Descripción |
|---|---|
| Claves gestionadas por AWS | Creadas y rotadas automáticamente por AWS (por ejemplo, para cifrado de S3 por defecto) |
| Claves gestionadas por el cliente (Customer Managed) | Creadas, controladas y configuradas por el usuario |
| Claves importadas | Puedes importar tu propio material de clave |
| Claves simétricas | Una sola clave para cifrar/descifrar (AES-256) |
| Claves asimétricas | Par de claves pública/privada para firma y cifrado (RSA/ECC) |
⚙️ Cómo funciona (cifrado simétrico típico)
-
Se genera una Data Key (clave de datos)
-
Se usa para cifrar los datos en la app o servicio (por ejemplo, S3)
-
Esa data key se cifra con la CMK de KMS (Envelope Encryption)
-
El dato cifrado y la data key cifrada se almacenan juntos
-
Para descifrar, se desencripta la data key con KMS, y luego se usan los datos
💡 Integraciones comunes
| Servicio | Integración con KMS |
|---|---|
| S3 | Cifrado SSE-KMS (Server-Side Encryption) |
| EBS | Cifrado de volúmenes |
| RDS / Redshift | Cifrado de datos en reposo |
| SQS / SNS | Cifrado de mensajes |
| Secrets Manager | Almacena secretos cifrados con KMS |
| CloudTrail | Cifrado de logs |
🔐 Control de acceso a claves
-
IAM Policies: controlan quién puede usar o administrar claves
-
Key Policies: políticas específicas por clave (más detalladas)
-
Grants: permisos temporales de uso delegados (ej. Lambda → DynamoDB cifrado)
-
Multi-Region Keys: permiten replicar claves entre regiones
🛡️ Seguridad y cumplimiento
-
Certificaciones: FIPS 140-2, PCI-DSS, HIPAA, FedRAMP
-
Todas las operaciones están registradas en AWS CloudTrail
-
Apoya la creación de claves de forma segura y controlada
💰 Precios aproximados
| Concepto | Costo aproximado (ej. us-east-1) |
|---|---|
| Clave CMK activa (gestionada por el cliente) | $1/mes |
| Solicitudes de cifrado/descifrado | $0.03 por 10,000 solicitudes |
| Claves gestionadas por AWS (por servicio) | Gratis |
| Importación de clave / uso de HSM personalizado | Tiene costos adicionales |
Consulta precios actualizados: https://aws.amazon.com/kms/pricing/
🧠 Preguntas tipo certificación
-
¿Qué servicio permite administrar claves de cifrado en AWS?
- ✅ AWS KMS
-
¿Qué tipo de clave es necesaria para cifrado simétrico?
- ✅ CMK simétrica (AES-256)
-
¿Qué técnica se usa para cifrar grandes volúmenes de datos eficientemente?
- ✅ Envelope Encryption
-
¿Cómo puedes permitir que Lambda acceda temporalmente a una clave KMS?
- ✅ Mediante un Grant
-
¿Qué mecanismo registra el uso de las claves?
- ✅ AWS CloudTrail