En este documento se explica cómo encriptar discos con claves de encriptado proporcionadas por el cliente.
Para obtener información sobre el cifrado de disco, consulta el artículo Acerca del cifrado de disco.
Para obtener información sobre cómo cifrar discos con claves de cifrado gestionadas por el cliente (CMEK), consulta el artículo Proteger recursos con claves de Cloud KMS.
Si usas CSEKs, proporcionas tus propias claves de cifrado y Compute Engine las usa para proteger las Google-owned and Google-managed encryption keys que se utilizan para cifrar y descifrar tus datos. Solo los usuarios que puedan proporcionar la clave correcta podrán usar los recursos protegidos por una clave de encriptado proporcionada por el cliente (CSEK).
Google no almacena tus claves en sus servidores y no puede acceder a tus datos protegidos a menos que proporciones la clave. Esto también significa que, si olvidas o pierdes tu clave, Google no podrá recuperarla ni recuperar los datos cifrados con ella.
Cuando eliminas un volumen de disco persistente, Google descarta las claves de cifrado, por lo que los datos no se pueden recuperar. Este proceso es irreversible,
Antes de empezar
- Consulta información sobre los discos, las imágenes y las capturas de disco.
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Restricciones
En el caso de las CSEK, se aplican las siguientes restricciones:
Restricciones generales
La disponibilidad de las claves de cifrado proporcionadas por el cliente depende de la ubicación de tu cuenta de facturación, no de la ubicación del recurso.
Las claves de cifrado proporcionadas por el cliente no están disponibles para las cuentas de facturación de los siguientes países:
- Brasil
- India
Restricciones técnicas
Con tu propia clave solo puedes encriptar discos persistentes nuevos. Los discos persistentes anteriores no se pueden encriptar con tu clave.
No puedes usar tus propias claves con discos SSD locales porque estos usan Google-owned and Google-managed encryption keys. Las claves se eliminan cuando se termina la VM.
Compute Engine no almacena claves de cifrado con plantillas de instancia, por lo que debes almacenar tus propias claves en KMS para cifrar discos en un grupo de instancias gestionado.
No puedes suspender instancias que tengan discos protegidos con CSEK vinculados.
Especificaciones
En esta sección se describe la especificación del cifrado y el formato de las CSEK.
Cifrado
Compute Engine usa tu clave de cifrado para proteger las claves de cifrado de Google con el cifrado AES-256.
Formato de clave obligatorio
Tú eres quien debe generar y gestionar tu clave. Debes proporcionar a Compute Engine una clave que sea una cadena de 256 bits codificada en Base64 estándar RFC 4648.
A continuación, se muestra un ejemplo de una clave codificada en base64, generada con la cadena "Hello from Google Cloud Platform".
SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=
Se puede generar con la siguiente secuencia de comandos:
read -sp "String:" ; \ [[ ${#REPLY} == 32 ]] && \ echo "$(echo -n "$REPLY" | base64)" || \ (>&2 echo -e "\nERROR:Wrong Size"; false)
Encapsulado de claves RSA
Además de codificar tu clave en base64, puedes envolverla con un certificado de clave pública RSA proporcionado por Google, codificar la clave en base64 y, a continuación, usarla en tus solicitudes.
El encapsulado RSA es un proceso en el que se usa una clave pública para cifrar los datos. Una vez que los datos se han cifrado con la clave pública, solo se pueden descifrar con la clave privada correspondiente. En este caso, la clave privada solo la conocen los Google Cloud servicios. Al envolver tu clave con el certificado RSA, te aseguras de que solo los servicios de Google Cloud puedan desenvolverla y usarla para proteger tus datos.
Para obtener más información, consulta Cifrado RSA.
Para crear una clave envuelta en RSA para Compute Engine, sigue estos pasos:
- Encapsula tu clave con la clave pública proporcionada en un certificado que gestiona Compute Engine. Asegúrate de encapsular la clave con el relleno OAEP, no con el relleno PKCS #1 v1.5.
- Codifica tu clave envuelta en RSA con la codificación base64 estándar.
Descarga el certificado público que mantiene Compute Engine desde:
https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Hay muchas formas de generar y envolver con RSA tu clave. Utiliza el método que te resulte más familiar. A continuación, se muestran dos ejemplos de envoltorio RSA de tu clave que puedes usar.
Ejemplo 1
En las siguientes instrucciones se usa la utilidad de línea de comandos openssl para envolver y codificar una clave con RSA.
Opcional: Genera una clave aleatoria de 256 bits (32 bytes). Si ya tienes una clave que quieres usar, puedes saltarte este paso. Hay muchas formas de generar una clave. Por ejemplo:
$ head -c 32 /dev/urandom | LC_CTYPE=C tr '\n' = > mykey.txt
Descarga el certificado de clave pública:
$ curl -s -O -L https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Extrae la clave pública del certificado:
$ openssl x509 -pubkey -noout -in google-cloud-csek-ingress.pem > pubkey.pem
Envuelve tu clave con RSA. Sustituye
mykey.txt
por tu propio archivo de clave.$ openssl rsautl -oaep -encrypt -pubin -inkey pubkey.pem -in mykey.txt -out rsawrappedkey.txt
Codifica tu clave envuelta en RSA en base64.
$ openssl enc -base64 -in rsawrappedkey.txt | tr -d '\n' | sed -e '$a\' > rsawrapencodedkey.txt
Ejemplo 2
A continuación, se muestra un ejemplo de secuencia de comandos de Python que genera una cadena aleatoria de 256 bits (32 bytes) y crea una clave envuelta en RSA codificada en base64 mediante la biblioteca cryptography:
Tu llave ya está lista para usarse.
Usar una clave encapsulada con RSA
Con la CLI de Google Cloud, puedes proporcionar una clave normal y una clave envuelta en RSA de la misma forma.
En la API, usa la propiedad
sha256
en lugar derawKey
si quieres usar una clave encapsulada con RSA.Cifrar recursos con CSEK mediante la herramienta de línea de comandos
Configuración
Las claves de cifrado se pueden usar a través de Google Cloud CLI.
Archivo de claves
Cuando usas la herramienta de línea de comandos
gcloud compute
para definir tus claves, proporcionas claves codificadas mediante un archivo de claves que contiene tus claves codificadas como una lista JSON. Un archivo de claves puede contener varias claves, lo que te permite gestionar muchas claves en un solo lugar. También puedes crear archivos de claves individuales para gestionar cada clave por separado. Un archivo de claves solo se puede usar con la CLI de gcloud. Cuando se usa REST, la clave debe proporcionarse directamente en la solicitud.Cada entrada de su archivo de claves debe proporcionar lo siguiente:
- El URI completo del recurso que protege la clave
- La clave correspondiente
- El tipo de clave, ya sea
raw
orsa-encrypted
Cuando usas el archivo de claves en tus solicitudes, la herramienta busca recursos coincidentes y usa las claves correspondientes. Si no se encuentran recursos que coincidan, la solicitud falla.
Un archivo de claves de ejemplo tiene este aspecto:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "acXTX3rxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY+c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/my-private-snapshot", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Prácticas recomendadas para gestionar el archivo de claves
Si usas un archivo de claves, restringe el acceso a tu archivo solo a las personas que lo necesiten. Asegúrate de definir los permisos adecuados en estos archivos y considera la posibilidad de cifrarlos con herramientas adicionales:
- En Windows, puedes usar BitLocker o Sistema de archivos de cifrado (EFS).
- En macOS, te recomendamos que uses FileVault 2.
- En Linux, puedes usar Linux Unified Key Setup (LUKS) o eCryptfs.
Encriptar un disco persistente nuevo con CSEK
Puedes encriptar un disco persistente nuevo proporcionando una clave durante la creación de la VM o del disco.
Consola
Ve a la página Discos.
Haz clic en Crear disco e introduce las propiedades del nuevo disco.
En Cifrado, selecciona Clave proporcionada por el cliente.
Proporciona la clave de cifrado del disco en el cuadro de texto y selecciona Clave encapsulada si la clave se ha encapsulado con la clave RSA pública.
gcloud
En la herramienta
gcloud compute
, cifra un disco con la marca--csek-key-file
durante la creación de la VM. Si utilizas una clave encapsulada con RSA, usa el componentegcloud beta
:gcloud (beta) compute instances create example-instance --csek-key-file example-file.json
Para cifrar un disco persistente independiente, sigue estos pasos:
gcloud (beta) compute disks create example-disk --csek-key-file example-file.json
REST
Puedes cifrar un disco usando la propiedad
diskEncryptionKey
y haciendo una solicitud a la API v1 para obtener una clave sin envolver (no RSA) o a la API beta para obtener una clave envuelta con RSA. Proporciona una de las siguientes propiedades en tu solicitud:rawKey
: si tu clave está codificada en base64rsaEncryptedKey
: si tu clave está envuelta en RSA y codificada en base64
Por ejemplo, para encriptar un disco nuevo durante la creación de una VM con una clave envuelta en RSA, haz lo siguiente:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/instances { "machineType": "zones/us-central1-a/machineTypes/e2-standard-2", "disks": [ { "type": "PERSISTENT", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-9-stretch-v20170619" }, "boot": true } ], ... }
Del mismo modo, también puedes usar REST para crear un disco persistente independiente y encriptarlo con tu propia clave:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/ us-central1-a/disks?sourceImage=https%3A%2F%2Fwww.googleapis.com%2Fcompute%2F alpha%2Fprojects%2Fdebian-cloud%2Fglobal%2Fimages%2Fdebian-9-stretch-v20170619 { "name": "new-encrypted-disk-key", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "type": "zones/us-central1-a/diskTypes/pd-standard" }
Crear una captura a partir de un disco cifrado con CSEK
Si creas una captura a partir de un disco cifrado, la captura también debe estar cifrada. Debes especificar una clave para cifrar la instantánea. No puedes convertir discos ni capturas cifrados para que usen el cifrado predeterminado de Compute Engine, a menos que crees una nueva imagen de disco y un nuevo disco persistente.
Las capturas de discos cifrados con CSEK siempre son completas. Esto es diferente de las instantáneas de discos cifrados con claves de cifrado gestionadas por el cliente (CMEK), que son incrementales. El precio de las capturas se basa en su tamaño total, por lo que una captura completa puede costar más que una incremental.
Para crear una captura de disco persistente a partir de un disco cifrado, tu solicitud de creación de la captura debe proporcionar la clave de cifrado que usaste para cifrar el disco persistente.
Consulta las prácticas recomendadas para hacer capturas de discos persistentes antes de crear tu captura.
Consola
Ve a la página Capturas.
Haz clic en Crear copia.
En Disco de origen, elige el disco cifrado del que quieras crear una instantánea.
Proporciona la clave de cifrado del disco en el cuadro de texto y selecciona Clave encapsulada si la clave se ha encapsulado con la clave RSA pública.
Cifra la nueva instantánea proporcionando una clave de cifrado adicional en la sección Cifrado.
REST
Para hacer la solicitud, proporciona la propiedad
sourceDiskEncryptionKey
para acceder al disco persistente de origen. Debe cifrar la nueva instantánea con la propiedadsnapshotEncryptionKey
.Realiza una solicitud a la API v1 para obtener una clave sin envolver (no RSA) o a la API beta para obtener una clave envuelta en RSA.
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk/createSnapshot { "snapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "name": "snapshot-encrypted-disk" }
La propiedad
sourceDiskEncryptionKey
debe coincidir con la clave utilizada para cifrar el disco persistente. De lo contrario, la solicitud fallará.La opción
snapshotEncryptionKey
te permite proporcionar una clave para cifrar la captura de forma que, si se usa para crear discos persistentes, se deba proporcionar una clave coincidente. Esta clave debe seguir el formato de la clave anterior. También puedes dejar esta propiedad sin definir y usar la captura para crear discos persistentes sin necesidad de una clave.Crear una imagen a partir de un disco o una imagen personalizada cifrados con CSEK
Puedes crear imágenes personalizadas a partir de discos persistentes cifrados o copiar imágenes cifradas. No puedes usar la consola para copiar imágenes. Usa la CLI de Google Cloud o REST para copiar imágenes.
Consola
Ve a la página Imágenes.
Haz clic en Crear imagen.
En Disco de origen, elige el disco cifrado del que quieras crear una imagen.
En Cifrado, selecciona una solución de gestión de claves de cifrado.
Si la clave se ha encapsulado con la clave RSA pública, selecciona Clave encapsulada.
gcloud
Sigue las instrucciones para crear una imagen y añade la marca
--csek-key-file
con una ruta al archivo de clave de cifrado del objeto de origen cifrado. Usa el componentegcloud beta
si utilizas una clave encapsulada con RSA:gcloud (beta) compute images create .... --csek-key-file example-file.json
Si quieres cifrar la nueva imagen con tu clave, añade la clave al archivo de claves:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/source-disk", "key": "acX3RqzxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY-c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/the-new-image", "key": "TF0t-cSfl7CT7xRF1LTbAgi7U6XXUNC4zU_dNgx0nQc=", "key-type": "raw" } ]
REST
La solicitud de creación de la API debe contener la propiedad de clave de cifrado del objeto de origen. Por ejemplo, incluya una de las siguientes propiedades en función del tipo de objeto de origen:
- Disco persistente:
sourceDiskEncryptionKey
- Imagen:
sourceImageEncryptionKey
También debe incluir las propiedades
rawKey
orsaEncryptedKey
en función del tipo de clave. Realiza una solicitud a la API v1 para obtener una clave sin envolver (no RSA) o a la API beta para obtener una clave envuelta en RSA. En el siguiente ejemplo se convierte un disco persistente cifrado y envuelto con RSA en una imagen que usa la misma clave de cifrado.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "name": "image-encrypted-disk", "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDisk": "projects/myproject/zones/us-central1-a/disks/source-disks" }
La propiedad
imageEncryptionKey
opcional te permite proporcionar una clave para cifrar la imagen. De esta forma, cuando la imagen se use para crear discos persistentes, se deberá proporcionar una clave coincidente. Esta clave debe seguir el mismo formato que se ha descrito anteriormente. También puede dejar esta propiedad sin definir y la imagen se puede usar para crear discos persistentes sin necesidad de una clave.Cifrar una imagen importada con CSEK
Puedes cifrar una imagen nueva cuando importes manualmente una imagen personalizada a Compute Engine. Antes de importar una imagen, debes crear y comprimir un archivo de imagen de disco y subir ese archivo comprimido a Cloud Storage.
Importa la imagen personalizada de Compute Engine que quieras cifrar. Especifica el URI del archivo comprimido y la ruta del archivo de clave de cifrado.
Consola
Ve a la página Imágenes.
Haz clic en Crear imagen.
En Source (Origen), elige Cloud Storage file (Archivo de Cloud Storage).
En Archivo de Cloud Storage, introduce el URI de Cloud Storage.
En Encriptado, elige Clave proporcionada por el cliente y proporciona la clave de encriptado para encriptar la imagen en el cuadro de texto.
gcloud
Usa el comando
compute images create
para crear una imagen y especifica la marca--csek-key-file
con un archivo de clave de cifrado. Si utilizas una clave encapsulada con RSA, usa el componentegcloud beta
:gcloud (beta) compute images create [IMAGE_NAME] \ --source-uri gs://[BUCKET_NAME]/[COMPRESSED_FILE] \ --csek-key-file [KEY_FILE]
Haz los cambios siguientes:
[IMAGE_NAME]
: el nombre de la nueva imagen personalizada.[BUCKET_NAME]
: el nombre del segmento de Cloud Storage que contiene el archivo de imagen comprimido.[COMPRESSED_FILE]
: el nombre del archivo de imagen comprimido.[KEY_FILE]
: la ruta a un archivo de clave de cifrado en tu estación de trabajo local.
REST
Para cifrar una imagen nueva creada a partir de un archivo RAW, añade la propiedad new
imageEncryptionKey
a la solicitud de creación de la imagen, seguida derawKey
orsaEncryptedKey
. Realiza una solicitud a la API v1 para obtener una clave sin envolver (no RSA) o a la API beta para obtener una clave envuelta con RSA.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "rawDisk": { "source": "http://storage.googleapis.com/example-image/example-image.tar.gz" }, "name": "new-encrypted-image", "sourceType": "RAW", "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Crear un disco persistente a partir de un recurso cifrado con CSEK
Crear un disco a partir de una captura cifrada con CSEK
Consola
Ve a la página Discos.
Haz clic en Crear disco.
En Tipo de origen, selecciona Snapshot.
En Cifrado, selecciona una solución de gestión de claves de cifrado.
Si la clave se ha encapsulado con la clave RSA pública, selecciona Clave encapsulada.
gcloud
En la herramienta
gcloud compute
, proporciona la clave de cifrado de la instantánea con la marca--csek-key-file
al crear el disco. Si utilizas una clave encapsulada con RSA, usa el componentegcloud beta
:gcloud (beta) compute disks create ... --source-snapshot example-snapshot --csek-key-file example-file.json
REST
Para usar una captura cifrada, proporciona el
sourceSnapshotEncryptionKey
en tu solicitud, seguido derawKey
orsaEncryptedKey
. Haz una solicitud a la API v1 para obtener una clave sin envolver (no RSA) o a la API beta para obtener una clave envuelta en RSA. Por ejemplo, a un nuevo disco persistente independiente mediante una captura cifrada:POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-snapshot", "sourceSnapshot": "global/snapshots/encrypted-snapshot", "sourceSnapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Crear un disco a partir de una imagen cifrada con CSEK
Consola
Ve a la página Discos.
Haz clic en Crear disco.
En Tipo de fuente, selecciona Imagen.
En Cifrado, selecciona una solución de gestión de claves de cifrado.
Si la clave se ha encapsulado con la clave RSA pública, selecciona Clave encapsulada.
gcloud
En la herramienta
gcloud compute
, proporciona la clave de cifrado de la imagen mediante la marca--csek-key-file
al crear el disco. Si utilizas una clave encapsulada con RSA, usa el componentegcloud beta
:gcloud (beta) compute disks create ... --image example-image --csek-key-file example-file.json
REST
Para usar una imagen cifrada, proporciona
sourceImageEncryptionKey
, seguido derawKey
orsaEncryptedKey
. Haz una solicitud a la API v1 para obtener una clave sin envolver (no RSA) o a la API beta para obtener una clave envuelta en RSA.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-image", "sourceImageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceImage": "global/images/encrypted-image" }
Asociar un disco encriptado con CSEK a una VM nueva
Consola
Ve a la página Crear una instancia.
En la sección Disco de arranque, haz clic en Cambiar y sigue estos pasos:
- En la página Disco de arranque, haga clic en la pestaña Discos actuales.
- En la lista Disco, elige un disco cifrado que ya tengas para adjuntarlo a la VM.
Introduce la clave de cifrado en el cuadro de texto y selecciona Clave envuelta si la clave se ha envuelto con la clave RSA pública.
Haz clic en Seleccionar.
Continúa con el proceso de creación de la VM.
gcloud
Para crear una VM y adjuntar un disco cifrado, crea un archivo de claves y proporciona la clave mediante la marca
--csek-key-file
al crear la VM. Si utilizas una clave encapsulada con RSA, usa el componentegcloud beta
:gcloud (beta) compute instances create example-instance \ --disk name=example-disk,boot=yes \ --csek-key-file example-file.json
REST
Crea una máquina virtual con la API de Compute Engine y proporciona
rawKey
orsaEncryptedKey
con la especificación del disco. Haz una solicitud a la API v1 para obtener una clave sin envolver (no RSA) o a la API beta para obtener una clave envuelta en RSA.Aquí tienes un fragmento de un ejemplo de especificación de disco:
"disks": [ { "deviceName": "encrypted-disk", "source": "projects/myproject/zones/us-central1-f/disks/encrypted-disk", "diskEncryptionKey": { "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" } } ]
Iniciar o reiniciar VMs que tengan discos encriptados con CSEK
Para obtener información sobre cómo detener o iniciar una VM que tenga discos cifrados, consulta el artículo Reiniciar una VM con un disco cifrado.
Usar la línea de comandos para crear recursos mixtos
Si quieres crear una combinación de recursos cifrados por el cliente y cifrados estándar en una sola solicitud con Google Cloud CLI, puedes usar la marca
--csek-key-file
con un archivo de claves y la marca--no-require-csek-key-create
en tu solicitud. Si proporcionas ambas marcas, la CLI de gcloud creará los recursos cifrados por el cliente que se definan explícitamente en tu archivo de claves, así como los recursos estándar que especifiques.Por ejemplo, supongamos que un archivo de claves contiene lo siguiente:
[ { "uri": "https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Si quieres crear una VM con un disco cifrado por el cliente usando el archivo de claves y, al mismo tiempo, crear una VM con un disco cifrado estándar en la misma solicitud, puedes hacerlo de la siguiente manera:
gcloud beta compute instances create example-disk example-disk-2 \ --csek-key-file mykeyfile.json --no-require-csek-key-create
Normalmente, no sería posible crear
example-disk-2
si especificaras la marca--csek-key-file
porque el disco no está definido explícitamente en el archivo de claves. Al añadir el--no-require-csek-key-create
, se crean ambos discos. Uno se cifra con el archivo de claves y el otro conGoogle-owned and managed keys.Quitar tu CSEK de un disco persistente
Puedes descifrar el contenido de un disco cifrado por el cliente y crear un disco nuevo que use Google-owned and managed keys .
- Crea una imagen del disco cifrado y especifica el cifrado automático para la nueva imagen.
- Usa la imagen nueva para crear un disco persistente.
Una vez que hayas creado el nuevo disco persistente, Compute Engine usará Google-owned and managed keys para proteger el contenido del disco. Las capturas que crees a partir de ese disco también deben usar Google-owned and managed keys
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-12 (UTC).
-