Importa una clave unida previamente a Cloud KMS

En este tema, se muestra cómo unir manualmente la clave que se creó a partir de una fuente distinta de Cloud Key Management Service y, luego, importarla a Cloud KMS.

Si deseas que Cloud KMS una automáticamente tu clave en lugar de unirla de forma manual, consulta cómo importar una clave.

Introducción

Cloud KMS te permite importar claves criptográficas proporcionadas por el usuario. Por ejemplo, tal vez tengas claves existentes que usas de manera local, con un almacén de claves distinto de Cloud KMS o en un entorno de múltiples nubes. Puedes importar esas claves si deseas usar el material de clave existente con Cloud KMS.

Para importar tus claves, primero crea un trabajo de importación, que es un recurso temporal que se usa solamente para importar claves. Cuando creas un trabajo de importación, Cloud KMS genera una "clave de unión", que es un par de clave pública/privada. Usas la porción de clave pública de la clave de unión para encriptar (o unir) el material de clave preexistente a fin de protegerlo durante el proceso de importación. Una vez que tu material de clave se une, puedes importarlo a una versión de clave o a una clave nueva. La parte privada de la clave de unión está disponible solamente en Cloud HSM. Esta restricción impide que Google una tu material de clave fuera de Cloud HSM.

Puedes usar el mismo trabajo de importación reiteradamente para unir varias claves que deseas importar. Ten en cuenta que el trabajo de importación vence 3 días después de su creación. Después del vencimiento, Cloud KMS no podrá importar ni separar el material de clave unido con la clave pública del trabajo de importación.

Antes de comenzar

  1. En este tema, damos por sentado que ya usas Cloud KMS. Si no es así, sigue los pasos de la Guía de inicio rápido de Cloud KMS.
  2. Crea un llavero de claves en una región compatible con Cloud HSM según se describe en la sección sobre la creación de llaveros de claves.
  3. Crea una clave con nivel de protección HSM según se describe en la sección sobre la creación de claves.
  4. Configura los permisos de Cloud Identity and Access Management para la clave y el llavero de claves.
  5. Asegúrate de que la clave que deseas importar esté en el formato correcto.

Flujo de importación de clave

Para importar una clave, sigue estos pasos:

  1. Crea un trabajo de importación.
  2. Recupera la clave de unión del trabajo de importación.
  3. Une la clave que deseas importar.
  4. Realiza una solicitud de importación.

Crea un trabajo de importación

Los trabajos de importación son recursos ImportJob. Cuando creas un trabajo de importación, debes especificar el nivel de protección y el método de importación que deseas usar para unir tu clave.

Para crear un trabajo de importación, sigue estas instrucciones:

Console

  1. Abre la página Claves criptográficas en GCP Console.

  2. Haz clic en el nombre del llavero de claves para el que crearás un trabajo de importación.

  3. Haz clic en Crear trabajo de importación.

  4. En el campo Nombre, ingresa el nombre de tu trabajo de importación.

  5. En el menú desplegable Método de importación, selecciona un método de importación.

  6. Haz clic en Crear.

gcloud

gcloud kms import-jobs create \
--location LOCATION \
--keyring KEYRING_NAME \
IMPORTJOB_NAME \
--import-method IMPORT_METHOD \
--protection-level hsm

Reemplaza IMPORT_METHOD por rsa-oaep-3072-sha1-aes-256 o rsa-oaep-4096-sha1-aes-256.

De manera opcional, puedes especificar LOCATION con una ubicación de KMS válida. Para obtener una lista de valores de ubicación, usa gcloud kms locations list.

API

  1. Crea una instancia del tipo ImportJob. Proporciona valores iniciales para los campos ImportJob.protectionLevel y ImportJob.importMethod.

  2. Llama al método ImportJob.create con tu instancia de ImportJob como cuerpo de la solicitud.

Verifica el estado del trabajo de importación

El estado inicial de un trabajo de importación es PENDING_GENERATION. Cuando el estado es ACTIVE, el trabajo de importación ya está en uso.

Para verificar el estado, haz lo siguiente:

Console

  1. Abre la página Claves criptográficas en GCP Console.

  2. Haz clic en el nombre del llavero de claves que contiene tu trabajo de importación.

  3. Haz clic en la pestaña Trabajos de importación en la parte superior de la página.

  4. El estado aparecerá en Estado junto al nombre de tu trabajo de importación.

gcloud

Usa el comando gcloud kms import-jobs describe para verificar el estado.

gcloud kms import-jobs \
describe IMPORTJOB_NAME \
--location LOCATION \
--keyring KEYRING_NAME

De manera opcional, puedes especificar LOCATION con una ubicación de KMS válida. Para obtener una lista de valores de ubicación, usa gcloud kms locations list.

API

Llama al método ImportJob.get y verifica el campo state. Si state es PENDING_GENERATION, el trabajo de importación todavía se está creando. Vuelve a verificar periódicamente el estado hasta que sea ACTIVE.

Recupera la clave de unión

Para recuperar la clave de unión, sigue estos pasos:

Console

  1. Abre la página Claves criptográficas en GCP Console.

  2. Haz clic en el nombre del llavero de claves que contiene tu trabajo de importación.

  3. Haz clic en la pestaña Trabajos de importación en la parte superior de la página.

  4. Haz clic en el ícono Más (3 puntos verticales) junto a tu trabajo de importación.

  5. Haz clic en Descargar clave de unión en el menú emergente.

gcloud

Ejecuta el comando gcloud kms import-jobs describe.

gcloud kms import-jobs \
describe IMPORTJOB_NAME \
--location LOCATION \
--keyring KEYRING_NAME

Si el estado del trabajo de importación pasa a ser ACTIVE, el campo pem dentro del campo public_key es la clave pública codificada en formato de correo con privacidad mejorada (PEM).

De manera opcional, puedes especificar LOCATION con una ubicación de KMS válida. Para obtener una lista de valores de ubicación, usa gcloud kms locations list.

name: projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING_NAME]/importJobs/[IMPORTJOB_NAME]
createTime: '2019-03-21T17:10:10.864211749Z'
generateTime: '2019-03-21T17:10:10.864211749Z'
importMethod: [IMPORT_METHOD]
protectionLevel: [PROTECTION_LEVEL]
state: ACTIVE
public_key:
  pem: -----BEGIN PUBLIC KEY-----
[PUBLIC_KEY]
-----END PUBLIC KEY-----

API

  1. Llama al método ImportJob.get.

  2. Recupera la clave pública mediante el campo publicKey de la respuesta ImportJob.get. Este valor es del tipo WrappingPublicKey. El campo pem del tipo WrappingPublicKey es la clave pública codificada en formato de correo con privacidad mejorada (PEM).

Para obtener más información sobre el formato con codificación PEM, consulta las secciones del RFC 7468 sobre las consideraciones generales y la codificación textual de información sobre la clave pública del sujeto.

Une el material de clave

Une el material de clave preexistente mediante la clave pública del trabajo de importación, que es el valor PEM que recuperaste en el paso anterior. La documentación del método de importación asociado con tu trabajo de importación contiene instrucciones más específicas sobre cómo debería unirse tu clave.

Realiza una solicitud para importar tu clave

Cuando incluyes material de una clave unida en una solicitud para crear una clave nueva o una versión de clave nueva, Cloud KMS desune tu material de clave y lo almacena en la versión de clave resultante.

Para realizar una solicitud de importación que incluye tu clave unida:

Console

Crea una clave a la que se debe importar tu material de clave.

  1. Abre la página Claves criptográficas en GCP Console.

  2. Haz clic en el nombre del llavero de claves que contiene tu trabajo de importación.

  3. Haz clic en Crear clave.

  4. Ingresa el nombre en el campo Nombre de la clave.

  5. En el menú desplegable Nivel de protección, selecciona HSM.

  6. Selecciona el Propósito correspondiente a tu clave en el menú desplegable. Si seleccionaste un propósito asimétrico, selecciona el Algoritmo apropiado en el menú desplegable.

  7. En Material de clave, selecciona Importar material de clave. Tu página Crear clave debe ser similar a la que se muestra a continuación:

    Crea una clave

  8. Haz clic en Crear.

Se te redireccionará a la página Importar versión de clave.

  1. Selecciona tu trabajo de importación en el menú desplegable Seleccionar trabajo de importación.

  2. En el selector Subir la clave unida, selecciona el material de clave que uniste en el paso Une el material de clave.

  3. Si importas una clave asimétrica, selecciona el algoritmo en el menú desplegable Algoritmo. Tu página Importar versión de clave debe ser similar a la que se muestra a continuación:

    Importar versión de clave

  4. Haz clic en Importar.

gcloud

Importa la clave con el comando gcloud kms keys versions import.

gcloud kms keys versions import \
--location LOCATION \
--keyring KEYRING_NAME \
--key KEY_NAME \
--import-job IMPORTJOB_NAME \
--algorithm ALGORITHM_NAME \
--rsa-aes-wrapped-key-file=PATH_TO_WRAPPED_RSA_AES_KEY

Puedes especificar LOCATION con una ubicación de KMS válida. Para obtener una lista de valores de ubicación, usa gcloud kms locations list.

A continuación, se muestra el resultado del comando gcloud kms keys versions import.

algorithm: [ALGORITHM]
createTime: '2019-03-21T17:10:10.864211749Z'
generateTime: '2019-03-21T17:10:10.864211749Z'
name: projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING_NAME]/cryptoKeys/[KEY_NAME]/cryptoKeyVersions/1
protectionLevel: [PROTECTION_LEVEL]
state: ENABLED

API

  1. Para el cuerpo de la solicitud del método cryptoKeyVersions.import, define el campo algorithm como el algoritmo de la clave que se está importando. No es necesario que este valor coincida con la versionTemplate de la CryptoKey que está importando esta versión. El campo algorithm es del tipo CryptoKeyVersionAlgorithm.

  2. También, para el cuerpo de la solicitud, configura el campo wrappedKeyMaterial en el material de clave que uniste en el paso Unir el material de clave.

  3. Llama al método cryptoKeyVersions.import. La respuesta cryptoKeyVersions.import es del tipo CryptoKeyVersion. Cuando una clave se importa con éxito, su estado es ENABLED, y puedes usarla a través de Cloud KMS.

Verifica el estado de la clave importada

El estado inicial de una clave importada es PENDING_IMPORT. Cuando el estado es ENABLED, la clave importada está lista para usar.

Para verificar el estado, haz lo siguiente:

Console

  1. Abre la página Claves criptográficas en GCP Console.

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

  3. Haz clic en el nombre de tu clave.

  4. El estado aparecerá en Estado junto a la versión recién importada.

gcloud

Usa el comando gcloud kms keys versions describe para verificar el estado.

gcloud kms keys versions \
describe VERSION \
--location LOCATION \
--keyring KEYRING_NAME \
--key KEY_NAME

Reemplaza LOCATION por una ubicación de KMS válida. Para obtener una lista de valores de ubicación, usa gcloud kms locations list.

API

Llama al método CryptoKeyVersions.get y verifica el campo state. Si state es PENDING_IMPORT, la clave todavía se está importando. Vuelve a verificar periódicamente el estado hasta que sea ENABLED.

Cuando una clave se importa con éxito, su estado es ENABLED y puedes usarla a través de Cloud KMS.

Para verificar que la clave contiene tu material de clave y está protegida por HSM, consulta Verifica tu clave importada.