Por predefinição, as estações de trabalho na nuvem encriptam o conteúdo do cliente em repouso. O Cloud Workstations processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.
Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEK) no Cloud KMS com serviços integrados com CMEK, incluindo o Cloud Workstations. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização e autorizações de acesso, bem como limites criptográficos. A utilização do Cloud KMS também permite monitorizar a utilização das chaves, ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.
Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos do Cloud Workstations é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).
Por predefinição, o Cloud Workstations usa a Google-owned and Google-managed encryption key para encriptar recursos de estações de trabalho, como VMs e discos persistentes, quando os dados estão em repouso. Se tiver requisitos regulamentares ou de conformidade específicos relacionados com as chaves que protegem os seus dados, pode usar chaves de encriptação geridas pelo cliente (CMEK) através do Cloud Key Management Service (Cloud KMS).
Para mais informações sobre a CMEK em geral, incluindo quando e por que motivo a deve ativar, consulte a documentação do Cloud KMS.
Antes de começar
Crie os seus projetos
Na Google Cloud consola, na página do seletor de projetos, selecione ou crie os seguintes Google Cloudprojetos:
Um projeto de chave contém os seus recursos do Cloud KMS, incluindo um conjunto de chaves e uma chave de encriptação simétrica.
Um projeto de estações de trabalho contém estações de trabalho encriptadas com uma chave CMEK.
Pode usar o mesmo projeto para o projeto principal e o projeto de estações de trabalho, mas, como prática recomendada, sugerimos que use dois projetos para separação de funções.
Certifique-se de que a faturação está ativada para o seu projeto do Google Cloud. Para mais informações, consulte o artigo Valide o estado de faturação dos seus projetos.
Ative as APIs necessárias em cada projeto.
No projeto da chave, certifique-se de que ativou a API Cloud KMS.
No seu projeto de estações de trabalho, certifique-se de que ativou as APIs Cloud KMS e Cloud Workstations.
Instale e inicialize a CLI
gcloud
:Para instalar a CLI
gcloud
, consulte o artigo Instale a CLIgcloud
e siga as instruções para o seu sistema operativo.Para inicializar a CLI
gcloud
, consulte o artigo Inicializar a CLIgcloud
ou execute o seguinte comando:gcloud init
Funções necessárias
Embora possa conceder as funções de administrador do Cloud KMS e administrador do Cloud Workstations à mesma pessoa, recomendamos que siga o princípio do menor privilégio ao atribuir funções. Como prática recomendada, conceda estas funções a duas pessoas separadas e peça-lhes que coordenem, em vez de pedir ao administrador do Cloud KMS que seja também o administrador do Cloud Workstations. Para mais informações, consulte as práticas recomendadas de segurança e a utilização segura do IAM .
Para receber as autorizações de que precisa para configurar a CMEK, peça ao seu administrador para lhe conceder as seguintes funções do IAM:
-
Se for o administrador do Cloud KMS, peça ao seu administrador para lhe conceder a seguinte função para que possa criar e gerir recursos do Cloud KMS:
Administrador do Cloud KMS (
roles/cloudkms.admin
) no seu projeto de chaves. -
Se for o administrador do Cloud Workstations, peça ao seu administrador para lhe conceder a seguinte função para que 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 atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie um conjunto de chaves e uma chave de encriptação
No projeto de chaves, crie uma chave e guarde o ID de recurso da chave:
Crie ou selecione um conjunto de chaves.
O conjunto de chaves tem de estar localizado na mesma região que o cluster da estação de trabalho. O Cloud Workstations não suporta localizações do Cloud KMS multirregionais ou globais.
Pode partilhar conjuntos de chaves entre serviços, mas, como prática recomendada, sugerimos que use uma chave diferente para cada recurso protegido. Veja a separação de funções
Crie uma chave de encriptação simétrica.
Obtenha o ID do recurso da chave e guarde-o para um passo posterior.
Conceda acesso à sua chave de encriptação
O Cloud Workstations usa as seguintes contas de serviço para gerir a encriptação dos seus recursos:
O agente do serviço Cloud Workstations: O Cloud Workstations usa esta conta para detetar quando a sua chave é alternada.
A conta de serviço da chave do Cloud KMS: Vai fornecer uma conta de serviço que as Cloud Workstations podem usar para aceder à sua chave para encriptar e desencriptar recursos.
Conceda a função de leitor do Cloud KMS ao agente do serviço Cloud Workstations
O agente de serviço do Cloud Workstations permite que o
Cloud Workstations execute tarefas de serviço no seu projeto. Quando ativou o serviço Cloud Workstations no seu projeto de estações de trabalho, este agente de serviço foi criado automaticamente. Para que a CMEK funcione corretamente, tem de conceder ao agente de serviço do Cloud Workstations para o seu projeto de estações de trabalho a
função
Visualizador do Cloud KMS
(roles/cloudkms.viewer
) na chave do Cloud KMS, para que
o Cloud Workstations possa detetar a rotação de chaves.
Para obter o agente do serviço Cloud Workstations para o projeto da 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
pelo ID do projeto da sua estação de trabalho.O agente de serviço do Cloud Workstations usa o seguinte formato:
service-$WORKSTATIONS_PROJECT_NUMBER@gcp-sa-workstations.iam.gserviceaccount.com
.Conceda ao agente de serviço do Cloud Workstations a função de leitor do Cloud KMS (
roles/cloudkms.viewer
) na chave CMEK. Isto permite que as Cloud Workstations detetem a rotação de chaves e voltem a encriptar os recursos, conforme necessário, no seu projeto.gcloud kms keys add-iam-policy-binding \ KEY_NAME \ --keyring=KEY_RING \ --location=LOCATION \ --project=KMS_PROJECT_ID \ --role=roles/cloudkms.viewer \ --member=CLOUD_WORKSTATIONS_SERVICE_AGENT
Substitua o seguinte:
KEY_NAME
: o nome da sua chave.KEY_RING
: o nome do seu conjunto de chaves.LOCATION
: a localização que contém o seu conjunto de chaves.KMS_PROJECT_ID
: o ID do projeto que contém a sua chave.CLOUD_WORKSTATIONS_SERVICE_AGENT
: o agente de serviço do Cloud Workstations obtido no passo anterior.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.
Configure uma conta de serviço de chaves do Cloud KMS
O Cloud Workstations usa uma conta de serviço à sua escolha para realizar a encriptação e a desencriptação com a sua chave gerida pelo cliente. Referimo-nos a esta conta como a conta de serviço da chave do Cloud KMS. Pode optar por criar uma nova conta de serviço ou usar uma existente. Os requisitos para esta conta são:
- O administrador do Cloud Workstations tem de ter autorização
iam.serviceAccounts.actAs
nesta conta de serviço. - A conta de serviço que escolher tem de ter a função de encriptador/desencriptador de CryptoKey do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) na sua chave do Cloud KMS.
Se quiser criar uma nova conta de serviço, use o seguinte comando:
gcloud iam service-accounts create \ KMS_KEY_SERVICE_ACCOUNT_NAME \ --display-name="Service account for Cloud Workstations CMEK" \ --project=WORKSTATIONS_PROJECT_ID
Substitua o seguinte:
KMS_KEY_SERVICE_ACCOUNT_NAME
: o nome da conta de serviço.WORKSTATIONS_PROJECT_ID
: o ID do projeto da estação de trabalho.
A conta de serviço que criou tem um email no seguinte formato:
KMS_KEY_SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
.Guarde o email da conta de serviço para um passo posterior.
Para conceder a função Cloud Workstations Admin do IAM Service Account User (
roles/iam.serviceAccountUser
) na conta de serviço da chave do Cloud KMS, execute o seguinte comando:gcloud iam service-accounts add-iam-policy-binding \ KMS_KEY_SERVICE_ACCOUNT_EMAIL \ --member="user:CLOUD_WORKSTATIONS_ADMIN_EMAIL" \ --project=WORKSTATIONS_PROJECT_ID \ --role=roles/iam.serviceAccountUser
Substitua o seguinte:
KMS_KEY_SERVICE_ACCOUNT_EMAIL
: o email da conta de serviço da chave do Cloud KMS.CLOUD_WORKSTATIONS_ADMIN_EMAIL
: o email do administrador do Cloud Workstations.WORKSTATIONS_PROJECT_ID
: o ID do projeto da estação de trabalho.
Para conceder à conta de serviço da chave do Cloud KMS a função de encriptador/desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) do Cloud KMS na sua chave, execute o seguinte comando:gcloud kms keys add-iam-policy-binding \ KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --project KMS_PROJECT_ID \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --member serviceAccount:KMS_KEY_SERVICE_ACCOUNT_EMAIL\
Substitua o seguinte:
KEY_NAME
: o nome da sua chave.KEY_RING
: o nome do seu conjunto de chaves.LOCATION
: a localização que contém o seu conjunto de chaves.KMS_PROJECT_ID
: o ID do projeto que contém a sua chave.KMS_KEY_SERVICE_ACCOUNT_EMAIL
: o email da conta de serviço da chave do Cloud KMS.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag
--help
.
Verifique se existem clusters de estações de trabalho
Se não tiver clusters de estações de trabalho disponíveis na Google Cloud consola, peça ao administrador do Cloud Workstations para criar um cluster de estações de trabalho para si na mesma região que o conjunto de chaves do Cloud KMS ou certifique-se de que tem uma função de IAM de administrador do Cloud Workstations no projeto para poder criar estes recursos.
Use chaves de encriptação geridas pelo cliente
Se ainda não criou um cluster de estações de trabalho, crie um com o comando da CLI clusters create
gcloud
.gcloud workstations clusters create \ WORKSTATIONS_CLUSTER_NAME --region=LOCATION \ --project=WORKSTATIONS_PROJECT_ID
Substitua o seguinte:
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_ID
: o ID do projeto da estação de trabalho.
Crie uma configuração de estação de trabalho com as definições
encryption_key
.Para criar uma configuração de estação de trabalho com o tipo de máquina
e2-standard-2
, um limite de tempo de inatividade de3600s
e recursos de estação de trabalho encriptados com CMEK, execute o seguinte comando da CLIgcloud
: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="KMS_KEY_SERVICE_ACCOUNT_EMAIL" \ --project=WORKSTATIONS_PROJECT_ID
Substitua o seguinte:
WORKSTATIONS_CONFIG_NAME
: o nome da 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 seu cluster.KMS_PROJECT_ID
: ID do projeto, uma string exclusiva usada para diferenciar o seu projeto de todos os outros no Google Cloud.KEY_RING
: o nome do seu conjunto de chaves.KEY_NAME
: o nome da sua chave.KMS_KEY_SERVICE_ACCOUNT_EMAIL
: o email da conta de serviço da chave do Cloud KMS.WORKSTATIONS_PROJECT_ID
: o ID do projeto da estação de trabalho.
Depois de criar uma configuração da estação de trabalho, o Cloud KMS encripta os discos persistentes no seu projeto com a chave do Cloud KMS especificada.
Rote as chaves de encriptação geridas pelo cliente
Quando concedeu a função de visualizador do Cloud KMS ao agente de serviço do Cloud Workstations (roles/cloudkms.viewer
) na chave CMEK, o serviço de estação de trabalho consegue detetar a rotação da chave e reencriptar o seu disco
principal usando a nova versão da chave principal.
A reencriptação ocorre depois de parar a estação de trabalho. Sempre que para uma estação de trabalho encriptada, o serviço de estação de trabalho verifica se a chave foi alterada. Se a chave tiver sido rodada, o serviço de estação de trabalho cria um instantâneo do disco principal da estação de trabalho e elimina o disco. Na próxima vez que iniciar a estação de trabalho, o serviço da estação de trabalho cria um novo disco a partir da imagem instantânea, usando a nova versão da chave principal.
Quotas do Cloud KMS e Cloud Workstations
Quando usa CMEK no Cloud Workstations, os seus projetos podem consumir quotas de pedidos criptográficos do Cloud KMS. Por exemplo, os repositórios encriptados com CMEK podem consumir estas quotas para cada carregamento ou transferência. As operações de encriptação e desencriptação que usam chaves CMEK afetam as quotas do Cloud KMS apenas se usar hardware (Cloud HSM) ou chaves externas (Cloud EKM). Para mais informações, consulte as cotas do Cloud KMS.
Chaves externas
Pode usar o Cloud External Key Manager (Cloud EKM) para encriptar dados no Google Cloud com chaves externas que gere.
Quando usa uma chave do Cloud EKM, a Google não tem controlo sobre a disponibilidade da sua chave gerida 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 o Cloud External Key Manager.
O que se segue?
- Leia sobre as chaves de encriptação geridas pelo cliente.
- Saiba o que é a encriptação