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
- Na Google Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves que contém a chave.
Clique no nome da chave que quer modificar.
Clique no separador Autorizações.
Clique em
Conceder acesso. O painel Conceder acesso à chave é aberto.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.No menu Selecionar uma função, selecione Encriptador/desencriptador de CryptoKey do Cloud KMS.
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.