Sobre a criptografia de disco


Por padrão, o Compute Engine criptografa o conteúdo do cliente em repouso. O Compute Engine processa e gerencia essa criptografia automaticamente para você. Essa opção é chamada de criptografia gerenciada pelo Google.

No entanto, se você tiver requisitos específicos relacionados à conformidade ou à região administrativa do material criptográfico, personalize a criptografia que o Compute Engine usará nos seus recursos.

É possível personalizar a criptografia fornecendo chaves de criptografia de chaves. Essas chaves não criptografam diretamente seus dados, mas sim as chaves geradas pelo Google que o Compute Engine usa para criptografá-los.

Você tem duas opções para fornecer chaves de criptografia de chaves:

  • Recomendado. Use o Cloud Key Management Service (Cloud KMS) no Compute Engine para criar e gerenciar chaves de criptografia de chaves.

    As chaves gerenciadas pelo Cloud Key Management Service são conhecidas como chaves de criptografia gerenciadas pelo cliente (CMEKs, na sigla em inglês). Depois de criar uma chave, é possível usá-la como a chave de criptografia de chaves de um disco.

    Na maioria dos casos, depois de criar um disco criptografado por CMEKs, não é necessário especificar a chave ao trabalhar com ele, porque o Cloud Key Management Service sabe qual chave foi usada. A exceção disso é ao criar um disco a partir de um Instant Snapshot criptografado por CMEK.

  • É possível gerenciar suas próprias chaves de criptografia de chaves fora do Compute Engine e fornecê-las sempre que criar ou gerenciar um disco. Essa opção é conhecida como Chaves de criptografia fornecidas pelo cliente (CSEKs, na sigla em inglês). Ao gerenciar recursos criptografados por CSEKs, é preciso sempre especificar a chave usada ao criptografar o recurso.

Para mais informações, consulte Chaves de criptografia gerenciadas pelo cliente e Chaves de criptografia fornecidas pelo cliente.

Tipos de disco compatíveis

Nesta seção, listamos os tipos de criptografia compatíveis com discos e outras opções de armazenamento oferecidas pelo Compute Engine.

  • Os volumes do Persistent Disk são compatíveis com a criptografia padrão do Google, CMEKs e CSEKs.

  • O Google Cloud Hyperdisk é compatível com CMEKs e com a criptografia padrão do Google. Não é possível usar CSEKs para criptografar Hyperdisks.

  • Os discos SSD locais são compatíveis apenas com a criptografia padrão do Google. Não é possível usar CSEKs ou CMEKs para criptografar discos SSD locais.

  • Clones de discos e imagens de máquina são compatíveis com a criptografia padrão do Google, CMEKs e CSEKs.

  • Snapshots padrão e Instant Snapshots são compatíveis com a criptografia padrão do Google, CMEKs e CSEKs.

Criptografar discos com chaves de criptografia gerenciadas pelo cliente

Para mais informações sobre como usar chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar discos e outros recursos do Compute Engine, consulte Proteger recursos usando chaves do Cloud KMS.

Criptografar discos com chaves fornecidas pelo cliente

Para saber como usar Chaves de criptografia fornecidas pelo cliente (CSEK) para criptografar discos e outros recursos do Compute Engine, consulte Como criptografar discos com Chaves de criptografia fornecidas pelo cliente.

Ver informações sobre a criptografia de um disco

Os discos no Compute Engine são criptografados com chaves de criptografia gerenciadas pelo Google, gerenciadas pelo cliente ou fornecidas pelo cliente. A criptografia gerenciada pelo Google é o padrão.

Para ver o tipo de criptografia de um disco, use a gcloud CLI, o console do Google Cloud ou a API Compute Engine.

Console

  1. No console do Google Cloud, acesse a página Discos.

    Acessar "Discos"

  2. Na coluna Nome, clique no nome do disco.

  3. Na tabela Properties, a linha com o rótulo Criptografia indica o tipo de criptografia: Gerenciada pelo Google e Gerenciada pelo cliente ou Fornecida pelo cliente.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Use o comando gcloud compute disks describe:

        gcloud compute disks describe DISK_NAME \
          --zone=ZONE \
          --format="json(diskEncryptionKey)"
      

    Substitua:

    • PROJECT_ID: o ID do projeto.
    • ZONE: zona em que o disco está.
    • DISK_NAME: o nome do disco.

      Resposta ao comando

      Se a saída for null, o disco usará a criptografia gerenciada pelo Google, que é o padrão.

      Caso contrário, a saída será um objeto JSON.

      Se o objeto JSON tiver um campo chamado diskEncryptionKey, o disco será criptografado. O objeto diskEncryptionKey contém informações indicando se o disco é criptografado por CMEKs ou CSEKs:

      • Se a property diskEncryptionKey.kmsKeyName estiver presente, o disco será criptografado por CMEKs. A property kmsKeyName indica o nome da chave específica usada para criptografar o disco:
        {
          "diskEncryptionKey": {
            "kmsKeyName": "projects/my-proj/.."
          }
        }
        
      • Se a property diskEncryptionKey.sha256 estiver presente, o disco será criptografado por CSEKs. A property sha256 é o hash SHA-256 da chave de criptografia fornecida pelo cliente que protege o disco.
          {
            "diskEncryptionKey": {
              "sha256": "abcdefghijk134560459345dssfd"
            }
          }
            

API

Faça uma solicitação POST ao método compute.disks.get.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME

Substitua:

  • PROJECT_ID: o ID do projeto.
  • ZONE: zona em que o disco está.
  • DISK_NAME: o nome do disco.

Resposta da solicitação

Se a resposta for null, o disco usará a criptografia gerenciada pelo Google, que é o padrão.

Caso contrário, a resposta será um objeto JSON.

Se o objeto JSON tiver um campo chamado diskEncryptionKey, o disco será criptografado. O objeto diskEncryptionKey contém informações indicando se o disco é criptografado por CMEKs ou CSEKs:

  • Se a property diskEncryptionKey.kmsKeyName estiver presente, o disco será criptografado por CMEKs. A property kmsKeyName indica o nome da chave específica usada para criptografar o disco:
    {
      "diskEncryptionKey": {
        "kmsKeyName": "projects/my-proj/.."
      }
    }
    
  • Se a property diskEncryptionKey.sha256 estiver presente, o disco será criptografado por CSEKs. A property sha256 é o hash SHA-256 da chave de criptografia fornecida pelo cliente que protege o disco.
      {
        "diskEncryptionKey": {
          "sha256": "abcdefghijk134560459345dssfd"
        }
      }
        

Quando o disco usa criptografia por CMEKs, é possível encontrar informações detalhadas sobre a chave, o keyring e o local seguindo as etapas em Ver chaves por projeto.

Se o disco usar criptografia por CSEKs, entre em contato com o administrador da organização para mais detalhes sobre a chave.

A seguir