Encriptar um disco de arranque de VM de TPU com uma chave de encriptação gerida pelo cliente (CMEK)

Por predefinição, o Cloud TPU encripta o conteúdo do cliente em repouso. A Cloud TPU processa a encriptação por si, sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.

Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEK) no Cloud KMS com serviços integrados com CMEK, incluindo a Cloud TPU. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização, autorizações de acesso e limites criptográficos. A utilização do Cloud KMS também permite ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.

Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos da Cloud TPU é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).

Depois de criar uma CMEK, tem de conceder acesso à sua chave à conta de serviço do Compute Engine.

Conceda autorização para usar a chave

Tem de conceder a função da IAM Encriptador/desencriptador de CryptoKey do Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) na chave do Cloud KMS ao agente de serviço do Compute Engine no seu Google Cloud projeto. A concessão desta função permite que o serviço do Compute Engine aceda e utilize a sua chave de encriptação.

Para conceder a função roles/cloudkms.cryptoKeyEncrypterDecrypter ao agente de serviço do Compute Engine, selecione uma das seguintes opções:

gcloud

Execute o seguinte 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 o seguinte:

  • KEY_NAME: o nome da sua chave.
  • LOCATION: a localização onde criou o conjunto de chaves.
  • RING_NAME: o nome do seu conjunto de chaves.
  • PROJECT_NUMBER: o número do seu Google Cloud projeto.
  • KEY_PROJECT_ID: o ID do projeto principal.

Consola

  1. Na Google Cloud consola, aceda à página Gestão de chaves.

    Aceda à gestão de chaves

  2. Clique no nome do conjunto de chaves que contém a chave.

  3. Clique no nome da chave que quer modificar.

  4. Clique no separador Autorizações.

  5. Clique em Conceder acesso. O painel Conceder acesso à chave é aberto.

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

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

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

  7. No menu Selecionar uma função, selecione Encriptador/desencriptador de CryptoKey do Cloud KMS.

  8. Clique em Guardar.

Crie uma VM de TPU com uma CMEK

Pode especificar uma CMEK ao criar uma VM de TPU através da API TPU ou da API Queued Resources.

API TPU

Para especificar uma CMEK ao criar uma VM de TPU através da API Cloud TPU, use o argumento --boot-disk no comando tpu-vm create para especificar a chave de encriptação a usar:

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 o seguinte:

  • TPU_NAME: o nome da sua VM da TPU.
  • ZONE: a zona onde planeia criar a sua Cloud TPU.
  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • REGION: a região onde criou o conjunto de chaves.
  • RING_NAME: o nome do seu conjunto de chaves.
  • KEY_NAME: o nome da sua chave.
  • TPU_RUNTIME_VERSION: a versão do software do Cloud TPU.
  • ACCELERATOR_TYPE: o tipo de acelerador para a TPU do Google Cloud que quer criar. Para mais informações sobre os tipos de aceleradores suportados para cada versão da TPU, consulte o artigo Versões da TPU.

API Queued Resources

Para especificar uma CMEK ao criar uma VM de TPU através da API Queued Resources, use o argumento --bootdisk no comando queued-resources create para especificar a chave de encriptação a usar:

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 o seguinte:

  • QUEUED_RESOURCE_ID: o ID atribuído pelo utilizador do pedido de recurso em fila.
  • ZONE: a zona onde planeia criar a sua Cloud TPU.
  • NODE_ID: o ID atribuído pelo utilizador do Cloud TPU que é criado quando o pedido de recurso em fila é atribuído.
  • PROJECT_ID: o ID do seu Google Cloud projeto.
  • REGION: a região onde criou o conjunto de chaves.
  • RING_NAME: o nome do seu conjunto de chaves.
  • KEY_NAME: o nome da sua chave.
  • TPU_RUNTIME_VERSION: a versão do software do Cloud TPU.
  • ACCELERATOR_TYPE: o tipo de acelerador para a TPU do Google Cloud que quer criar. Para mais informações sobre os tipos de aceleradores suportados para cada versão da TPU, consulte o artigo Versões da TPU.

Para obter informações sobre como criar VMs de TPUs com CMEKs através do GKE, consulte o artigo Use chaves de encriptação geridas pelo cliente na documentação do GKE.

CMEKs eliminadas ou revogadas

Se uma CMEK for revogada ou eliminada, qualquer VM de TPU que use um disco de arranque encriptado com a CMEK eliminada ou revogada não é encerrada automaticamente. A VM de TPU continua a poder aceder aos dados no disco de arranque encriptado até que a VM seja encerrada ou reiniciada. Isto permite-lhe recuperar os seus dados se restaurar o acesso a uma chave revogada ou eliminada. Se reativar uma chave, pode iniciar ou reparar a VM de TPU, e o disco de arranque é desencriptado e carregado com êxito.