c3.4 Proteger chaves criptográficas com o AWS KMS
Restringir o acesso às chaves criptográficas usadas para proteger os dados da conta ao menor número possível de custodiantes e armazená-las de forma segura, com segregação de funções em relação aos dados que protegem.
Requisito 3
Proteger os Dados Armazenados da Conta
Sub-requisitos PCI cobertosCobertura mostrada por sub-controle do PCI DSS v4.0.1. “Coberto” = atendido por esta recomendação da AWS. “No roadmap” = técnico, planejado. “Sua responsabilidade” = controle organizacional/de processo. “Fora do escopo” = controle físico ou de terceiros não implementado na AWS.
3.6 As chaves criptográficas usadas para proteger os dados armazenados da conta são protegidas
- 3.6.1 Procedures to protect cryptographic keys against disclosure/misuse Coberto
3.7 Os processos e procedimentos de gestão de chaves criptográficas são definidos e implementados
- 3.7.1 Key-management: generation of strong keys Coberto
- 3.7.2 Key-management: secure distribution of keys Coberto
- 3.7.3 Key-management: secure storage of keys Coberto
- 3.7.4 Key-management: key changes at cryptoperiod end Coberto
- 3.7.5 Key-management: retirement/replacement/destruction of keys Coberto
- 3.7.6 Manual cleartext key operations use split knowledge/dual control Sua responsabilidade
- 3.7.7 Prevention of unauthorized substitution of keys Coberto
- 3.7.8 Key custodians formally acknowledge responsibilities Sua responsabilidade
- 3.7.9 SP shares keys with customers with documented guidance (SP only) Sua responsabilidade
Como implementar na AWS
Usar o AWS KMS com chaves gerenciadas pelo cliente (CMKs) para os dados do CDE. Restringir o uso e a administração de chaves com políticas de chave e políticas IAM (separando quem administra a chave de quem administra os dados). Habilitar a rotação de chaves. Registrar todo o uso de chaves com o CloudTrail. Para requisitos de módulo criptográfico, considerar o AWS CloudHSM (FIPS 140-2/3).
Implementação prática
Como este controle é implementado em cada arquitetura de referência:
Proteja as chaves do CDE com uma chave do KMS gerenciada pelo cliente, separe quem administra a chave de quem administra os dados, rotacione e registre cada uso da chave.
- Use uma chave do KMS gerenciada pelo cliente para a camada de dados e escreva uma política de chave que conceda o uso aos serviços de dados mas a administração apenas ao papel de segurança, impondo a separação de funções.
- Habilite a rotação automática anual da chave (CMK).
- Registre todo uso e administração da chave (Encrypt, Decrypt, ScheduleKeyDeletion) com o CloudTrail para revisão.
- Se for necessário um módulo criptográfico dedicado FIPS 140-2/3, use o AWS CloudHSM como repositório de chaves.
Como validar: A política de chave mostra que os administradores de chave são distintos dos de dados, a rotação está habilitada e o CloudTrail contém os eventos de uso da chave.
Evite: Deixar o mesmo papel administrar tanto a chave quanto os dados que ela protege. Separe as funções para que nenhuma identidade possa ao mesmo tempo gerenciar e descriptografar.
Mantenha as chaves por conta, administre-as de forma central a partir da equipe de segurança e envie os logs de uso de chave à conta de log-archive.
- Mantenha chaves do KMS gerenciadas pelo cliente por cada conta do CDE (sem chaves de dados compartilhadas entre contas) para que um comprometimento fique contido.
- Separe os administradores de chave (equipe de segurança) dos donos de dados usando papéis IAM entre contas referenciados na política de chave.
- Entregue os eventos de uso de chave do CloudTrail à conta central de log-archive para uma revisão resistente a adulterações.
Como validar: Cada conta do CDE tem sua própria CMK com rotação, os papéis de administração de chave estão centralizados/separados, e os eventos de uso de chave chegam à conta de log-archive.
Evite: Uma única chave do KMS para toda a organização administrada pelas equipes de carga. Centralize a administração de chaves e defina chaves por conta para o isolamento e a separação de funções.
Validação PCI
Procedimentos de teste
- Examinar as políticas e procedimentos de gestão de chaves para verificar que os processos protegem as chaves contra divulgação e uso indevido (3.6.1); examinar as listas de acesso para verificar que o acesso aos componentes de chave em texto claro é restringido ao menor número de custodiantes (3.6.1.3).
- Onde forem usadas chaves de criptografia de chaves (KEK), verificar que são pelo menos tão fortes quanto as chaves de dados que protegem e que são armazenadas separadamente (3.6.1.2.c).
- Examinar os procedimentos e observar os processos do ciclo de vida das chaves: geração, distribuição, armazenamento, mudanças por criptoperíodo, aposentadoria/substituição, conhecimento dividido/controle duplo (3.7.1 a 3.7.8).
Evidência na AWS
- Políticas de chave do KMS e políticas IAM que evidenciam custodiantes limitados e segregação de funções.
- Rotação de chaves do KMS habilitada.
- Eventos do CloudTrail de uso/administração de chaves (Encrypt, Decrypt, ScheduleKeyDeletion).
- Documentação dos procedimentos de ciclo de vida das chaves.
Abordagem personalizada
Requer uma análise de risco direcionada (Req 12.3.2).
Objetivo da abordagem personalizada
- 3.6 — Os processos que protegem as chaves criptográficas usadas para proteger os dados armazenados da conta contra divulgação e uso indevido estão definidos e implementados.
- 3.7 — As chaves criptográficas são gerenciadas de forma segura ao longo de seu ciclo de vida (geração, distribuição, armazenamento, mudança, aposentadoria e proteção contra substituição).
Serviços AWS
Recursos de aprendizado
- AWS KMS key policies (doc)
- AWS KMS Cryptographic Details (whitepaper)
Referências
- AWS Security Maturity Model: Key management
- PCI DSS v4.0.1 Requirements 3.6, 3.7
PCI DSS Security Maturity Model