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 (CMEK, na sigla em inglês) para os jobs de treinamento.
Leia mais sobre os benefícios específicos do uso de CMEK com o AI Platform Training na próxima seção 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 o AI Platform Training e mostra como configurar um job de treinamento para usar CMEK.
Como compreender CMEK para AI Platform Training
As seções a seguir descrevem informações básicas necessárias sobre CMEK para AI Platform Training antes de configurar CMEK para seus jobs de treinamento.
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, o código é executado em uma ou mais instâncias de máquina virtual (VM) gerenciadas pelo AI Platform Training. Ao ativar CMEK para o AI Platform Training, 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 de treinamento nas VMs.
- Todos os dados que forem carregados por seu código de treinamento.
- Todos os dados temporários que forem salvos no disco local pelo código de treinamento.
A chave de CMEK não criptografa os metadados associados ao seu job de treinamento, como nome e região do job. Os metadados associados aos jobs de treinamento são sempre criptografados usando o mecanismo de criptografia padrão do Google.
Como usar CMEK com outros produtos do Google Cloud
A configuração de CMEK para o AI Platform Training não configura automaticamente CMEK para outros produtos do Google Cloud que você usa junto com o AI Platform Training. Para usar CMEK para criptografar dados em outros produtos do Google Cloud, é necessária uma configuração adicional. Exemplo:
Cloud Storage: ao executar um job de contêiner não personalizado, o AI Platform Training carrega seu aplicativo de treinamento de um bucket do Cloud Storage. Além disso, a maioria dos jobs de treinamento também exporta artefatos de modelo treinados (por exemplo, um diretório SaveModel do TensorFlow) para um bucket do Cloud Storage como parte da saída.
Para garantir que seus dados no Cloud Storage sejam criptografados com CMEK, leia o guia do Cloud Storage para usar chaves de criptografia gerenciadas pelo cliente. É possível definir sua chave de criptografia como a chave padrão para os buckets do Cloud Storage usados com o AI Platform Training ou para criptografar objetos específicos.
Container Registry: ao executar um job de contêiner personalizado, o AI Platform Training carrega a imagem do contêiner do Container Registry.
Para garantir que a imagem do contêiner seja criptografada com CMEK, leia o guia do Container Registry para saber como usar chaves de criptografia gerenciadas pelo cliente.
Cloud Logging: ao executar um job de treinamento, o AI Platform Training salva registros no Logging. Esses registros não são criptografados com CMEK. No entanto, se você usar o roteador de registros, é possível configurar CMEK para determinados arquivos temporários criados pelo roteador de registros .
Limitações
Você não pode usar CMEK com o AI Platform Training nas seguintes situações:
- Você não pode usar CMEK com jobs de treinamento que usam TPUs.
- Se você começou a usar a API Prediction e AI Platform Training em 2017 ou antes e enviou um job de treinamento com CMEK, é possível que encontre um erro descrevendo um mecanismo de autenticação legado incompatível. Nesse caso, crie um novo projeto do Google Cloud ou selecione um projeto diferente para executar o job do AI Platform Training.
Como configurar CMEK para o job de treinamento
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 de AI Platform Training para sua chave e criar um job de treinamento que usa CMEK.
Antes de começar
Neste guia, pressupomos que você use dois projetos separados do Google Cloud para configurar CMEK para treinamento:
- Um projeto para gerenciar sua chave de criptografia (conhecido como "projeto do Cloud KMS").
- Um projeto para acessar o AI Platform Training, gerenciar dados de treinamento ou saída no Cloud Storage e interagir com outros produtos do Google Cloud necessários para 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.
Como configurar o projeto do Cloud KMS
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud KMS API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud KMS API.
Como configurar o projeto do AI Platform
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the AI Platform Training & Prediction API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the AI Platform Training & Prediction API.
Como configurar a Google Cloud CLI
A CLI gcloud é necessária para algumas etapas deste guia e opcional para outras.Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Como criar 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 seu keyring, especifique uma região que ofereça suporte ao AI Platform Training como o local do keyring. O AI Platform Training só aceita CMEK quando o job de treinamento e a 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.
Como conceder permissões no AI Platform Training
Para usar CMEK no job de treinamento, você precisa conceder permissão no AI Platform Training para criptografar e descriptografar dados usando sua chave. O AI Platform Training usa um agente de serviço para executar os jobs de treinamento. Esse agente de serviço é identificado por um endereço de e-mail com o seguinte formato:
service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
Para encontrar o agente de serviço apropriado para seu projeto do AI Platform, acesse
a página do IAM no console do Google Cloud e encontrar o membro que corresponde
este formato de endereço de e-mail, com o elemento do projeto
número para
no projeto do AI Platform, substituindo
AI_PLATFORM_PROJECT_NUMBER. O agente de serviço também tem a
Google Cloud ML Engine Service Agent
.
Anote o endereço de e-mail desse agente 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
No console do Google Cloud, acesse a página Chaves criptográficas e selecione seu projeto do Cloud KMS.
Clique no nome do keyring que você criou em uma seção anterior deste guia para acessar a página Detalhes do keyring.
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.
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:- 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@cloud-ml.google.com.iam.gserviceaccount.com
Na lista suspensa Selecionar uma função, clique em Cloud KMS e selecione a função Criptografador/Descriptografador de CryptoKey do Cloud KMS.
Clique em Salvar.
- Na caixa Novos membros, insira o endereço de e-mail da conta de serviço que
você anotou na seção anterior:
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@cloud-ml.google.com.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.
Como criar um job de treinamento com CMEK
Agora que você concedeu ao AI Platform Training permissão para criptografar e descriptografar dados
usando sua chave, é possível criar um job de treinamento que criptografa dados temporários usando
essa chave. Ao criar um job de treinamento, especifique o encryptionConfig
campo no
campo trainingInput
do job.
O exemplo a seguir mostra como fazer isso usando a CLI gcloud. No momento, não é possível criar um job de treinamento com CMEK no console do Google Cloud.
O exemplo pressupõe que você tenha um aplicativo de treinamento
em seu sistema de arquivos local em um
diretório chamado trainer
com um módulo chamado task
.
Crie um arquivo de configuração
config.yaml
que contenha o seguinte:trainingInput: encryptionConfig: kmsKeyName: projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
No arquivo de configuração, substitua os seguintes marcadores:
- KMS_PROJECT_ID: o ID do seu projeto do Cloud KMS
- KEY_RING_NAME: o nome do keyring
- KEY_NAME: o nome da chave
Para criar o job de treinamento, execute o seguinte comando:
gcloud ai-platform jobs submit training JOB_ID \ --config=config.yaml \ --job-dir=JOB_DIR \ --module-name=trainer.task \ --package-path=trainer \ --python-version=3.7 \ --region=REGION \ --runtime-version=2.11 \ --scale-tier=basic
Nesse comando, substitua os seguintes marcadores:
- JOB_ID: um nome que você escolhe para o job
JOB_DIR: um caminho até um diretório do Cloud Storage para onde o aplicativo de treinamento é enviado. Seu job de treinamento também pode usar esse diretório durante o treinamento, por exemplo, para salvar a saída. Por conveniência, escolha um diretório em um bucket do Cloud Storage no projeto do AI Platform.
REGION: a região onde você criou o keyring e planeja criar o job de treinamento.
Se bem-sucedido, o comando gera a seguinte saída:
Job [JOB_ID] submitted successfully. Your job is still active. You may view the status of your job with the command $ gcloud ai-platform jobs describe JOB_ID or continue streaming the logs with the command $ gcloud ai-platform jobs stream-logs JOB_ID jobId: JOB_ID state: QUEUED
Agora, é possível monitorar seu job de treinamento.
Além dos campos region
e encryptionConfig
, é possível personalizar a configuração
do job de treinamento para atender às suas necessidades. Também
é possível usar um contêiner personalizado para
treinamento.
A seguir
- Saiba mais sobre CMEK no Google Cloud.
- Saiba como usar CMEK com outros produtos do Google Cloud .
- Para saber como configurar opções adicionais além de CMEK, leia o guia para executar um job de treinamento.