Chaves de encriptação geridas pelo cliente (CMEK)

Por predefinição, todos os dados em repouso no Firestore com compatibilidade com o MongoDB são encriptados através da encriptação predefinida da Google. O Firestore com compatibilidade com o MongoDB processa e gere esta encriptação por si sem qualquer ação adicional da sua parte.

Se tiver requisitos regulamentares ou de conformidade específicos relacionados com as chaves que protegem os seus dados, pode usar chaves de encriptação geridas pelo cliente (CMEK) para o Firestore com compatibilidade com o MongoDB. Em vez de a Google gerir as chaves de encriptação que protegem os seus dados, a base de dados do Firestore com compatibilidade com o MongoDB é protegida através de uma chave que controla e gere no Cloud Key Management Service (Cloud KMS).

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

Para obter instruções sobre como realizar tarefas relacionadas com a CMEK com o Firestore com compatibilidade com o MongoDB, consulte o artigo Use CMEK.

Funcionalidades

  • Controlo de dados: a CMEK permite-lhe gerir a chave do KMS. Pode rodar, desativar e destruir a chave usada para encriptar os dados em repouso na sua base de dados do Firestore com compatibilidade com o MongoDB.
  • Desempenho: a CMEK não afeta o SLA do Firestore.
  • Auditabilidade: se ativar o registo de auditoria para o Cloud KMS, todas as operações na chave são registadas e visíveis no Cloud Logging.
  • Restrições da política da organização: pode usar restrições da política da organização da CMEK para especificar requisitos de conformidade de encriptação para bases de dados compatíveis com o Firestore com MongoDB na sua organização.

Preços

O Cloud KMS cobra o custo da chave e quaisquer operações criptográficas realizadas com essa chave. Para mais informações, consulte os preços do Cloud KMS.

Os custos de operação são faturados quando o Firestore com compatibilidade com o MongoDB pede à chave do Cloud KMS para realizar uma operação de encriptação ou desencriptação. A operação de encriptação ou desencriptação pela chave gerida pelo cliente ocorre a cada 5 minutos e não está sincronizada com os pedidos da base de dados. Geralmente, os custos são baixos, dado o número esperado de operações criptográficas geradas pelo Firestore com compatibilidade com o MongoDB. Os custos dos registos de auditoria do Cloud são uma despesa adicional, mas também se espera que sejam geralmente baixos, dado o número esperado de operações criptográficas.

Não existem custos adicionais de compatibilidade do Firestore com o MongoDB para usar a base de dados protegida por CMEK, e a preçário do Firestore com compatibilidade do MongoDB continua a aplicar-se.

Se revogar a sua chave para uma base de dados, o custo de armazenamento é cobrado com base no tamanho do último dia em que a chave esteve disponível. Vai continuar a incorrer em custos de armazenamento com essa dimensão da base de dados até que a base de dados seja eliminada ou a chave fique novamente disponível.

O que está protegido com a CMEK

Quando cria uma base de dados protegida por CMEK com compatibilidade com o MongoDB, a chave do Cloud KMS é usada para proteger os dados em repouso. Isto inclui dados que armazena num disco ou numa unidade flash, incluindo índices e cópias de segurança. Aplicam-se algumas exceções. Os seguintes tipos de dados são encriptados com a encriptação predefinida da Google e não com a chave CMEK:

  • Dados em trânsito ou na memória
  • Metadados da base de dados

Como é processado um estado de chave indisponível

As operações de encriptação e desencriptação não são emitidas em todos os pedidos de dados. Em alternativa, o sistema do Firestore com compatibilidade com o MongoDB consulta o Cloud KMS a cada 5 minutos para verificar se a chave ainda está disponível e, em seguida, executa operações de encriptação e desencriptação se a chave estiver disponível.

Se o sistema detetar que a chave não está disponível, no prazo de 10 minutos, todas as chamadas subsequentes à base de dados compatível com o Firestore com o MongoDB, incluindo leituras, escritas e consultas, devolvem um erro INVALID_ARGUMENT com a seguinte mensagem:

The customer-managed encryption key required by the requested
resource is not accessible.

Se a base de dados tiver políticas de tempo de vida (TTL) e se algum dos tempos de expiração for excedido enquanto a chave estiver indisponível, a eliminação de dados por TTL é atrasada até a chave ser repriistinada. Se a base de dados tiver operações de execução prolongada em curso, estas serão afetadas da seguinte forma:

As chaves são consideradas indisponíveis em qualquer situação que impeça intencionalmente o acesso à chave por parte do Firestore com compatibilidade com o MongoDB. Isto inclui:

Se a chave for reposta, a operação de sondagem deteta que a chave está novamente disponível. O acesso é reativado, normalmente, em poucos minutos, mas pode demorar até algumas horas em casos raros. Tenha em atenção que algumas operações em chaves do Cloud KMS, como desativar ou destruir uma chave, podem demorar até 3 horas a propagar-se. O Firestore com compatibilidade com o MongoDB não deteta alterações até que estas entrem em vigor no Cloud KMS.

O restabelecimento de uma chave envolve o seguinte, consoante a situação:

  • Reativar uma versão de chave desativada.
  • Restaurar uma versão da chave destruída. Antes de ser destruída permanentemente, uma versão da chave é agendada para destruição. Só pode restaurar uma chave durante o período em que uma versão da chave está agendada para destruição. Não pode restaurar uma chave que já tenha sido destruída permanentemente.
  • Conceder novamente autorização ao agente do serviço do Firestore para aceder à chave.

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

Quando alterna a chave CMEK, o Firestore com compatibilidade com o MongoDB volta a encriptar a base de dados com a versão principal mais recente da chave CMEK. Durante o processo de reencriptação, mantenha a versão da chave anterior e a nova versão da chave disponíveis. Quando a reencriptação terminar, a desativação ou a eliminação das versões anteriores da chave CMEK não desativa o acesso à base de dados, uma vez que esta está encriptada com a nova versão da chave principal.

Também pode ver as versões das chaves que estão a ser usadas para proteger uma base de dados. Para mais informações, consulte o artigo Veja a chave em utilização.

Considerações sobre chaves externas

Quando usa uma chave do Cloud EKM, a Google não tem controlo sobre a disponibilidade da sua chave gerida externamente no sistema de parceiros de gestão de chaves externas.

Se uma chave gerida externamente não estiver disponível, o Firestore com compatibilidade com o MongoDB continua a suportar operações completas da base de dados através de uma versão em cache da chave durante um período máximo de uma hora.

Após uma hora, se o Firestore com compatibilidade com o MongoDB continuar sem conseguir estabelecer ligação ao Cloud KMS, o Firestore com compatibilidade com o MongoDB começa a colocar a base de dados offline como medida de proteção. As chamadas à base de dados falham com um erro INVALID_ARGUMENT que inclui detalhes adicionais.

Consulte a documentação do Cloud External Key Manager para ver mais considerações quando usar chaves externas.

Cópia de segurança e restauro

Uma cópia de segurança usa o mesmo mecanismo de encriptação que a base de dados a partir da qual a criou. Quando uma base de dados do Firestore com compatibilidade com o MongoDB protegida por CMEK cria uma cópia de segurança, encripta a cópia de segurança com a versão da chave principal usada no momento da criação da cópia de segurança.

O Firestore com compatibilidade com o MongoDB cria a primeira cópia de segurança de uma base de dados CMEK 24 horas após a ativação das programações de cópias de segurança.

Para mais informações sobre as cópias de segurança compatíveis com o Firestore e o MongoDB, consulte o artigo Fazer uma cópia de segurança e restaurar dados.

Uma base de dados restaurada a partir de uma cópia de segurança usa o mesmo mecanismo de encriptação que a cópia de segurança por predefinição. Quando restaura uma base de dados, pode especificar um tipo de encriptação diferente de uma das seguintes formas:

  • Restaurar para uma base de dados CMEK com uma chave especificada recentemente.
  • Restaurar para uma base de dados não CMEK que use a encriptação predefinida da Google.
  • Restaurar para uma base de dados que use a mesma encriptação que a cópia de segurança.

Para mais informações sobre como restaurar uma base de dados do Firestore com compatibilidade com o MongoDB a partir de uma cópia de segurança, consulte o artigo Restaure dados a partir de uma cópia de segurança da base de dados. Para mais informações sobre a restauração de uma base de dados do Firestore com compatibilidade com o MongoDB protegida por CMEK a partir de uma cópia de segurança, consulte o artigo Restaure uma base de dados protegida por CMEK.

Clonar

Por predefinição, uma base de dados clonada de outra base de dados usa o mesmo mecanismo de encriptação que a base de dados de origem. Quando clona uma base de dados, pode especificar um tipo de encriptação diferente de uma das seguintes formas:

  • Clonar para uma base de dados CMEK com uma chave especificada recentemente.
  • Clonar para uma base de dados não CMEK que use a encriptação predefinida da Google.
  • (Predefinição) Clonar para uma base de dados que usa a mesma encriptação que a base de dados de origem.

Para mais informações sobre a clonagem de uma base de dados do Firestore com compatibilidade com o MongoDB, consulte o artigo Clone uma base de dados. Para mais informações sobre a clonagem de uma base de dados do Firestore protegida por CMEK com compatibilidade com o MongoDB, consulte Clonar uma base de dados protegida por CMEK.

Acompanhamento de chaves

Pode usar a monitorização de chaves para ver os recursos, por exemplo, bases de dados do Firestore com compatibilidade com o MongoDB, que uma chave protege. Para mais informações sobre o acompanhamento de chaves, consulte o artigo Veja a utilização de chaves.

CMEK e disponibilidade da chave

Quando as chaves estão indisponíveis ou desativadas, tenha em atenção os seguintes comportamentos que podem ocorrer em bases de dados ativadas com CMEK:

  • Pode eliminar uma base de dados CMEK que tenha chaves indisponíveis.

  • Quando cria uma base de dados ativada com CMEK, as chaves desativadas não são apresentadas na lista de chaves disponíveis na Google Cloud consola. Se introduzir manualmente uma chave desativada, o processo de criação da base de dados falha com um erro 400.INVALID_ARGUMENT

Limitações

  • Não pode alterar uma chave para uma base de dados protegida por CMEK. Pode rodar, ativar e desativar chaves.

  • Não pode ativar a CMEK em bases de dados existentes. Só pode ativar as CMEK em novas bases de dados e tem de as ativar quando cria a base de dados. Para migrar dados numa base de dados existente não protegida por CMEK para uma base de dados protegida por CMEK, exporte os dados e, em seguida, importe-os para uma nova base de dados protegida por CMEK. Também pode restaurar ou clonar dados de uma base de dados não CMEK para uma base de dados CMEK.

  • O Firestore suporta um número limitado de bases de dados protegidas por CMEK.

O que se segue?