Encripta un disco de arranque de VM de TPU con una clave de encriptación administrada por el cliente (CMEK)
De forma predeterminada, Cloud TPU encripta el contenido del cliente en reposo. Cloud TPU controla la encriptación por ti sin que debas realizar ninguna acción adicional. Esta opción se denomina Encriptación predeterminada de Google.
Si deseas controlar tus claves de encriptación, puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, incluida Cloud TPU. El uso de claves de Cloud KMS te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. El uso de Cloud KMS también te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud KMS.
Después de configurar tus recursos con CMEK, la experiencia de acceso a tus recursos de Cloud TPU es similar a usar la encriptación predeterminada de Google. Para obtener más información sobre tus opciones de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).
Después de crear una CMEK, deberás otorgar acceso a tu clave a la cuenta de servicio de Compute Engine.
Concede permisos para usar la clave
Debes otorgar el rol de IAM de encriptador/desencriptador de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter
) en la clave de Cloud KMS al agente de servicio de Compute Engine en tu proyecto Google Cloud . Otorgar este rol permite que el servicio de Compute Engine acceda a tu clave de encriptación y la use.
Para otorgar el rol roles/cloudkms.cryptoKeyEncrypterDecrypter
al agente de servicio de Compute Engine, selecciona una de las siguientes opciones:
gcloud
Ejecuta el siguiente 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
Reemplaza lo siguiente:
KEY_NAME
: Es el nombre de la clave.LOCATION
: Es la ubicación en la que creaste el llavero de claves.RING_NAME
: Es el nombre del llavero de claves.PROJECT_NUMBER
: Es el número de tu proyecto de Google Cloud .KEY_PROJECT_ID
: Es el ID del proyecto de claves.
Console
- En la consola de Google Cloud , ve a la página Administración de claves.
Haz clic en el nombre del llavero de claves que contiene la clave.
Haz clic en el nombre de la clave que deseas modificar.
Haz clic en la pestaña Permisos.
Haz clic en
Grant access. Se abrirá el panel Otorgar acceso a la clave.En el campo Principales nuevas, ingresa el nombre del agente de servicio de Compute Engine:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
Reemplaza
PROJECT_NUMBER
por el número de tu proyecto Google Cloud.En el menú Selecciona un rol, selecciona Encriptador/desencriptador de CryptoKey de Cloud KMS.
Haz clic en Guardar.
Crea una VM de TPU con una CMEK
Puedes especificar una CMEK cuando creas una VM de TPU con la API de TPU o la API de Queued Resources.
API de TPU
Para especificar una CMEK cuando crees una VM de TPU con la API de Cloud TPU, usa el argumento --boot-disk
del comando tpu-vm create
para especificar la clave de encriptación que se 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
Reemplaza lo siguiente:
TPU_NAME
: El nombre de tu VM de TPU.ZONE
: Es la zona en la que deseas crear tu Cloud TPU.PROJECT_ID
: El ID de tu proyecto de Google Cloud .REGION
: Es la región en la que creaste el llavero de claves.RING_NAME
: Es el nombre del llavero de claves.KEY_NAME
: Es el nombre de la clave.TPU_RUNTIME_VERSION
: La versión de software de Cloud TPU.ACCELERATOR_TYPE
: Es el tipo de acelerador de la Cloud TPU que deseas crear. Para obtener más información sobre los tipos de aceleradores compatibles con cada versión de TPU, consulta Versiones de TPU.
API de Queued Resources
Para especificar una CMEK cuando crees una VM de TPU con la API de Queued Resources, usa el argumento --bootdisk
en el comando queued-resources create
para especificar la clave de encriptación que se 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
Reemplaza lo siguiente:
QUEUED_RESOURCE_ID
: Es el ID asignado por el usuario de la solicitud de recurso en cola.ZONE
: Es la zona en la que deseas crear tu Cloud TPU.NODE_ID
: Es el ID asignado por el usuario de la Cloud TPU que se crea cuando se asigna la solicitud de recursos en cola.PROJECT_ID
: El ID de tu proyecto de Google Cloud .REGION
: Es la región en la que creaste el llavero de claves.RING_NAME
: Es el nombre del llavero de claves.KEY_NAME
: Es el nombre de la clave.TPU_RUNTIME_VERSION
: La versión de software de Cloud TPU.ACCELERATOR_TYPE
: Es el tipo de acelerador de la Cloud TPU que deseas crear. Para obtener más información sobre los tipos de aceleradores compatibles con cada versión de TPU, consulta Versiones de TPU.
Para obtener información sobre cómo crear VMs de TPU con CMEK a través de GKE, consulta Usa claves de encriptación administradas por el cliente en la documentación de GKE.
CMEKs borradas o revocadas
Si se revoca o borra una CMEK, no se apagará automáticamente ninguna VM de TPU que use un disco de arranque encriptado con la CMEK borrada o revocada. La VM de TPU aún podrá acceder a los datos del disco de arranque encriptado hasta que se apague o reinicie la VM. Esto te permite recuperar tus datos si restableces el acceso a una clave revocada o borrada. Si vuelves a habilitar una clave, puedes iniciar o reparar tu VM de TPU, y el disco de arranque se desencriptará y cargará correctamente.