Nesta página, descrevemos como as chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) funcionam com Memorystore para Redis. Para usar esse recurso imediatamente, consulte Usar contas gerenciadas pelo cliente de criptografia de chaves (CMEK, na sigla em inglês).
Uma CMEK é ideal para mim?
As chaves de criptografia gerenciadas pelo cliente são destinadas a organizações com dados confidenciais ou regulamentados que exigem o gerenciamento das próprias chaves de criptografia.
Criptografia gerenciada pelo Google e criptografia gerenciada pelo cliente
O recurso CMEK permite que você use suas próprias chaves criptográficas para dados em repouso no Memorystore para Redis. Depois de adicionar chaves de criptografia gerenciadas pelo cliente, sempre que uma chamada de API for feita, o Memorystore vai usar a chave para acessar os dados.
O Memorystore usa chaves de criptografia de dados (DEK, na sigla em inglês) e chaves de criptografia de chaves (KEK, na sigla em inglês) gerenciadas pelo Google para criptografar o Memorystore para Redis. Há dois níveis de criptografia:
- A DEK criptografa os dados.
- A KEK criptografa a DEK.
A instância do Memorystore armazena a DEK criptografada com o dados criptografados no DP e o Google gerencia a KEK do Google. Com as chaves de criptografia gerenciadas pelo cliente, você cria uma chave que encapsula a KEK do Google. As chaves de criptografia gerenciadas pelo cliente permitem criar, revogar e excluir a KEK.
As chaves de criptografia gerenciadas pelo cliente são gerenciadas pela API Cloud Key Management Service.
Os diagramas abaixo mostram como a criptografia de dados em repouso funciona instância do Memorystore ao usar a criptografia padrão do Google, de criptografia gerenciadas pelo cliente.
Sem CMEK
Com a CMEK
Ao descriptografar dados encapsulados com chaves de criptografia gerenciadas pelo cliente, O Memorystore usa a KEK para descriptografar a DEK e para descriptografar os dados em repouso.
Quando o Memorystore interage com as chaves CMEK?
Operação | Descrição |
---|---|
criação de instância | Durante a criação da instância, você a configura para usar chaves de criptografia gerenciadas pelo cliente. |
Atualização da instância | O Memorystore verifica a chave CMEK durante atualizações em um instância ativada para CMEK. |
Quais dados são criptografados usando a CMEK?
O CMEK criptografa os seguintes tipos de dados:
- Dados do cliente armazenados no armazenamento permanente.
- 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 a CMEK, conceda o papel cloudkms.cryptoKeyEncrypterDecrypter à conta de serviço do Memorystore com o seguinte formato:
service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com
Ao conceder essa permissão, a conta de serviço pode solicitar acesso à chave no Cloud KMS.
Para instruções sobre como conceder essa permissão à conta de serviço, consulte Conceder à conta de serviço acesso à chave.
Sobre as chaves
No Cloud KMS, é preciso criar um keyring com uma chave criptográfica que usa um algoritmo de criptografia/descriptografia simétrica. Ao criar uma nova instância do Memorystore, selecione essa chave para criptografar a instância. É possível criar um projeto para ambas as chaves e instâncias do Memorystore ou projetos diferentes para cada uma delas.
As CMEKs estão disponíveis em todos os locais de instâncias do Memorystore. A chave e a região do keyring precisa ser definida como a mesma região do Memorystore para Redis. Uma chave de região global ou de várias regiões não funciona. A solicitação para criar uma instância do Memorystore falhará se o não correspondem.
O CMEK para o Memorystore é compatível com o Gerenciador de chaves externo do Cloud (Cloud EKM).
As chaves de criptografia gerenciadas pelo cliente têm o formato a seguir:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Se o Memorystore não conseguir acessar nenhuma versão de chave que esteja sendo usada (por exemplo, se você desativar a versão da chave), ele encerrará a instância sem demora. No console do Google Cloud, uma instância suspensa mostra um marcador de posição com um ponto de exclamação vermelho na página Instâncias. Ao passar o cursor sobre a dica "Sem estado", é exibido. Depois que a chave ficar acessível novamente, o Memorystore retoma automaticamente instância.
Como tornar os dados criptografados com CMEK permanentemente inacessíveis?
Pode haver casos em que você precise destruir permanentemente os dados criptografados com CMEK. Para isso, destrua a versão da chave de criptografia gerenciada pelo cliente. Não é possível destruir o keyring ou a chave, mas você pode destruir versões da chave.
Como exportar e importar dados de/para uma instância ativada para CMEK?
Se você quiser que seus dados permaneçam criptografados com uma chave gerenciada pelo cliente durante uma importação ou exportação, é necessário configurar uma chave de criptografia gerenciada pelo cliente no bucket do Cloud Storage exportar dados para ele.
Não há requisitos ou restrições especiais para importar dados para um novo do Memorystore quando os dados foram armazenados Instância do Memorystore ativada para CMEK.
Comportamento de destruir/desativar uma versão de chave CMEK
Para garantir que não haja acesso aos dados à sua instância, faça isso desativar a versão da chave primária da sua chave de criptografia gerenciada pelo cliente. Isso encerra a instância sem demora. Além disso, O Memorystore encerra uma instância sem atrasos, se houver chave de criptografia gerenciada pelo cliente em uso é desativada/destruída. Isso inclui qualquer versão de chave mais antiga que ainda esteja sendo usada por uma instância do Memorystore. Você pode usar a gcloud ou o console do Google Cloud para ver se a instância suspenso:
No console do Google Cloud, se a instância estiver suspensa, você verá uma notificação de dica vermelha ao lado dela na página Instâncias do Memorystore para Redis. A dica de ferramenta mostra "Sem estado" quando o cursor passa por ela.
Na gcloud, se você executar gcloud beta redis instances describe
e não
consulte state: READY
, state: REPAIRING
ou qualquer outro estado na instância
metadados, isso significa que sua instância está suspensa.
Reativar/restaurar uma versão de chave CMEK em uso
Uma instância é exibida novamente após a reativação/restauração uma versão de chave CMEK em uso.
Restrições
As restrições a seguir se aplicam ao usar chaves de criptografia gerenciadas pelo cliente com o Memorystore:
- Não é possível ativar chaves de criptografia gerenciadas pelo cliente em uma instância do Memorystore.
- A região da chave, do chaveiro e da instância do Memorystore precisa ser a mesma.
- É necessário usar o algoritmo de criptografia/descriptografia simétrica para a chave.
- As taxas de criptografia e descriptografia do Cloud KMS estão sujeitas a uma cota.
Políticas da organização de CMEK
O Memorystore para Redis aceita restrições de política da organização que podem ser usadas para proteção CMEK.
As políticas podem limitar quais chaves do Cloud KMS podem ser usadas Proteção de CMEKs.
Quando a API Memorystore for Redis está na lista de políticas
Deny
de serviços no restriçãoconstraints/gcp.restrictNonCmekServices
, Memorystore para Redis falha na criação de instâncias não protegidas pela CMEK.Quando
constraints/gcp.restrictCmekCryptoKeyProjects
é configurado, o Memorystore para Redis cria instâncias protegidas por CMEK que são criptografadas usando uma chave de um projeto, pasta ou organização permitido.
Para saber mais sobre como configurar políticas da organização CMEK, consulte Políticas da organização de CMEK