Chaves de criptografia gerenciadas pelo cliente

Por padrão, o Google Cloud automaticamente criptografa os dados quando em repouso por meio de chaves de criptografia gerenciadas pelo Google. Caso você precise atender a requisitos específicos de compliance e conformidade relacionados às chaves que protegem seus dados, use as chaves de criptografia gerenciadas pelo cliente (CMEKs) para instâncias de notebooks gerenciados pelo usuário.

Nesta página, descrevemos alguns benefícios e limitações específicos do uso de CMEK com notebooks gerenciados pelo usuário. Além disso, mostramos como configurar uma nova instância de notebooks gerenciados pelo usuário para usar o CMEK.

Para informações sobre CMEK em geral, como quando e por que ativar, consulte Chaves de criptografia gerenciadas pelo cliente.

Benefícios de CMEK

Em geral, CMEK são mais úteis se você precisa de controle total sobre as chaves usadas para criptografar seus dados. Com a CMEK, você gerencia suas chaves no Cloud Key Management Service. Por exemplo, é possível alternar ou desativar uma chave ou configurar uma programação de rotação usando a API Cloud KMS.

Quando você executa uma instância de notebooks gerenciados pelo usuário, ela é executada em uma máquina virtual (VM) gerenciada pelo Vertex AI Workbench. Quando você ativa CMEK para uma instância de notebooks gerenciados pelo usuário, o Vertex AI Workbench usa a chave que você designou, em vez de uma chave gerenciada pelo Google, para criptografar dados nos discos de inicialização de VM.

A chave de CMEK não criptografa metadados, como o nome e a região da instância, associados à instância de notebooks gerenciados pelo usuário. Os metadados associados às instâncias de notebooks gerenciados pelo usuário são sempre criptografados com o mecanismo de criptografia padrão do Google.

Limitações de CMEK

Para diminuir a latência e evitar casos em que os recursos dependem de serviços distribuídos em vários domínios de falha, o Google recomenda que você proteja as instâncias regionais de notebooks gerenciados pelo usuário com chaves no mesmo local.

  • É possível criptografar instâncias de notebooks regionais gerenciadas pelo usuário usando chaves no mesmo local ou no local global. Por exemplo, é possível criptografar dados em um disco na zona us-west1-a usando uma chave em us-west1 ou global.
  • Você pode criptografar instâncias globais usando chaves em qualquer local.
  • Configurar CMEK para notebooks gerenciados pelo usuário não configura CMEK automaticamente para outros produtos do Google Cloud que você usa. Para usar CMEK para criptografar dados em outros produtos do Google Cloud, você precisa concluir uma configuração extra.

Como configurar CMEK para sua instância de notebooks gerenciados pelo usuário

Nas seções a seguir, descrevemos como criar um keyring e uma chave no Cloud Key Management Service, conceder à conta de serviço permissões de criptografia e descriptografia para a chave e criar uma instância de notebooks gerenciados pelo usuário que usa CMEK.

Antes de começar

Recomendamos o uso de uma configuração compatível com uma separação de tarefas. Para configurar CMEKs para notebooks gerenciados pelo usuário, use dois projetos separados do Google Cloud:

  • Um projeto do Cloud KMS: um projeto para gerenciar a chave de criptografia
  • Um projeto de notebooks gerenciados por usuários: um projeto para acessar instâncias de notebooks gerenciados por usuários e interagir com outros produtos do Google Cloud necessários para seu caso de uso

Se preferir, use um único projeto do Google Cloud. Para isso, use o mesmo projeto para todas as tarefas a seguir.

Configurar o projeto do Cloud KMS

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API.

    Enable the API

Como configurar o projeto de notebooks gerenciados pelo usuário

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the API

Configure a Google Cloud CLI

A CLI gcloud é necessária para algumas etapas nesta página e opcional para outras.

Install the Google Cloud CLI, then initialize it by running the following command:

gcloud init

Crie um keyring e uma chave.

Ao criar um keyring e uma chave, lembre-se dos seguintes requisitos:

  • Ao escolher o local do keyring, use global ou o local da sua instância de notebooks gerenciados pelo usuário.

  • Certifique-se de criar o keyring e a chave no projeto do Cloud KMS.

Para criar um keyring e uma chave, consulte Criar chaves simétricas de criptografia.

Permitir permissões de notebooks gerenciados pelo usuário

Para usar CMEK na instância de notebooks gerenciada pelo usuário, você precisa conceder a ela permissão para criptografar e descriptografar dados usando sua chave.

Determinar a conta de serviço a ser usada

Os notebooks gerenciados pelo usuário usam uma conta de serviço para executar sua instância desses notebooks. Essa é a conta de serviço padrão do Compute Engine ou uma conta de serviço que você especifica ao criar a instância.

Se a conta de serviço for aquela padrão do Compute Engine, conclua as seguintes etapas para encontrar o endereço de e-mail dessa conta:

  1. No console do Google Cloud, abra a página IAM.

    Acessar IAM

  2. Encontre o principal com o nome Compute Engine default service account.

    Anote o endereço de e-mail dessa conta de serviço e use nos passos a seguir para conceder permissão para criptografar e descriptografar dados usando sua chave.

Conceder permissão à conta de serviço

Conceda permissão usando o console do Google Cloud ou a Google Cloud CLI.

Console

  1. No Console do Google Cloud, acesse a página Chaves criptográficas.

    Acessar chaves criptográficas

  2. Selecione o projeto do Cloud KMS.

  3. Clique no nome do keyring que você criou em Criar um keyring e uma chave. A página Detalhes do keyring é aberta.

  4. Marque a caixa de seleção da chave que você criou em Criar um keyring e uma chave. Se um painel de informações com o nome da sua chave ainda não estiver aberto, clique em Mostrar painel de informações.

  5. No painel de informações, clique em Adicionar membro. A caixa de diálogo Adicionar membros à sala "KEY_NAME" será aberta. Nessa caixa de diálogo, faça o seguinte:

    1. No campo Novos membros, insira o endereço de e-mail da conta de serviço da sua instância.

    2. Na lista Selecionar um papel, clique em Cloud KMS e depois selecione o papel Criptografador/Ddescriptografador de CryptoKey do Cloud KMS.

    3. Clique em Save.

gcloud

Execute este 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:

  • KEY_NAME: o nome da chave que você criou em Criar um keyring e uma chave
  • KEY_RING_NAME: o keyring que você criou em Criar um keyring e uma chave
  • REGION: a região em que você criou o keyring
  • KMS_PROJECT_ID: o ID do seu projeto do Cloud KMS
  • SERVICE_ACCOUNT: o endereço de e-mail da conta de serviço da sua instância.

Como criar uma instância de notebooks gerenciada pelo usuário com CMEK

Agora que você concedeu permissão à instância de notebooks gerenciados pelo usuário para criptografar e descriptografar dados usando sua chave, é possível criar uma instância de notebooks gerenciada pelo usuário que criptografa dados usando essa chave.

Os exemplos a seguir mostram como criptografar e descriptografar dados usando a chave com o Console do Google Cloud ou a CLI gcloud.

Console

Para criar uma instância de notebook gerenciada pelo usuário com uma chave de criptografia gerenciada pelo cliente, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Notebooks gerenciados pelo usuário. Ou acesse notebook.new (https://notebook.new) e pule a próxima etapa.

    Acesse Notebooks gerenciados pelo usuário

  2. Clique em  Novo notebook e, em seguida, selecione Personalizar.

  3. Na página Criar um notebook gerenciado pelo usuário, na seção Detalhes, forneça as seguintes informações para a nova instância:

    • Nome da instância: forneça um nome para a nova instância.
    • Região: insira a região em que a chave e o keyring estão.
    • Zona: selecione uma zona na região escolhida.
  4. Selecione a seção Discos.

  5. Para usar chaves de criptografia gerenciadas pelo cliente, em Criptografia, selecione Chave de criptografia gerenciada pelo cliente (CMEK).

  6. Clique em Selecionar uma chave gerenciada pelo cliente.

    • Se a chave gerenciada pelo cliente que você quer usar estiver na lista, selecione-a.
    • Se a chave gerenciada pelo cliente que você quer usar não estiver na lista, insira o ID do recurso para a chave gerenciada pelo cliente. A ID do recurso da chave gerenciada pelo cliente tem esta aparência:

      projects/NOTEBOOKS_PROJECT_NUMBER/locations/global/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      

      Substitua:

  7. Conclua o restante da caixa de diálogo de criação de instância e clique em Criar.

  8. O Vertex AI Workbench cria uma nova instância de notebooks gerenciados pelo usuário com base nas propriedades especificadas. Quando a instância estiver pronta para uso, o Vertex AI Workbench ativa um link Abrir JupyterLab.

gcloud

Para usar a CLI gcloud para criar uma instância de notebooks gerenciados pelo usuário com uma chave de criptografia gerenciada pelo cliente, execute o seguinte comando. Neste exemplo, presumimos que você quer criar uma instância de notebooks gerenciados pelo usuário com um tipo de máquina n1-standard-1 e um disco de inicialização permanente 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:

  • REGION: a região em que você criou o keyring e onde você planeja criar a nova instância de notebooks gerenciados pelo usuário.
  • IMAGE_FAMILY: a família de imagens que você quer usar para criar a instância de notebooks gerenciados pelo usuário.
  • KEY_NAME: o nome da chave que você criou em Criar um keyring e uma chave
  • KMS_PROJECT_ID: o ID do seu projeto do Cloud KMS
  • KEY_RING_NAME: o keyring que você criou em Criar um keyring e uma chave

A seguir