Criptografar recursos da estação de trabalho usando a 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ê tem requisitos regulatórios ou de compliance específicos relacionados às chaves que protegem seus dados, use chaves de criptografia gerenciadas pelo cliente (CMEK) usando 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 um Chave CMEK.

    É possível usar o mesmo projeto para o projeto principal e de estações de trabalho, mas como prática recomendada, sugerimos que você use dois projetos para separação de deveres.

  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

É possível conceder acesso de administrador do Cloud KMS e administradores do Cloud Workstations para a mesma pessoa, recomendamos que você siga o princípio de privilégio mínimo 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 usando 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 você possa criar e gerenciar recursos do Cloud KMS: Administrador do Cloud KMS (roles/cloudkms.admin) no seu projeto principal.
  • Se você for Administrador do Cloud Workstations, peça ao administrador que conceda a você o papel a seguir para que seja possível 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 como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou 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 uma key ring.

    É possível compartilhar keyrings entre serviços, mas, como prática recomendada, nós é recomendável usar uma chave diferente para cada recurso protegido. Consulte separação de deveres.

  2. Crie um chave de criptografia simétrica.

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

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

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

Se você não tiver configurações de estações de trabalho disponíveis no Console do Google Cloud, peça ao administrador do Cloud Workstations para criar configuração da estação de trabalho para você ou certifique-se de ter um Administrador do Cloud Workstations papel do IAM no projeto para que você possa 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 do Conta de serviço do Compute Engine e agente de serviço do Compute Engine aos quais você está concedendo acesso.

  5. No menu suspenso Selecionar papel, escolha Criptografador/Descriptografador de CryptoKey do Cloud KMS.

  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 sua máquina do Terraform, procure a seção Opções avançadas.

  3. Clique em expand_more. Abrir mais e selecionar Usar chave de criptografia gerenciada pelo cliente (CMEK).

    1. No campo Selecionar uma chave gerenciada pelo cliente, escolha a opção gerenciada pelo cliente que você criou no projeto de chave.

      Se a chave que você criou não estiver listada, clique em Inserir chave manualmente para selecione a chave pelo ID do recurso e insira o ID do recurso que você anotou. antes.

    2. No campo Conta de serviço, selecione a conta de serviço usada pelo de dados.

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

  5. Crie, inicie e inicie a configuração da estação de trabalho para criptografar o no 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 KMS e ao agente de serviço do Compute Engine para seu projeto de estações de trabalho o Cloud KMS Papel criptografador/descriptografador do CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) usando a 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 a chave. anel
    • KEY_RING: o nome do keyring;
    • 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 de estações de trabalho do Google Cloud.
    • KMS_PROJECT_ID: ID do projeto, uma string exclusiva usada para é diferenciar seu projeto do Cloud KMS de todos os outros Google Cloud.

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

  2. Recuperar a conta de serviço de gerenciamento de estações de trabalho da sua estação de trabalho projeto, 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 recriptografar os recursos, conforme necessário.

    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 a chave. anel
    • KEY_RING: o nome do keyring;
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: o conta de serviço de gerenciamento de estações de trabalho conseguida 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 de encryption_key.

    Para criar uma configuração de estações de trabalho com o tipo de máquina e2-standard-2, tempo limite inativo de 3600s e recursos de estações de trabalho criptografados por CMEKs, executar 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 do configuração da estação de trabalho.
    • WORKSTATIONS_CLUSTER_NAME: o nome do cluster da estação de trabalho.
    • LOCATION: o nome da região do cluster.
    • KMS_PROJECT_ID: ID do projeto, uma string exclusiva usada para a 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 da estação de trabalho, o Cloud KMS criptografa os discos permanentes no projeto com a instância de Cloud KMS especificada de dados.

Cotas do Cloud KMS e Cloud Workstations

Ao usar uma CMEK no Cloud Workstations, seus projetos podem consumir solicitações criptográficas do Cloud KMS cotas. 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 é 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