Qué es
AWS KMS (Key Management Service) crea, guarda y usa claves criptográficas en módulos de seguridad hardware (HSM) validados, sin que el material de la clave salga nunca en claro. Casi todos los servicios de AWS (S3 (Simple Storage Service), EBS (Elastic Block Store), RDS (Relational Database Service), DynamoDB, Lambda, Secrets Manager…) se integran con KMS para el cifrado en reposo, y cada uso de una clave queda registrado en CloudTrail. Tú decides quién puede usar cada clave y para qué.
Conceptos clave
- Tipos de clave según quién la gestiona:
- Gestionadas por el cliente: las creas tú; controlas la política, la rotación, la activación y el borrado. Se pueden compartir con otras cuentas.
- Gestionadas por AWS (
aws/s3,aws/ebs…): las crea un servicio en tu cuenta; no puedes cambiar su política ni compartirlas; rotan cada año. - Propiedad de AWS: las usa AWS internamente en muchas cuentas; no las ves ni auditas.
- Simétricas (AES-256 (Advanced Encryption Standard: cifrado simétrico con claves de 256 bits), la opción por defecto, el material nunca sale de KMS), asimétricas (RSA (Rivest-Shamir-Adleman: algoritmo de clave pública) o ECC (Elliptic Curve Cryptography: criptografía de curva elíptica), para firmar o cifrar fuera de AWS con la clave pública) y HMAC (Hash-based Message Authentication Code: código que verifica integridad y autenticidad).
- Cifrado de sobre (envelope encryption): KMS cifra directamente
como máximo 4 KB. Para datos mayores se pide una clave de datos
(
GenerateDataKey): cifras los datos localmente con ella y guardas su copia cifrada junto a los datos. Es lo que hacen los servicios de AWS por dentro. - Política de clave: el control de acceso principal. Sin una política que lo permita, ni siquiera un administrador de IAM (Identity and Access Management) puede usar la clave. Las concesiones (grants) dan permisos temporales y delegables.
- Rotación automática: para claves simétricas gestionadas por el cliente, con periodo configurable de 90 a 2560 días (365 por defecto), y rotación bajo demanda. Las versiones antiguas se conservan para descifrar lo ya cifrado.
- Borrado programado: espera obligatoria de 7 a 30 días; lo cifrado con una clave borrada es irrecuperable. Desactivar la clave es la alternativa reversible.
- Claves multirregión: réplicas con el mismo material en varias regiones para cifrar en una y descifrar en otra sin volver a cifrar.
- Almacenes de claves personalizados: respaldados por un clúster de CloudHSM propio o por un gestor de claves externo (XKS).
Casos de uso típicos
- Cifrado en reposo de S3, EBS, RDS, DynamoDB y demás, con claves bajo tu control.
- Cumplir normativas que exigen rotación, separación de funciones y auditoría del uso.
- Cifrar datos en la aplicación con el SDK (Software Development Kit: bibliotecas para programar contra AWS) de cifrado y claves de datos.
- Firmar y verificar documentos o tokens con claves asimétricas.
- Compartir datos cifrados con otra cuenta permitiéndole usar la clave.
Cuándo NO usarlo
- Si necesitas un HSM de un solo inquilino con control exclusivo y acceso por PKCS (Public-Key Cryptography Standards: estándares de criptografía de clave pública)#11 o JCE (Java Cryptography Extension: interfaz criptográfica de Java): CloudHSM.
- Para guardar contraseñas o claves de API (Application Programming Interface: interfaz para que los programas se comuniquen): Secrets Manager (que usa KMS por debajo).
- Para certificados TLS (Transport Layer Security: cifrado de las conexiones): AWS Certificate Manager.
Comparativa con servicios parecidos
| Necesidad | Servicio adecuado |
|---|---|
| Claves gestionadas e integradas con los servicios de AWS | KMS |
| HSM dedicado bajo tu control exclusivo | CloudHSM |
| Guardar y rotar secretos (contraseñas, tokens) | Secrets Manager |
| Certificados SSL/TLS | ACM |
| Parámetros de configuración, algunos cifrados | Systems Manager Parameter Store |
Modelo de precios
Cada clave gestionada por el cliente tiene una cuota mensual (y cada versión rotada añade coste, con un tope), y se paga por cada petición a la API (cifrar, descifrar, generar claves de datos), con un nivel gratuito mensual. Las claves gestionadas por AWS no tienen cuota mensual, pero sus peticiones sí cuentan. En S3, las S3 Bucket Keys reducen mucho las llamadas a KMS y, por tanto, su coste.
Seguridad y alta disponibilidad
- El material de las claves nunca sale de los HSM en claro.
- Políticas de clave para separar a quien administra la clave de quien la usa.
- Condiciones como
kms:ViaServicepara permitir el uso solo a través de un servicio. - Cada llamada queda registrada en CloudTrail.
- Servicio regional y altamente disponible; claves multirregión para recuperación entre regiones.
Trampas de examen
- "Controlar la rotación, la política o compartir la clave con otra cuenta": clave gestionada por el cliente, no gestionada por AWS.
- "Cifrar un fichero de más de 4 KB con KMS": cifrado de sobre con
GenerateDataKey. - "Borrar la clave de inmediato": no se puede; espera de 7 a 30 días (desactivarla sí es inmediato).
- "HSM de un solo inquilino" o "FIPS (Federal Information Processing Standards: normas de seguridad del gobierno de EE. UU.) 140 nivel 3 bajo control exclusivo": CloudHSM.
- "AccessDenied al descifrar aunque IAM lo permite": falta el permiso en la política de la clave.
- "Descifrar en otra región sin recifrar": clave multirregión.
- "Demasiadas llamadas a KMS desde S3": S3 Bucket Keys.
Preguntas de práctica
Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.
Fuentes
- AWS Key Management Service, documentación de AWS (consultada el 26/09/2026).
- AWS KMS concepts, documentación de AWS (consultada el 26/09/2026).
- Rotate AWS KMS keys, documentación de AWS (consultada el 26/09/2026).
- Key policies in AWS KMS, documentación de AWS (consultada el 26/09/2026).
- Delete an AWS KMS key, documentación de AWS (consultada el 26/09/2026).