En este tema se explica cómo importar una clave criptográfica en Cloud HSM o Cloud Key Management Service como una nueva versión de la clave.
Para obtener más información sobre la importación de claves, incluidas las limitaciones y restricciones, consulta el artículo sobre la importación de claves.
Puedes completar los pasos de este tema en un plazo de entre 5 y 10 minutos, sin incluir los pasos de la sección Antes de empezar. Encapsular la clave manualmente añade complejidad a la tarea.
Antes de empezar
Te recomendamos que crees un proyecto para probar esta función, de modo que te resulte más fácil eliminarlo después de las pruebas y que tengas los permisos de gestión de identidades y accesos (IAM) adecuados para importar una clave.
Antes de importar una clave, debes preparar el proyecto, el sistema local y la propia clave.
Preparar el proyecto
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the 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 inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the 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 inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
El usuario que realice la importación debe tener los siguientes permisos de gestión de identidades y accesos para crear conjuntos de claves, claves y trabajos de importación. Si el usuario no es el propietario del proyecto, puedes asignarle ambos roles predefinidos:
roles/editor
roles/cloudkms.importer
Para obtener más información sobre los roles y permisos de gestión de identidades y accesos disponibles para Cloud KMS, consulta Permisos y roles.
- Si quieres permitir que Google Cloud CLI envuelva tus claves automáticamente antes de transmitirlas a Google Cloud, debes instalar la biblioteca de criptografía Pyca en tu sistema local. La biblioteca Pyca la usa la tarea de importación que encapsula y protege la clave de forma local antes de enviarla a Google Cloud.
- Si quieres encapsular tus claves manualmente, debes configurar OpenSSL para encapsular claves manualmente.
El nivel de protección indica si la clave se conserva en el software, en un HSM o en un sistema de gestión de claves externo. El material de claves no se puede mover de uno de estos entornos de almacenamiento a otro. Todas las versiones de una llave tienen el mismo nivel de protección.
El propósito indica si las versiones de la clave se usan para el cifrado simétrico, el cifrado asimétrico o la firma asimétrica. La finalidad de la clave limita los algoritmos que se pueden usar para crear versiones de esa clave. Todas las versiones de una clave tienen el mismo propósito.
En la consola de Google Cloud , ve a la página Gestión de claves.
Haz clic en Crear conjunto de claves.
En el campo Nombre del conjunto de claves, introduce el nombre del conjunto de claves.
En Tipo de ubicación, seleccione un tipo de ubicación y una ubicación.
Haz clic en Crear. Se abrirá la página Crear clave.
En el campo Nombre de la clave, introduce el nombre de la clave.
En Nivel de protección, selecciona Software o HSM y, a continuación, haz clic en Continuar.
En Material de clave, selecciona Clave importada y, a continuación, haz clic en Continuar. De esta forma, se evita que se cree una versión inicial de la clave.
Define el Propósito y el Algoritmo de la clave y, a continuación, haz clic en Continuar.
Opcional: Si quieres que esta clave contenga solo versiones de claves importadas, selecciona Restringir versiones de claves solo a importaciones. De esta forma, no crearás versiones de claves nuevas por error en Cloud KMS.
Opcional: En el caso de las claves importadas, la rotación automática está inhabilitada de forma predeterminada. Para habilitar la rotación automática, selecciona un valor en el campo Periodo de rotación de claves.
Si habilitas la rotación automática, se generarán nuevas versiones de la clave en Cloud KMS y la versión de la clave importada dejará de ser la versión predeterminada después de una rotación.
Haz clic en Crear.
Crea el conjunto de claves de destino. Si quieres importar una clave de Cloud HSM, selecciona una ubicación compatible con Cloud HSM.
gcloud kms keyrings create KEY_RING \ --location LOCATION
Crea la clave de destino.
- Especifica el propósito de la clave.
- Para evitar que se cree una versión inicial, usa la marca
--skip-initial-version-creation
. - Opcional: Para evitar que se creen nuevas versiones en Cloud KMS, usa la marca
--import-only
. - Opcional: No especifiques una política de rotación. Si habilitas la rotación automática, se generarán nuevas versiones de la clave en Cloud KMS y la versión de la clave importada dejará de ser la versión predeterminada después de una rotación. No puedes especificar una política de rotación si has especificado la marca
--import-only
.
gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --skip-initial-version-creation \ --import-only
Puedes consultar más información sobre cómo crear claves de Cloud KMS o claves de Cloud HSM.
Para crear un conjunto de claves:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?keyRingId=KEY_RING" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{}"
Para obtener más información, consulta la documentación de la API
KeyRing.create
.Crea una clave vacía que solo se pueda importar:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?cryptoKeyId=KEY_NAME&skipInitialVersionCreation=true&importOnly=true" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{"purpose":"PURPOSE", "versionTemplate":{"protectionLevel":"PROTECTION_LEVEL","algorithm":"ALGORITHM"}}"
Para obtener más información, consulta la documentación de la API
CryptoKey.create
.Ve a la página Gestión de claves de la Google Cloud consola.
Haz clic en el nombre del conjunto de claves de destino.
Define el Nivel de protección como Software o HSM. Usa el mismo nivel de protección que hayas definido para la clave de destino.
Haz clic en Crear tarea de importación.
En el campo Name (Nombre), introduce el nombre del trabajo de importación.
En el menú desplegable Método de importación, selecciona RSA de 3072 bits o RSA de 4096 bits.
Haz clic en Crear.
- Usa el mismo llavero y la misma ubicación que la clave de destino.
- Define el nivel de protección como
software
ohsm
. - Define el método de importación como
rsa-oaep-3072-sha1-aes-256
rsa-oaep-4096-sha1-aes-256
,rsa-oaep-3072-sha256-aes-256
,rsa-oaep-4096-sha256-aes-256
,rsa-oaep-3072-sha256
orsa-oaep-4096-sha256
. - IMPORT_METHOD: un método de envoltorio de claves compatible.
- PROTECTION_LEVEL: el nivel de protección de las versiones de la clave importadas por este trabajo de importación.
Ve a la página Gestión de claves de la Google Cloud consola.
Haga clic en el nombre del conjunto de claves que contiene su tarea de importación.
En la parte superior de la página, haga clic en la pestaña Trabajos de importación.
El estado se mostrará en Estado junto al nombre del trabajo de importación.
- Concede el permiso
importjobs.create
solo a los administradores principales. - Concede el permiso
importjobs.useToImport
para una tarea de importación específica al operador que vaya a usar esa tarea para importar claves. - Cuando crees la tarea de importación, especifica el nivel de protección y el algoritmo de las versiones de clave que se importen con ella.
Las claves con el propósito
ENCRYPT_DECRYPT
usan el algoritmogoogle-symmetric-encryption
y tienen una longitud de 32.Las claves con el propósito
ASYMMETRIC_DECRYPT
oASYMMETRIC_SIGN
admiten una variedad de algoritmos y longitudes.El propósito de una clave no se puede cambiar una vez que se ha creado, pero se pueden crear versiones posteriores de la clave con una longitud diferente a la de la versión inicial.
Abre la página Gestión de claves en la consola deGoogle Cloud .
Haga clic en el nombre del conjunto de claves que contiene su tarea de importación. Se muestra la clave de destino junto con cualquier otra clave del llavero.
Haga clic en el nombre de la clave de destino y, a continuación, en Importar versión de clave.
Selecciona la tarea de importación en el menú desplegable Seleccionar tarea de importación.
En el selector Cargar la clave incorporada, selecciona la clave que ya hayas incorporado.
Si vas a importar una clave asimétrica, selecciona el algoritmo en el menú desplegable Algoritmo. La página Importar versión de clave debería tener un aspecto similar al siguiente:
Haz clic en Importar.
IMPORT_JOB_ID: el nombre completo del recurso del trabajo de importación correspondiente.
ALGORITHM: el
algorithm
de la clave que se importa, que es de tipoCryptoKeyVersionAlgorithm
.WRAPPED_KEY: la clave envuelta manualmente en formato base64.
Abre la página Gestión de claves en la consola deGoogle Cloud .
Haga clic en el nombre del conjunto de claves que contiene su tarea de importación.
En la parte superior de la página, haga clic en la pestaña Trabajos de importación.
El estado se mostrará en Estado junto al nombre del trabajo de importación.
- Solo se pueden volver a importar los
CryptoKeyVersions
que se hayan importado previamente. - El material de clave que se vuelve a importar debe coincidir exactamente con el material de clave original si la versión se ha importado correctamente anteriormente.
CryptoKeyVersions
destruidos antes del lanzamiento de esta función no se pueden volver a importar. El camporeimport_eligible
deCryptoKeyVersion
estrue
si la versión se puede volver a importar yfalse
si no.Ve a la página Gestión de claves de la Google Cloud consola.
Haga clic en el nombre del conjunto de claves que contiene la clave cuya versión va a volver a importar.
Haz clic en la clave cuya versión quieras volver a importar.
Haz clic en los tres puntos situados junto a la versión de la clave que quieras volver a importar.
Selecciona Volver a importar versión de clave.
Selecciona la tarea de importación en el menú desplegable Seleccionar tarea de importación.
En el selector Cargar la clave incorporada, selecciona la clave que ya hayas incorporado. Esta clave debe coincidir con el material de clave original.
Haz clic en Re-Import (Volver a importar).
Vuelve a importar la versión de la clave con el material de la clave original.
gcloud kms keys versions import \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --version KEY_VERSION \ --algorithm ALGORITHM \ --import-job IMPORT_JOB \ --target-key-file PATH_TO_KEY \
En el cuerpo de la solicitud del método
cryptoKeyVersions.import
, asigna al campocryptoKeyVersion
el nombre de la versión de la clave que se va a importar. Debe ser un elemento secundario de la clave criptográfica.En el cuerpo de la solicitud, asigna al campo
algorithm
el algoritmo de la clave que se va a importar. Este valor debe coincidir con el algoritmo de la versión original de la clave. El campoalgorithm
es del tipoCryptoKeyVersionAlgorithm
.En el cuerpo de la solicitud, asigna al campo
wrappedKeyMaterial
el material de clave que ya has envuelto.Llama al método
cryptoKeyVersions.import
. La respuestacryptoKeyVersions.import
es del tipoCryptoKeyVersion
. Cuando se importa una clave correctamente, su estado esENABLED
y puedes usarla en Cloud KMS.- Verificar una clave importada. Una vez que hayas confirmado que el material de clave importado es idéntico a la clave original, podrás usarla para firmar o proteger datos.
- Soluciona problemas con la importación de claves.
Preparar el sistema local
Prepara el sistema local eligiendo una de las siguientes opciones. Se recomienda la envoltura automática de claves para la mayoría de los usuarios.
Preparar la clave
Verifica que el algoritmo y la longitud de tu clave sean compatibles. Los algoritmos permitidos para una clave dependen de si la clave se usa para el cifrado simétrico, el cifrado asimétrico o la firma asimétrica, así como de si la clave se almacena en software o en un HSM. Especifica el algoritmo de la clave como parte de la solicitud de importación.
Por otro lado, también debes verificar cómo se codifica la clave y hacer los ajustes necesarios.
No se puede cambiar lo siguiente en una versión de clave después de crearla o importarla:
Si no tienes ninguna clave para importar, pero quieres validar el procedimiento para importar claves, puedes crear una clave simétrica en el sistema local con el siguiente comando:
openssl rand 32 > ${HOME}/test.bin
Usa esta clave solo para hacer pruebas. Es posible que una clave creada de esta forma no sea adecuada para usarla en producción.
Si necesitas envolver la clave manualmente, hazlo antes de continuar con los procedimientos de este tema.
Crear la clave y el conjunto de claves de destino
Una clave de Cloud KMS es un objeto contenedor que contiene cero o más versiones de clave. Cada versión de una clave contiene una clave criptográfica.
Cuando importas una clave en Cloud KMS o Cloud HSM, la clave importada se convierte en una nueva versión de una clave de Cloud KMS o Cloud HSM. En el resto de este tema, esta clave se denomina clave de destino. La clave de destino debe existir para poder importar material de clave en ella.
Importar una versión de una clave no afecta a las versiones que ya tenga esa clave. Sin embargo, se recomienda crear una clave vacía al probar la importación de claves. Una clave vacía no tiene ninguna versión, no está activa y no se puede usar.
También puedes especificar que la clave recién creada solo pueda contener versiones importadas, lo que evita que se generen nuevas versiones por error en Cloud KMS.
Una clave existe en un conjunto de claves. En este tema, este conjunto de claves se denomina conjunto de claves de destino. La ubicación del conjunto de claves de destino determina la ubicación en la que estará disponible el material de clave después de la importación. Las claves de Cloud HSM no se pueden crear ni importar en algunas ubicaciones. Una vez creada una clave, no se puede mover a otro llavero ni a otra ubicación.
Sigue estos pasos para crear una clave vacía en un llavero de claves nuevo con la CLI de Google Cloud o la consola de Google Cloud .
Consola
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Cloud KMS.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Cloud KMS.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Cloud KMS.
Python
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Cloud KMS.
API
En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.
El conjunto de claves y la clave ya existen, pero la clave no contiene material de clave, no tiene ninguna versión y no está activa. A continuación, crea una tarea de importación.
Crear la tarea de importación
Una tarea de importación define las características de las claves que importa, incluidas las propiedades que no se pueden cambiar después de importar la clave.
El nivel de protección define si las claves importadas por esta tarea de importación residirán en software, en un HSM o en un sistema de gestión de claves externo. El nivel de protección no se puede cambiar una vez que se haya importado la clave.
El método de importación define el algoritmo que se usa para crear la clave de encapsulado que protege las claves importadas durante el tránsito desde tu sistema local al proyecto de destino Google Cloud . Puedes elegir una clave RSA de 3072 o 4096 bits. A menos que tengas requisitos específicos, te recomendamos que uses la clave de envoltorio de 3072 bits.
Puedes crear un trabajo de importación con la CLI de gcloud, laGoogle Cloud consola o la API de Cloud Key Management Service.
Consola
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
Usa un comando como el siguiente para crear una tarea de importación.
gcloud kms import-jobs create IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level PROTECTION_LEVEL
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Cloud KMS.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Cloud KMS.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Cloud KMS.
Python
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Cloud KMS.
API
En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.
Para crear una tarea de importación, usa el método ImportJobs.create
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs?import_job_id=IMPORT_JOB_ID" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"import_method": "IMPORT_METHOD", "protection_level": "PROTECTION_LEVEL"}'
Haz los cambios siguientes:
Comprobar el estado de la tarea de importación
El estado inicial de una tarea de importación es PENDING_GENERATION
. Cuando el estado sea ACTIVE
, podrás usarlo para importar claves.
Las tareas de importación caducan al cabo de tres días. Si la tarea de importación ha caducado, debes crear una nueva.
Puedes consultar el estado de un trabajo de importación mediante la CLI de Google Cloud, laGoogle Cloud consola o la API Cloud Key Management Service.
Consola
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
Cuando una tarea de importación está activa, puede usarla para importar claves. Este proceso puede tardar unos minutos. Usa este comando para verificar que la tarea de importación esté activa. Usa la ubicación y el llavero en los que has creado la tarea de importación.
gcloud kms import-jobs describe IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --format="value(state)"
El resultado debería ser similar al siguiente:
state: ACTIVE
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Cloud KMS.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Cloud KMS.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Cloud KMS.
Python
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Cloud KMS.
API
En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.
Para comprobar el estado de una tarea de importación, usa el método
ImportJobs.get
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs/IMPORT_JOB_ID" \ --request "GET" \ --header "authorization: Bearer TOKEN"
En cuanto la tarea de importación esté activa, podrá solicitar la importación de una clave.
Impedir la modificación de tareas de importación
La tarea de importación determina muchas características de la clave importada, como el algoritmo de la clave y si se trata de una clave de HSM o de una clave de software. Puedes configurar permisos de gestión de identidades y accesos para impedir que los usuarios creen tareas de importación, pero permitirles que usen tareas de importación para importar claves.
Hasta que caduque la tarea de importación, los usuarios que tengan el permiso importjobs.useToImport
y no tengan el permiso importjobs.create
para una tarea de importación determinada podrán importar claves, pero no podrán modificar las características de la tarea de importación.
Importar la clave
Después de comprobar el estado de la tarea de importación, puedes enviar una solicitud de importación.
Utiliza diferentes marcas para hacer la solicitud de importación, en función de si quieres que la CLI de Google Cloud envuelva tu clave automáticamente o si ya la has envuelto manualmente.
Tanto si has envuelto la clave de forma manual como automática, debes definir el algoritmo como un algoritmo compatible que coincida con la longitud de la clave que se va a importar y especificar el propósito de la clave.
Encapsular e importar automáticamente una clave
Si quieres usar el envoltorio automático, debes usar la CLI de Google Cloud.
Usa un comando como el siguiente. Define --target-key-file
en la ubicación de la clave sin envolver para envolverla e importarla. No definas --wrapped-key-file
.
De forma opcional, puedes definir la marca --public-key-file
en la ubicación en la que ya se haya descargado la clave pública. Al importar un gran número de claves, se evita que la clave pública se descargue durante cada importación. Por ejemplo, puedes escribir una secuencia de comandos que descargue la clave pública una vez y, a continuación, proporcione su ubicación al importar cada clave.
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --target-key-file PATH_TO_UNWRAPPED_KEY
La clave se encapsula con la clave de encapsulamiento asociada a la tarea de importación, se transmite a Google Cloudy se importa como una nueva versión de la clave de destino.
Importar una clave encapsulada manualmente
Sigue las instrucciones de esta sección para importar una clave que hayas envuelto manualmente. Define --wrapped-key-file
como la ubicación de la clave que has envuelto manualmente.
No definas --target-key-file
.
De forma opcional, puedes definir la marca --public-key-file
en la ubicación en la que ya se haya descargado la clave pública. Al importar un gran número de claves, se evita que la clave pública se descargue durante cada importación. Por ejemplo, puedes escribir una secuencia de comandos que descargue la clave pública una vez y, a continuación, proporcione su ubicación al importar cada clave.
Consola
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
Usa un comando como el siguiente.
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --wrapped-key-file PATH_TO_WRAPPED_KEY
Para obtener más información, consulta el resultado del comando gcloud kms keys versions import --help
.
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Cloud KMS.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Cloud KMS.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Cloud KMS.
Python
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Cloud KMS.
API
En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.
Usa el método cryptoKeyVersions.import
para importar una clave.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions:import" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"importJob": "IMPORT_JOB_ID", "algorithm": "ALGORITHM", "wrappedKey": "WRAPPED_KEY"}'
Haz los cambios siguientes:
Se inicia la solicitud de importación de claves. Puedes monitorizar su estado.
Comprobar el estado de la versión de la clave importada
El estado inicial de una versión de clave importada es PENDING_IMPORT
. Cuando el estado es ENABLED
, la versión de la clave se ha importado correctamente. Si la importación falla, el estado es IMPORT_FAILED
.
Puedes consultar el estado de una solicitud de importación mediante la CLI de Google Cloud, la consola o la API Cloud Key Management Service.Google Cloud
Consola
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
Usa el comando versions list
para comprobar el estado. Usa la misma ubicación, el mismo conjunto de claves de destino y la misma clave de destino que has creado anteriormente en este tema.
gcloud kms keys versions list \ --keyring KEY_RING \ --location LOCATION \ --key KEY_NAME
Go
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Cloud KMS.
Java
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Cloud KMS.
Node.js
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Node.js e instalar el SDK de Node.js de Cloud KMS.
Python
Para ejecutar este código, primero debes configurar un entorno de desarrollo de Python e instalar el SDK de Python de Cloud KMS.
API
En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.
Llama al método ImportJob.get
y comprueba el campo state
. Si state
es PENDING_GENERATION
, la tarea de importación aún se está creando.
Vuelve a comprobar el estado periódicamente hasta que sea ACTIVE
.
Una vez importada la versión inicial de la clave, el estado de la clave cambia a Activa. En el caso de las claves simétricas, debes definir la versión de la clave importada como versión principal para poder usarla.
Claves simétricas: definir la versión principal
Este paso es obligatorio al importar claves simétricas y no se aplica a las claves asimétricas. Las claves asimétricas no tienen una versión principal. Debes usar Google Cloud CLI para definir la versión principal.
gcloud kms keys set-primary-version KEY_NAME\ --location=LOCATION\ --keyring=KEY_RING\ --version=KEY_VERSION
Volver a importar una clave destruida anteriormente
Cloud Key Management Service admite la reimportación de claves, lo que te permite restaurar una versión de clave importada anteriormente en estado DESTROYED
o IMPORT_FAILED
al estado ENABLED
proporcionando el material de clave original. Si nunca se ha importado material de clave original debido a un error de importación inicial, se puede proporcionar cualquier material de clave.
Restricciones
Las claves de software y de Cloud HSM se pueden volver a importar, pero las claves externas no.
Volver a importar una clave destruida
Crea un ImportJob
para volver a importar siguiendo los pasos que se indican en Crear la tarea de importación. Puede usar un ImportJob
que ya tenga o crear uno nuevo, siempre que el nivel de protección coincida con el nivel de protección original.ImportJob
Consola
gcloud
Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de la CLI de Google Cloud.
API
En estos ejemplos se usa curl como cliente HTTP para mostrar cómo se usa la API. Para obtener más información sobre el control de acceso, consulta el artículo sobre cómo acceder a la API Cloud KMS.