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 a rotulagem de dados, todos os arquivos de entrada (imagem, texto, vídeo etc.), discussão temporária (pergunta, feedback etc.) e saída (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.

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 (exclui conjuntos de dados de previsão do AutoML)
  • Todos os dados importados pelo usuário, como imagem, conteúdo de texto, vídeos etc. para DataItems e Annotations.
  • Conteúdo criado por usuários, como AnnotationSpecs, ColumnSpecs etc.
Modelo (exclui modelos de previsão do AutoML)
  • 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
  • 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
  • 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
  • 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 a imagem do AutoML e faz a previsão do batchPrediction)
  • Todos os arquivos temporariamente (arquivos de modelo, registros, discos de VM etc.) usados no job para continuar 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.
DataLabelingJob
  • Todos os arquivos de entrada (imagem, texto, vídeo etc.), discussão temporária (perguntas, feedback etc.) e saída (resultado do rótulo) no job de rotulagem.
ModelDeploymentMonitoringJob
  • Todos os arquivos temporários (arquivos de conjunto de dados de treinamento, registros, discos da VM etc.) 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 (visualização)
  • O job do pipeline e todos os sub-recursos.
MetadataStore (visualização)
  • Todo o conteúdo no armazenamento de metadados.
TensorBoard (prévia)
  • 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.

Limitações

O suporte do CMEK para os recursos de visualização também está no status de visualização.

Não é possível usar a CMEK com:

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

  • Previsão do AutoML

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. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative a API Cloud KMS.

    Ative a API

  5. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  7. Ative a API Cloud KMS.

    Ative a API

Configurar o projeto do AI Platform

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative a Vertex AI API.

    Ative a API

  5. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  7. Ative a Vertex AI API.

    Ative a API

Configure a ferramenta de linha de comando gcloud.

A ferramenta gcloud é necessária para algumas etapas deste guia e opcional para outras. Instale e inicialize o SDK do Cloud..

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 permissão usando o Console do Google Cloud ou a ferramenta de linha de comando gcloud:

Console do Cloud

  1. No Console do Cloud, acesse a página Chaves criptográficas e selecione seu 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