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 com a criptografia padrão do Google. O Firestore no modo Datastore processa e gerencia essa criptografia automaticamente para você.

Se você tiver requisitos regulamentares ou de compliance específicos relacionados às chaves que protegem seus dados, use chaves de criptografia gerenciadas pelo cliente (CMEK) 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 por uma chave controlada e gerenciada no Cloud Key Management Service (Cloud KMS).

Nesta página, descrevemos as CMEKs 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 CMEK.

Recursos

  • Controle de dados: com a CMEK, é possível gerenciar o acesso à chave do KMS. É possível girar, desativar e destruir a chave usada para criptografar os dados em repouso no seu 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 do Cloud KMS, todas as operações na chave serão registradas e poderão ser visualizadas no Cloud Logging.
  • Restrições da política da organização: é possível usar restrições da política da organização 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 os detalhes em Preços do Cloud KMS.

Os custos da operação são cobrados quando o Firestore no modo Datastore solicita que a chave do Cloud KMS execute uma operação de criptografia ou descriptografia. A criptografia/descriptografia não é sincronizada com a sua solicitação. Isso é feito a cada cinco minutos, com a pesquisa do 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 devem ser baixos, considerando o número esperado de operações criptográficas.

Não há custos extras do Firestore no modo Datastore pelo uso do banco de dados protegido por CMEKs. Os preços do Firestore no modo Datastore continuam sendo aplicáveis.

Se você revogar sua chave para um banco de dados, o custo de armazenamento será cobrado com base no tamanho do último dia em que a chave esteve disponível. Os custos de armazenamento continuarão sendo gerados nesse tamanho até que o banco de dados seja excluído ou até que a chave fique disponível novamente.

O que é protegido com a CMEK

Quando você cria um banco de dados protegido pela CMEK do Firestore, sua chave do Cloud KMS é usada para proteger dados em repouso. Isso inclui 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

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 realiza operações de criptografia e descriptografia caso ela esteja disponível. Se o sistema detectar que a chave está indisponível em até 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 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 import ou exportação de dados não vão mais progredir e serão marcadas como Failed. As operações com falha não serão tentadas novamente se a chave for restabelecida.
  • As operações de criação de índice e as operações que ativam 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 proíba intencionalmente o acesso do Firestore a elas. Isso inclui:

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

Dependendo da situação, a restabelecimento de uma chave envolve as seguintes etapas:

  • Reativação de uma versão de chave desativada.
  • Como 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 destruição de uma versão está programada. Não é possível restaurar uma chave que já tenha sido destruída permanentemente.
  • Conceder novamente a permissão do 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á compatível com operações completas do banco de dados usando uma versão da chave armazenada em cache por até uma hora.

Depois de uma hora, se o Firestore no modo Datastore ainda não conseguir se conectar com o Cloud KMS, o Firestore no modo Datastore começará a colocar o banco de dados off-line como medida de proteção. As chamadas para o banco de dados falharão com um erro FAILED_PRECONDITION que inclui outros 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 em um banco de dados protegido por CMEK. Há suporte para rotação, ativação e desativação de chaves.
  • As programações de backup e as 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 recuperação de desastres.
  • Os bancos de dados protegidos pela CMEK oferecem suporte ao Key Visualizer apenas para dados de entidade e documentos, não para dados de índice.
  • Não é possível ativar a CMEK em bancos de dados atuais. É possível ativar a CMEK apenas em novos bancos de dados, e você precisa ativá-la ao criar o banco de dados. Para migrar dados em um banco de dados que não seja CMEK para um banco de dados protegido por CMEK, exporte seus dados e importe-os para um novo banco de dados protegido por CMEK.
  • O rastreamento de chaves não é compatível com bancos de dados protegidos por CMEKs.
  • Durante o pré-lançamento, o Firestore oferece suporte a um número limitado de bancos de dados protegidos pela CMEK.

A seguir