c3.4 Proteger claves criptográficas con AWS KMS
Restringir el acceso a las claves criptográficas usadas para proteger datos de cuenta al menor número posible de custodios y almacenarlas de forma segura, con separación de funciones respecto a los datos que protegen.
Requisito 3
Protect Stored Account Data
Sub-requisitos PCI cubiertosCobertura mostrada por sub-control de PCI DSS v4.0.1. “Cubierto” = atendido por esta recomendación de AWS. “En roadmap” = técnico, planeado. “Tu responsabilidad” = control organizacional/de proceso. “Fuera de alcance” = control físico o de terceros no implementado en AWS.
3.6 Protección de las claves criptográficas usadas para proteger datos de cuenta almacenados
- 3.6.1 Procedures to protect cryptographic keys against disclosure/misuse Cubierto
3.7 Gestión del ciclo de vida de las claves criptográficas
- 3.7.1 Key-management: generation of strong keys Cubierto
- 3.7.2 Key-management: secure distribution of keys Cubierto
- 3.7.3 Key-management: secure storage of keys Cubierto
- 3.7.4 Key-management: key changes at cryptoperiod end Cubierto
- 3.7.5 Key-management: retirement/replacement/destruction of keys Cubierto
- 3.7.6 Manual cleartext key operations use split knowledge/dual control Tu responsabilidad
- 3.7.7 Prevention of unauthorized substitution of keys Cubierto
- 3.7.8 Key custodians formally acknowledge responsibilities Tu responsabilidad
- 3.7.9 SP shares keys with customers with documented guidance (SP only) Tu responsabilidad
Cómo implementarlo en AWS
Usar AWS KMS con claves administradas por el cliente (CMK) para los datos del CDE. Restringir el uso y administración de claves con políticas de clave y políticas IAM (separando quién administra la clave de quién administra los datos). Habilitar la rotación de claves. Registrar todo uso de claves con CloudTrail. Para requisitos de módulo criptográfico, considerar AWS CloudHSM (FIPS 140-2/3).
Implementación práctica
Cómo se implementa este control en cada arquitectura de referencia:
Protege las claves del CDE con una clave de KMS gestionada por el cliente, separa quién administra la clave de quién administra los datos, rota y registra cada uso de la clave.
- Usa una clave de KMS gestionada por el cliente para la capa de datos y escribe una política de clave que otorgue el uso a los servicios de datos pero la administración solo al rol de seguridad, forzando la separación de funciones.
- Habilita la rotación automática anual de la clave (CMK).
- Registra todo uso y administración de la clave (Encrypt, Decrypt, ScheduleKeyDeletion) con CloudTrail para su revisión.
- Si se requiere un módulo criptográfico dedicado FIPS 140-2/3, usa AWS CloudHSM como almacén de claves.
Cómo validar: La política de clave muestra que los administradores de clave son distintos de los de datos, la rotación está habilitada y CloudTrail contiene los eventos de uso de la clave.
Evita: Dejar que el mismo rol administre tanto la clave como los datos que protege. Separa las funciones para que ninguna identidad pueda a la vez gestionar y descifrar.
Mantén las claves por cuenta, adminístralas de forma central desde el equipo de seguridad y envía los logs de uso de clave a la cuenta de log-archive.
- Mantén claves de KMS gestionadas por el cliente por cada cuenta del CDE (sin claves de datos compartidas entre cuentas) para que un compromiso quede contenido.
- Separa a los administradores de clave (equipo de seguridad) de los dueños de datos usando roles IAM entre cuentas referenciados en la política de clave.
- Entrega los eventos de uso de clave de CloudTrail a la cuenta central de log-archive para una revisión resistente a manipulaciones.
Cómo validar: Cada cuenta del CDE tiene su propia CMK con rotación, los roles de administración de clave están centralizados/separados, y los eventos de uso de clave llegan a la cuenta de log-archive.
Evita: Una sola clave de KMS para toda la organización administrada por los equipos de carga. Centraliza la administración de claves y define claves por cuenta para el aislamiento y la separación de funciones.
Validación PCI
Procedimientos de prueba
- Examinar las políticas y procedimientos de gestión de claves para verificar que los procesos protegen las claves contra divulgación y uso indebido (3.6.1); examinar las listas de acceso para verificar que el acceso a los componentes de clave en claro se restringe al menor número de custodios (3.6.1.3).
- Donde se usen claves de cifrado de claves (KEK), verificar que son al menos tan fuertes como las claves de datos que protegen y que se almacenan por separado (3.6.1.2.c).
- Examinar los procedimientos y observar los procesos del ciclo de vida de claves: generación, distribución, almacenamiento, cambios por criptoperiodo, retiro/reemplazo, conocimiento dividido/control dual (3.7.1 a 3.7.8).
Evidencia en AWS
- Políticas de clave de KMS y políticas IAM que evidencian custodios limitados y separación de funciones.
- Configuración de rotación de claves KMS habilitada.
- Eventos de CloudTrail de uso/administración de claves (Encrypt, Decrypt, ScheduleKeyDeletion).
- Documentación de procedimientos de ciclo de vida de claves.
Enfoque personalizado
Requiere un análisis de riesgo dirigido (Req 12.3.2).
Objetivo del enfoque personalizado
- 3.6 — Los procesos que protegen las claves criptográficas usadas para proteger los datos de cuenta almacenados frente a divulgación y uso indebido están definidos e implementados.
- 3.7 — Las claves criptográficas se gestionan de forma segura a lo largo de su ciclo de vida (generación, distribución, almacenamiento, cambio, retiro y protección frente a sustitución).
Servicios AWS
Recursos de aprendizaje
- AWS KMS key policies (doc)
- AWS KMS Cryptographic Details (whitepaper)
Referencias
- AWS Security Maturity Model: Key management
- PCI DSS v4.0.1 Requirements 3.6, 3.7
PCI DSS Security Maturity Model