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

  1. En la consola de Google Cloud , ve a la página Administración de claves.

    Ir a Administración de claves

  2. Haz clic en el nombre del llavero de claves que contiene la clave.

  3. Haz clic en el nombre de la clave que deseas modificar.

  4. Haz clic en la pestaña Permisos.

  5. Haz clic en Grant access. Se abrirá el panel Otorgar acceso a la clave.

  6. 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.

  7. En el menú Selecciona un rol, selecciona Encriptador/desencriptador de CryptoKey de Cloud KMS.

  8. 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.