Por padrão, o Memorystore para Redis criptografa o conteúdo do cliente em repouso. O Memorystore para Redis processa a criptografia para você sem nenhuma ação adicional da sua parte. Essa opção é chamada de criptografia padrão do Google.
Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo o Memorystore para Redis. Ao usar chaves do Cloud KMS, é possível controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. Com o Cloud KMS, também é possível visualizar registros de auditoria e controlar ciclos de vida de chaves. Em vez de o Google ser proprietário e gerente de chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.
Depois de configurar os recursos com CMEKs, a experiência de acesso aos seus recursos do Memorystore para Redis é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
Quem deve usar a CMEK?
A CMEK é destinada a organizações com dados sensíveis ou regulamentados que precisam ser criptografados. Para mais informações sobre se você deve usar a CMEK para criptografar esses dados, consulte Decidir se você vai usar a CMEK.
Criptografia gerenciada pelo Google e criptografia gerenciada pelo cliente
Com o recurso de CMEK, você pode usar as chaves criptográficas pertencentes a você nos dados em repouso no Memorystore para Redis. Para instâncias do Memorystore para Redis ativadas para CMEK, o Google usa suas chaves para acessar todos os dados em repouso.
O Memorystore usa chaves de criptografia de dados (DEK) gerenciadas pelo Google e chaves de criptografia de chaves (KEK) para criptografar dados no Memorystore para Redis. Há dois níveis de criptografia:
- Criptografia DEK:o Memorystore usa DEKs para criptografar dados no Memorystore para Redis.
- Criptografia KEK:o Memorystore usa KEKs para criptografar DEKs.
A instância do Memorystore para Redis armazena a DEK criptografada com os dados criptografados no disco permanente, e o Google gerencia a KEK. A CMEK é a KEK que encapsula a DEK. A CMEK permite criar, desativar ou destruir e ativar ou restaurar a KEK.
Você gerencia a CMEK usando a API Cloud Key Management Service.
Os diagramas a seguir mostram como a criptografia de dados em repouso funciona dentro de uma instância do Memorystore para Redis ao usar a criptografia padrão gerenciada pelo Google em comparação com a CMEK.
Sem CMEK
Com a CMEK
Ao descriptografar dados encapsulados com CMEK, o Memorystore usa a KEK do Cloud Key Management Service para descriptografar a DEK e a DEK não criptografada para descriptografar dados em repouso.

Preços
O Memorystore para Redis 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 para Redis.
Você usa a API Cloud KMS para gerenciar a CMEK. Ao criar uma instância do Memorystore para Redis com 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 para Redis usa a chave. Para mais informações, consulte os preços do Cloud KMS.
Quando o Memorystore interage com a CMEK?
| Operação | Descrição |
|---|---|
| criação de instância | Ao criar uma instância, você a configura para usar a CMEK. |
| Atualização da instância | Durante as atualizações de uma instância ativada para CMEK, o Memorystore para Redis verifica a CMEK. |
Quais dados são criptografados usando a CMEK?
A CMEK criptografa os seguintes tipos de dados:
- Dados do cliente armazenados em armazenamento persistente.
- Metadados relacionados a recursos de segurança, como AUTH e criptografia em trânsito.
Sobre contas de serviço
Ao criar uma instância com CMEK, você precisa conceder o papel cloudkms.cryptoKeyEncrypterDecrypter à conta de serviço do Memorystore para Redis que tem o seguinte formato:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
A concessão dessa permissão permite que a conta de serviço solicite acesso à chave do Cloud KMS.
Para instruções sobre como conceder essa permissão à conta de serviço, consulte Conceder acesso à chave para a conta de serviço do Memorystore para Redis.
Sobre as chaves
No Cloud KMS, é preciso criar um keyring com uma chave criptográfica que usa um algoritmo de criptografia simétrica. Ao criar uma instância do Memorystore para Redis, você seleciona essa chave para criptografar a instância. É possível criar um projeto para as chaves e instâncias ou projetos diferentes para cada uma delas.
A CMEK está disponível em todos os locais de instância do Memorystore para Redis. É necessário criar o keyring e a chave na mesma região em que você quer criar a instância. Uma chave para uma região global ou multirregional não funciona. 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
Se o Memorystore para Redis não puder acessar nenhuma versão de chave em uso (por exemplo, se você desativar todas as versões de chave), o Memorystore para Redis vai encerrar a instância. No Google Cloud console do, uma instância suspensa mostra uma dica de ferramenta de ponto de exclamação vermelho
na página Instâncias. Se você passar o cursor sobre a dica de ferramenta, um status No state vai aparecer. Quando a chave ficar acessível, o Memorystore para Redis vai retomar a instância automaticamente.
Chaves externas
Use o Gerenciador de chaves externo do Cloud (Cloud EKM) para criptografar dados no Google Cloud Google Cloud usando chaves externas que você gerencia.
Quando você usa uma chave do Cloud EKM, o Google não tem controle sobre a disponibilidade da sua chave gerenciada externamente. Se a chave não estiver disponível quando você criar a instância, ela não será criada.
Para mais considerações ao usar chaves externas, consulte Gerenciador de chaves externo do Cloud.
Como tornar os dados criptografados com CMEK permanentemente inacessíveis?
Pode haver situações em que você queira tornar os dados criptografados com CMEK permanentemente inacessíveis. Para isso, destrua a versão da chave. Para mais informações sobre como destruir versões da chave, consulte Destruir e restaurar versões de chave.
Como importar ou exportar dados para uma instância ativada para CMEK?
Se você quiser que os dados permaneçam criptografados com uma CMEK ao exportar dados, defina uma CMEK no bucket do Cloud Storage antes de exportar dados para ele.
Se os dados forem armazenados em uma instância ativada para CMEK, não haverá requisitos ou restrições especiais para importar dados para uma nova instância.
Comportamento de uma versão de chave CMEK
Esta seção fornece informações sobre o que acontece quando você desativa, destrói, alterna, ativa e restaura uma versão de chave.
Desativar ou destruir uma versão de chave CMEK
Se você quiser garantir que não haja acesso a dados na sua instância, desative a versão de chave principal da CMEK. Isso encerra a instância. Além disso, se qualquer CMEK em uso for desativada ou destruída, o Memorystore para Redis vai encerrar a instância. Isso inclui qualquer versão de chave mais antiga que a instância usa.
Para saber se o Memorystore para Redis suspende sua instância, use uma das seguintes interfaces:
- Google Cloud console **do** : na página Instâncias, uma dica de ferramenta de ponto de exclamação vermelho
aparece ao lado da instância. Se você passar o cursor sobre a dica de ferramenta, um status
No statevai aparecer. - gcloud CLI: use o comando
gcloud redis instances describe. Verifique sestate: READY,state: REPAIRINGou qualquer outro estado não aparece nos metadados da instância.
Recriptografar dados protegidos por CMEK manualmente
O Memorystore para Redis não oferece suporte à recriptografia sob demanda de dados em repouso. 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.
Substituir uma chave KMS protegida
Se você substituir uma chave KMS protegida por uma chave KMS diferente ou uma nova versão chave primária, o Memorystore para Redis vai aplicar essa mudança apenas a operações futuras.
A substituição de uma chave KMS protegida afeta seus recursos das seguintes maneiras:
- Backups: o Memorystore para Redis exporta backups para buckets do Cloud Storage. A chave de criptografia do Cloud Storage controla a chave usada para criptografar os dados.
- Persistência: a nova chave KMS 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 em repouso.
Ativar ou restaurar a versão de chave CMEK principal
Se você ativar ou restaurar a versão chave primária da CMEK, o Memorystore para Redis não vai mais ocultar a instância.
Limitações
As seguintes limitações se aplicam ao uso da CMEK com o Memorystore para Redis:
- Não é possível ativar a CMEK em uma instância atual do Memorystore para Redis.
- 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.
Sobre as restrições da política da organização de CMEK
O Memorystore para Redis oferece suporte a restrições da 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 da 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 para Redis estiver na lista de serviços da políticaDenypara essa restrição, não será possível criar instâncias não protegidas por CMEK.constraints/gcp.restrictCmekCryptoKeyProjects: use essa restrição para limitar quais chaves do Cloud KMS podem ser usadas para proteção por 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.