Sobre as chaves de criptografia gerenciadas pelo cliente (CMEK)

Este documento descreve como usar chaves de criptografia gerenciadas pelo cliente (CMEK) em Cloud Key Management Service (Cloud KMS) para instâncias do Memorystore for Valkey, em vez de usar a criptografia padrão do Google. O documento também descreve quais dados são criptografados no armazenamento permanente e como as instâncias se comportam durante eventos do ciclo de vida da chave.

A CMEK permite controlar as chaves criptográficas que protegem os dados armazenados. Ao gerenciar suas próprias chaves no Cloud KMS, você tem mais controle sobre o acesso, a rotação e o uso das chaves, o que ajuda a atender a requisitos regulamentares e de compliance rigorosos.

A implementação da CMEK oferece uma camada extra de segurança e controle sobre seus dados permanentes, como backups e arquivos de persistência. É possível ativar a CMEK apenas em novas instâncias. Não é possível aplicar a CMEK a instâncias atuais.

Quem deve usar a CMEK?

A CMEK é destinada a organizações que têm dados sensíveis ou regulamentados e exigem controle sobre as próprias chaves de criptografia. Para mais informações sobre se é necessário usar a CMEK para criptografar esses dados, consulte Decidir se é necessário usar a CMEK.

Criptografia gerenciada pelo cliente

A CMEK permite usar chaves criptográficas para proteger dados armazenados em instâncias do Memorystore for Valkey. Para criptografar esses dados, o Memorystore for Valkey usa chaves de criptografia de dados (DEKs) gerenciadas pelo Google e chaves de criptografia de chaves (KEKs) gerenciadas pelo cliente.

É possível ter os seguintes níveis de criptografia:

  • Criptografia DEK: as DEKs criptografam dados no Memorystore for Valkey.
  • Criptografia KEK: as KEKs criptografam DEKs.

O Memorystore for Valkey usa KEKs para criptografar DEKs e DEKs para criptografar os dados armazenados. Se você usar a CMEK, poderá gerenciar as KEKs que criptografam as DEKs na instância.

O diagrama a seguir mostra como uma instância usa a CMEK para criptografar dados. Os dados enviados à infraestrutura de armazenamento do Google são divididos em blocos, e cada bloco é criptografado com a própria DEK. O Cloud KMS fornece a KEK para criptografar as DEKs, e a infraestrutura de armazenamento do Google distribui os blocos de dados criptografados e as DEKs criptografadas no sistema.

Os dados são enviados para a infraestrutura de armazenamento do Google e divididos em blocos. Cada bloco é criptografado com uma DEK própria. Em seguida, as DEKs são criptografadas usando uma KEK recuperada do Cloud KMS. Os blocos criptografados e as DEKs criptografadas são distribuídos pela infraestrutura de armazenamento.

O diagrama a seguir mostra como o Memorystore for Valkey descriptografa dados criptografados com a CMEK. Para acessar esses dados criptografados, o Memorystore for Valkey envia uma solicitação ao Cloud KMS, que gerencia a KEK, para descriptografar a DEK. Em seguida, o Cloud KMS retorna a DEK descriptografada, que a instância usa para descriptografar os dados armazenados.

Bloco de dados criptografado com a DEK e armazenado com a DEK criptografada. Uma solicitação para descriptografar a DEK é enviada ao Cloud KMS, que armazena a KEK. O Cloud KMS retorna a DEK descriptografada.

Quais dados são criptografados usando a CMEK?

A CMEK criptografa os seguintes tipos de dados do cliente armazenados no armazenamento permanente:

  • Backups: os backups permitem recuperar os seus dados para um ponto no tempo, exportar e analisar dados. Os backups também são úteis para recuperação de desastres, migração de dados, compartilhamento de dados pessoais e cenários de compliance.
  • Persistência: o Memorystore for Valkey oferece suporte a dois tipos de persistência:
    • Persistência RDB: salva snapshots dos dados no armazenamento durável.
    • Persistência AOF: armazena dados de forma durável gravando todos os comandos de gravação em um arquivo de registro chamado Append-Only File (AOF). Se ocorrer uma falha ou reinicialização do sistema, o servidor reproduz os comandos do arquivo AOF sequencialmente para restaurar os dados.

Componentes da CMEK

As seções a seguir descrevem os requisitos e comportamentos das contas de serviço, chaves criptográficas, versões de chave e políticas da organização que compõem a arquitetura da CMEK.

Contas de serviço

Para criar uma instância ativada para CMEK, conceda o papel roles/cloudkms.cryptoKeyEncrypterDecrypter à conta de serviço do Memorystore for Valkey que usa o seguinte formato:

service-PROJECT_NUMBER@gcp-sa-memorystore.iam.gserviceaccount.com

A concessão dessa permissão permite que a conta de serviço solicite acesso à chave do Cloud KMS.

Chaves

No Cloud KMS, é necessário criar um keyring e, em seguida, uma chave criptográfica que use um algoritmo de criptografia simétrica. Ao criar uma instância do Memorystore for Valkey, selecione essa chave para criptografar a instância. É possível criar um projeto para as chaves e instâncias ou projetos diferentes para cada um deles.

A CMEK está disponível em todos os locais de instância do Memorystore for Valkey. É necessário criar o keyring e a chave na mesma região em que você quer criar a instância. Para uma instância multirregional, defina o keyring e a chave para o mesmo local da instância. Se as regiões ou locais não corresponderem, uma solicitação de criação da instância falhará.

Para o ID do recurso da chave, a CMEK usa o seguinte formato:

projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Para mais informações sobre como encontrar os IDs de recursos de chaves atuais, consulte Como conseguir um ID de recurso do Cloud KMS.

Chaves externas

Como parte da sua estratégia de CMEK, é possível usar chaves externas. Para fazer isso, use o Cloud External Key Manager (Cloud EKM) para criptografar dados usando chaves externas que você gerencia. Google Cloud

Quando você usa uma chave do Cloud EKM, o Google não tem controle sobre a disponibilidade das chaves gerenciadas externamente. Se uma chave não estiver disponível ao criar a instância, o Memorystore for Valkey não vai criar a instância.

Versões de chave

O Cloud KMS armazena o material da chave criptográfica que você usa para criptografar e descriptografar os dados em uma versão de chave. Uma única chave pode conter várias versões de chave. Sempre que você alterna uma chave, cria uma versão de chave.

As seções a seguir descrevem como as instâncias e os dados protegidos se comportam durante eventos do ciclo de vida da chave, como desativação, destruição, rotação, ativação ou restauração de versões de chave. As seções também explicam o impacto da revogação do acesso ou da substituição de uma chave do Cloud KMS e fornecem orientações sobre como recriptografar dados manualmente.

Como desativar ou destruir uma versão de chave CMEK

Pode haver casos em que você queira tornar os dados criptografados com a CMEK permanentemente inacessíveis, como ao corrigir um vazamento de dados. Para conseguir essa destruição de dados de alta segurança (também conhecida como criptografia), destrua a versão da chave. Para mais informações sobre como destruir versões de chave, consulte Destruir e restaurar versões de chave.

Se você desativar ou destruir a versão da chave primária da CMEK, as seguintes condições serão aplicadas a backups e persistência.

Backups

Ao destruir a versão da chave primária da CMEK, as seguintes restrições serão aplicadas aos backups da instância:

  • Não é possível criar backups sob demanda ou automatizados. No entanto, se você ativar uma versão de chave mais antiga, poderá acessar todos os backups criados usando essa versão de chave.
  • Não é possível atualizar ou reativar backups automatizados até que você ative ou restaure a versão da chave primária. Para mais informações, consulte Como ativar ou restaurar a versão da chave CMEK primária.
Persistência

Ao destruir a versão da chave primária da CMEK, as seguintes restrições serão aplicadas à persistência da instância:

  • Se você configurar a instância para usar a persistência, o Memorystore for Valkey vai desativar a persistência quando a versão da chave ficar indisponível. Não haverá mais cobranças pelo uso da persistência.
  • O Memorystore for Valkey não transfere novos dados para o armazenamento permanente usando a CMEK.
  • O Memorystore for Valkey não pode ler dados atuais presentes no armazenamento permanente.
  • Não é possível atualizar ou reativar a persistência até que você ative ou restaure a versão da chave primária.

Se você ativar a versão da chave primária da CMEK, mas desativar ou destruir uma versão de chave mais antiga, as seguintes condições serão aplicadas a backups e persistência:

  • É possível criar backups. No entanto, se um backup for criptografado com uma versão de chave mais antiga desativada ou destruída, o backup permanecerá inacessível.
  • Se você ativar a persistência, ela permanecerá ativada. Se a versão de chave mais antiga usada na persistência for desativada ou destruída, o Memorystore for Valkey vai realizar uma atualização semelhante à usada na manutenção e recriptografar os dados com a versão da chave primária.

Revogar o acesso a uma chave do Cloud KMS

Se você revogar o acesso a uma chave ativa do Cloud KMS desativando a chave ou removendo as permissões do IAM para a chave, o Memorystore for Valkey vai priorizar a disponibilidade do cache principal. As operações de armazenamento em cache na memória regulares continuam a atender ao tráfego.

No entanto, os backups e a persistência são desativados. O Memorystore for Valkey para imediatamente de gravar novos dados no disco e não lê dados do disco criptografado pelo cliente na memória.

Alternar a versão da chave CMEK primária

Se você alternar a versão da chave primária da CMEK e criar uma nova versão da chave primária, as seguintes condições serão aplicadas a backups e persistência:

  • A versão da chave primária mais recente da CMEK criptografa novos backups.
  • Para backups atuais, nenhuma nova criptografia é feita.
  • Para persistência, os nós não realizam nenhuma ação. Os nós continuam usando a versão de chave mais antiga até o próximo evento de manutenção.

Recriptografar dados protegidos por CMEK manualmente

O Memorystore for Valkey não oferece suporte à recriptografia sob demanda de dados armazenados. Não é possível acionar um processo manualmente para usar uma nova versão de chave para recriptografar backups atuais ou arquivos de persistência ativos. No entanto, é possível usar a nova versão de chave para criptografar dados recém-gravados.

Se você alternar uma chave e precisar forçar uma instância a usar a nova versão de chave, as seguintes condições serão aplicadas a backups e persistência:

Backups

Não é possível recriptografar backups atuais. Se a compliance exigir que todos os dados sejam criptografados com a chave mais recente, crie um backup que use essa chave e exclua os backups atuais manualmente. Também é possível exportar esse backup para um bucket do Cloud Storage para que a chave de criptografia do Cloud Storage seja usada.

Persistência

Para forçar a instância a usar uma nova chave do Cloud KMS, é possível executar a manutenção simulada na instância. Depois de concluir essa operação, o Memorystore for Valkey poderá gravar dados de persistência usando a versão da chave primária atualizada.

Substituir uma chave protegida do Cloud KMS

Se você substituir uma chave protegida do Cloud KMS por uma chave diferente ou uma nova versão de chave primária, o Memorystore for Valkey vai aplicar essa mudança apenas a operações futuras.

A substituição de uma chave protegida afeta seus recursos das seguintes maneiras:

  • Backups: todos os backups subsequentes são criptografados usando a nova chave. Os backups atuais mantêm as chaves originais.
  • Persistência: a nova chave será usada na próxima vez que a instância for reiniciada ou tiver um evento de manutenção.
  • Cache principal: a substituição dessa chave não tem impacto. A CMEK não criptografa dados na memória porque esses dados não são considerados dados armazenados.

Como ativar ou restaurar a versão da chave CMEK primária

Se você ativar ou restaurar a versão da chave primária da CMEK, as seguintes condições serão aplicadas a backups e persistência:

  • É possível criar backups sob demanda e automatizados novamente.
  • O Memorystore for Valkey realiza uma atualização semelhante à usada na manutenção e reativa a persistência.

Restrições da política da organização

O Memorystore for Valkey oferece suporte a restrições de política da organização para CMEK. Ao usar essas restrições, é possível aplicar a proteção CMEK às instâncias e limitar quais chaves do Cloud KMS podem ser usadas para essa proteção.

É possível configurar as seguintes restrições de política da organização:

  • constraints/gcp.restrictNonCmekServices: use essa restrição para aplicar a proteção CMEK às instâncias. Se a API Memorystore for Valkey estiver na lista de serviços da política Deny para essa restrição, não será possível criar instâncias não protegidas pela CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects: use essa restrição para limitar quais chaves do Cloud KMS podem ser usadas para proteção CMEK. Se você configurar essa restrição, as instâncias que usam a criptografia CMEK precisarão usar uma chave de um projeto, pasta ou organização permitida.

Para mais informações sobre as restrições de política da organização relacionadas à CMEK que o Google gerencia para o Memorystore for Valkey, consulte Restrições de política da organização.

Preços

O Memorystore for Valkey cobra por uma instância ativada para CMEK, assim como qualquer outra instância. Não há custos adicionais. Para mais informações, consulte Preços do Memorystore for Valkey.

Você usa a API Cloud KMS para gerenciar a CMEK. Ao criar uma instância do Memorystore for Valkey com a CMEK, o Memorystore usa a chave periodicamente para criptografar dados.

Você recebe cobranças do Cloud KMS pelo custo da chave e pelas operações de criptografia e descriptografia quando o Memorystore for Valkey usa a chave. Para mais informações, consulte os preços do Cloud KMS.

Limitações

As seguintes limitações se aplicam ao uso da CMEK com o Memorystore for Valkey:

  • Não é possível ativar a CMEK em uma instância atual do Memorystore for Valkey.
  • A chave, o keyring e a instância precisam estar localizados na mesma região.
  • É necessário usar o algoritmo de criptografia simétrica para a chave.
  • As taxas de criptografia e descriptografia do Cloud KMS estão sujeitas a uma cota.

A seguir