Esta página se ha traducido con Cloud Translation API.
Switch to English

Importa una clave a Cloud KMS

En este tema, se muestra cómo importar una clave criptográfica a Cloud HSM o Cloud Key Management Service.

Para obtener más detalles sobre la importación de claves, incluidas las limitaciones y restricciones, consulta Importa claves.

Puedes completar los pasos en este tema en 5 a 10 minutos, sin incluir los pasos de Antes de comenzar. Unir la clave de forma manual agrega complejidad a la tarea.

Antes de comenzar

Se recomienda que crees un proyecto nuevo para probar esta función, a fin de facilitar la limpieza después de realizar las pruebas y asegurarte de que tengas permisos de IAM adecuados para importar una clave.

Antes de importar una clave, debes preparar el proyecto, el sistema local y la clave en sí misma.

Prepara el proyecto

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita la API necesaria.

    Habilita la API

  5. Instala e inicializa el SDK de Cloud.
  6. El usuario que realiza la importación necesita los siguientes permisos de IAM para crear claves, llaveros de claves y trabajos de importación. Si el usuario no es el propietario del proyecto, puedes asignar ambas funciones predefinidas:

    • roles/editor
    • roles/cloudkms.importer

    Para obtener más información sobre las funciones de IAM y los permisos disponibles para Cloud KMS, consulta Permisos y funciones.

Prepara el sistema local

Para preparar el sistema local, elige una de las siguientes opciones. Se recomienda la unión automática de claves para la mayoría de los usuarios.

Prepara 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 la encriptación simétrica, la encriptación asimétrica o la firma asimétrica, así como si la clave se almacena en el software o un HSM. Especifica el algoritmo de la clave como parte de la solicitud de importación.

Por separado, también debes verificar cómo se codifica la clave y hacer los ajustes necesarios.

Lo siguiente no se puede cambiar en una versión de clave después de su creación o importación:

  • El nivel de protección de la clave indica si la clave persiste en el software, en un HSM o en un sistema de administració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 clave tienen el mismo nivel de protección.

  • El propósito de la clave indica si las versiones de la clave se usan para la encriptación simétrica, la encriptación asimétrica o la firma asimétrica. El propósito de una clave limita los algoritmos posibles que se pueden usar para crear versiones de esa clave. Todas las versiones de clave tienen el mismo propósito.

Si no tienes una clave que desees importar, pero quieres validar el procedimiento de importación de 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 pruebas. Es posible que una clave creada de esta manera no sea adecuada para el uso en la producción.

Si necesitas unir la clave manualmente, hazlo antes de continuar con los procedimientos de este tema.

Crea el llavero de claves y la clave de destino

Una clave de Cloud KMS es un objeto de contenedor que contiene cero o más versiones de claves. Cada versión de clave contiene una clave criptográfica.

Cuando importas una clave a Cloud KMS o Cloud HSM, la clave importada se convierte en una versión de clave nueva en una clave Cloud KMS o Cloud HSM existente. En el resto del tema, esta clave se denomina clave de destino. La clave de destino debe existir antes de que puedas importar material de clave a ella.

Importar una versión de clave no tiene ningún efecto en las versiones existentes de esa clave. Sin embargo, se recomienda crear una clave vacía cuando pruebes la importación de claves. Una clave vacía no tiene una versión, no está activa y no se puede usar.

La clave existe en un llavero de claves. En este tema, este llavero de claves se denomina llavero de claves de destino. La ubicación del llavero de claves de destino determina la ubicación en la que el material de clave está disponible después de la importación. Las claves de Cloud HSM no se pueden crear ni importar en algunas ubicaciones. Después de crear una clave, no se puede mover a una ubicación o ubicación de la clave diferente.

Sigue estos pasos para crear una clave vacía en un llavero de claves nuevo mediante la herramienta de línea de comandos de gcloud o Google Cloud Console.

IU web

  1. Ve a la página Claves criptográficas en Cloud Console.

    Ir a la página Claves criptográficas

  2. Haz clic en Crear llavero de claves.

  3. En el campo Nombre del llavero de claves, ingresa el nombre de tu llavero de claves.

  4. Selecciona una ubicación en el menú desplegable Ubicación.

  5. Haga clic en Crear. Se abrirá la página de detalles del llavero de claves.

  6. Haz clic en Crear clave.

  7. Selecciona Clave importada. Esto evita que se cree una versión inicial de la clave.

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

  9. Establece el Nivel de protección como Software o HSM.

  10. [Opcional] Para las claves importadas, la rotación automática está inhabilitada de forma predeterminada. Si habilitas la rotación automática, las versiones de clave nuevas se generarán en Cloud KMS, y la versión de clave importada ya no será la versión de clave predeterminada después de una rotación.

  11. [De manera opcional, si deseas agregar etiquetas a tu clave][4], haz clic en Agregar etiqueta en el campo Etiquetas.

  12. Haga clic en Crear.

Línea de comandos

Para usar Cloud KMS en la línea de comandos, primero Instala o actualiza a la versión más reciente del SDK de Cloud.

  1. Crea el llavero de claves de destino. Si pretendes importar a una clave de Cloud HSM, selecciona una ubicación que admita Cloud HSM.

    gcloud kms keyrings create key-ring-name \
      --location location
    

    Obtén más información sobre cómo crear llaveros de claves.

  2. Crea la clave de destino.

    • Establece el propósito de la clave:
      • Para una clave simétrica, establece el propósito como encryption.
      • Para una clave asimétrica, configura el propósito como asymmetric-signing o asymmetric-encryption.
    • Evita que se cree una versión inicial con la marca --skip-initial-version-creation.
    • Opcional: No especifiques una política de rotación. Si habilitas la rotación automática, las versiones de claves nuevas se generarán en Cloud KMS y la versión de clave importada ya no será la versión de clave predeterminada después de una rotación.
    gcloud kms keys create key-name \
      --location location \
      --keyring key-ring-name \
      --purpose purpose \
      --skip-initial-version-creation
    

    Puedes obtener más información sobre cómo crear claves de Cloud KMS o claves de Cloud HSM.

Python

Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.

def create_key_for_import(project_id, location_id, key_ring_id, crypto_key_id):
    """

    Sets up an empty CryptoKey within a KeyRing for import.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        crypto_key_id (string): ID of the key to import (e.g. 'my-asymmetric-signing-key').
    """

    # Import the client library.
    from google.cloud import kms

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key. For more information regarding allowed values of these fields, see:
    # https://googleapis.dev/python/cloudkms/latest/_modules/google/cloud/kms_v1/types/resources.html
    purpose = kms.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN
    algorithm = kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.EC_SIGN_P256_SHA256
    protection_level = kms.ProtectionLevel.HSM
    key = {
        'purpose': purpose,
        'version_template': {
            'algorithm': algorithm,
            'protection_level': protection_level
        }
    }

    # Build the parent key ring name.
    key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)

    # Call the API.
    created_key = client.create_crypto_key(request={'parent': key_ring_name, 'crypto_key_id': crypto_key_id, 'crypto_key': key})
    print('Created hsm key: {}'.format(created_key.name))

API

En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.

curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings?keyRingId=key-ring-name" \
    --request "POST" \
    --header "authorization: Bearer token" \
    --header "content-type: application/json" \
    --header "x-goog-user-project: project-id" \
    --data "{}"

Consulta la documentación sobre la API de KeyRing.create para obtener más información.

curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-name/cryptoKeys?cryptoKeyId=key-name&skipInitialVersionCreation=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"}}"

Consulta la documentación sobre la API de CryptoKey.create para obtener más información.

El llavero de claves y la clave se crearon, pero la clave no contiene material, no tiene versión y no está activa. Luego, crea un trabajo de importación.

Crea el trabajo de importación

Un trabajo de importación define las características de las claves que importa, incluidas las propiedades que no se pueden cambiar una vez que se importa la clave.

El nivel de protección define si las claves que resultan de este trabajo de importación residen en software, en un HSM o en un sistema de administración de claves externo. El nivel de protección no se puede cambiar después de que la clave se importa.

El método de importación define el algoritmo usado para crear la clave de unión que protege las claves importadas durante el tránsito de tu sistema local al proyecto de Google Cloud de destino. Puedes elegir una clave RSA de 3072 bits o 4096 bits. A menos que tengas requisitos específicos, se recomienda la clave de unión de 3072 bits.

Puedes crear un trabajo de importación con la herramienta de gcloud, Cloud Console o la API de Cloud Key Management Service.

IU web

  1. Ve a la página Claves criptográficas en Cloud Console.

    Ir a la página Claves criptográficas

  2. Haz clic en el nombre del llavero de claves de destino.

  3. Configura el Nivel de protección en Software o HSM. Usa el mismo nivel de protección que configuraste para la clave de destino.

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

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

  6. En el menú desplegable Método de importación, configura el método de importación en RSA de 3072 bits o RSA de 4096 bits.

  7. Haga clic en Crear.

Línea de comandos

Para usar Cloud KMS en la línea de comandos, primero Instala o actualiza a la versión más reciente del SDK de Cloud.

Usa un comando como el siguiente para crear un trabajo de importación.

gcloud kms import-jobs create import-job \
  --location location \
  --keyring key-ring-name \
  --import-method import-method \
  --protection-level protection-level
  • Usa el mismo llavero de claves y la misma ubicación que usa la clave de destino.
  • Establece el nivel de protección en software o hsm.
  • Configura el método de importación como rsa-oaep-3072-sha1-aes-256 o rsa-oaep-4096-sha1-aes-256.

Python

Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.

def create_import_job(project_id, location_id, key_ring_id, import_job_id):
    """
    Create a new import job in Cloud KMS.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        import_job_id (string): ID of the import job (e.g. 'my-import-job').
    """

    # Import the client library.
    from google.cloud import kms

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Retrieve the fully-qualified key_ring string.
    key_ring_name = client.key_ring_path(project_id, location_id, key_ring_id)

    # Set paramaters for the import job, allowed values for ImportMethod and ProtectionLevel found here:
    # https://googleapis.dev/python/cloudkms/latest/_modules/google/cloud/kms_v1/types/resources.html

    import_method = kms.ImportJob.ImportMethod.RSA_OAEP_3072_SHA1_AES_256
    protection_level = kms.ProtectionLevel.HSM
    import_job_params = {"import_method": import_method, "protection_level": protection_level}

    # Call the client to create a new import job.
    import_job = client.create_import_job({"parent": key_ring_name, "import_job_id": import_job_id, "import_job": import_job_params})

    print('Created import job: {}'.format(import_job.name))

API

En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.

  1. Crea una instancia de laImportJob y especifica los valores para laImportJob.protectionLevel yImportJob.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, puedes usarlo para importar claves.

Un trabajo de importación vence después de tres días. Si el trabajo de importación venció, debes crear uno nuevo.

Puedes comprobar el estado de un trabajo de importación con la herramienta de línea de comandos de gcloud, Google Cloud Console o la API de Cloud Key Management Service.

IU web

  1. Ve a la página Claves criptográficas en Cloud Console.

    Ir a la página Claves criptográficas

  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.

Línea de comandos

Para usar Cloud KMS en la línea de comandos, primero Instala o actualiza a la versión más reciente del SDK de Cloud.

Cuando un trabajo de importación está activo, puedes usarlo para importar claves. Esto puede tardar unos minutos. Usa este comando para verificar que el trabajo de importación esté activo. Usa la ubicación y el llavero de claves en los que creaste el trabajo de importación.

gcloud kms import-jobs describe import-job \
  --location location \
  --keyring key-ring-name \
  --format="value(state)"
state: ACTIVE

Python

Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.

def check_state_import_job(project_id, location_id, key_ring_id, import_job_id):
    """
    Check the state of an import job in Cloud KMS.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        import_job_id (string): ID of the import job (e.g. 'my-import-job').
    """

    # Import the client library.
    from google.cloud import kms

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Retrieve the fully-qualified import_job string.
    import_job_name = client.import_job_path(
        project_id, location_id, key_ring_id, import_job_id)

    # Retrieve the state from an existing import job.
    import_job = client.get_import_job(name=import_job_name)

    print('Current state of import job {}: {}'.format(import_job.name, import_job.state))

API

En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.

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.

En cuanto el trabajo de importación esté activo, puedes realizar una solicitud para importar una clave.

Evita la modificación de trabajos de importación

El trabajo de importación determina muchas características de la clave importada, incluido el algoritmo de la clave y si una clave importada es una de HSM o de software. Puedes configurar los permisos de administración de identidades y accesos para evitar que los usuarios creen trabajos de importación, mientras permites que usen trabajos de importación para importar claves.

  1. Otorga solo a los administradores de claves el permiso importjobs.create.
  2. Otorga el permiso importjobs.useToImport para un trabajo de importación específico al operador que usará ese trabajo a fin de importar claves.
  3. Cuando crees el trabajo de importación, especifica el nivel de protección y el algoritmo para las claves importadas con él.

Hasta que el trabajo de importación caduque, los usuarios que tienen el permiso importjobs.useToImport y no tienen el permiso importjobs.create para un trabajo de importación determinado pueden importar claves, pero no pueden modificar las características del trabajo de importación.

Importa la clave

Después de verificar el estado del trabajo de importación, puedes realizar una solicitud de importación.

Usas diferentes marcas para realizar la solicitud de importación, según si deseas que la herramienta de línea de comandos de gcloud se una a tu clave de forma automática o si ya la uniste de forma manual.

Sin importar si uniste tu clave de forma manual o automática, debes configurar un algoritmo compatible que coincida con la longitud de la clave real que se importará y especifique el propósito de la clave.

  • Las claves con propósito ENCRYPT_DECRYPT usan el algoritmo google-symmetric-encryption y tienen una longitud de 32.

  • Las claves con el propósito ASYMMETRIC_ENCRYPT o ASYMMETRIC_SIGN admiten una variedad de algoritmos y longitudes.

    El propósito de la clave no se puede cambiar después de crearla, pero las versiones de la clave posteriores se pueden crear en longitudes diferentes a la versión inicial.

Importa y une una clave de forma automática

Si deseas usar la unión automática, debes usar la herramienta de línea de comandos de gcloud. Usa un comando como el siguiente. Establece --target-key-file en la ubicación de la clave separada para unir y, luego, importar. No establezcas -rsa-aes-wrapped-key-file.

De forma opcional, puedes establecer la marca --public-key-file en la ubicación en la que ya se descargó la clave pública. Cuando importas una gran cantidad de claves, esto evita que la clave pública se descargue durante cada importación. Por ejemplo, podrías escribir una secuencia de comandos que descargue la clave pública una vez y, luego, proporcionar su ubicación cuando importaba cada clave.

gcloud kms keys versions import \
  --import-job import-job \
  --location location \
  --keyring key-ring-name \
  --key key-name \
  --algorithm algorithm-name \
  --target-key-file path-to-unwrapped-key-to-import

La clave de unión asociada al trabajo de importación une la clave, que se transmite a Google Cloud y se importa como una versión de clave nueva en la clave de destino.

Importa una clave unida de forma manual

Sigue las instrucciones de esta sección para importar una clave que uniste manualmente. Configura --rsa-aes-wrapped-key-file en la ubicación de la clave que uniste manualmente. No establezcas --target-key-file.

De forma opcional, puedes establecer la marca --public-key-file en la ubicación en la que ya se descargó la clave pública. Cuando importas una gran cantidad de claves, esto evita que la clave pública se descargue durante cada importación. Por ejemplo, podrías escribir una secuencia de comandos que descargue la clave pública una vez y, luego, proporcionar su ubicación cuando importaba cada clave.

IU web

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

  2. Haz clic en el nombre del llavero de claves que contiene tu trabajo de importación. Se mostrará la clave de destino junto con cualquier otra clave en el llavero de claves.

  3. Haz clic en el nombre de la clave de destino y, luego, en Importar versión de clave.

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

  5. En el selector Subir la clave unida (Upload the wrapped key), selecciona la clave que ya uniste.

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

  7. Haga clic en Import.

Línea de comandos

Para usar Cloud KMS en la línea de comandos, primero Instala o actualiza a la versión más reciente del SDK de Cloud.

Usa un comando como el siguiente.

gcloud kms keys versions import \
  --import-job import-job \
  --location location \
  --keyring key-ring-name \
  --key key-name \
  --algorithm algorithm-name \
  --rsa-aes-wrapped-key-file path-to-wrapped-key-to-import

Para obtener más información, consulta el resultado del comando gcloud kms keys versions import --help.

Python

Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.

def import_manually_wrapped_key(project_id, location_id, key_ring_id, crypto_key_id, import_job_id):
    """
    Generates and imports local key material to Cloud KMS.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        crypto_key_id (string): ID of the key to import (e.g. 'my-asymmetric-signing-key').
        import_job_id (string): ID of the import job (e.g. 'my-import-job').
    """

    # Import the client library and Python standard cryptographic libraries.
    import os
    from cryptography.hazmat import backends
    from cryptography.hazmat.primitives import hashes, keywrap, serialization
    from cryptography.hazmat.primitives.asymmetric import ec, padding
    from google.cloud import kms

    # Generate some key material in Python and format it in PKCS #8 DER as
    # required by Google Cloud KMS.
    key = ec.generate_private_key(ec.SECP256R1, backends.default_backend())
    formatted_key = key.private_bytes(
        serialization.Encoding.DER,
        serialization.PrivateFormat.PKCS8,
        serialization.NoEncryption())

    print('Generated key bytes: {}'.format(formatted_key))

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Retrieve the fully-qualified crypto_key and import_job string.
    crypto_key_name = client.crypto_key_path(
        project_id, location_id, key_ring_id, crypto_key_id)
    import_job_name = client.import_job_path(
        project_id, location_id, key_ring_id, import_job_id)

    # Generate a temporary 32-byte key for AES-KWP and wrap the key material.
    kwp_key = os.urandom(32)
    wrapped_target_key = keywrap.aes_key_wrap_with_padding(
        kwp_key, formatted_key, backends.default_backend())

    # Retrieve the public key from the import job.
    import_job = client.get_import_job(name=import_job_name)
    import_job_pub = serialization.load_pem_public_key(
        bytes(import_job.public_key.pem, 'UTF-8'), backends.default_backend())

    # Wrap the KWP key using the import job key.
    wrapped_kwp_key = import_job_pub.encrypt(
        kwp_key,
        padding.OAEP(
            mgf=padding.MGF1(algorithm=hashes.SHA1()),
            algorithm=hashes.SHA1(),
            label=None))

    # Import the wrapped key material.
    client.import_crypto_key_version({
        "parent": crypto_key_name,
        "import_job": import_job_name,
        "algorithm": kms.CryptoKeyVersion.CryptoKeyVersionAlgorithm.EC_SIGN_P256_SHA256,
        "rsa_aes_wrapped_key": wrapped_kwp_key + wrapped_target_key,
    })

    print('Imported: {}'.format(import_job.name))

API

En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.

  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. Además, para el cuerpo de la solicitud, establece el campo wrappedKeyMaterial en el material de clave que ya uniste.

  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 en Cloud KMS.

Se inicia la solicitud de importación de claves. Puedes supervisar su estado.

Verifica el estado de la clave importada

El estado inicial de una clave importada es PENDING_IMPORT. Cuando el estado es ENABLED, la clave se importó correctamente. Si la importación falla, el estado es IMPORT_FAILED.

Puedes comprobar el estado de una solicitud de importación con la herramienta de línea de comandos de gcloud, Google Cloud Console o la API de Cloud Key Management Service.

IU web

  1. Abre la página Claves criptográficas en Cloud 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.

Línea de comandos

Para usar Cloud KMS en la línea de comandos, primero Instala o actualiza a la versión más reciente del SDK de Cloud.

Usa el comando versions list para verificar el estado. Usa la misma ubicación, el llavero de claves de destino y la clave de destino que creaste antes en este tema.

gcloud kms keys versions list \
  --keyring keyring \
  --location location \
  --key key-name

Python

Para ejecutar este código, primero configura un entorno de desarrollo de Python y, luego, instala el SDK de Python para Cloud KMS.

def check_state_imported_key(project_id, location_id, key_ring_id, import_job_id):
    """
    Check the state of an import job in Cloud KMS.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        import_job_id (string): ID of the import job (e.g. 'my-import-job').
    """

    # Import the client library.
    from google.cloud import kms

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Retrieve the fully-qualified import_job string.
    import_job_name = client.import_job_path(
        project_id, location_id, key_ring_id, import_job_id)

    # Retrieve the state from an existing import job.
    import_job = client.get_import_job(name=import_job_name)

    print('Current state of import job {}: {}'.format(import_job.name, import_job.state))

API

En estos ejemplos, se usa curl como un cliente HTTP para demostrar el uso de la API. Para obtener más información sobre el control de acceso, consulta Accede a la API de Cloud KMS.

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.

Después de importar la clave, su estado cambia a Activa. En el caso de las claves simétricas, debes configurar la versión de la clave importada como la versión principal antes de poder usar la clave.

Claves simétricas: Configura la versión principal

Este paso es obligatorio cuando se importan claves simétricas y no es relevante para claves asimétricas. Una clave asimétrica no tiene una versión primaria. Debes usar la herramienta de línea de comandos de gcloud para configurar la versión principal.

gcloud kms keys set-primary-version key-name --version=version-number

¿Qué sigue?