Criptografar um disco de inicialização de VM de TPU com uma chave de criptografia gerenciada pelo cliente (CMEK) com o Compute Engine
Por padrão, o Cloud TPU criptografa o conteúdo do cliente em repouso. Ele lida com a criptografia e você não precisa fazer nada. Essa opção é chamada de criptografia padrão do Google.
Se você quiser controlar as chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, como o Cloud TPU. Ao usar chaves do Cloud KMS, é possível controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e de acesso e os limites criptográficos. Com o Cloud KMS, também é possível visualizar registros de auditoria e controlar ciclos de vida de chaves. Em vez de o Google ser proprietário e responsável pelo gerenciamento das chaves de criptografia de chaves (KEKs) simétricas que protegem os dados, você controla e gerencia essas chaves no Cloud KMS.
Depois que você configurar os recursos com CMEKs, a experiência de acesso aos recursos do Cloud TPU vai ser semelhante ao uso da criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
Para usar uma CMEK, crie um keyring.
Crie o keyring no mesmo local em que você cria
a VM ou fração da TPU. Por exemplo, uma VM de TPU na zona us-central1-a só
pode usar uma chave na região us-central1.
Em seguida, crie uma chave no keyring. Depois de criar uma CMEK, permita que a conta de serviço do Compute Engine acesse sua chave.
Conceder permissão para usar a chave
Conceda o papel do IAM Criptografador/descriptografador de CryptoKey
do Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) na
chave do Cloud KMS ao agente de serviço do Compute Engine
no projeto do Google Cloud . Ao conceder esse papel, o serviço do Compute Enginee pode acessar e usar a chave de criptografia.
Para conceder o papel roles/cloudkms.cryptoKeyEncrypterDecrypter ao
agente de serviço do Compute Engine, selecione uma das seguintes opções:
gcloud
Execute este comando:
gcloud kms keys add-iam-policy-binding KEY_NAME \
--location LOCATION \
--keyring RING_NAME \
--member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--project KEY_PROJECT_ID
Substitua:
- KEY_NAME: o nome da chave
- LOCATION: o local em que você criou o keyring.
- RING_NAME: o nome do keyring
- PROJECT_NUMBER: o número do projeto do Google Cloud .
- KEY_PROJECT_ID: o ID do projeto da chave.
Console
- No console do Google Cloud , acesse a página Gerenciamento de chaves.
Clique no nome do keyring que contém a chave.
Clique no nome da chave que você quer modificar.
Clique em Permissões.
Clique em Permitir acesso. O painel Conceder acesso será aberto.
No campo Novos principais, insira o nome do agente de serviço do Compute Engine:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.comSubstitua PROJECT_NUMBER pelo número do projeto Google Cloud .
No menu Selecionar papel, escolha Criptografador/descriptografador de CryptoKey do Cloud KMS.
Clique em Salvar.
Criar uma VM de TPU com uma CMEK
É possível especificar uma CMEK ao criar uma VM de TPU ou um modelo de instância para um
grupo gerenciado de instâncias (MIG) usando a flag --boot-disk-kms-key.
Criar uma única instância de VM de TPU com uma CMEK
Para especificar uma CMEK ao criar uma única VM de TPU, use a flag --boot-disk-kms-key
no comando gcloud compute instances create:
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE \
--boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
Substitua os seguintes marcadores de posição:
- TPU_NAME: um nome para sua VM de TPU.
- MACHINE_TYPE: o tipo de máquina
para a VM da TPU, por exemplo,
ct6e-standard-8t. - IMAGE_FAMILY: a família de imagens do SO
para a VM da TPU. Se você quiser instalar uma versão específica do SO, use a flag
--image. Para mais informações sobre imagens do SO, consulte Imagens do SO. - IMAGE_PROJECT: o projeto que contém a imagem do SO.
Para imagens de TPU, é
ubuntu-os-accelerator-images. - ZONE: a zona da VM de TPU, por exemplo,
us-central1-b. - KEY_PROJECT_ID: o projeto que contém a chave de criptografia.
- REGION: a região em que você criou o keyring
- RING_NAME: o nome do keyring
- KEY_NAME: o nome da chave
Criar um MIG com uma fração de host único e uma CMEK
Para usar uma CMEK com um MIG, especifique a chave ao criar o modelo de instância.
Crie um modelo de instância usando a flag
--boot-disk-kms-key:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAMESubstitua os seguintes marcadores de posição:
- INSTANCE_TEMPLATE_NAME: um nome para o modelo de instância.
- MACHINE_TYPE: o tipo de máquina
para a VM da TPU, por exemplo,
ct6e-standard-8t. - IMAGE_FAMILY: a família de imagens do SO
para a VM da TPU. Se você quiser instalar uma versão específica do SO, use a flag
--image. Para mais informações sobre imagens do SO, consulte Imagens do SO. - IMAGE_PROJECT: o projeto que contém a imagem do SO.
Para imagens de TPU, é
ubuntu-os-accelerator-images. - KEY_PROJECT_ID: o projeto que contém a chave de criptografia.
- REGION: a região em que você criou o keyring
- RING_NAME: o nome do keyring
- KEY_NAME: o nome da chave
Crie um MIG usando o modelo:
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE \ --size=MIG_SIZESubstitua os seguintes marcadores de posição:
- MIG_NAME: um nome para o MIG.
- MIG_SIZE: o número de VMs de TPU no MIG.
- INSTANCE_TEMPLATE_NAME: o nome do modelo de instância a ser usado.
- ZONE: a zona da VM de TPU, por exemplo,
us-central1-b. - MIG_SIZE: o número de VMs de TPU no MIG. Para uma VM de TPU de host único, defina o tamanho como 1.
Criar um MIG com uma fração de vários hosts e uma CMEK
Ao criar um MIG de fração de vários hosts, especifique a chave de criptografia no modelo de instância.
Crie o modelo de instância.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAMESubstitua os seguintes marcadores de posição:
- INSTANCE_TEMPLATE_NAME: um nome para o modelo de instância.
- MACHINE_TYPE: o tipo de máquina
para a VM da TPU, por exemplo,
ct6e-standard-8t. - IMAGE_FAMILY: a família de imagens do SO
para a VM da TPU. Se você quiser instalar uma versão específica do SO, use a flag
--image. Para mais informações sobre imagens do SO, consulte Imagens do SO. - IMAGE_PROJECT: o projeto que contém a imagem do SO.
Para imagens de TPU, é
ubuntu-os-accelerator-images. - KEY_PROJECT_ID: o projeto que contém a chave de criptografia.
- REGION: a região em que você criou o keyring
- RING_NAME: o nome do keyring
- KEY_NAME: o nome da chave
Crie uma política de carga de trabalho.
O comando a seguir cria uma política de carga de trabalho:
gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \ --type=high-throughput \ --accelerator-topology=TOPOLOGYSubstitua os seguintes marcadores de posição:
- WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
- TOPOLOGY: a topologia das VMs de TPU, por exemplo,
4x4x8.
Crie o MIG.
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE \ --default-action-on-vm-failure=do-nothing \ --workload-policy=WORKLOAD_POLICY_NAMESubstitua os seguintes marcadores de posição:
- MIG_NAME: o nome do MIG.
- MIG_SIZE: o número de VMs no MIG. Esse valor é validado em relação à topologia especificada na política de carga de trabalho.
- INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
- ZONE: a zona do MIG.
- WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
Para saber como criar VMs de TPU com CMEKs usando o GKE, consulte Usar chaves de criptografia gerenciadas pelo cliente na documentação do GKE.
CMEKs excluídas ou revogadas
Se uma CMEK for revogada ou excluída, as VMs de TPU que usarem um disco de inicialização criptografado com ela não serão desligadas automaticamente. A VM de TPU ainda acessa os dados no disco de inicialização criptografado até que você desligue ou reinicie a VM. Com isso, é possível recuperar os dados caso você restaure o acesso a uma chave revogada ou excluída. Se você reativar uma chave, poderá iniciar ou reparar a VM de TPU e o disco de inicialização será descriptografado e carregado.