AWS KMS
Servicio de gestión de claves completamente administrado que centraliza la creación, gestión y rotación de claves de cifrado, integrado con más de 100 servicios de AWS
Descripción general
AWS Key Management Service (KMS) es un servicio completamente administrado para crear, almacenar y gestionar de forma segura las claves de cifrado utilizadas para el cifrado de datos. Está integrado con más de 100 servicios de AWS incluyendo S3, EBS, RDS, DynamoDB y Lambda, permitiendo habilitar el cifrado de datos con unos pocos clics. Las claves KMS están protegidas por módulos de seguridad de hardware (HSM), y el material de clave nunca sale del HSM. Soporta tanto claves simétricas (AES-256) como asimétricas (RSA, ECC), implementando defensa en profundidad mediante cifrado de sobre que cifra las claves de datos con claves KMS. La combinación de políticas de clave y políticas IAM permite controlar de forma granular los permisos de uso de claves, y AWS CloudTrail permite auditar todo el historial de uso de claves. La función de rotación automática de claves permite actualizar automáticamente el material de clave con una frecuencia anual.
Mecanismo y ventajas del cifrado de sobre
El núcleo de KMS es el cifrado de sobre. En lugar de cifrar datos directamente con la clave KMS, primero se genera una clave de datos (par de texto plano y cifrado) mediante la API GenerateDataKey, se cifran los datos con la clave de datos en texto plano, y luego se almacena la clave de datos cifrada junto con los datos. Para descifrar, se envía la clave de datos cifrada a KMS para obtener el texto plano, y con esa clave se descifran los datos. Esta estructura de 2 capas permite que, incluso al cifrar grandes volúmenes de datos, las llamadas API a KMS se limiten a una vez para generación y una para descifrado de clave, evitando cuellos de botella de throughput. Azure Key Vault tiene un diseño que gestiona claves, secretos y certificados de forma integrada en un solo servicio, mientras que KMS se especializa en la gestión de claves de cifrado, separando funcionalidades con Secrets Manager (secretos) y ACM (certificados). Esta separación simplifica el diseño de políticas de clave y facilita la aplicación del principio de mínimo privilegio.
Políticas de clave y diseño de permisos
El control de acceso de KMS se compone de dos capas: políticas de clave y políticas IAM. La política de clave es una política basada en recursos configurada por clave, que define qué principales pueden usar esa clave. Las políticas IAM controlan desde el lado del principal "qué claves puede usar". Las operaciones solo tienen éxito cuando ambas políticas lo permiten, previniendo doblemente accesos no intencionados. Las claves administradas por AWS (aws/s3, aws/ebs, etc.) son gratuitas y permiten habilitar el cifrado de S3 o EBS sin costo adicional, pero no soportan personalización de políticas de clave ni acceso entre cuentas. La mejor práctica es crear claves administradas por el cliente según los requisitos de cumplimiento de la organización y restringir explícitamente los permisos de uso de claves. Libros sobre tecnología de cifrado (Amazon) presentan de forma sistemática los patrones de diseño de gestión de claves.
Rotación de claves y soporte multi-región
Al habilitar la rotación automática de claves de KMS, se genera nuevo material de clave cada 365 días. El material de clave antiguo se retiene para descifrado, por lo que los datos cifrados antes de la rotación siguen siendo descifrables. No se requieren cambios en el código de la aplicación, ya que el ID de clave permanece igual mientras solo se actualiza internamente el material de clave. Con claves multi-región, se puede usar el mismo ID de clave en diferentes regiones, eliminando la necesidad de re-cifrado durante la replicación de datos entre regiones (como S3 Cross-Region Replication o DynamoDB Global Tables). Para requisitos de cumplimiento que necesitan certificación FIPS 140-2 Level 3, se puede utilizar la función de almacén de claves personalizado con un clúster CloudHSM como backend. Dado que todas las llamadas API de KMS se registran en CloudTrail, se puede auditar completamente quién usó qué clave y cuándo.