Chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês)

Por padrão, todos os dados em repouso no Cloud Firestore são criptografados usando a criptografia padrão do Google. Cloud Firestore executa e gerencia essa criptografia automaticamente, sem que você precise executar nenhuma ação adicional.

Caso você precise atender a requisitos específicos de compliance e conformidade relacionados às chaves que protegem seus dados, use as chaves de criptografia gerenciadas pelo cliente (CMEKs) para o Cloud Firestore. Em vez do Google gerenciar as chaves de criptografia que protegem seus dados, seu banco de dados do Cloud Firestore é protegido usando uma chave que você controla e gerencia no Cloud Key Management Service (Cloud KMS).

Esta página descreve a CMEK para Cloud Firestore. Para mais informações sobre CMEK, em geral, como quando e por que ativar, consulte a documentação do Cloud KMS:

Para instruções sobre como executar tarefas relacionadas a CMEK com o Cloud Firestore, consulte Como usar CMEK.

Recursos

  • Controle de dados: a CMEK permite gerenciar a chave do KMS. É possível girar, desativar e destruir a chave usada para criptografar os dados em repouso no banco de dados Cloud Firestore.
  • Desempenho: o CMEK não afeta o SLA Cloud Firestore.
  • Auditabilidade: se você ativar a geração de registros de auditoria para o Cloud KMS, todas as operações na chave serão registradas e visualizáveis em Cloud Logging.
  • Restrições da política da organização: é possível usar restrições da política da organização CMEK para especificar os requisitos de conformidade de criptografia para bancos de dados Cloud Firestore na sua organização.

Preços

O Cloud KMS cobra pelo custo da chave e de todas as operações criptográficas executadas usando essa chave. Para mais informações, consulte os preços do Cloud KMS.

Você recebe cobranças pelos custos da operação quando o Cloud Firestore pede para que a chave do Cloud KMS execute uma operação de criptografia ou descriptografia. A operação de criptografia/descriptografia pela chave gerenciada pelo cliente ocorre a cada 5 minutos e não é sincronizada com as solicitações do banco de dados. Os custos geralmente são baixos, considerando o número esperado de operações criptográficas geradas por Cloud Firestore. Os custos dos Registros de auditoria do Cloud são uma despesa extra, mas geralmente são baixos, considerando o número esperado de operações criptográficas.

Não há custos Cloud Firestore adicionais para usar o banco de dados protegido por CMEK, e o preço Cloud Firestore continua valendo.

Se você revogar a chave de um banco de dados, o custo de armazenamento será cobrado com base no tamanho do último dia em que a chave estava disponível. Você vai continuar a incorrer em custos de armazenamento nesse tamanho até que o banco de dados seja excluído ou a chave seja disponibilizada novamente.

O que é protegido com a CMEK

Quando você cria um banco de dados protegido por CMEK Cloud Firestore, a chave do Cloud KMS é usada para proteger os dados em repouso. Isso inclui dados armazenados em um disco ou em um pen drive, incluindo índices e backups. Veja a seguir algumas exceções. Os seguintes tipos de dados são criptografados com a criptografia padrão do Google e não pela chave CMEK:

  • Dados em trânsito ou memória
  • Metadados do banco de dados

Como um status de chave indisponível é tratado

As operações de criptografia e descriptografia não são emitidas em todas as solicitações de dados. Em vez disso, o sistema Cloud Firestore consulta o Cloud KMS a cada 5 minutos para verificar se a chave ainda está disponível e, em seguida, realiza operações de criptografia e descriptografia, se a chave estiver disponível.

Se o sistema detectar que a chave não está disponível, em até 10 minutos, todas as chamadas subsequentes ao banco de dados Cloud Firestore, incluindo leituras, gravações e consultas, vão retornar um erro FAILED_PRECONDITION com a mensagem The customer-managed encryption key required by the requested resource is not accessible.

Se o banco de dados tiver políticas de time to live (TTL) e se algum tempo de expiração for excedido enquanto a chave estiver indisponível, a exclusão de dados por TTL será adiada até que a chave seja restabelecida. Se o banco de dados tiver operações de longa duração em andamento, elas serão afetadas da seguinte maneira:

  • As operações de importação ou exportação de dados param de avançar e são marcadas como Failed. As operações com falha não serão refeitas se a chave for restabelecida.
  • As operações de criação de índice e as operações que ativam novas políticas de TTL vão parar de fazer progresso. As operações interrompidas serão tentadas novamente se a chave for restabelecida.

As chaves são consideradas indisponíveis em qualquer situação que impeça intencionalmente que o Cloud Firestore acesse a chave. Incluindo:

Se a chave for restabelecida, a operação de sondagem detectará que ela está disponível novamente. O acesso é reativado, geralmente em alguns minutos, mas pode levar até algumas horas em casos raros. Algumas operações em chaves do Cloud KMS, como a desativação ou destruição de uma chave, podem levar até 3 horas para serem propagadas. O Cloud Firestore não detecta nenhuma mudança até que elas entrem em vigor no Cloud KMS.

A restauração de uma chave envolve as seguintes etapas, dependendo da situação:

  • Reativar uma versão de chave desativada.
  • Restaure uma versão de chave destruída. Antes de ser destruída permanentemente, uma versão de chave é programada para destruição. Só é possível restaurar uma chave durante o período em que uma versão de chave está programada para destruição. Não é possível restaurar uma chave que já foi destruída permanentemente.
  • Conceda novamente a permissão do agente de serviço Cloud Firestore para acessar a chave.

Considerações sobre a rotação de chaves

Quando você alterna a chave CMEK, o Cloud Firestore criptografa novamente o banco de dados com a versão principal mais recente da chave CMEK. Durante o processo de recriptografia, mantenha a versão antiga e a nova da chave disponíveis. Quando a nova criptografia for concluída, a desativação ou a exclusão das versões antigas da chave CMEK não desativará o acesso ao banco de dados, já que ele é criptografado com a nova versão da chave primária.

É possível também visualizar as versões de chave que estão sendo usadas para proteger um banco de dados. Para mais informações, consulte Conferir a chave em uso.

Considerações sobre chaves externas

Quando você usa uma chave do Cloud EKM, o Google não tem controle sobre a disponibilidade da sua chave gerenciada externamente no sistema de parceiros de gerenciamento de chaves externas.

Se uma chave gerenciada externamente não estiver disponível, o Cloud Firestore continuará oferecendo suporte a operações completas de banco de dados da melhor forma possível por até uma hora.

Depois de uma hora, se o Cloud Firestore ainda não conseguir se conectar ao Cloud KMS, o Cloud Firestore vai começar a colocar o banco de dados off-line como uma medida de proteção. As chamadas para o banco de dados vão falhar com um erro FAILED_PRECONDITION que inclui mais detalhes.

Consulte a documentação do Cloud External Key Manager para mais informações sobre o uso de chaves externas.

Backup e restauração

Um backup usa o mesmo mecanismo de criptografia do banco de dados em que ele foi criado. Quando um banco de dados Cloud Firestore protegido por CMEK cria um backup, ele criptografa o backup com a versão da chave primária usada no momento da criação do backup.

O Cloud Firestore cria o primeiro backup de um banco de dados CMEK após 24 horas do momento em que você ativa as programações de backup.

Para mais informações sobre backups de Cloud Firestore, consulte Fazer backup e restaurar dados.

Um banco de dados restaurado de um backup usa o mesmo mecanismo de criptografia do backup por padrão. Ao restaurar um banco de dados, é possível especificar um tipo de criptografia diferente de uma das seguintes maneiras:

  • Restaure para um banco de dados CMEK com uma chave recém-especificada.
  • Restaurar para um banco de dados sem CMEK que usa a criptografia padrão do Google.
  • Restaurar em um banco de dados que usa a mesma criptografia do backup.

Para mais informações sobre como restaurar um banco de dados Cloud Firestore de um backup, consulte Restaurar dados de um backup de banco de dados. Para mais informações sobre como restaurar um banco de dados Cloud Firestore protegido por CMEK de um backup, consulte Restaurar um banco de dados protegido por CMEK.

Rastreamento de chaves

É possível usar o rastreamento de chaves para conferir recursos, por exemplo, bancos de dados Cloud Firestore que uma chave protege. Para mais informações sobre o rastreamento de chaves, consulte Conferir o uso da chave.

CMEK e disponibilidade da chave

Quando as chaves estão indisponíveis ou desativadas, os seguintes comportamentos podem ocorrer em bancos de dados ativados para CMEK:

  • É possível mudar as configurações de recuperação pontual (PITR) Cloud Firestore em um banco de dados ativado para CMEK, mesmo que a chave não esteja disponível, porque as configurações de PITR são metadados do banco de dados, que não são criptografados pelo CMEK.
  • É possível excluir um banco de dados CMEK com chaves indisponíveis.
  • Quando você cria um banco de dados ativado para CMEK, as chaves desativadas não aparecem na lista de chaves disponíveis no console do Google Cloud. Se você inserir manualmente uma chave desativada, o processo de criação do banco de dados vai falhar com um erro FAILED_PRECONDITION 400.

Limitações

  • Não é possível mudar uma chave de um banco de dados protegido por CMEK. É possível girar, ativar e desativar chaves.
  • Os bancos de dados protegidos por CMEK oferecem suporte ao Visualizador de chaves apenas para dados de entidade e documento, não para dados de índice.
  • Não é possível ativar a CMEK em bancos de dados atuais. Só é possível ativar a CMEK em novos bancos de dados, e você precisa fazer isso ao criar o banco de dados. Para migrar dados de um banco de dados sem CMEK para um banco de dados protegido por CMEK, exporte seus dados e importe-os para um novo banco de dados protegido por CMEK. Também é possível restaurar dados de um banco de dados sem CMEK para um banco de dados com CMEK.
  • O Cloud Firestore oferece suporte a um número limitado de bancos de dados protegidos por CMEK.
  • Não oferecemos suporte à proteção CMEK com a integração do Cloud Functions (1ª geração). Se você quiser ter proteção de CMEK, use os Cloud Run gatilhos de funções do Firestore (2ª geração).

A seguir