En este tema, se proporciona información sobre cómo encriptar discos con claves de encriptación proporcionadas por el cliente.
Para obtener información sobre la encriptación de discos, consulta Acerca de la encriptación de discos.
Para obtener información sobre la encriptación de discos con claves de encriptación administradas por el cliente (CMEK), consulta Protege recursos mediante claves de Cloud KMS.
Usar CSEKs significa que proporcionas tus propias claves de encriptación y Compute Engine usa tus claves para proteger las claves generadas por Google que se usan para encriptar y desencriptar tus datos. Solo los usuarios que brinden la clave correcta pueden usar los recursos protegidos por una clave de encriptación proporcionada por el cliente.
Google no almacena tus claves en sus servidores ni tiene acceso a tus datos protegidos, a menos que proporciones la clave. Esto también significa que, si olvidas o pierdes la clave, Google no tiene forma de recuperarla ni de recuperar los datos encriptados con la clave perdida.
Cuando borras un disco persistente, Google descarta las claves de encriptación, lo que hace que los datos sean irrecuperables. Este proceso es irreversible.
Antes de comenzar
- Consulta la información sobre imágenes, instantáneas de discos y discos.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
-
Restricciones
En CSEK, se aplican las siguientes restricciones:
Restricciones generales
La disponibilidad de las claves de encriptación 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 encriptación proporcionadas por el cliente no están disponibles para las cuentas de facturación que se encuentran en los siguientes países:
- Brasil
- India
Restricciones técnicas
Solo puedes encriptar discos persistentes nuevos con tu propia clave. No puedes usarla para encriptar discos persistentes existentes.
No puedes usar tus propias claves con SSD locales dado que las SSD locales no persisten una vez finalizada la vida útil de una VM. Los SSD locales ya están protegidos con una clave de encriptación efímera que Google no guarda.
Compute Engine no almacena claves de encriptación con plantillas de instancias, por lo que debes almacenar tus propias claves en KMS para encriptar discos en un grupo de instancias administrado.
No puedes suspender instancias que tengan discos adjuntos protegidos por CSEK.
Especificaciones
En esta sección, se describe la especificación de encriptación y el formato de CSEK.
Encriptación
Compute Engine usa tu clave de encriptación para proteger las claves de encriptación de Google con la encriptación AES-256.
Formato de clave requerido
Depende de ti generar y administrar la clave. Debes proporcionar una clave que sea una string de 256 bits codificada en el formato base64 estándar de la especificación RFC 4648 para Compute Engine.
A continuación, se muestra un ejemplo de una clave codificada en el formato base64, generada con la string “Hello from Google Cloud Platform” ("Google Cloud Platform los saluda").
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)
Unión de clave RSA
Además de codificar tu clave en el formato base64, tienes la opción de unir la clave con un certificado de clave pública RSA que proporcione Google, codificar la clave en el formato base64 y, luego, usar esa clave en tus solicitudes.
La unión de clave RSA es un proceso en el cual usas una clave pública para encriptar los datos. Una vez que esos datos se encriptan con la clave pública, solo se pueden desencriptar con la clave privada correspondiente. En este caso, solo los servicios de Google Cloud tienen conocimiento de la clave privada. Cuando unes tu clave mediante el certificado RSA, te aseguras de que solo los servicios de Google Cloud puedan desunir la clave y usarla para proteger tus datos.
Para obtener más información, consulta Encriptación RSA.
Si deseas crear una clave unida con RSA para Compute Engine, haz lo siguiente:
- Une tu clave con la clave pública proporcionada en un certificado que administre Compute Engine. Asegúrate de unir tu clave con el relleno OAEP, no con la versión 1.5 del relleno PKCS #1.
- Codifica tu clave unida con RSA con la codificación en el formato base64 estándar.
Descarga el certificado público que mantiene Compute Engine desde:
https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Existen muchas formas de generar y unir tu clave con RSA. Usa un método que te resulte conocido. A continuación, se muestran dos ejemplos de unión de clave con RSA que podrías usar.
Ejemplo 1
En las siguientes instrucciones, se usa la utilidad de línea de comandos openssl para codificar y unir una clave a RSA.
Opcional: Genera una clave aleatoria de 256 bits (32 bytes). Si ya tienes una clave que deseas usar, puedes omitir este paso. Existen 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
Une la clave con RSA y asegúrate de reemplazar
mykey.txt
por tu propio archivo de claves.$ openssl rsautl -oaep -encrypt -pubin -inkey pubkey.pem -in mykey.txt -out rsawrappedkey.txt
Codifica la clave unida con RSA en el formato base64.
$ openssl enc -base64 -in rsawrappedkey.txt | tr -d '\n' | sed -e '$a\' > rsawrapencodedkey.txt
Ejemplo 2
A continuación, se muestra una secuencia de comandos de ejemplo de Python que genera una string aleatoria de 256 bits (32 bytes) y crea una clave unida a RSA codificada en el formato base64 con la biblioteca de criptografía:
Tu clave ya está lista para usar.
Usa una clave unida a RSA
Con la CLI de Google Cloud, puedes proporcionar una clave normal y una clave unida con RSA de la misma forma.
En la API, usa la propiedad sha256
en lugar de rawKey
si deseas usar una clave unida con RSA.
Encripta recursos con CSEK mediante la herramienta de línea de comandos
Configuración
Las claves de encriptación se pueden usar mediante Google Cloud CLI.
Archivo de claves
Cuando uses la herramienta de línea de comandos de gcloud compute
para configurar las claves, proporciona claves codificadas con un archivo de claves que contenga las claves codificadas como una lista JSON. Un archivo de claves puede contener varias claves, lo que te permite administrar muchas claves en un solo lugar. De manera alternativa, puedes crear archivos de claves únicas para manejar cada clave por separado. Un archivo de claves solo se puede usar con la CLI de gcloud.
Cuando uses REST, debes proporcionar la clave directamente en la solicitud.
Cada entrada en el archivo de claves debe proporcionar la siguiente información:
- El URI completamente calificado para el recurso que protege la clave
- La clave correspondiente
- El tipo de clave,
raw
orsa-encrypted
Cuando uses el archivo de claves en las solicitudes, la herramienta buscará recursos coincidentes y usará las claves correspondientes. Si no se encuentran recursos coincidentes, la solicitud fallará.
Un archivo de claves de ejemplo se ve de la siguiente manera:
[ { "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 administrar el archivo de claves
Si usas un archivo de claves, restringe el acceso a él solo a aquellos que lo necesitan. Asegúrate de establecer los permisos adecuados en estos archivos y considera encriptar estos archivos con herramientas adicionales:
- En Windows, se recomienda el uso de BitLocker o del sistema de encriptación de archivos (EFS).
- En macOS, considera usar FileVault 2.
- En Linux, se recomienda el uso de la configuración de claves unificadas de Linux (LUKS) o eCryptfs.
Encripta un disco persistente nuevo con CSEK
Puedes proporcionar una clave durante la creación de la VM o el disco para encriptar un disco persistente nuevo.
Console
Ir a la página Discos
Haz clic en Crear disco y, luego, ingresa las propiedades del disco nuevo.
En Encriptación, selecciona Clave administrada por el cliente.
Proporciona la clave de encriptación del disco en el cuadro de texto y selecciona Clave unida si la clave se unió con la clave pública RSA.
gcloud
En la herramienta de gcloud compute
, encripta un disco con la marca --csek-key-file
durante la creación de la instancia. Si usas una clave unida con RSA, usa el componente gcloud beta
:
gcloud (beta) compute instances create example-instance --csek-key-file example-file.json
Para encriptar un disco persistente independiente, usa este comando:
gcloud (beta) compute disks create example-disk --csek-key-file example-file.json
REST
Puedes encriptar un disco si usas la propiedad diskEncryptionKey
y solicitas
a la API v1 una clave sin procesar (no unida con RSA) o a la
API Beta una clave unida con RSA. Proporciona una de las siguientes propiedades en la solicitud:
rawKey
: Si la clave solo está codificada en el formato base64.rsaEncryptedKey
: Si la clave está unida con RSA y codificada en el formato base64
Por ejemplo, para encriptar un disco nuevo durante la creación de la VM con una clave unida con RSA, usa este comando:
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 nuevo 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" }
Crea una instantánea de un disco encriptado con CSEK
Si creas una instantánea desde un disco encriptado, la instantánea también debe estar encriptada. Debes especificar una clave para encriptar la instantánea. No puedes convertir instantáneas o discos encriptados para usar la encriptación predeterminada de Compute Engine, a menos que crees una imagen de disco completamente nueva y un disco persistente nuevo.
Las instantáneas de los discos encriptados con CSEK siempre son instantáneas completas. Esto difiere de las instantáneas de discos encriptados con claves de encriptación administradas por el cliente (CMEK), que son incrementales. Las instantáneas se cobran según el tamaño total de la instantánea, por lo que una instantánea completa puede costar más que una instantánea incremental.
Para crear una instantánea de disco persistente desde un disco encriptado, la solicitud de creación de la instantánea debe proporcionar la clave de encriptación que usaste para encriptar el disco persistente.
Revisa las recomendaciones para instantáneas de discos persistentes antes de crear la instantánea.
Consola
Ir a la página Instantáneas
Haz clic en Crear instantánea.
En Disco de origen, elige el disco encriptado del que deseas crear una instantánea.
Proporciona la clave de encriptación del disco en el cuadro de texto y selecciona Clave unida si la clave se unió con la clave pública RSA.
Proporciona una clave de encriptación adicional en la sección Encriptación para encriptar la instantánea nueva.
REST
Para realizar la solicitud, proporciona la propiedad sourceDiskEncryptionKey
para acceder
al disco persistente de origen. Debes encriptar la instantánea nueva con la propiedad snapshotEncryptionKey
.
Solicita a la API v1 una clave sin procesar (no unida con RSA) o a la API Beta una clave unida con 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 usada para encriptar el disco persistente. De lo contrario, la solicitud fallará.
La propiedad snapshotEncryptionKey
te permite proporcionar una clave para encriptar la instantánea, de modo que, si esta se usa con el fin de crear discos persistentes nuevos, se necesite proporcionar una clave coincidente. Esta clave debe seguir el formato de clave anterior. También puedes optar por dejar esta propiedad sin definir y la instantánea se puede usar para crear discos persistentes nuevos sin la necesidad de usar una clave.
Crea una imagen nueva de un disco o una imagen personalizada encriptada con CSEK
Puedes crear imágenes personalizadas desde los discos persistentes encriptados o copiar imágenes encriptadas. No puedes usar la consola para copiar imágenes. Usa Google Cloud CLI o REST para copiar imágenes.
Consola
Ve a la página Images (Imágenes).
Haga clic en Crear imagen.
En Disco de origen, elige el disco encriptado del que deseas crear una imagen.
En Encriptación, selecciona una solución de administración de claves de encriptación.
Si se unió la clave con la clave RSA pública, selecciona Clave unida.
gcloud
Sigue las instrucciones para crear una imagen y agrega la marca --csek-key-file
con una ruta de acceso al archivo de claves de encriptación para el objeto de origen encriptado. Usa el componente gcloud beta
si usas una clave unida con RSA:
gcloud (beta) compute images create .... --csek-key-file example-file.json
Si deseas encriptar la imagen nueva con tu clave, agrega 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 la clave de encriptación del objeto de origen. Por ejemplo, incluye una de las siguientes propiedades según el tipo de objeto de origen:
- Disco persistente:
sourceDiskEncryptionKey
- Imagen:
sourceImageEncryptionKey
También incluye las propiedades rawKey
o rsaEncryptedKey
según el tipo de clave. Solicita a la API v1 una clave sin procesar (no unida con RSA) o a la API Beta una clave unida con RSA. En el siguiente ejemplo, un disco persistente encriptado y unido con RSA se convierte en una imagen que usa la misma clave de encriptación.
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 encriptar la imagen, de modo que se deba proporcionar una clave coincidente cuando esta se use con el fin de crear discos persistentes nuevos. Esta clave debe seguir el mismo formato de clave que se describió antes. También puedes optar por dejar esta propiedad sin definir y la imagen se puede usar para crear discos persistentes nuevos sin la necesidad de usar una clave.
Encripta una imagen importada con CSEK
Puedes encriptar una imagen nueva si importas una imagen personalizada de forma manual 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 deseas encriptar. Especifica el URI para el archivo comprimido y selecciona una ruta para el archivo de claves de encriptación.
Console
Ve a la página Images (Imágenes).
Haga clic en Crear imagen.
En Fuente, elige Archivo de Cloud Storage.
En Archivo de Cloud Storage, ingresa el URI de Cloud Storage.
En Encriptación, elige Clave proporcionadas por el cliente y proporciona la clave de encriptación para encriptar la imagen en el cuadro de texto.
gcloud
Usa el comando compute images create
para crear una imagen nueva y especifica la marca --csek-key-file
con un archivo de claves de encriptación. Si usas una clave unida con RSA, usa el componente gcloud beta
:
gcloud (beta) compute images create [IMAGE_NAME] \ --source-uri gs://[BUCKET_NAME]/[COMPRESSED_FILE] \ --csek-key-file [KEY_FILE]
Reemplaza lo siguiente:
[IMAGE_NAME]
por el nombre de la imagen personalizada nueva[BUCKET_NAME]
: por el nombre del bucket de Cloud Storage que contiene el archivo de imagen comprimido.[COMPRESSED_FILE]
: por el nombre del archivo de imagen comprimido.[KEY_FILE]
por la ruta a un archivo de claves de encriptación en la estación de trabajo local.
REST
Si deseas encriptar una imagen nueva creada a partir de un archivo RAW, agrega la propiedad imageEncryptionKey
nueva a la solicitud de creación de la imagen, seguida de rawKey
o rsaEncryptedKey
. Solicita a la API v1 una clave sin procesar (no unida con RSA) o a la API Beta una clave unida 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==" } }
Crea un disco persistente de un recurso encriptado con CSEK
Crea un disco de una instantánea encriptada con CSEK
Console
Ir a la página Discos
Haz clic en Crear disco.
En Tipo de origen, selecciona Instantánea.
En Encriptación, selecciona una solución de administración de claves de encriptación.
Si se unió la clave con la clave RSA pública, selecciona Clave unida.
gcloud
En la herramienta de gcloud compute
, proporciona la clave de encriptación para la instantánea con la marca --csek-key-file
cuando crees el disco. Si usas una clave unida con RSA, usa el componente gcloud beta
:
gcloud (beta) compute disks create ... --source-snapshot example-snapshot --csek-key-file example-file.json
REST
Para usar una instantánea encriptada, proporciona la propiedad sourceSnapshotEncryptionKey
en la solicitud, seguida de rawKey
o rsaEncryptedKey
. Solicita a la API v1 una clave sin procesar (no unida con RSA) o a la API Beta una clave unida con RSA. Por ejemplo, para un nuevo disco persistente independiente que usa una instantánea encriptada, realiza lo siguiente:
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==" } }
Crea un disco de una imagen encriptada con CSEK
Console
Ir a la página Discos
Haz clic en Crear disco.
En Tipo de origen, selecciona Imagen.
En Encriptación, selecciona una solución de administración de claves de encriptación.
Si se unió la clave con la clave RSA pública, selecciona Clave unida.
gcloud
En la herramienta de gcloud compute
, proporciona la clave de encriptación para la imagen con la marca --csek-key-file
cuando crees el disco. Si usas una clave unida con RSA, usa el componente gcloud beta
:
gcloud (beta) compute disks create ... --image example-image --csek-key-file example-file.json
REST
Para usar una imagen encriptada, proporciona sourceImageEncryptionKey
, seguida de rawKey
o rsaEncryptedKey
. Solicita a la API v1 una clave sin procesar (no unida con RSA) o a la API Beta una clave unida con 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" }
Conecta un disco encriptado con CSEK a una VM nueva
Console
Ir a la página Crear una instancia
En la sección Disco de arranque, haz clic en Cambiar y, luego, haz lo siguiente:
- En la página Disco de arranque, haz clic en la pestaña Discos existentes.
- En la lista Disco, elige un disco encriptado existente para conectarlo a la VM.
Proporciona la clave de encriptación en el cuadro de texto y selecciona Clave unida si la clave se unió con la clave pública RSA.
Haga clic en Seleccionar.
Continúa con el proceso de creación de VM.
gcloud
Para crear una VM y adjuntar un disco encriptado, crea un archivo de claves y proporciona la clave mediante la marca --csek-key-file
cuando crees la VM. Si usas una clave unida con RSA, usa el componente gcloud beta
:
gcloud (beta) compute instances create example-instance \ --disk name=example-disk,boot=yes \ --csek-key-file example-file.json
REST
Crea una VM con la API de Compute Engine y proporciona rawKey
o rsaEncryptedKey
con la especificación del disco. Solicita a la API v1 una clave sin procesar (no unida con RSA) o a la API Beta una clave unida con RSA.
Aquí se muestra un fragmento de una especificación del disco de ejemplo:
"disks": [ { "deviceName": "encrypted-disk", "source": "projects/myproject/zones/us-central1-f/disks/encrypted-disk", "diskEncryptionKey": { "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" } } ]
Inicia o reinicia las VM que tienen discos encriptados con CSEK
Si deseas obtener información para detener o iniciar una VM que tiene discos encriptados, lee Reinicia una VM con un disco encriptado.
Usa la línea de comandos para crear recursos combinados
Si deseas crear una combinación de recursos encriptados por el cliente y encriptados de forma estándar en una solicitud única 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 crea los recursos encriptados por el cliente que se definen de forma explícita en el archivo de claves y, también, crea 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 deseas crear una VM con un disco encriptado por el cliente mediante el archivo de claves y, al mismo tiempo, crear una VM con un disco encriptado de forma 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
Por lo general, no se puede crear example-disk-2
si solo especificaste la marca --csek-key-file
, ya que el disco no está definido de manera explícita en el archivo de claves. Si agregas --no-require-csek-key-create
, se crearán ambos discos, uno encriptado con el archivo de claves y el otro encriptado con la encriptación de Google.
Quita la CSEK de un disco persistente
Puedes desencriptar el contenido de un disco encriptado por el cliente y crear un disco nuevo que use la encriptación predeterminada de Compute Engine.
- Crea una imagen del disco encriptado y especifica la encriptación automática para la imagen nueva.
- Usa la imagen nueva para crear un disco persistente nuevo.
Una vez creado el disco persistente nuevo, usa la encriptación predeterminada de Compute Engine para proteger el contenido del disco. Las instantáneas que creas desde ese disco también deben usar la encriptación predeterminada.