Nesta página, descrevemos como as chaves de criptografia gerenciadas pelo cliente (CMEK) funcionam com o Memorystore para Redis. Para começar a usar esse recurso, consulte Usar chaves de criptografia gerenciadas pelo cliente (CMEK).
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 que você precise fazer nada. 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 recursos da 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 é necessário usar a CMEK para criptografar esses dados, consulte Decidir se é necessário usar a CMEK.
Criptografia gerenciada pelo Google e criptografia gerenciada pelo cliente
Com o recurso de CMEK, você usa as próprias chaves criptográficas nos dados em repouso na Memorystore para Redis. Depois de adicionar chaves de criptografia gerenciadas pelo cliente, sempre que uma chamada de API for feita, o Memorystore usará sua chave para acessar os dados.
O Memorystore usa chaves de criptografia de dados (DEK) e chaves de criptografia de chaves (KEK) 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 os dados criptografados no disco permanente, e o Google gerencia a KEK. A CMEK é a KEK que encapsula a DEK. 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 em uma instância do Memorystore ao usar a criptografia padrão do Google, em comparação com as chaves 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 a DEK não criptografada para descriptografar 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 as atualizações de uma instância habilitada para CMEK. |
Quais dados são criptografados usando a CMEK?
A CMEK criptografa os seguintes tipos de dados:
- Dados do cliente armazenados em 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 CMEK, conceda o papel cloudkms.cryptoKeyEncrypterDecrypter à conta de serviço do Memorystore, que tem 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 do Cloud KMS.
Para instruções sobre como conceder essa permissão à conta de serviço, consulte Conceder acesso à chave à conta de serviço.
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 instância do Memorystore, você seleciona essa chave para criptografar a instância. É possível criar um projeto para as chaves e instâncias do Memorystore ou projetos diferentes para cada uma delas.
O CMEK está disponível em todos os locais de instâncias do Memorystore. A região da chave e do chaveiro precisa ser definida como a mesma região da instância do Memorystore para Redis. Uma chave de região global ou multirregional não funciona. Uma solicitação para criar uma instância do Memorystore falhará se as regiões não forem correspondentes.
A CMEK para Memorystore é compatível com o Cloud External Key Manager (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 em uso no momento, como em um caso em que você desativou a versão da chave, o Memorystore vai encerrar a instância sem demora indevida. No console do Google Cloud , uma instância suspensa mostra uma dica de ferramenta com um ponto de exclamação vermelho na página Instâncias. Ao passar o cursor sobre a dica, a mensagem "Nenhum estado" é exibida. Quando a chave ficar acessível novamente, o Memorystore vai retomar a instância automaticamente.
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 quiser que os dados permaneçam criptografados com uma chave gerenciada pelo cliente durante uma importação ou exportação, defina uma chave de criptografia gerenciada pelo cliente no bucket do Cloud Storage antes de exportar dados para ele.
Não há requisitos ou restrições especiais para importar dados para uma nova instância do Memorystore quando eles foram armazenados anteriormente em uma instância do Memorystore ativada para CMEK.
Comportamento de destruição/desativação de uma versão de chave CMEK
Se você quiser garantir que não haja acesso aos dados da sua instância, desative a versão da chave primária da chave de criptografia gerenciada pelo cliente. Isso encerra a instância sem atraso indevido. Além disso, a Memorystore encerra uma instância sem demora indevida se uma chave de criptografia gerenciada pelo cliente em uso for desativada ou destruída. Isso inclui qualquer versão de chave mais antiga ainda usada por uma instância do Memorystore. É possível usar o gcloud ou o console do Google Cloud para verificar se a instância está suspensa:
No console Google Cloud , se a instância estiver suspensa, uma notificação de dica vermelha vai aparecer ao lado dela na página Instâncias do Memorystore para Redis. A dica de ferramenta mostra "Nenhum estado" quando você passa o cursor sobre ela.
No gcloud, se você executar gcloud redis instances describe
e não encontrar state: READY
, state: REPAIRING
ou qualquer outro estado nos metadados da instância, isso significa que ela está suspensa.
Reativar/restaurar uma versão de chave CMEK em uso
Uma instância é mostrada depois de reativar/restaurar 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 da Memorystore atual.
- A região da chave, do keyring e da instância do Memorystore precisa ser a mesma.
- Você precisa usar o algoritmo de criptografia/descriptografia simétrica para sua 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 é compatível com restrições de política da organização que podem ser usadas para proteção por CMEK.
As políticas podem limitar quais chaves do Cloud KMS podem ser usadas para proteção com CMEK.
Quando a API Memorystore para Redis está na lista de serviços
Deny
da restriçãoconstraints/gcp.restrictNonCmekServices
, a criação do Memorystore para Redis falha em instâncias não protegidas por 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, uma pasta ou uma organização permitida.
Para mais informações sobre como configurar políticas da organização de CMEK, consulte Políticas da organização de CMEK.