Criptografar recursos da estação de trabalho usando CMEK

Por padrão, o Cloud Workstations usa uma Chave de propriedade e gerenciada pelo Google para criptografar recursos da estação de trabalho, como VMs e discos permanentes, ao os dados estão em repouso. Se você tiver requisitos regulatórios ou de compliance específicos relacionados às chaves que protegem seus dados, use chaves de criptografia gerenciadas pelo cliente (CMEK) com o Cloud Key Management Service (Cloud KMS).

Para mais informações sobre a CMEK em geral, incluindo quando e por que ativá-la, consulte Documentação do Cloud KMS.

Antes de começar

Criar seus projetos

  1. No console do Google Cloud, na página do seletor de projetos, selecione ou crie dois Projetos do Google Cloud:

    • Um projeto de chave contém seus recursos do Cloud KMS, incluindo: um keyring e uma chave de criptografia simétrica.

    • Um projeto de estações de trabalho contém estações de trabalho criptografadas com uma chave CMEK.

    É possível usar o mesmo projeto para o projeto principal e o projeto de estações de trabalho, mas, como prática recomendada, recomendamos usar dois projetos para separação de tarefas.

  2. Confira se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.

  3. Ativar as APIs necessárias em cada projeto.

  4. Instale e inicialize a classe CLI gcloud. Para inicialize a CLI gcloud, execute o seguinte comando:

    gcloud init
    

Funções exigidas

Embora seja possível conceder papéis de administrador do Cloud KMS e do Cloud Workstations à mesma pessoa, recomendamos que você siga o princípio do menor privilégio ao atribuir papéis. Como melhor prática, conceda essas funções a duas pessoas separadas e peça que elas se coordenem, em vez de pedir para o Cloud KMS ser seu Administrador do Cloud Workstations. Para mais informações, consulte Práticas recomendadas de segurança e Usar o IAM com segurança.

Para receber as permissões necessárias para configurar a CMEK, peça ao administrador para conceder a você os seguintes papéis do IAM:

  • Se você for o administrador do Cloud KMS, peça ao administrador para conceder a você o papel a seguir para que seja possível criar e gerenciar recursos do Cloud KMS: Administrador do Cloud KMS (roles/cloudkms.admin) no seu projeto principal.
  • Se você for o Administrador do Cloud Workstations, peça ao administrador para conceder a você o seguinte papel para que você possa criar e atualizar estações de trabalho: Administrador do Cloud Workstations (roles/workstations.admin) no seu projeto de estações de trabalho.

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Criar keyring e chave de criptografia

No projeto de chave, crie uma chave e salve o ID de recurso dela:

  1. Crie ou selecione um keyring.

    É possível compartilhar chaveiros entre serviços, mas, como prática recomendada, recomendamos que você use uma chave diferente para cada recurso protegido. Consulte separação de deveres.

  2. Crie uma chave de criptografia simétrica.

    Crie a chave CMEK e a configuração da estação de trabalho no mesma região.

  3. Acesse o ID do recurso da chave e salve-o para uma etapa posterior.

Verificar as configurações da estação de trabalho

Se você não tiver configurações de estação de trabalho disponíveis no console do Google Cloud, peça ao administrador do Cloud Workstations para criar uma configuração de estação de trabalho para você ou verifique se você tem uma função do IAM de administrador do Cloud Workstations no projeto para criar esses recursos por conta própria.

Usar chaves de criptografia gerenciadas pelo cliente

Para usar uma CMEK em uma configuração de estação de trabalho, ative-a no Console do Google Cloud ou CLI gcloud.

Console

Conceda à conta de serviço do Compute Engine e ao agente de serviço do Compute Engine o Cloud KMS Papel criptografador/descriptografador do CryptoKey e o papel Leitor do Cloud KMS:

  1. No console do Google Cloud, acesse a página Gerenciamento de chaves.

    Acessar "Gerenciamento de chaves"

  2. Clique no nome do keyring que contém a chave.

  3. Marque a caixa de seleção da chave que você quer usar.

    A guia Permissões aparece como um painel.

  4. Na caixa de diálogo Adicionar membros, especifique o endereço de e-mail da conta de serviço do Compute Engine e do agente de serviço do Compute Engine a que você está concedendo acesso.

  5. No menu suspenso Selecionar um papel, escolha Criptografador/descriptografador do Cloud KMS CryptoKey.

  6. Clique em Adicionar outro papel.

  7. No menu suspenso Selecionar papel, escolha Leitor do Cloud KMS.

  8. Clique em Salvar.

Para ativar a CMEK no console do Google Cloud:

  1. Siga as etapas para Crie uma configuração de estações de trabalho.

  2. Ao especificar a configuração da máquina, procure a seção Opções avançadas.

  3. Clique em expand_more Expand More e selecione Use customer-managed encryption key (CMEK).

    1. No campo Selecionar uma chave gerenciada pelo cliente, selecione a chave de criptografia gerenciada pelo cliente que você criou no projeto de chave.

      Se a chave criada não estiver na lista, clique em Inserir chave manualmente para selecionar a chave pelo ID do recurso e insira o ID anotado anteriormente.

    2. No campo Conta de serviço, selecione a conta de serviço usada pela chave.

  4. Conclua as outras etapas para criar a configuração da estação de trabalho.

  5. Crie, inicie e lance a configuração da estação de trabalho para criptografar os discos persistentes no seu projeto com a chave do Cloud KMS especificada.

gcloud

O exemplo a seguir concede um papel do IAM que fornece acesso a uma chave do Cloud KMS e ativa a CMEK especificando essa chave no a configuração da estação de trabalho:

  1. Conceda à conta de serviço do KMS e ao agente de serviço do Compute Engine para o projeto das estações de trabalho o papel de criptografador/descriptografador do CryptoKey do Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) na chave CMEK. Isso permite que o serviço do Compute Engine crie recursos criptografados no projeto usando a chave CMEK especificada.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    
      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:service-WORKSTATIONS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    

    Substitua:

    • KEY_NAME: o nome da chave;
    • LOCATION: o nome da região em que você criou o keyring.
    • KEY_RING: o nome do keyring;
    • WORKSTATIONS_PROJECT_NUMBER: o identificador numérico exclusivo gerado automaticamente e incluído como a primeira parte da conta de serviço padrão do Compute Engine do projeto de estações de trabalho.
    • KMS_PROJECT_ID: ID do projeto, uma string exclusiva usada para é diferenciar seu projeto do Cloud KMS de todos os outros Google Cloud.

    Para informações sobre todas as flags e valores possíveis, execute o comando com a flag --help.

  2. Para recuperar a conta de serviço de gerenciamento de estações de trabalho do seu projeto de estação de trabalho, use o seguinte comando:

    gcloud beta services identity create --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

    Substitua WORKSTATIONS_PROJECT_ID pelas suas estações de trabalho ID do projeto.

  3. Conceda à conta de serviço de gerenciamento de estações de trabalho do seu projeto o Papel Leitor do Cloud KMS (roles/cloudkms.viewer) usando a chave CMEK. Isso permite que o serviço da estação de trabalho detecte a rotação de chaves e recriptografe os recursos conforme necessário no projeto.

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT \
        --role roles/cloudkms.viewer \
        --project KMS_PROJECT_ID
    

    Substitua:

    • KEY_NAME: o nome da chave;
    • LOCATION: o nome da região em que você criou o keyring.
    • KEY_RING: o nome do keyring;
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: a conta de serviço de gerenciamento de estações de trabalho obtida na etapa acima.
    • KMS_PROJECT_ID: o ID do projeto, uma string exclusiva usada para a diferenciar seu projeto de chave do Cloud KMS de todos os outros em Google Cloud.

    Para obter informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.

  4. Opcional: se você ainda não criou um cluster de estações de trabalho, crie um usando o clusters create comando gcloud da CLI.

    gcloud workstations clusters create \
        WORKSTATIONS_CLUSTER_NAME --region=LOCATION \
        --project=WORKSTATIONS_PROJECT_NUMBER
    

    Substitua:

    • WORKSTATIONS_CLUSTER_NAME: o nome do cluster de estações de trabalho.
    • LOCATION: o nome da região do cluster da estação de trabalho.
    • WORKSTATIONS_PROJECT_NUMBER: o evento é um identificador numérico exclusivo e gerado na primeira parte da conta de serviço padrão do Compute Engine do projeto de estações de trabalho
  5. Supondo que você já tenha criado um cluster, criar uma configuração de estação de trabalho com as configurações encryption_key.

    Para criar uma configuração de estação de trabalho com o tipo de máquina e2-standard-2, tempo limite inativo de 3600s e recursos de estação de trabalho criptografados por CMEK, execute o seguinte comando da CLI gcloud:

    gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --region=LOCATION \
      --machine-type="e2-standard-2" \
      --idle-timeout=3600 \
      --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
      --kms-key-service-account="WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --project=WORKSTATIONS_PROJECT_NUMBER
    

    Substitua:

    • WORKSTATIONS_CONFIG_NAME: o nome da configuração da estação de trabalho.
    • WORKSTATIONS_CLUSTER_NAME: o nome do cluster de estações de trabalho.
    • LOCATION: o nome da região do cluster.
    • KMS_PROJECT_ID: ID do projeto, uma string exclusiva usada para diferenciar seu projeto de todos os outros no Google Cloud.
    • KEY_RING: o nome do keyring;
    • KEY_NAME: o nome da chave;
    • WORKSTATIONS_PROJECT_NUMBER: o evento é um identificador numérico exclusivo e gerado na primeira parte da conta de serviço padrão do Compute Engine do projeto de estações de trabalho

    Depois de criar uma configuração de estação de trabalho, o Cloud KMS criptografa os discos permanentes no projeto com o Cloud KMS especificado de dados.

Alternar chaves de criptografia gerenciadas pelo cliente

Quando você concede à conta de serviço de gerenciamento de estações de trabalho o papel Leitor do Cloud KMS (roles/cloudkms.viewer) na chave CMEK, o serviço da estação de trabalho será capaz de detectar a rotação de chaves e recriptografar seu disco principal usando a nova versão da chave primária.

A criptografia novamente ocorre depois que você interrompe a estação de trabalho. Sempre que você interrompe uma estação de trabalho criptografada, o serviço dela verifica se a chave foi girada. Se a chave tiver sido alterada, o serviço da estação de trabalho vai criar um snapshot do disco principal da estação de trabalho e excluir o disco. Na próxima vez que você iniciar a estação de trabalho, o serviço dela criará um novo disco com base no snapshot usando a nova versão da chave primária.

Cotas do Cloud KMS e Cloud Workstations

Quando você usa a CMEK nas estações de trabalho do Cloud, seus projetos podem consumir cotas de solicitações criptográficas do Cloud KMS. Por exemplo, repositórios criptografados por CMEK podem consumir essas cotas em cada upload ou download. As operações de criptografia e descriptografia que usam chaves CMEK só afetam as cotas do Cloud KMS se você usar chaves de hardware (Cloud HSM) ou externas (Cloud EKM). Para mais informações, consulte Cotas do Cloud KMS.

Chaves externas

Use o Cloud External Key Manager (Cloud EKM) para criptografar dados no Google Cloud usando chaves externas que você gerencia.

Quando você usa uma chave do Cloud EKM, o Google não tem controle sobre a disponibilidade da sua chave gerenciada externamente. Se a chave ficar indisponível, não será possível iniciar a estação de trabalho.

Para mais considerações ao usar chaves externas, consulte Gerenciador de chaves externo do Cloud.

A seguir