Visão geral das chaves de criptografia gerenciadas pelo cliente (CMEK)

Por padrão, todos os dados em repouso no Google Cloud, incluindo aqueles em Spanner, é protegido com o uso de Criptografia padrão do Google. O Google Cloud processa e gerencia essa criptografia padrão para você sem que você precise fazer nada.

Se você tem requisitos regulatórios ou de compliance específicos relacionados às chaves que protegem seus dados, é possível usar chaves de criptografia gerenciadas pelo cliente (CMEK) no Spanner. O Google não precisa ser o proprietário e responsável chaves que protegem seus dados, o banco de dados do Spanner é protegido por uma chave que você controlar e gerenciar no Cloud Key Management Service (KMS). Pode ser uma chave simétrica, uma chave do Cloud HSM ou uma chave do gerenciador de chaves externas do Cloud.

As CMEKs não são compatíveis com configurações personalizadas de instâncias.

Nesta página, descrevemos a CMEK para o Spanner. Para obter mais informações sobre CMEK em geral, como quando e por que ativar, consulte a documentação do Cloud KMS.

Recursos

  • Controle de acesso aos dados:os administradores podem alternar, gerenciar o acesso e desativar ou destruir a chave usada para proteger dados em repouso no Spanner.
  • Auditoria: se você ative a geração de registros de auditoria para a API Cloud KMS no projeto, todas as ações na chave, incluindo aquelas realizadas pelo Spanner, são registradas e ficam visíveis em Cloud Logging: As chaves do Cloud EKM são compatíveis com a justificação de acesso de chaves, que adiciona um campo de justificativa a todas as solicitações de chaves. Os parceiros de gerenciamento de chaves externos permitem aprovar ou negar automaticamente essas solicitações com base na justificativa.
  • Desempenho: não há alterações no desempenho do Spanner ou no contrato de nível de serviço.

Preços

O Spanner fatura os bancos de dados ativados para CMEK como qualquer outro banco de dados. não há custos adicionais do Spanner. Para mais informações, consulte Preços do Spanner.

Você é cobrado pelo Cloud KMS pelo custo da chave e de qualquer criptográficas com essa chave (sempre que o Spanner usar a chave para criptografia/descriptografia). Esperamos que esses custos sejam mínimos com base na número esperado de operações criptográficas geradas pelo Spanner. Para mais informações, consulte preço do Cloud KMS.

O que é protegido com a CMEK

Em um banco de dados habilitado para CMEK, o Spanner usa sua chave do Cloud KMS para proteger dados em repouso. Isso inclui dados em um banco de dados armazenado em disco ou flash.

Veja a seguir algumas exceções. Os seguintes tipos de dados são protegidos pela criptografia padrão em repouso do Google e não pela chave CMEK:

  • Um subconjunto de chaves de linha que marcam os limites do intervalo
  • Como depurar dados, incluindo dumps de núcleo e registros operacionais
  • Dados em trânsito ou memória
  • Metadados do banco de dados

No Spanner, há três camadas de criptografia. Os dados em repouso são divididos em grupos de subarquivos para serem armazenados, e cada um deles é criptografado no nível de armazenamento com uma chave individual. A chave utilizada para criptografar os dados em um bloco é chamada de chave de criptografia de dados (DEK, na sigla em inglês). Devido ao grande volume de chaves no Google e à necessidade de baixa latência e alta disponibilidade, essas chaves são armazenadas próximas aos dados criptografados. As chaves de criptografia de dados (DEK, na sigla em inglês) são criptografadas ou encapsuladas por uma chave de criptografia de chaves (KEK, na sigla em inglês). Por fim, cada KEK é criptografada com sua chave de criptografia gerenciada pelo cliente.

Quando você rotacionar a chave CMEK, apenas recriptografar o Spanner. as KEKs intermediárias com a versão primária mais recente da chave CMEK. 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. É possível também visualizar as versões de chave que estão sendo usadas para proteger um banco de dados.

Com a CMEK

Diagrama ilustrando a criptografia com uma chave gerenciada pelo cliente

Sem CMEK

Diagrama ilustrando a criptografia com uma chave de propriedade e gerenciada do Google

Ativar a CMEK

Para usar a CMEK em bancos de dados do Spanner, você precisa criar um banco de dados e especificar a chave do Cloud KMS no momento criação de banco de dados.

O Spanner pode acessar a chave em seu nome depois que você concede o Criptografador/Descriptografador de CryptoKey do Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) para uma conta de serviço gerenciada pelo Google Conta de serviço do Spanner.

Para instruções detalhadas, consulte Como usar CMEK.

as APIs de acesso a dados do Spanner; como aqueles usados para gerenciar sessões e executar transações em dados, são exatamente os mesmos para as chaves gerenciadas pelo cliente e pelo Google e as gerenciadas pelo Google. Os aplicativos não precisam especificar chaves nem configurações de criptografia ao ler ou gravar dados. Toda a criptografia é processada pelo serviço.

Gerenciar chaves

As operações de gerenciamento de chaves são executadas com o Cloud KMS. O Spanner não consegue detectar nem agir em relação a alterações importantes até que elas sejam propagadas pelo Cloud KMS. Algumas operações, como a desativação ou a destruição de uma chave, podem levar até três horas para serem propagadas. As alterações nas permissões geralmente são propagadas muito mais rápido.

Depois que o banco de dados é criado, o Spanner chama o Cloud KMS sobre a cada cinco minutos para verificar se a chave ainda é válida.

Se o Spanner detectar que sua chave do Cloud KMS foi desativada ou destruídos, começa uma operação para tornar o banco de dados inacessível imediatamente. Qualquer chamada subsequente ao banco de dados, incluindo sessões, leituras e gravações, retornará um erro FAILED_PRECONDITION: KMS key required by the Spanner resource is not accessible..

Se as chamadas do Spanner ao Cloud KMS detectarem que um servidor chave desativada for reativada, o Cloud KMS restaura o acesso ao no banco de dados do Spanner automaticamente.

Como um status de chave indisponível é tratado

Em cenários raros, como quando o Cloud KMS está indisponível, o Spanner pode não conseguir recuperar o status da sua chave do Cloud KMS.

Se o banco de dados do Spanner estiver protegido por uma chave ativada no momento em que o Spanner não consegue se comunicar pela primeira vez Cloud KMS, o Spanner continua oferecendo suporte a bancos de dados completos as operações com base no melhor esforço por um período de até 1 hora, para minimizar o o impacto desse incidente na carga de trabalho.

Depois de uma hora, se o Spanner ainda não conseguir se conectar com no Cloud KMS, o Spanner começa a coletar off-line como uma medida de proteção. Os dados no banco de dados do Spanner permanece inacessível até que o banco de dados possa ser reconectado ao Cloud KMS e o Cloud KMS responde que a chave está ativa.

Por outro lado, se o banco de dados do Spanner estiver protegido por uma chave desativada no momento em que o Spanner não consegue se comunicar pela primeira vez. com o Cloud KMS, o banco de dados permanece inacessível até que seja reconecte-se ao Cloud KMS e reative sua 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 Spanner continuará oferecer suporte a operações completas do banco de dados usando uma versão armazenada em cache da chave, por de até uma hora.

Depois de uma hora, se o Spanner ainda estiver não consegue se conectar com o Cloud KMS, o Spanner começa a off-line como medida de proteção. As chamadas para o banco de dados falharão com um erro FAILED_PRECONDITION: External key error: Could not find a key resource at the key URI.

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

Backup e restauração

Os backups do Spanner, assim como bancos de dados, podem ser protegidas por CMEK ou chaves de propriedade do Google e gerenciadas pelo Google. Por padrão, um backup usa a mesma configuração de criptografia do banco de dados, mas é possível substituir esse comportamento especificando uma configuração de criptografia diferente ao criar o backup. Se o backup estiver ativado para a CMEK, ele será criptografado usando a versão primária da chave KMS no momento da criação do backup. Depois que o backup é criado, a chave e a versão de chave do backup não podem ser modificadas, mesmo que a chave KMS seja girada Para mais informações, consulte Como fazer backup de um banco de dados.

Quando você restaura um banco de dados de um backup, por padrão, o banco de dados restaurado usa a mesma configuração de criptografia do backup. É possível substituir esse comportamento especificando uma configuração de criptografia diferente ao restaurar o banco de dados. Para restaurar um backup ativado para CMEK, a chave e a versão de chave usadas para criptografar o backup precisam estar disponíveis. Para mais informações, consulte Como restaurar de um backup.

Geração de registros

É possível auditar as solicitações que o Spanner envia para o Cloud KMS em em seu nome no Cloud Logging, se você tiver a geração de registros de auditoria foi ativada para a API Cloud KMS no projeto. Essas entradas de registro do Cloud KMS são visíveis no Cloud Logging.

Exigir ou limitar CMEK na sua organização

É possível definir políticas para toda a organização relacionadas ao uso da CMEK proteção em vários produtos do Google Cloud, incluindo no Spanner. Com essas políticas, você pode:

  • Exigir o novo Spanner bancos de dados criados pela sua organização usam a proteção CMEK.

  • Limite quais chaves do Cloud KMS da sua organização são disponíveis para proteção de CMEKs.

Para mais informações, consulte Políticas da organização de CMEK.