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

Por padrão, todos os dados em repouso no Firestore no modo Datastore são criptografados usando a criptografia padrão do Google. O Firestore no modo Datastore gerencia e processa essa criptografia sem que você precise executar outra ação.

Se você tiver requisitos regulatórios ou de conformidade específicos relacionados às chaves que protegem seus dados, será possível usar chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para o Firestore no modo Datastore. Em vez de o Google gerenciar as chaves de criptografia que protegem seus dados, o banco de dados do Firestore no modo Datastore é protegido usando uma chave controlada e gerenciada no Cloud Key Management Service (Cloud KMS).

Nesta página, descrevemos a CMEK para o Firestore no modo Datastore. Para mais informações sobre a CMEK em geral, incluindo quando e por que ativá-la, consulte a documentação do Cloud KMS. Para instruções sobre como executar tarefas relacionadas à CMEK com o Firestore no modo Datastore, consulte Usar a CMEK.

Recursos

  • Controle de dados: a CMEK permite que você gerencie o acesso à chave do KMS. É possível rotacionar, desativar e destruir a chave usada para criptografar os dados em repouso no banco de dados do Firestore no modo Datastore.
  • Desempenho: a CMEK não afeta o SLA do Firestore.
  • Auditoria: se você ativar a geração de registros de auditoria para o Cloud KMS, todas as operações na chave serão registradas e ficarão visíveis no Cloud Logging.
  • Restrições da política da organização: é possível usar restrições da política da organização do CMEK para especificar requisitos de conformidade de criptografia para o Firestore em bancos de dados do modo Datastore 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. Consulte Preços do Cloud KMS para ver detalhes.

Você será cobrado pelos custos de operação quando o Firestore no modo Datastore solicitar que a chave do Cloud KMS execute uma operação de criptografia ou descriptografia. A criptografia/descriptografia não está sincronizada com a solicitação. Isso é feito a cada cinco minutos por meio de uma pesquisa no Cloud KMS. Os custos geralmente são baixos, devido ao número esperado de operações criptográficas geradas pelo Firestore no modo Datastore. Os custos dos Registros de auditoria do Cloud são uma despesa adicional, mas também podem ser baixos, considerando o número esperado de operações criptográficas.

Não há custos adicionais do Firestore no modo Datastore para o uso de um banco de dados protegido por CMEK, e os preços do Firestore no modo Datastore continuam aplicáveis.

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 esteve disponível. Você continuará gerando custos de armazenamento nesse tamanho até que o banco de dados seja excluído ou a chave fique disponível novamente.

O que é protegido com a CMEK

Quando você cria um banco de dados do Firestore protegido pela CMEK, sua chave do Cloud KMS é usada para proteger os dados em repouso. Isso inclui os dados armazenados em disco ou flash. 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 do Firestore pesquisa o Cloud Key Management Service a cada cinco minutos para verificar se a chave ainda está disponível e, em seguida, executa operações de criptografia e descriptografia caso ela esteja disponível. Se o sistema detectar que a chave está indisponível em 10 minutos, todas as chamadas subsequentes para o banco de dados do Firestore, incluindo leituras, gravações e consultas, retornarão 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 prazo de validade 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 import ou exportação de dados vão deixar de progredir e serão marcadas como Failed. As operações com falha não serão repetidas se a chave for restabelecida.
  • As operações de criação de índice e as operações de ativação de novas políticas de TTL não vão mais progredir. As operações interrompidas serão repetidas se a chave for restabelecida.

As chaves são consideradas indisponíveis em qualquer situação que não permita intencionalmente que o Firestore acesse a chave. Isso inclui:

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

O restabelecimento de uma chave envolve o seguinte, dependendo da situação:

  • Reativando uma versão de chave desativada.
  • Restaurar 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 a versão dela está programada para destruição. Não é possível restaurar uma chave que já foi destruída permanentemente.
  • Reatribuir permissão ao agente de serviço do Firestore para acessar a chave.

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 Firestore no modo Datastore continuará a oferecer suporte a operações completas de banco de dados usando uma versão em cache da chave por até uma hora.

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

Consulte a documentação do gerenciador de chaves externas do Cloud para mais considerações ao usar chaves externas.

Limitações

  • Não é possível alterar a chave de um banco de dados protegido pelo CMEK. Há suporte para rotação, ativação e desativação de chaves.
  • Programações de backup e operações de restauração não têm suporte em bancos de dados protegidos por CMEK. É possível usar a recuperação pontual (PITR, na sigla em inglês) para a recuperação de desastres.
  • Os bancos de dados protegidos pela CMEK são compatíveis com o Key Visualizer apenas para dados de entidades e documentos, não para dados de índice.
  • Não é possível ativar a CMEK nos bancos de dados atuais. Só é possível ativar a CMEK em novos bancos de dados, e você precisa ativá-la ao criar o banco de dados. Para migrar dados em um banco de dados não CMEK atual para um banco de dados protegido por CMEK, exporte seus dados e importe-os para um novo banco de dados protegido pelo CMEK.
  • O rastreamento de chaves não é compatível com o banco de dados protegido pelo CMEK.
  • Durante o pré-lançamento, o Firestore vai oferecer suporte a um número limitado de bancos de dados protegidos pela CMEK.

A seguir