Chaves de criptografia gerenciadas pelo cliente (CMEK)

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, na sigla em inglês) para os recursos.

Leia mais sobre os benefícios específicos do uso de CMEK com recursos dae Vertex IA na seção a seguir deste guia. Para obter mais informações sobre CMEK em geral, como quando e por que ativar, consulte a documentação do Cloud Key Management Service .

Este guia descreve alguns benefícios do uso de CMEK para recursos da Vertex AI e mostra como configurar um job de treinamento para usar CMEK.

CMEK para recursos da Vertex AI

As seções a seguir descrevem informações básicas sobre CMEK para recursos da Vertex AI que você precisa entender antes de configurar o CMEK nos jobs.

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. Usando CMEK, você gerencia suas chaves no Cloud KMS. Por exemplo, é possível alternar ou desativar uma chave ou configurar uma programação de rotação usando a API Cloud KMS. Para obter mais informações sobre CMEK em geral, como quando e por que ativar, consulte a documentação do Cloud KMS.

Ao executar um job de treinamento do AutoML ou personalizado, o código é executado em uma ou mais instâncias de máquina virtual (VM, na sigla em inglês) gerenciada pela Vertex AI. Ao ativar CMEK para a Vertex AI, a chave designada por você (e não a chave gerenciada pelo Google) é usada para criptografar dados nos discos de inicialização dessas VMs. A chave de CMEK criptografa os seguintes tipos de dados:

  • A cópia do código nas VMs.
  • Todos os dados que forem carregados pelo seu código.
  • Todos os dados temporários que forem salvos no disco local pelo código.
  • Modelos treinados automaticamente.
  • Arquivos de mídia (dados) enviados em conjuntos de dados de mídia.

Em geral, a chave CMEK não criptografa metadados associados à operação, como o nome e a região do job ou o nome de exibição de um conjunto de dados. Os metadados associados a operações são sempre criptografados com o mecanismo de criptografia padrão do Google.

Para conjuntos de dados, quando um usuário importa dados para o conjunto, os itens de dados e as anotações são criptografados por CMEK. O nome de exibição do conjunto de dados não é criptografado pelo CMEK.

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

Para endpoints, todos os arquivos de modelo usados na implantação do modelo no endpoint são criptografados por CMEK. Isso não inclui dados na memória.

Para predição em lote, todos os arquivos temporariamente, como arquivos de modelo, registros e discos de VM, usados para executar o job de previsão em lote são criptografados por CMEK. Os resultados da previsão em lote são armazenados no destino fornecido pelo usuário. Consequentemente, a Vertex AI respeita o valor padrão da configuração de criptografia do destino. Caso contrário, os resultados também serão criptografados com CMEK.

Para rotulagem de dados, todos os arquivos de entrada (imagem, texto, vídeo, tabular), discussões temporárias (por exemplo, perguntas, feedback) e saídas (resultado da rotulagem) são criptografados pela CMEK. , Os nomes de exibição das especificações de anotação não são criptografados pelo CMEK.

Chaves externas

Use o Gerenciador de chaves externo do Cloud (Cloud EKM) para criar chaves externas, que você gerencia, para criptografar dados no Google Cloud.

Quando você usa uma chave do Cloud EKM, o Google não tem controle sobre a disponibilidade da sua chave gerenciada externamente. Se você solicitar acesso a um recurso criptografado com uma chave gerenciada externamente e a chave não estiver disponível, a Vertex AI rejeitará a solicitação. Pode haver um atraso de até 10 minutos antes de você conseguir acessar o recurso quando a chave estiver disponível.

Para mais considerações ao usar chaves externas, consulte Gerenciador de chaves externo do Cloud.

Usar CMEK com outros produtos do Google Cloud

A configuração de CMEK para recursos da Vertex AI não configura automaticamente o CMEK para outros produtos do Google Cloud que você usa junto da Vertex AI. Para usar CMEK para criptografar dados em outros produtos do Google Cloud, é necessária uma configuração adicional. Exemplo:

Recursos atuais compatíveis com a CMEK

Estes são os recursos da Vertex AI cobertos atualmente pelo CMEK. O suporte do CMEK para os recursos de visualização também está no status de visualização.

Recurso Material criptografado Links de documentação
Conjunto de dados
  • Todos os dados importados do usuário (por exemplo, conteúdo de texto ou vídeos) para DataItems e Annotations.
  • Conteúdo criado pelo usuário, como AnnotationSpecs e ColumnSpecs.
Modelo
  • Arquivos de modelo enviados.
  • Resultados da avaliação do modelo treinado.
Endpoint
  • Todos os arquivos de modelo usados na implantação do modelo no endpoint. Isso não inclui dados na memória, mas o modelo será removido automaticamente se a chave estiver desativada.
CustomJob (exclui recursos que usam uma VM de TPU)
  • A cópia do código nas VMs usadas para executar a operação.
  • Todos os dados que forem carregados pelo seu código.
  • Todos os dados temporários que forem salvos no disco local pelo código.
HyperparameterTuningJob (exclui recursos que usam uma VM de TPU)
  • A cópia do código nas VMs usadas para executar a operação.
  • Todos os dados que forem carregados pelo seu código.
  • Todos os dados temporários que forem salvos no disco local pelo código.
TrainingPipeline (exclui recursos que usam uma VM da TPU)
  • A cópia do código nas VMs usadas para executar a operação.
  • Todos os dados que forem carregados pelo seu código.
  • Todos os dados temporários que forem salvos no disco local pelo código.
  • Modelos treinados pelo AutoML.
BatchPredictionJob (exclui o AutoML batchPrediction da imagem)
  • Todos os arquivos temporários (por exemplo, arquivos de modelo, registros, discos da VM) usados para prosseguir com o job de previsão em lote.
  • Se os resultados gravados da BatchPrediction forem armazenados no destino fornecido pelo usuário, ele respeitará a configuração de criptografia do valor padrão. Caso contrário, ele também será criptografado com CMEK.
ModelDeploymentMonitoringJob
  • Todos os arquivos temporários (por exemplo, arquivos de conjunto de dados de treinamento, registros, discos da VM) usados no job para processar o job de monitoramento da implantação do modelo.
  • Todos os dados usados para detectar anomalias de monitoramento.
  • Se a chave estiver desativada, o job de monitoramento de implantação do modelo será pausado.
PipelineJob
  • O job do pipeline e todos os sub-recursos.
MetadataStore
  • Todo o conteúdo no armazenamento de metadados.
TensorBoard
  • Todos os dados dos registros do TensorBoard enviados, incluindo escalares, histogramas, definições de gráficos, imagens e texto.
Featurestore
  • O featurestore e todo o conteúdo dele.

Suporte a CMEK para pipelines de ajuste de IA generativa

O suporte para CMEK é fornecido no pipeline de ajuste dos seguintes modelos:

  • text-bison for PaLM 2 (GPU)
  • BERT
  • T5
  • image-generation (GPU)

Limitações

O suporte à CMEK não é fornecido nos seguintes locais:

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

Configurar CMEK para seus recursos

As seções a seguir descrevem como criar um keyring e uma chave no Cloud Key Management Service, conceder permissões de criptografia e descriptografia à Vertex AI para a chave e criar recursos que usam CMEK.

Antes de começar

Este guia pressupõe que você usa dois projetos separados do Google Cloud para configurar o CMEK para dados da Vertex AI:

  • Um projeto para gerenciar sua chave de criptografia (conhecido como "projeto do Cloud KMS").
  • Um projeto para acessar dados da Vertex AI ou saída no Cloud Storage e interagir com outros produtos do Google Cloud necessários usados no seu caso de uso (conhecido como "projeto do AI Platform").

Essa configuração recomendada é compatível com uma separação de tarefas.

Como alternativa, é possível usar um único projeto do Google Cloud para todo o guia. Para isso, use o mesmo projeto para todas as tarefas a seguir que fazem referência ao projeto do Cloud KMS e às tarefas que fazem referência ao projeto do AI Platform.

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

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

    Go to project selector

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

  4. Enable the Vertex AI 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 Vertex AI API.

    Enable the API

Configure a Google Cloud CLI

A CLI gcloud é necessária em algumas etapas deste guia e opcional em outras.

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

gcloud init

Crie um keyring e uma chave.

Siga o guia do Cloud KMS para criar chaves simétricas para criar um keyring e uma chave. Ao criar o keyring, especifique uma região que ofereça suporte a operações da Vertex AI como o local do keyring. O treinamento da Vertex AI só é compatível com o CMEK quando o recurso e chave usam a mesma região. Não especifique um local global, ou de duas ou mais regiões para seu keyring.

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

Conceder permissões da Vertex AI

Para usar o CMEK nos recursos, conceda permissão à Vertex AI para criptografar e descriptografar dados usando a chave. A Vertex AI usa um agente de serviço gerenciado pelo Google para executar operações usando os recursos. Essa conta de serviço é identificada por um endereço de e-mail com o seguinte formato:

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

Para encontrar a conta de serviço apropriada ao seu projeto do AI Platform, acesse a página IAM no Console do Google Cloud e encontre o assinante que corresponde a esse formato de endereço de e-mail, substituindo a variável AI_PLATFORM_PROJECT_NUMBER pelo número do seu projeto no AI Platform. A conta de serviço também tem o nome Vertex AI Service Agent.

Acessar a página "IAM"

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. Conceda a permissão usando o console do Google Cloud ou a Google Cloud CLI:

Console do Google Cloud

  1. No console do Google Cloud, clique em Segurança e selecione Gerenciamento de chaves. Isso levará você à página Chaves criptográficas e selecionar o projeto do Cloud KMS.

    Acesse a página Chaves criptográficas

  2. Clique no nome do keyring que você criou em uma seção anterior deste guia para acessar a página Detalhes do keyring.

  3. Marque a caixa de seleção da chave que você criou em uma seção anterior deste guia. Se um painel de informações com o nome de sua chave ainda não estiver aberto, clique em Exibir 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". Nessa caixa de diálogo, faça o seguinte:

    1. Na caixa Novos membros, insira o endereço de e-mail da conta de serviço que você anotou na seção anterior: service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
    2. Na lista suspensa Selecionar uma função, clique em Cloud KMS e selecione a função Criptografador/Descriptografador de CryptoKey do Cloud KMS.

    3. Clique em Salvar.

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-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Nesse comando, substitua os seguintes marcadores:

  • KEY_NAME: o nome da chave que você criou em uma seção anterior deste guia
  • KEY_RING_NAME: o keyring que você criou em uma seção anterior deste guia
  • REGION: a região em que você criou o keyring
  • KMS_PROJECT_ID: o ID do seu projeto do Cloud KMS
  • AI_PLATFORM_PROJECT_NUMBER: o número do projeto do AI Platform, que você anotou na seção anterior como parte de um endereço de e-mail da conta de serviço.

Criar recursos com a chave KMS

Ao criar um novo recurso compatível com a CMEK, é possível especificar a chave como um dos parâmetros de criação.

Console

Ao criar um novo recurso compatível com a CMEK na seção da Vertex AI do Console do Google Cloud, é possível selecionar a chave no seção de opções gerais ou avançadas:

Selecionar a chave de criptografia da seção de recursos

REST e linha de comando

Ao criar um recurso compatível, adicione um objeto encryptionSpec à sua solicitação e defina o campo encryptionSpec.kmsKeyName para apontar para sua chave.

Por exemplo, ao criar um recurso dataset, você especificaria sua chave no corpo da solicitação:

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

Java

Ao criar um recurso compatível, defina EncryptionSpec para apontar para o recurso de chave. Para mais informações, consulte a documentação da biblioteca de cliente do AI Platform para Java.

Node.js

Ao criar um recurso compatível, defina o parâmetro encryptionSpec para apontar para o recurso da chave. Para mais informações, consulte a documentação da biblioteca de cliente de IA do Vertex para Node.js.

Python

Ao criar um recurso compatível, defina o parâmetro encryption_spec para apontar para o recurso da chave. Para mais informações, consulte a documentação do Cliente Python para o Cloud AI Platform.

A seguir