Por padrão, todos os dados em repouso no Firestore no modo Datastore são criptografados usando a criptografia padrão do Google. O modo de repositório de dados processa e gerencia essa criptografia automaticamente para você.
Se você tiver requisitos regulatórios ou de compliance específicos relacionados às chaves que protegem seus dados, use as chaves de criptografia gerenciadas pelo cliente (CMEKs) para o modo de repositório de dados. Em vez de o Google gerenciar as chaves de criptografia que protegem seus dados, o banco de dados do modo Datastore é protegido usando uma chave que você controla e gerencia no Cloud Key Management Service (Cloud KMS).
Nesta página, descrevemos a CMEK para o modo Datastore. Para mais informações sobre CMEK em geral, incluindo quando e por que ativar, consulte a 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 realizar tarefas relacionadas a CMEK com o modo Datastore, consulte Usar CMEK.
Recursos
- Controle de dados: a CMEK permite que você gerencie a chave KMS. É possível girar, desativar e destruir a chave usada para criptografar os dados em repouso no banco de dados do modo Datastore.
- Desempenho: a CMEK não afeta o SLA do 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 no Cloud Logging.
- Restrições da política da organização: você pode usar Restrições da política da organização de CMEK para especificar requisitos de conformidade de criptografia para 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. Para mais informações, consulte Preços do Cloud KMS.
Você será cobrado pelos custos de operação quando o modo Datastore solicitar Chave do Cloud KMS para executar uma operação de criptografia ou descriptografia. A operação de criptografia/descriptografia pela chave gerenciada pelo cliente ocorre a cada cinco minutos e não é sincronizado com as solicitações do banco de dados. Os custos geralmente são baixos, dado o número esperado de operações criptográficas geradas Modo Datastore. Os custos dos Registros de auditoria do Cloud são uma despesa adicional, mas deverá ser geralmente baixa, dado o número esperado de as operações.
Não há custos adicionais do modo Datastore para usar o banco de dados protegido por CMEK, e os preços do modo Datastore continuam valendo.
Se você revogar a chave de um banco de dados, o custo de armazenamento será cobrado com base do último dia em que a chave esteve disponível. Você continuará a receber custos de armazenamento nesse tamanho de banco de dados até que o banco de dados seja excluído ou a chave ficará disponível novamente.
O que é protegido com a CMEK
Quando você cria um banco de dados protegido por CMEK no modo de armazenamento de dados, a chave do Cloud KMS é usada para proteger os dados em repouso. Isso inclui dados armazenados em um disco ou pen drive, incluindo índices e backups. Algumas exceções se aplicam. Os seguintes tipos de dados são criptografados com o 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 KMS a cada cinco minutos para verificar se ainda está disponível e executa operações de criptografia e descriptografia se está disponível.
Se o sistema detectar que a chave está indisponível, dentro de 10
minutos todas as chamadas subsequentes para o banco de dados do Firestore,
incluindo leituras, gravações e consultas, retorna 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 o qualquer prazo de validade for excedido enquanto a chave estiver indisponível, exclusão de dados por TTL será adiado 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 se a chave for restabelecida.
As chaves são consideradas indisponíveis em qualquer situação que proíba intencionalmente o Firestore não pode acessar a chave. Isso inclui:
- Desativar ou destruir a versão de chave em uso. Tenha cuidado ao destruir uma versão da chave, porque isso pode causar perda irrecuperável de dados.
- Removendo permissão para acessar a chave da conta de serviço do Firestore.
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 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 Firestore não detecta nenhuma mudança até que elas entrem em vigor no Cloud KMS.
A reativaçã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 permanentemente destruída, 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 do Firestore para acessar a chave.
Considerações sobre a rotação de chaves
Quando você alterna a chave CMEK, o modo Datastore recriptografa 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.
Também é possível conferir as versões de chave que estão sendo usadas para proteger um banco de dados. Para mais informações, consulte Visualizar a chave em usar.
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 modo Datastore continuará oferecendo suporte a operações completas de banco de dados usando uma versão em cache da chave, por até uma hora.
Após uma hora, se o modo Datastore ainda não conseguir se conectar com
Cloud KMS, o modo Datastore começa a deixar o banco de dados off-line como
medida de proteção. As chamadas para o banco de dados falharão com um FAILED_PRECONDITION
que inclui detalhes adicionais.
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 do qual você que o criou. Quando um banco de dados no modo do Datastore 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 modo Datastore cria o primeiro backup de um banco de dados CMEK após 24 horas após a ativação das programações de backup.
Para mais informações sobre backups do modo Datastore, consulte 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 em um banco de dados não CMEK que use a criptografia padrão do Google.
- Restaurar em um banco de dados que use a mesma criptografia do backup.
Para mais informações sobre como restaurar um banco de dados do modo Datastore 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 modo do Datastore 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 do modo Datastore, 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 estiverem indisponíveis ou desativadas, esteja ciente dos seguintes comportamentos que podem ocorrer em bancos de dados com CMEK ativada:
- É possível alterar as configurações de recuperação pontual (PITR, na sigla em inglês) do modo Datastore em um banco de dados ativado para CMEK, mesmo que a chave não esteja disponível, porque as configurações da PITR são metadados do banco de dados que não são criptografados pela 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 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 nos 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. Você pode restaurar dados de um banco de dados não CMEK para um banco de dados CMEK
- O Firestore oferece suporte a um número limitado de bancos de dados protegidos pelo CMEK.