Por padrão, todos os dados em repouso no Cloud Firestore com compatibilidade com MongoDB são criptografados usando a criptografia padrão do Google. O Cloud Firestore com compatibilidade com o MongoDB executa e gerencia essa criptografia automaticamente para você sem que você precise fazer nada.
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, na sigla em inglês) para o Cloud Firestore com compatibilidade com o MongoDB. Em vez de o Google gerenciar as chaves de criptografia que protegem seus dados, seu banco de dados do Cloud Firestore com compatibilidade com MongoDB é protegido usando uma chave que você controla e gerencia no Cloud Key Management Service (Cloud KMS).
Nesta página, descrevemos a CMEK para o Cloud Firestore com compatibilidade com o MongoDB. Para mais informações sobre CMEK em geral, como quando e por que ativar, consulte a seguinte documentação do Cloud KMS:
- Chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês)
- Práticas recomendadas para usar CMEKs
Para instruções sobre como executar tarefas relacionadas à CMEK com o Cloud Firestore com compatibilidade com o MongoDB, consulte 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 do Cloud Firestore com compatibilidade com o MongoDB.
- Performance: o CMEK não afeta o SLA Cloud 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 poderão ser visualizadas 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 requisitos de conformidade de criptografia para bancos de dados compatíveis com o Cloud Firestore e o MongoDB 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 Preços do Cloud KMS.
Você recebe cobranças pelos custos da operação quando o Cloud Firestore com compatibilidade com o MongoDB pede para que a chave do Cloud KMS execute uma operação de criptografia ou descriptografia. A operação de criptografia ou 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 pelo Cloud Firestore com compatibilidade com o MongoDB. 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 adicionais do Cloud Firestore com compatibilidade com o MongoDB para usar o banco de dados protegido por CMEK, e os preços do Cloud Firestore com compatibilidade com o MongoDB continuam 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 do Cloud Firestore com compatibilidade com MongoDB, 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 do Cloud 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, 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 do Cloud Firestore com compatibilidade com o MongoDB, incluindo leituras, gravações e consultas, vão retornar um erro INVALID_ARGUMENT
com a seguinte
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 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 com compatibilidade com o MongoDB acesse a chave. Incluindo:
- Desativar ou destruir a versão da chave em uso. Tenha cuidado ao destruir uma versão da chave, porque isso pode causar perda irrecuperável de dados.
- Remoção da permissão para acessar a chave da conta de serviço do Cloud Firestore com compatibilidade com o MongoDB.
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 com compatibilidade com o MongoDB 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 com compatibilidade com MongoDB 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 anterior e a nova da chave disponíveis. Quando a nova criptografia for concluída, a desativação ou a exclusão das versões anteriores 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 com compatibilidade com o MongoDB continuará oferecendo 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 Cloud Firestore com compatibilidade com o MongoDB ainda não conseguir se conectar ao
Cloud KMS, o Cloud Firestore com compatibilidade com o MongoDB 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 INVALID_ARGUMENT
que inclui mais detalhes.
Consulte a documentação do gerenciador de chaves externas do Cloud para mais considerações ao usar 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 do Cloud Firestore com compatibilidade com o MongoDB 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 com compatibilidade com o MongoDB 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 do Cloud Firestore com compatibilidade com o MongoDB, 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 do Cloud Firestore com compatibilidade com o MongoDB de um backup, consulte Restaurar dados de um backup de banco de dados. Para mais informações sobre como restaurar um banco de dados do Cloud Firestore com compatibilidade com MongoDB protegido por CMEK de um backup, consulte Restaurar um banco de dados protegido por CMEK.
Clonar
Por padrão, um banco de dados clonado de outro banco de dados usa o mesmo mecanismo de criptografia do banco de dados de origem. Ao clonar um banco de dados, é possível especificar um tipo de criptografia diferente de uma das seguintes maneiras:
- Clonar para um banco de dados CMEK com uma chave recém-especificada.
- Clonar para um banco de dados sem CMEK que usa a criptografia padrão do Google.
- (Padrão) Clonar para um banco de dados que usa a mesma criptografia do banco de dados de origem.
Para mais informações sobre como clonar um banco de dados do Cloud Firestore com compatibilidade com o MongoDB, consulte Clonar um banco de dados. Para mais informações sobre como clonar um banco de dados do Cloud Firestore com compatibilidade com MongoDB protegido por CMEK, consulte Clonar 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 do Cloud Firestore com compatibilidade com o MongoDB 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 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
INVALID_ARGUMENT
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.
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 ou clonar 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.