Chaves de encriptação geridas pelo cliente (CMEK)

Por predefinição, o Vertex AI encripta o conteúdo do cliente em repouso. O Vertex AI 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 (CMEKs) no Cloud KMS com serviços integrados com CMEK, incluindo o Vertex AI. 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 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 seus recursos da Vertex AI é 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).

Este guia descreve algumas vantagens da utilização da CMEK para recursos da Vertex AI e explica como configurar uma tarefa de preparação para usar a CMEK.

Para mais informações sobre como usar as CMEK para o Colab Enterprise, consulte a página das CMEK do Colab Enterprise. Para mais informações sobre como usar as CMEK para instâncias do Vertex AI Workbench, consulte a página CMEK das instâncias do Vertex AI Workbench.

CMEK para recursos do Vertex AI

As secções seguintes descrevem informações básicas sobre a CMEK para recursos da Vertex AI que tem de compreender antes de configurar a CMEK para as suas tarefas.

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 KMS. Por exemplo, pode alternar ou desativar uma chave, ou configurar um agendamento de alternância através da API 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.

Quando executa uma tarefa de AutoML personalizada ou do AutoML, o seu código é executado numa ou mais instâncias de máquinas virtuais (VMs) geridas pelo Vertex AI. Quando ativa a CMEK para recursos do Vertex AI, a chave que designa, em vez de uma chave gerida pela Google, é usada para encriptar dados nos discos de arranque destas VMs. A chave CMEK encripta os seguintes tipos de dados:

  • A cópia do seu código nas VMs.
  • Todos os dados carregados pelo seu código.
  • Todos os dados temporários que são guardados no disco local pelo seu código.
  • Modelos preparados com o AutoML.
  • Ficheiros multimédia (dados) carregados em conjuntos de dados multimédia.

Em geral, a chave CMEK não encripta os metadados associados à sua operação, como o nome e a região da tarefa, ou o nome a apresentar de um conjunto de dados. Os metadados associados às operações são sempre encriptados através do mecanismo de encriptação predefinido da Google.

Para conjuntos de dados, quando um utilizador importa dados para um conjunto de dados, os itens de dados e as anotações são encriptados com CMEK. O nome a apresentar do conjunto de dados não está encriptado com CMEK.

Para os modelos, os modelos armazenados no sistema de armazenamento (por exemplo, disco) são encriptados com CMEK. Todos os resultados da avaliação do modelo estão encriptados com CMEK.

Para pontos finais, todos os ficheiros de modelos usados para a implementação de modelos no ponto final são encriptados com CMEK. Isto não inclui dados na memória.

Para a previsão em lote, todos os ficheiros temporários (como ficheiros de modelos, registos e discos de VM) usados para executar a tarefa de previsão em lote são encriptados com CMEK. Os resultados da previsão em lote são armazenados no destino fornecido pelo utilizador. Consequentemente, o Vertex AI respeita o valor predefinido da configuração de encriptação do destino. Caso contrário, os resultados também são encriptados com CMEK.

Para a etiquetagem de dados, todos os ficheiros de entrada (imagem, texto, vídeo, tabular), a discussão temporária (por exemplo, perguntas, feedback) e a saída (resultado da etiquetagem) são encriptados com CMEK. Os nomes a apresentar das especificações de anotações não estão encriptados com CMEK.

Para os agentes, a CMEK encripta todos os ficheiros de origem usados para o desenvolvimento de agentes. Além disso, as imagens de contentores e as instâncias implementadas para o agente também são encriptadas com CMEK.

Chaves externas

Pode usar o Cloud External Key Manager (Cloud EKM) para criar chaves externas, que gere, para encriptar dados no Google Cloud.

Quando usa uma chave do Cloud EKM, a Google não tem controlo sobre a disponibilidade da sua chave gerida externamente. Se pedir acesso a um recurso encriptado com uma chave gerida externamente e a chave estiver indisponível, o Vertex AI rejeita o pedido. Pode haver um atraso de até 10 minutos antes de poder aceder ao recurso assim que a chave ficar disponível.

Para ver mais considerações ao usar chaves externas, consulte o artigo Cloud External Key Manager.

Use as CMEK com outros Google Cloud produtos

A configuração da CMEK para recursos do Vertex AI não configura automaticamente a CMEK para outros produtos que usa em conjunto com o Vertex AI. Google Cloud Para usar as CMEK para encriptar dados noutros Google Cloud produtos, é necessária uma configuração adicional. Por exemplo:

Recursos atualmente suportados pela CMEK

Os recursos do Vertex AI atuais abrangidos pela CMEK são os seguintes. O suporte de CMEK para funcionalidades de pré-visualização também está no estado de pré-visualização.

Recurso Material encriptado Links para documentação
Conjunto de dados
  • Todos os dados importados pelo utilizador (por exemplo, conteúdo de texto ou vídeos) para DataItems e Annotations.
  • Conteúdo criado pelo utilizador, como AnnotationSpecs, ColumnSpecs.
Modelo
  • Ficheiros de modelos carregados.
  • Resultados da avaliação do modelo preparado.
Ponto final
  • Todos os ficheiros de modelos usados para a implementação de modelos no ponto final. Isto não inclui dados na memória, mas o modelo é anulado automaticamente se a chave estiver desativada.
CustomJob
  • A cópia do seu código nas VMs usadas para executar a operação.
  • Todos os dados carregados pelo seu código.
  • Todos os dados temporários que são guardados no disco local pelo seu código.
HyperparameterTuningJob
  • A cópia do seu código nas VMs usadas para executar a operação.
  • Todos os dados carregados pelo seu código.
  • Todos os dados temporários que são guardados no disco local pelo seu código.
TrainingPipeline
  • A cópia do seu código nas VMs usadas para executar a operação.
  • Todos os dados carregados pelo seu código.
  • Todos os dados temporários que são guardados no disco local pelo seu código.
  • Modelos preparados pelo AutoML.
BatchPredictionJob (exclui AutoML image batchPrediction)
  • Todos os ficheiros temporários (por exemplo, ficheiros de modelos, registos, discos de VM) usados na tarefa para avançar com a tarefa de previsão em lote.
  • Se os resultados escritos da BatchPrediction forem armazenados no destino fornecido pelo utilizador, respeitam a configuração de encriptação do respetivo valor predefinido. Caso contrário, também é encriptado com CMEK.
ModelDeploymentMonitoringJob
  • Todos os ficheiros temporários (por exemplo, ficheiros do conjunto de dados de preparação, registos, discos de VMs) usados na tarefa para processar a tarefa de monitorização da implementação do modelo.
  • Quaisquer dados usados para a deteção de anomalias de monitorização.
  • Se a chave estiver desativada, a tarefa de monitorização da implementação do modelo é pausada.
PipelineJob
  • A tarefa de pipeline e todos os respetivos sub-recursos.
MetadataStore
  • Todo o conteúdo no armazenamento de metadados.
TensorBoard
  • Todos os dados dos registos do TensorBoard carregados, incluindo escalares, histogramas, definições de gráficos, imagens e texto.
Feature Store
  • O Feature Store e todo o conteúdo no Feature Store.
Índice
  • Todos os ficheiros de dados usados para índices de pesquisa vetorial armazenados no Cloud Storage, Pub/Sub e armazenamento interno. O Index e o IndexEndpoint têm de ser criados com a mesma chave.
IndexEndpoint
  • Todos os ficheiros de dados usados para índices de pesquisa vetorial armazenados no Cloud Storage, Pub/Sub e armazenamento interno. O Index e o IndexEndpoint têm de ser criados com a mesma chave.
Tempo de execução do Colab Enterprise
  • O disco de arranque e os discos de dados da VM do tempo de execução
Bloco de notas do Colab Enterprise
  • O ficheiro do bloco de notas e os respetivos comentários
Vertex AI Agent Engine
  • A cópia dos ficheiros de origem do agente, incluindo código, scripts e quaisquer ficheiros de dependência
  • As imagens de contentores criadas a partir dos ficheiros de origem do agente
  • As instâncias em execução implementadas a partir das imagens de contentores do agente

Suporte de CMEK para pipelines de otimização da IA generativa

O suporte de CMEK é fornecido no pipeline de otimização dos seguintes modelos:

  • BERT
  • T5
  • image-generation (GPU)

Limitações

O suporte de CMEK não é disponibilizado no seguinte:

  • Previsão em lote do modelo de imagem do AutoML (BatchPredictionJob)
  • Ajuste da TPU

Configure a CMEK para os seus recursos

As secções seguintes descrevem como criar um conjunto de chaves e uma chave no Cloud Key Management Service, conceder autorizações de encriptação e desencriptação do Vertex AI para a sua chave e criar recursos que usam a CMEK.

Antes de começar

Este guia pressupõe que usa dois projetos Google Cloud separados para configurar as CMEK para os dados do Vertex AI:

  • Um projeto para gerir a sua chave de encriptação (denominado "projeto do Cloud KMS").
  • Um projeto para aceder aos dados ou à saída do Vertex AI no Cloud Storage e interagir com quaisquer outros Google Cloud produtos de que precisa para o seu exemplo de utilização (denominado "projeto da plataforma de IA").

Esta configuração recomendada suporta uma separação de funções.

Em alternativa, pode usar um único Google Cloud projeto para todo o guia. Para tal, use o mesmo projeto para todas as seguintes tarefas que se referem ao projeto do Cloud KMS e às tarefas que se referem ao projeto do AI Platform.

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 do AI Platform

    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 Vertex AI 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 Vertex AI 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 neste guia 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

      Siga o guia do Cloud KMS para criar chaves simétricas para criar um conjunto de chaves e uma chave. Quando criar o conjunto de chaves, especifique uma região que suporte operações da Vertex AI como a localização do conjunto de chaves. A preparação do Vertex AI só suporta CMEK quando o recurso e a chave usam a mesma região. Não pode especificar uma localização dual-regional, multirregional ou global para o seu anel de chaves.

      Certifique-se de que cria o conjunto de chaves e a chave no seu projeto do Cloud KMS.

      Conceda autorizações do Vertex AI

      Para usar a CMEK para os seus recursos, tem de conceder autorização à Vertex AI para encriptar e desencriptar dados com a sua chave. A Vertex AI usa um agente de serviço gerido pela Google para executar operações com os seus recursos. Esta conta de serviço é identificada por um endereço de email no seguinte formato:

      service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
      

      Para encontrar a conta de serviço adequada para o seu projeto do AI Platform, aceda à página IAM na Google Cloud consola e encontre o membro que corresponda a este formato de endereço de email, com o número do projeto do seu projeto do AI Platform a substituir a variável AI_PLATFORM_PROJECT_NUMBER. A conta de serviço também tem o nome Vertex AI Service Agent.

      Aceda à página do IAM

      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. Pode conceder autorização através da Google Cloud consola ou da CLI do Google Cloud:

      Google Cloud consola

      1. Na Google Cloud consola, clique em Segurança e selecione Gestão de chaves. Esta ação direciona para a página Chaves criptográficas e selecione o seu projeto do Cloud KMS.

        Aceda à página Chaves criptográficas

      2. Clique no nome do conjunto de chaves que criou numa secção anterior deste guia para aceder à página Detalhes do conjunto de chaves.

      3. Selecione a caixa de verificação da chave que criou numa secção anterior deste guia. Se um painel de informações etiquetado com o nome da sua chave ainda não estiver aberto, clique em Mostrar painel de informações.

      4. No painel de informações, clique em Adicionar membro para abrir a caixa de diálogo Adicionar membros a "KEY_NAME". Nesta caixa de diálogo, faça o seguinte:

        1. Na caixa Novos membros, introduza o endereço de email da conta de serviço que anotou na secção anterior: service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
        2. Na lista pendente 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-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Neste comando, substitua os seguintes marcadores de posição:

      • KEY_NAME: o nome da chave que criou numa secção anterior deste guia.
      • KEY_RING_NAME: o anel de chaves que criou numa secção anterior deste guia.
      • REGION: a região onde criou o conjunto de chaves.
      • KMS_PROJECT_ID: o ID do seu projeto do Cloud KMS.
      • AI_PLATFORM_PROJECT_NUMBER: o número do projeto do seu projeto da AI Platform, que anotou na secção anterior como parte de um endereço de email de uma conta de serviço.

      Crie recursos com a chave do KMS

      Quando cria um novo recurso compatível com CMEK, pode especificar a chave como um dos parâmetros de criação.

      Consola

      Quando cria um novo recurso suportado pela CMEK na secção Vertex AI da Google Cloud consola, pode selecionar a sua chave na secção de opções gerais ou avançadas:

      Selecione a chave de encriptação para a secção de recursos

      REST e linha de comandos

      Quando cria um recurso suportado, adicione um objeto encryptionSpec ao seu pedido e defina o campo encryptionSpec.kmsKeyName para apontar para o recurso principal.

      Por exemplo, quando cria um recurso dataset, especifica a chave no corpo do pedido:

       {
         "displayName": DATASET_NAME,
         "metadataSchemaUri": METADATA_URI,
         "encryptionSpec": {
           "kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
         }
       }
      

      Java

      Quando cria um recurso suportado, defina o EncryptionSpec para apontar para o seu recurso essencial. Consulte a documentação da biblioteca de cliente da Vertex AI para Java para mais informações.

      Node.js

      Quando cria um recurso suportado, defina o parâmetro encryptionSpec para apontar para o recurso de chave. Consulte a documentação da biblioteca de cliente do Vertex AI para Node.js para mais informações.

      Python

      Quando cria um recurso suportado, defina o parâmetro encryption_spec para apontar para o recurso de chave. Consulte a documentação do cliente Python para a plataforma de IA do Google Cloud para mais informações.

      O que se segue?