Chaves de encriptação fornecidas pelos clientes

Este conteúdo foi atualizado pela última vez em fevereiro de 2025 e representa o status quo no momento em que foi escrito. As políticas e os sistemas de segurança da Google podem mudar no futuro, à medida que melhoramos continuamente a proteção dos nossos clientes.

As chaves de encriptação fornecidas pelos clientes (CSEK) são uma funcionalidade do Cloud Storage e do Compute Engine. Se fornecer as suas próprias chaves de encriptação, a Google usa a sua chave para proteger as chaves geradas pela Google que encriptam e desencriptam os seus dados.

Este documento descreve como funcionam as CSEKs e como são protegidas no Google Cloud.

Como funcionam as CSEKs com o Cloud Storage

Quando usa CSEKs no Cloud Storage, as seguintes chaves fazem parte do processo de união:

  • CSEK não processada: fornece uma CSEK não processada como parte de uma chamada API. A chave CSEK não processada é transmitida do front-end da Google (GFE) para a memória do sistema de armazenamento. Esta chave é a chave de encriptação de chaves (KEK) no Cloud Storage para os seus dados.
  • Chaves de blocos envolvidas: a CSEK não processada é usada para envolver as chaves de blocos envolvidas.
  • Chaves de blocos não processadas: as chaves de blocos envolvidas envolvem as chaves de blocos não processadas na memória. As chaves de blocos não processados são usadas para encriptar os blocos de dados armazenados nos sistemas de armazenamento. Estas chaves são usadas como as chaves de encriptação de dados (DEKs) no Cloud Storage para os seus dados.

O diagrama seguinte mostra o processo de envolvimento de chaves principal.

CSEK do Cloud Storage.

A tabela seguinte descreve as chaves.

Chaves Armazenado em Finalidade Acessível até

CSEK não processado

Memória do sistema de armazenamento

Protege as chaves de blocos envolvidas.

A operação pedida pelo cliente (por exemplo, insertObject ou getObject) está concluída.

Chaves de fragmentos envolvidas

Dispositivos de armazenamento

Proteger chaves de blocos não processados armazenadas em repouso.

O objeto de armazenamento é eliminado.

Chaves de fragmentos não processados

Memória dos dispositivos de armazenamento

Proteger os dados que lê ou escreve no disco.

A operação pedida pelo cliente está concluída

Como funcionam as CSEKs com o Compute Engine

Quando usa CSEKs no Compute Engine, as seguintes chaves fazem parte do processo de união:

  • CSEK não processado: fornece um CSEK não processado ou uma chave com wrapper RSA como parte de uma chamada API. A CSEK é transmitida do GFE para a interface do gestor de clusters interno. O gestor de clusters é um conjunto de processos executados com uma identidade de gestor de clusters na infraestrutura de produção da Google que implementa a lógica para gerir recursos do Compute Engine, como discos e instâncias de VMs.
  • Chave de união assimétrica pertencente à Google: se for fornecida uma chave unida com RSA como a CSEK, a chave é desunida com uma chave de união assimétrica pertencente à Google.
  • Chave derivada de CSEK: a CSEK não processada é combinada com um nonce criptográfico por disco persistente para gerar uma chave derivada de CSEK. Esta chave é usada como a KEK no Compute Engine para os seus dados. No front-end do gestor de clusters, tanto a CSEK como a chave derivada da CSEK são mantidas apenas na memória do gestor de clusters. A chave derivada de CSEK é usada na memória do gestor de clusters para desembrulhar as chaves de disco envolvidas que estão armazenadas nos metadados da instância do gestor de clusters e nos metadados do gestor de instâncias, quando o reinício automático está ativado (estes metadados não são os mesmos que os metadados da instância).

  • Chaves de disco não processadas: a chave derivada da CSEK é usada para encapsular chaves de disco não processadas quando cria um disco e para desencapsular chaves de disco não processadas quando acede a um disco. Ocorrem os seguintes eventos:

    • Se o reinício automático estiver ativado, as chaves de disco envolvidas são armazenadas persistentemente pelo gestor de clusters durante a vida útil da VM para que a VM possa ser reiniciada em caso de falha. As chaves de disco envolvidas são envolvidas com uma chave de envolvimento simétrica pertencente à Google. As autorizações da chave de encapsulamento permitem que seja usada apenas pelo Compute Engine. Se o reinício automático estiver desativado, as chaves de disco envolvidas são eliminadas através do processo de eliminação descrito em Eliminação de dados no Google Cloud.
    • Se a migração em direto estiver ativada, a chave do disco não processada é transmitida da memória da instância da VM antiga para a memória da instância da VM nova sem o envolvimento do gestor de instâncias ou do gestor de clusters na cópia da chave.

As chaves de disco não processadas são transmitidas para a memória do gestor de clusters (CM), do gestor de instâncias e da VM. Estas chaves são usadas como DEKs no Compute Engine para os seus dados.

O diagrama seguinte mostra como funciona a união de chaves.

CSEK do Compute Engine.

Chaves Retidos por Finalidade Acessível até

CSEK não processado

Interface do gestor de clusters

Derive a chave derivada da CSEK adicionando um nonce criptográfico.

A operação pedida pelo cliente (por exemplo, instances.insert, instances.attachDisk) está concluída.

CSEK envolvida em chave pública

(quando o envolvimento de chaves RSA é usado)

Interface de utilizador do Gestor de clusters

Derive a chave derivada da CSEK desembrulhando-a primeiro com uma chave assimétrica pertencente à Google.

A operação pedida pelo cliente está concluída.

Chave assimétrica pertencente à Google

(quando o envolvimento de chaves RSA é usado)

Repositório de chaves

Desembale a chave envolvida em RSA.

Indefinidamente.

Chave derivada de CSEK

Interface do gestor de clusters

Envolve as chaves do disco.

A operação de envolvimento ou desembrulho de chaves está concluída.

Chaves de disco envolvidas pela Google

(quando o reinício automático é usado)

Interface do gestor de clusters

Proteger chaves de disco armazenadas em repouso para discos anexados a instâncias em execução.

Reiniciar a instância nos casos em que a memória da VM é perdida (por exemplo, quando um anfitrião falha)

A VM está parada ou eliminada.

Chaves de disco não processadas

Memória do monitor de máquinas virtuais (VMM), memória do gestor de clusters

Ler ou escrever dados no disco, migrar a VM em direto e fazer atualizações no local

A VM está parada ou eliminada

Chave derivada de CSEK envolvida pela Google

Base de dados do gestor de clusters

Reinicie a operação em caso de falha

A operação pedida pelo cliente está concluída

Como as CSEKs são protegidas

Esta secção fornece informações sobre como as CSEKs são protegidas no disco, à medida que se movem na infraestrutura Google Cloud e na memória.

As CSEKs não processadas, as chaves derivadas de CSEKs e as chaves de disco não processadas nunca são armazenadas no disco sem encriptação. As chaves de disco não processadas são armazenadas envolvidas com chaves derivadas de CSEK e com chaves da Google quando o reinício automático é usado. A Google não armazena permanentemente as suas chaves nos respetivos servidores.

Cada serviço usa funcionalidades de gestão de acesso fornecidas pela infraestrutura para especificar exatamente com que outros serviços pode comunicar. O serviço é configurado com a lista de autorizações das identidades de contas de serviço permitidas e, em seguida, esta restrição de acesso é aplicada automaticamente pela infraestrutura do Google Cloud. Para mais informações, consulte o artigo Identidade, integridade e isolamento do serviço.

A infraestrutura também oferece privacidade e integridade criptográficas para os dados de RPC na rede. Os serviços podem configurar o nível de proteção criptográfica que querem para cada RPC de infraestrutura, e estes estão ativados para CSEKs. Para mais informações, consulte o artigo Encriptação da comunicação entre cargas de trabalho.

O material da chave reside na memória de vários sistemas, incluindo a memória do gestor de clusters e a memória do VMM. O acesso à memória destes sistemas é feito por exceção (por exemplo, como parte de um incidente) e gerido por listas de controlo de acesso. Estes sistemas têm as capturas de memória desativadas ou procuram automaticamente material de chaves nas capturas de memória. Para informações sobre as proteções aplicadas a estas tarefas, consulte o artigo Como a Google protege os respetivos serviços de produção.

O que se segue?