Chaves de encriptação geridas do cliente
Por predefinição, o Vertex AI Workbench encripta o conteúdo do cliente em repouso. O Vertex AI Workbench processa a encriptação por si, sem necessidade de 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 (CMEKs) no Cloud KMS com serviços integrados com CMEK, incluindo o Vertex AI Workbench. 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, autorizações de acesso e limites criptográficos. A utilização do Cloud KMS também permite 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 Vertex AI Workbench é 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).
Esta página descreve algumas vantagens e limitações específicas da utilização da CMEK com blocos de notas geridos pelo utilizador e mostra como configurar uma nova instância de blocos de notas geridos pelo utilizador para usar a CMEK.
Vantagens da CMEK
Em geral, as CMEK são mais úteis se precisar de controlo total sobre as chaves usadas para encriptar os seus dados. Com as CMEK, pode gerir as suas chaves no Cloud Key Management Service. Por exemplo, pode alternar ou desativar uma chave, ou pode configurar um agendamento de alternância através da API Cloud KMS.
Quando executa uma instância de blocos de notas geridos pelo utilizador, a instância é executada numa máquina virtual (VM) gerida pelo Vertex AI Workbench. Quando ativa as CMEK para uma instância de blocos de notas geridos pelo utilizador, o Vertex AI Workbench usa a chave que designa, em vez de uma chave gerida pela Google, para encriptar os dados nos discos de arranque da VM.
A chave CMEK não encripta metadados, como o nome e a região da instância, associados à sua instância de blocos de notas geridos pelo utilizador. Os metadados associados às instâncias de blocos de notas geridos pelo utilizador são sempre encriptados através do mecanismo de encriptação predefinido da Google.
Limitações da CMEK
Para diminuir a latência e evitar casos em que os recursos dependem de serviços distribuídos por vários domínios de falhas, a Google recomenda que proteja as instâncias de blocos de notas geridas pelo utilizador regionais com chaves na mesma localização.
- Pode encriptar instâncias de blocos de notas geridas pelo utilizador regionais usando chaves na mesma localização ou na localização global. Por exemplo, pode encriptar dados num disco na zona
us-west1-a
usando uma chave emus-west1
ouglobal
. - Pode encriptar instâncias globais através de chaves em qualquer localização.
- A configuração da CMEK para blocos de notas geridos pelo utilizador não configura automaticamente a CMEK para outros produtos Google Cloud que usa. Para usar as CMEK para encriptar dados noutros Google Cloud produtos, tem de concluir a configuração adicional.
Configure a CMEK para a instância de blocos de notas gerida pelo utilizador
As secções seguintes descrevem como criar um conjunto de chaves e uma chave no Cloud Key Management Service, conceder as autorizações de encriptador e desencriptador da conta de serviço para a sua chave e criar uma instância de notebooks geridos pelo utilizador que use a CMEK.
Antes de começar
Recomendamos que use uma configuração que suporte uma separação de funções. Para configurar as CMEK para blocos de notas geridos pelo utilizador, pode usar dois projetos Google Cloud separados:
- Um projeto do Cloud KMS: um projeto para gerir a sua chave de encriptação
- Um projeto de notebooks geridos pelo utilizador: um projeto para aceder a instâncias de notebooks geridos pelo utilizador e interagir com quaisquer outros produtos Google Cloud de que precisa para o seu exemplo de utilização
Em alternativa, pode usar um único Google Cloud projeto. Para tal, use o mesmo projeto para todas as seguintes tarefas.
Configure o projeto do Cloud KMS
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Quando escolher a localização do seu conjunto de chaves, use
global
ou a localização onde a instância de blocos de notas geridos pelo utilizador vai estar.Certifique-se de que cria o conjunto de chaves e a chave no seu projeto do Cloud KMS.
Na Google Cloud consola, aceda à página IAM.
Encontre o principal com o nome
Compute Engine default service account
.Tome nota do endereço de email desta conta de serviço e use-o nos passos seguintes para lhe conceder autorização para encriptar e desencriptar dados através da sua chave.
Na Google Cloud consola, aceda à página Gestão de chaves.
Selecione o seu projeto do Cloud KMS.
Clique no nome do conjunto de chaves que criou em Crie um conjunto de chaves e uma chave. É apresentada a página Detalhes do conjunto de chaves.
Selecione a caixa de verificação da chave que criou em Crie um conjunto de chaves e uma chave. Se ainda não estiver aberto um painel de informações etiquetado com o nome da sua chave, clique em Mostrar painel de informações.
No painel de informações, clique em
Adicionar membro. É apresentada a caixa de diálogo Adicionar membros a "KEY_NAME". Neste diálogo, faça o seguinte:No campo Novos membros, introduza o endereço de email da conta de serviço para a sua instância.
Na lista Selecionar uma função, clique em Cloud KMS e, de seguida, selecione a função Encriptador/desencriptador de CryptoKey do Cloud KMS.
Clique em Guardar.
KEY_NAME
: o nome da chave que criou em Crie um conjunto de chaves e uma chaveKEY_RING_NAME
: o conjunto de chaves que criou em Crie um conjunto de chaves e uma chaveREGION
: a região onde criou o seu conjunto de chavesKMS_PROJECT_ID
: o ID do seu projeto do Cloud KMSSERVICE_ACCOUNT
: o endereço de email da conta de serviço para a sua instânciaNa Google Cloud consola, aceda à página Blocos de notas geridos pelo utilizador. Em alternativa, aceda a notebook.new (https://notebook.new) e ignore o passo seguinte.
Clique em
Novo bloco de notas e, de seguida, selecione Personalizar.Na página Crie um bloco de notas gerido pelo utilizador, na secção Detalhes, faculte as seguintes informações para a sua nova instância:
- Nome: um nome para a nova instância
- Região: a região em que se encontram a chave e o conjunto de chaves
- Zona: uma zona na região que selecionou
Selecione a secção Discos.
Para usar chaves de encriptação geridas pelo cliente, em Encriptação, selecione Chave de encriptação gerida pelo cliente (CMEK).
Clique em Selecionar uma chave gerida pelo cliente.
- Se a chave gerida pelo cliente que quer usar estiver na lista, selecione-a.
Se a chave gerida pelo cliente que quer usar não estiver na lista, introduza o ID do recurso da chave gerida pelo cliente. O ID do recurso da chave gerida pelo cliente tem o seguinte aspeto:
projects/NOTEBOOKS_PROJECT_NUMBER/locations/global/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Substitua o seguinte:
NOTEBOOKS_PROJECT_NUMBER
: o ID do seu projeto de notebooks geridos pelo utilizadorKEY_RING_NAME
: o conjunto de chaves que criou em Crie um conjunto de chaves e uma chaveKEY_NAME
: o nome da chave que criou em Crie um conjunto de chaves e uma chave
Conclua o resto da caixa de diálogo de criação da instância e, de seguida, clique em Criar.
O Vertex AI Workbench cria uma instância de blocos de notas geridos pelo utilizador com base nas propriedades especificadas e inicia automaticamente a instância. Quando a instância está pronta a usar, o Vertex AI Workbench ativa um link Abrir JupyterLab.
REGION
: a região onde criou o seu conjunto de chaves e onde planeia criar a instância dos notebooks geridos pelo utilizadorIMAGE_FAMILY
: a família de imagens que quer usar para criar a instância de blocos de notas geridos pelo utilizadorKEY_NAME
: o nome da chave que criou em Crie um conjunto de chaves e uma chaveKMS_PROJECT_ID
: o ID do seu projeto do Cloud KMSKEY_RING_NAME
: o conjunto de chaves que criou em Crie um conjunto de chaves e uma chave- Saiba mais acerca das CMEK no Google Cloud
- Saiba como usar as CMEK com outros Google Cloud produtos
Configure o projeto de blocos de notas geridos pelo utilizador
Configure a CLI Google Cloud
A CLI gcloud é necessária para alguns passos nesta página e opcional para outros.Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Crie um conjunto de chaves e uma chave
Quando criar um conjunto de chaves e uma chave, tenha em atenção os seguintes requisitos:
Para criar um conjunto de chaves e uma chave, consulte o artigo Crie chaves de encriptação simétricas.
Conceda autorizações de blocos de notas geridos pelo utilizador
Para usar a CMEK na instância de blocos de notas geridos pelo utilizador, tem de conceder à instância de blocos de notas geridos pelo utilizador autorização para encriptar e desencriptar dados com a sua chave.
Determine a conta de serviço a usar
Os notebooks geridos pelo utilizador usam uma conta de serviço para executar a instância de notebooks geridos pelo utilizador. Esta conta de serviço é a conta de serviço predefinida do Compute Engine ou uma conta de serviço que especifica quando cria a instância.
Se a conta de serviço for a conta de serviço predefinida do Compute Engine, conclua o seguinte para encontrar o endereço de email da conta de serviço:
Conceda autorização à conta de serviço
Conceda autorização através da consola Google Cloud ou da Google Cloud CLI.
Consola
gcloud
Execute o seguinte comando:
gcloud kms keys add-iam-policy-binding KEY_NAME \
--keyring=KEY_RING_NAME \
--location=REGION \
--project=KMS_PROJECT_ID \
--member=serviceAccount:SERVICE_ACCOUNT \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Substitua o seguinte:
Crie uma instância de notebooks geridos pelo utilizador com CMEK
Depois de conceder à instância dos blocos de notas geridos pelo utilizador autorização para encriptar e desencriptar dados com a sua chave, pode criar uma instância dos blocos de notas geridos pelo utilizador que encripta dados com esta chave.
Os exemplos seguintes mostram como encriptar e desencriptar dados com a sua chave através da Google Cloud consola ou da CLI gcloud.
Consola
Para criar uma instância de blocos de notas gerida pelo utilizador com uma chave de encriptação gerida pelo cliente, siga estes passos:
gcloud
Para usar a CLI gcloud para criar uma instância de notebooks geridos pelo utilizador com uma chave de encriptação gerida pelo cliente, execute o seguinte comando.
Este exemplo pressupõe que quer criar uma instância de blocos de notas gerida pelo utilizador com um tipo de máquina n1-standard-1
e um disco de arranque persistente padrão de 100 GB.
gcloud notebooks instances create notebook-vm-cmek \ --location=REGION \ --vm-image-family=IMAGE_FAMILY \ --vm-image-project=deeplearning-platform-release \ --machine-type="n1-standard-1" \ --boot-disk-type="PD_STANDARD" \ --boot-disk-size=100 \ --kms-key=KEY_NAME \ --kms-project=KMS_PROJECT_ID \ --kms-location=REGION \ --kms-keyring=KEY_RING_NAME \ --disk-encryption=CMEK \ --metadata='proxy-mode=project_editors'
Substitua o seguinte: