Criptografar um disco de inicialização de VM de TPU com uma chave de criptografia gerenciada pelo cliente (CMEK)

Por padrão, o Cloud TPU criptografa o conteúdo do cliente em repouso. A Cloud TPU executa a criptografia, e você não precisa fazer nada. Essa opção é chamada de criptografia padrão do Google.

Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo 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 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 gerente de chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.

Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos da Cloud TPU é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

Depois de criar uma CMEK, você precisará conceder à conta de serviço do Compute Engine acesso à 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 seu projeto Google Cloud . Ao conceder esse papel, o serviço do Compute Engine pode acessar e usar sua 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 de projeto da chave;

Console

  1. No console Google Cloud , acesse a página Gerenciamento de chaves.

    Vá para Gerenciamento de chaves

  2. Clique no nome do keyring que contém a chave.

  3. Clique no nome da chave que você quer modificar.

  4. Clique na guia Permissões.

  5. Clique em CONCEDER ACESSO. O painel Conceder acesso à chave será aberto.

  6. No campo Novos principais, insira o nome do agente de serviço do Compute Engine:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
    

    Substitua PROJECT_NUMBER pelo número do seu projeto Google Cloud.

  7. No menu Selecionar um papel, escolha Criptografador/descriptografador do Cloud KMS CryptoKey.

  8. Clique em Salvar.

Criar uma VM de TPU com uma CMEK

É possível especificar uma CMEK ao criar uma VM de TPU usando a API TPU ou a API Queued Resources.

API TPU

Para especificar uma CMEK ao criar uma VM da TPU usando a API Cloud TPU, use o argumento --boot-disk no comando tpu-vm create para especificar a chave de criptografia a ser usada:

gcloud compute tpus tpu-vm create TPU_NAME \
    --zone ZONE \
    --boot-disk kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
    --version=TPU_RUNTIME_VERSION \
    --accelerator-type=ACCLERATOR_TYPE

Substitua:

  • TPU_NAME: o nome da VM da TPU.
  • ZONE: a zona em que você planeja criar a Cloud TPU.
  • PROJECT_ID: o ID do projeto Google Cloud .
  • REGION: a região em que você criou o keyring
  • RING_NAME: o nome do keyring;
  • KEY_NAME: o nome da chave;
  • TPU_RUNTIME_VERSION: a versão do software da Cloud TPU.
  • ACCELERATOR_TYPE: o tipo de acelerador para a Cloud TPU que você quer criar. Para mais informações sobre os tipos de aceleradores compatíveis com cada versão da TPU, consulte Versões da TPU.

API Queued Resources

Para especificar uma CMEK ao criar uma VM da TPU usando a API Queued Resources, use o argumento --bootdisk no comando queued-resources create para especificar a chave de criptografia a ser usada:

gcloud compute tpus queued-resources create QUEUED_RESOURCE_ID \
    --zone ZONE \
    --node-id NODE_ID \
    --boot-disk kms-key=projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME \
    --runtime-version=TPU_RUNTIME_VERSION \
    --accelerator-type=ACCLERATOR_TYPE

Substitua:

  • QUEUED_RESOURCE_ID: o ID atribuído pelo usuário da solicitação de recurso em fila.
  • ZONE: a zona em que você planeja criar a Cloud TPU.
  • NODE_ID: o ID atribuído pelo usuário da Cloud TPU criada quando a solicitação de recurso enfileirado é alocada.
  • PROJECT_ID: o ID do projeto Google Cloud .
  • REGION: a região em que você criou o keyring
  • RING_NAME: o nome do keyring;
  • KEY_NAME: o nome da chave;
  • TPU_RUNTIME_VERSION: a versão do software da Cloud TPU.
  • ACCELERATOR_TYPE: o tipo de acelerador para a Cloud TPU que você quer criar. Para mais informações sobre os tipos de aceleradores compatíveis com cada versão da TPU, consulte Versões da TPU.

Para informações sobre 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, qualquer VM de TPU que use um disco de inicialização criptografado com a CMEK excluída ou revogada não será desligada automaticamente. A VM da TPU ainda poderá acessar os dados no disco de inicialização criptografado até que a VM seja desligada ou reiniciada. Isso permite recuperar seus dados se você restaurar o acesso a uma chave revogada ou excluída. Se você reativar uma chave, poderá iniciar ou reparar sua VM da TPU, e o disco de inicialização será descriptografado e carregado.