Encripta un disco de arranque de una VM de TPU con una clave de encriptación administrada por el cliente (CMEK) con Compute Engine
De forma predeterminada, Cloud TPU encripta el contenido del cliente almacenado 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, incluido el de 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).
Para usar una CMEK, crea un llavero de claves.
Crea tu llavero de claves en la misma ubicación en la que creas tu VM o porción de TPU. Por ejemplo, una VM de TPU en la zona us-central1-a solo puede usar una clave en la región us-central1.
A continuación, crea una clave en tu llavero de claves. Después de crear una CMEK, permite que la cuenta de servicio de Compute Engine acceda a tu clave.
Concede permisos para usar la clave
Otorga 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 el proyecto de 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 tu 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 Permisos.
Haz clic en Otorgar acceso. Se abrirá el panel Otorgar acceso.
En el campo Principales nuevas, ingresa el nombre del agente de servicio de Compute Engine:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.comReemplaza PROJECT_NUMBER por el número del proyecto de Google Cloud .
En el menú Seleccionar un rol, elige 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 o una plantilla de instancias para un grupo de instancias administrado (MIG) con la marca --boot-disk-kms-key.
Crea una sola instancia de VM de TPU con una CMEK
Para especificar una CMEK cuando creas una sola VM de TPU, usa la marca --boot-disk-kms-key en el 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
Reemplaza los marcadores de posición que se indican más abajo:
- TPU_NAME: Es el nombre de tu VM de TPU.
- MACHINE_TYPE: El tipo de máquina de la VM de TPU, por ejemplo,
ct6e-standard-8t. - IMAGE_FAMILY: Es la familia de imágenes del SO de la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca
--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO. - IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO.
Para las imágenes de TPU, es
ubuntu-os-accelerator-images. - ZONE: La zona de la VM de TPU, por ejemplo,
us-central1-b. - KEY_PROJECT_ID: Es el proyecto que contiene la clave de encriptación.
- 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 tu clave.
Crea un MIG con una porción de un solo host con una CMEK
Para usar una CMEK con un MIG, especifica la clave cuando crees la plantilla de instancias.
Crea una plantilla de instancias con la marca
--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_NAMEReemplaza los marcadores de posición que se indican más abajo:
- INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.
- MACHINE_TYPE: Es el tipo de máquina de la VM de TPU, por ejemplo,
ct6e-standard-8t. - IMAGE_FAMILY: Es la familia de imágenes del SO para la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca
--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO. - IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO.
Para las imágenes de TPU, es
ubuntu-os-accelerator-images. - KEY_PROJECT_ID: Es el proyecto que contiene la clave de encriptación.
- 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 tu clave.
Crea un MIG con la plantilla:
gcloud compute instance-groups managed create MIG_NAME \ --size=MIG_SIZE \ --template=INSTANCE_TEMPLATE_NAME \ --zone=ZONE \ --size=MIG_SIZEReemplaza los marcadores de posición que se indican más abajo:
- MIG_NAME: Es el nombre de tu MIG.
- MIG_SIZE: Es la cantidad de VMs de TPU en el MIG.
- INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias que se usará.
- ZONE: La zona de la VM de TPU, por ejemplo,
us-central1-b. - MIG_SIZE: Es la cantidad de VMs de TPU en el MIG. Para una VM de TPU de host único, establece el tamaño en 1.
Crea un MIG con una segmentación de varios hosts con una CMEK
Cuando crees un MIG de segmentación de varios hosts, especifica la clave de encriptación en la plantilla de instancias.
Crea la plantilla de instancias.
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_NAMEReemplaza los marcadores de posición que se indican más abajo:
- INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.
- MACHINE_TYPE: Es el tipo de máquina de la VM de TPU, por ejemplo,
ct6e-standard-8t. - IMAGE_FAMILY: Es la familia de imágenes del SO para la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca
--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO. - IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO.
Para las imágenes de TPU, es
ubuntu-os-accelerator-images. - KEY_PROJECT_ID: Es el proyecto que contiene la clave de encriptación.
- 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 tu clave.
Crea una política de cargas de trabajo.
El siguiente comando crea una política de cargas de trabajo:
gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \ --type=high-throughput \ --accelerator-topology=TOPOLOGYReemplaza los marcadores de posición que se indican más abajo:
- WORKLOAD_POLICY_NAME: Es el nombre de tu política de carga de trabajo.
- TOPOLOGY: Es la topología de las VMs de TPU, por ejemplo,
4x4x8.
Crea el 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_NAMEReemplaza los marcadores de posición que se indican más abajo:
- MIG_NAME: Es el nombre de tu MIG.
- MIG_SIZE: Es la cantidad de VMs en el MIG. Este valor se valida en función de la topología especificada en la política de carga de trabajo.
- INSTANCE_TEMPLATE_NAME: El nombre de la plantilla de instancias
- ZONE: Es la zona de tu MIG.
- WORKLOAD_POLICY_NAME: Es el nombre de tu política de carga de trabajo.
Para obtener información sobre cómo crear VMs de TPU con CMEK usando GKE, consulta Usa claves de encriptación administradas por el cliente en la documentación de GKE.
CMEK borradas o revocadas
Si se revoca o borra una CMEK, no se apagará de forma automática ninguna VM de TPU que use un disco de arranque encriptado con la CMEK borrada o revocada. La VM de TPU aún accede a los datos del disco de arranque encriptado hasta que apagas o reinicias 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á de forma correcta.