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 em us-west1 ou global.
  • 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

  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.

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Configure o projeto de blocos de notas geridos pelo utilizador

    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.

      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 the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    3. Verify that billing is enabled for your Google Cloud project.

    4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

    5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

      Go to project selector

    6. Verify that billing is enabled for your Google Cloud project.

    7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

    8. 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:

      • 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.

      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:

      1. Na Google Cloud consola, aceda à página IAM.

        Aceda ao IAM

      2. 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.

      Conceda autorização à conta de serviço

      Conceda autorização através da consola Google Cloud ou da Google Cloud CLI.

      Consola

      1. Na Google Cloud consola, aceda à página Gestão de chaves.

        Aceda à gestão de chaves

      2. Selecione o seu projeto do Cloud KMS.

      3. 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.

      4. 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.

      5. 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:

        1. No campo Novos membros, introduza o endereço de email da conta de serviço para a sua instância.

        2. Na lista Selecionar uma função, clique em Cloud KMS e, de seguida, selecione a função Encriptador/desencriptador de CryptoKey do Cloud KMS.

        3. Clique em Guardar.

      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:

      1. Na 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.

        Aceda aos blocos de notas geridos pelo utilizador

      2. Clique em  Novo bloco de notas e, de seguida, selecione Personalizar.

      3. 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
      4. Selecione a secção Discos.

      5. Para usar chaves de encriptação geridas pelo cliente, em Encriptação, selecione Chave de encriptação gerida pelo cliente (CMEK).

      6. 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:

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

      8. 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.

      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:

      O que se segue?