Consulta de la CLI de Key Protect

La última versión del plug-in de CLI de IBM® Key Protect for IBM Cloud® proporciona una forma segura y eficaz de gestionar claves en la instancia de Key Protect.

Al iniciar sesión en la CLI de IBM Cloud, se te notificará cuando haya actualizaciones disponibles. Asegúrese de mantener la CLI al día para que pueda utilizar los mandatos y las señales disponibles para el plugin de la CLI de Key Protect.

Notas

Para instalar y configurar el plugin de CLI Key Protect, consulte el tema sobre Configuración de la CLI.

El ejemplo que muestra cómo utilizar region-set describe un paso crítico de la configuración.

Versiones anteriores

Esta documentación correspondiente a la versión 0.8 no incluye comandos obsoletos.

Todos los mandatos en desuso funcionan en las versiones 0.4.0 y 0.5.2. Es decir, la versión 0.5.2 es compatible con las versiones 0.3.9 y 0.4.0.

Ejemplos

Todos los mandatos tienen una sección Example en la que se muestra cómo utilizar el mandato en el contexto de un flujo de trabajo.

Los ejemplos presuponen que tiene openssl y jq instalado.

Muchos ejemplos aprovechan una variable de entorno establecida para la sesión con respecto al ID de instancia de Key Protect en lugar del parámetro -i. Las variables así establecidas utilizadas automáticamente por el plug-in cuando sea adecuado y necesario.

# export the Key Protect instance id in the command line
$ export KP_INSTANCE_ID=<INSTANCE_ID>

Asegúrese de configurar el punto final de su instancia Key Protect:

export KP_TARGET_ADDR=<KEY_PROTECT_INSTANCE_ENDPOINT>   

Sustituye <KEY_PROTECT_INSTANCE_ENDPOINT> por el punto final correspondiente al ID de tu instancia. Por ejemplo:

export KP_TARGET_ADDR=https://fadedbee-0000-0000-0000-1234567890ab.api.us-south.kms.appdomain.cloud   

Puede encontrar el punto final de instancia para Key Protect en la consola IBM Cloud UI para su instancia específica.

ibmcloud kp command summary

ibmcloud kp da soporte a los mandatos listados aquí.

Mandato kp import-token

El mandato kp import-token prepara una clave raíz para una importación segura.

Subcomandos para gestionar los tokens de importación
Submandato Estado v0.8 Descripción
create Crear una señal de importación
key-encrypt Cifrar la clave que se importa en el servicio
nonce-encrypt Cifrar el valor nonce que genera kp import-token create
show Recuperar una señal de importación

Mandato kp instance

El mandato kp instance gestiona políticas para una instancia de Key Protect.

Subcomandos para la gestión de llaves
Submandato Estado v0.8 Descripción
policies Mostrar una lista de políticas asociadas a una instancia
policy-update allowed-network Actualizar la política de la instancia para allowed network
policy-update dual-auth-delete Actualizar la política de la instancia para dual auth delete
policy-update rotation Actualizar la política de la instancia para rotation

Mandato kp key

El mandato kp key gestiona claves individuales.

Subcomandos para la gestión de llaves
Submandato Estado v0.8 Descripción
alias-create Crear un alias para una referencia exclusiva y conveniente a una clave
cancel-delete Cancelar una solicitud planificada anteriormente para suprimir una clave
create Crear una clave o importar su propia clave
delete Suprimir una clave
disable Inhabilitar una clave
enable Habilitar una clave
policies Recuperar una lista de políticas
policy-update dual-auth-delete Actualizar la política de claves para dual auth delete
policy-update rotation Actualizar la política de claves para rotation
restore Restaurar una clave raíz que se había suprimido anteriormente
rotar Rotar una clave raíz
schedule-delete Autorizar que se suprima una clave con una política dual-auth-delete
show Recuperar una clave
sync Sincronizar los recursos asociados de una clave
unwrap Desenvolver una clave de cifrado de datos
update Actualizar una clave, transfiriéndola a un nuevo conjunto de claves
Versiones Listar todas las versiones de clave
wrap Envolver una clave de cifrado de datos

Mandato kp key-ring

El soporte de Conjunto de claves permite gestionar grupos de claves para las mejores prácticas utilizando kp key-ring.

Subcomandos para gestionar los llaveros
Submandato Estado v0.8 Descripción
create Crea un conjunto de claves dentro de una instancia de kp
delete Suprime un conjunto de claves dentro de una instancia de kp

Otros mandatos kp

Otros mandatos para gestionar recursos de Key Protect sirven para dar soporte a prácticas recomendadas.

Comandos para gestionar otros recursos
Mandato Estado v0.8 Descripción
kp keys Mostrar una lista de las claves que están disponibles en su instancia de Key Protect.
kp key-rings Lista los conjuntos de claves asociados a la instancia de kp
kp region-set Establecer como destino otro punto final regional
kp registrations Mostrar una lista de las asociaciones entre claves raíz y otros recursos de nube
kp kmip Crear y gestionar adaptadores KMIP y recursos asociados.
criptomoneda kp Gestionar unidades criptográficas
criptomonedas kp Lista de unidades criptográficas asignadas a una instancia

Los alias de clave se pueden utilizar como identificadores para los métodos tal como se muestra en los ejemplos de key create, key disable y en cualquier lugar donde vea 'ID de clave o alias' soportado aquí.

Visualización de ayuda

A continuación se muestran ejemplos de información de ayuda de kp.

  • ibmcloud kp -h
  • ibmcloud kp import-token -h
  • ibmcloud kp key -h
  • ibmcloud kp keys -h

Los mandatos kp import-token y kp key tienen submandatos. En estos ejemplos se muestra ayuda para algunos submandatos.

  • ibmcloud kp import-token create -h
  • ibmcloud kp key delete -h

kp import-token create

Cree una señal de importación que puede utilizar para cifrar e importar una clave raíz a la instancia de Key Protect. De forma predeterminada, la señal de importación caduca transcurridos 10 minutos (600 segundos).

ibmcloud kp import-token create
     -i, --instance-id    INSTANCE_ID
    [-e, --expiration     EXPIRATION_TIME_SECONDS]
    [-m, --max-retrievals MAX_RETRIEVALS]

Ejemplo

En este ejemplo se crea una señal de importación. La señal de importación consta de un valor nonce y una public key.

Un valor nonce es un número arbitrario que se puede utilizar una sola vez en una comunicación criptográfica.

# create an import token that expires in 5 minutes and allows 3 retrievals
$ ibmcloud kp import-token create --expiration 300 --max-retrievals 3

Created                         Expires                         Max Retrievals   Remaining Retrievals
2020-05-04 19:12:07 +0000 UTC   2020-05-04 19:17:07 +0000 UTC   3                3

# show the created token
$ ibmcloud kp import-token show

{
    "nonce": "8rf2ldP/zWm1Tjrb",
    "payload":
        "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo="
}

Parámetros necesarios

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -e, --expiration

    Especifique un tiempo de caducidad (en segundos) para una señal de importación. Este valor determina el tiempo durante el cual la señal de importación y su clave pública asociada siguen siendo válidas para las operaciones.

    El valor mínimo es 300 segundos (5 minutos) y el valor máximo es 86400 segundos (24 horas). El valor predeterminado es 600 segundos (10 minutos).

  • -m, --max-retrievals

    Establezca el recuento de uso para la señal de importación. Este valor determina el número de veces que se puede recuperar la señal de importación dentro de su tiempo de caducidad hasta que ya no se pueda acceder a ella. El valor predeterminado es 1.

kp import-token key-encrypt

Cifre el material de clave que importe en Key Protect utilizando la clave pública asociada a la instancia de Key Protect.

A continuación, proporcione la clave cifrada recuperada cuando ejecute ibmcloud kp key create para importar la clave al servicio.

ibmcloud kp import-token key-encrypt
        -i, --instance-id INSTANCE_ID
        -k, --key         KEY_MATERIAL
        -p, --pubkey      PUBLIC_KEY
       [-a, --hash        HASH_ALGORITHM]

Ejemplo

En este ejemplo se cifra un archivo « key material » utilizando la clave pública creada por kp import-token create.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
Ela33aTdDiKVUNryLeM/xwUEaKWvzY+u ...<redacted>... Asv7bZxvyZn9KNU=

Parámetros necesarios

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -k, --key

    El material de clave codificado en base64 que desea almacenar y gestionar en el servicio.

    -p, --pubkey

    La clave de cifrado pública codificada en base64 que ha distribuido Key Protect. Para crear una nueva clave pública, utilice ibmcloud kp import-token create. Para recuperar una clave pública, utilice ibmcloud kp import-token show.

Parámetros opcionales

  • -a, --hash

    El algoritmo hash utilizado para envolver la clave. Se da soporte a SHA1 y SHA256. El valor predeterminado es SHA256. SHA1 solo recibe soporte de HPCS.

    Esta opción se utiliza para generar una clave cifrada que solo se puede utilizar en una solicitud con la API HPCS. No utilice esta opción para crear claves raíz de Key Protect.

    Hyper Protect Crypto Services (HPCS) es un servicio de gestión de claves dedicado y módulo de seguridad de hardware (HSM). HPCS se integra con Key Protect para generar y cifrar claves. HPCS también habilita la función Mantener su propia clave (KYOK).

Notas

Para obtener más información sobre HPCS, consulte Iniciación a IBM Cloud Hyper Protect Crypto Services.

kp import-token nonce-encrypt

Cifre el nonce que distribuye Key Protect con el material de clave que importe en el servicio.

A continuación, proporcione los valores de Nonce y IV cifrados recuperados al ejecutar ibmcloud kp key create para importar la clave.

ibmcloud kp import-token nonce-encrypt
        -i, --instance-id INSTANCE_ID
        -k, --key         KEY_MATERIAL
        -n, --nonce       NONCE
    [-c, --cbc]

Ejemplo

Este ejemplo cifra el nonce utilizando el key material.

Un valor nonce es un número arbitrario que se puede utilizar una sola vez en una comunicación criptográfica.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
mWQad1RHdWoFXFw/D9h8z43t/+0vIZc55VBBQg==   6nvOwUvQdowoD+3v

Parámetros necesarios

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -k, --key

    El material de clave codificado en base64 que desea almacenar y gestionar en el servicio.

    -n, --nonce

    El valor nonce que se utiliza para verificar una solicitud para importar una clave. El valor está codificado en base64. Para recuperar un nonce, utilice ibmcloud kp import-token show.

Parámetros opcionales

  • -c, --cbc

    Cifrar el valor nonce mediante el algoritmo de cifrado AES-CBC. Este método de algoritmo solo recibe soporte para HPCS. El algoritmo de cifrado predeterminado es AES-GCM.

    Esta opción se utiliza para generar un valor nonce cifrado que solo se puede utilizar en una solicitud con la API HPCS. No utilice esta opción para crear claves raíz de Key Protect.

    Hyper Protect Crypto Services (HPCS) es un servicio de gestión de claves dedicado y módulo de seguridad de hardware (HSM). HPCS se integra con Key Protect para generar y cifrar claves. HPCS también habilita la función Mantener su propia clave (KYOK).

Notas

Para obtener más información sobre HPCS, consulte Iniciación a IBM Cloud Hyper Protect Crypto Services.

kp import-token show

Recuperar la señal de importación asociada a la instancia de Key Protect instancia.

La señal de importación contiene una clave de cifrado pública y un nonce. Proporcione la clave pública recuperada y nonce como argumentos para ibmcloud kp import-token nonce-encrypt AND ibmcloud kp import-token key-encrypt.

ibmcloud kp import-token show
    -i, --instance-id INSTANCE_ID

Ejemplo

En este ejemplo se crea una señal de importación y se muestran los resultados.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# show the created token
$ ibmcloud kp import-token show

{
    "nonce": "8rf2ldP/zWm1Tjrb",
    "payload":
        "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo="
}

# extract the nonce that was created by the "kp import-token create" command
$ ibmcloud kp import-token show | jq -r '.["nonce"]'

8rf2ldP/zWm1Tjrb

# extract the public key that was created by the "kp import-token create" command
$ ibmcloud kp import-token show | jq -r '.["payload"]'

LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=

Parámetros necesarios

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp instance policies

Recuperar detalles sobre políticas de instancia, como allowed networks (public-and-private o private-only), políticas de allowed IP, acceso de key create import, métricas y supresión de autorización dual (la supresión de una clave requiere una autorización de dos usuarios).

ibmcloud kp instance policies
    [-i, --instance-id     INSTANCE_ID]
    [-p, --allowed-ip]
    [-a, --allowed-network]
    [-d, --dual-auth-delete]
    [-k, --key-create-import-access]
    [-m, --metrics]
    [-o, --output          OUTPUT]
    [-r, --rotation]

Ejemplo

El ejemplo muestra cómo utilizar el mandato y los resultados. Si el servicio no da ningún resultado de la consulta, se devolverá una matriz vacía ([]).

# update the instance policy and set the allowed network to public-and-private
$ ibmcloud kp instance policy-update allowed-network --enable --network-type public-and-private

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies

Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By        user id ...<redacted>...
Creation Date     2020-06-22T16:17:52Z
Last Updated      2020-06-22T16:17:52Z
Updated By        user id ...<redacted>...
Policy Type       allowedNetwork
Enabled           true
Network Allowed   public-and-private

# disable the instance allowed-network policy
$ ibmcloud kp instance policy-update allowed-network --disable

Updating instance policy...
OK

# list the instance policies - the policy exists and it's disabled
$ ibmcloud kp instance policies

Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By        user id ...<redacted>...
Creation Date     2020-06-22T16:17:52Z
Last Updated      2020-06-22T16:20:08Z
Updated By        user id ...<redacted>...
Policy Type       allowedNetwork
Enabled           false
Network Allowed   public-and-private

# list the instance policies and show the output as JSON
$ ibmcloud kp instance policies --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T16:17:52Z",
    "lastUpdated": "2020-06-22T16:20:08Z",
    "updatedBy": "user id ...<redacted>...",
    "policy_type": "allowedNetwork",
    "policy_data": { "enabled": false, "attributes": {   "allowed_network": "public-and-private" }
    }
  }
]

Parámetros necesarios

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -p, --allowed-ip

    Mostrar la política de la instancia para «direcciones IP permitidas».

  • -a, --allowed-network

    Muestre la política de instancia para "red permitida".

  • -d, --dual-auth-delete

    Mostrar la política de instancia de dual authorization delete.

  • -k, --key-create-import-access

    Recupera los detalles de la política de acceso de importación de creación de claves de la instancia.

  • -m, --metrics

    Recupera los detalles de la política de métricas de la instancia.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • -r, --rotation

    Recupera los detalles de la política de rotación de la instancia.

kp instance policy-update allowed-network

Actualiza la política de una instancia y configura la red permitida en public-and-private o private-only.

La política allowed-network impide que una instancia reciba solicitudes de redes públicas o privadas.

Para las instancias existentes, la política de acceso a la red se impone una vez establecida.

Para obtener más información, consulte Gestión de políticas de acceso a red.

ibmcloud kp instance policy-update allowed-network
    -i, --instance-id  INSTANCE_ID
    -d, --disable OR
    -e, --enable
    -t, --network-type NETWORK_TYPE

Ejemplo

En este ejemplo se establece la política "allowed network" en "public-and-private".

# update the instance policy and set the allowed network to public-and-private
$ ibmcloud kp instance policy-update allowed-network --enable --network-type public-and-private

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies

Retrieving policy details for instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Created By        user id ...<redacted>...
Creation Date     2020-06-22T16:17:52Z
Last Updated      2020-06-22T18:17:32Z
Updated By        user id ...<redacted>...
Policy Type       allowedNetwork
Enabled           true
Network Allowed   public-and-private

Parámetros necesarios

  • -d, --disable

  • -e, --enable

    Inhabilitar o habilitar la política de acceso a la red. Es obligatoria una de las dos opciones.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -t, --network-type

    Especifique el tipo de acceso a la red permitido. Las opciones son public-and-private o private-only.

kp instance policy-update dual-auth-delete

Utilizar la política dual-auth-delete para suprimir de forma segura las claves de cifrado. Cuando suprime una clave, destruye el contenido y los datos asociados a ella. Los datos que haya podido cifrar esa clave quedan inaccesibles.

Para suprimir una clave que tiene una política de autorización dual se requiere la autorización de dos usuarios.

Para más información, consulte Uso de políticas de autorización duales para la eliminación de claves.

Notas

La supresión de autorización dual para una instancia es diferente de la supresión de autorización dual para claves.

Una vez que habilite dual-auth-delete para una clave, no puede inhabilitarla ni eliminarla. Debe esperar 7 días hasta que la política caduque.

La supresión de autorización dual para una instancia se puede habilitar o inhabilitar siempre que se desee.

Si una clave tiene una política dual-auth-delete, al cambiar la política de la instancia no se cambia ninguna política de claves existente.

Cuando cambie la política de la instancia, se aplicarán nuevas claves con la política de la instancia.

ibmcloud kp instance policy-update dual-auth-delete
    -i, --instance-id INSTANCE_ID
    -d, --disable OR
    -e, --enable

Ejemplos

A continuación se muestran ejemplos de kp instance policy-update dual-auth-delete.

Ejemplo 1

En este ejemplo se habilita la política de supresión de autorización dual.

# enable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --enable

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T18:45:14Z",
    "lastUpdated": "2020-06-22T18:45:14Z",
    "updatedBy": "user id ...<redacted>...",
    "policy_type": "dualAuthDelete",
    "policy_data": { "enabled": true
    }
  }
]

# disable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --disable

Updating instance policy...
OK

# list the instance policies
$ ibmcloud kp instance policies --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T18:45:14Z",
    "lastUpdated": "2020-06-22T18:51:33Z",
    "updatedBy": "user id ...<redacted>...",
    "policy_type": "dualAuthDelete",
    "policy_data": { "enabled": false
    }
  }
]

Ejemplo 2

En este ejemplo se habilita la política de supresión de autorización dual y se crea una nueva clave para mostrar cómo una clave nueva hereda la política de la instancia.

La inhabilitación de la política de autorización dual para una instancia no cambia la política para las claves existentes. La política de la instancia se aplica a las nuevas claves creadas después de actualizar la política.

# enable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --enable

Updating instance policy...
OK

# create a new key
$ ibmcloud kp key create my-protected-key

Creating key: 'my-protected-key', in instance: 'a192d603-0b8d-452f-aac3-f9e1f95e7411'...
OK
Key ID                                 Key Name
6a8a129b-0cd4-4667-ba57-b355a125a7ca   my-protected-key

# list the policies for the key - dual-auth-delete is
# enabled because the key inherits the instance policy
$ ibmcloud kp key policies 6a8a129b-0cd4-4667-ba57-b355a125a7ca --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T19:13:00Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
    "lastUpdateDate": "2020-06-22T19:13:00Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

# attempt to delete the key - this fails
$ ibmcloud kp key delete 6a8a129b-0cd4-4667-ba57-b355a125a7ca

Deleting key: 6a8a129b-0cd4-4667-ba57-b355a125a7ca, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
    correlation_id='8ad33eb2-7bbf-4b7a-a02e-221959920342',
    msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

# disable the instance dual authorization policy
$ ibmcloud kp instance policy-update dual-auth-delete --disable

Updating instance policy...
OK

# attempt to delete the key - this fails because the key policy
# does not change when the instance policy is updated
$ ibmcloud kp key delete 6a8a129b-0cd4-4667-ba57-b355a125a7ca

Deleting key: 6a8a129b-0cd4-4667-ba57-b355a125a7ca, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
    correlation_id='cbc0d18b-a816-45ab-af6a-b8e18dc3e628',
    msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
    FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

Parámetros necesarios

  • -d, --disable

  • -e, --enable

    Inhabilitar o habilitar la política de autorización dual. Es obligatoria una de las dos opciones.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key alias-create

Crea un alias para una clave y muestra el resultado en formato JSON. Los alias se pueden utilizar como referencia en métodos que aceptan una clave ID. Cada alias es único únicamente dentro de la instancia en cuestión y no está reservado en todo el servicio Key Protect. Cada clave puede tener hasta cinco alias. No hay límite en el número de alias por instancia. La longitud del alias puede tener entre 2 y 90 caracteres, ambos inclusive.

Un alias debe ser alfanumérico y no puede contener espacios ni caracteres especiales distintos de '-' o '_'. Además, el alias no puede ser un UUID de la versión 4 y no debe ser un nombre reservado de Key Protect: allowed_ip, key, keys, metadata, policy, policies, registration, registrations, ring, rings, rotate, wrap, unwrap, rewrap, version, versions.

ibmcloud kp key alias-create KEY_ID -a KEY_ALIAS
    -i, --instance-id     INSTANCE_ID
    -a, --alias           KEY_ALIAS
    [-o, --output         OUTPUT]

Ejemplos

Este es un ejemplo de kp key alias-create.

Ejemplo

Cree un alias de clave.

# create a key alias
$ ibmcloud kp key alias-create 24203f96-b134-440e-981a-a24f2d432256 my-alias

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Alias
24203f96-b134-440e-981a-a24f2d432256   my-alias

Parámetros necesarios

  • KEY_ID

    El ID de la clave que desea modificar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

  • KEY_ALIAS

    El alias o el identificador alternativo de la clave que desea modificar. El identificador debe ser: alfanumérico, sin espacios ni caracteres especiales distintos de '-' o '_', y no puede ser un UUID de la versión 4.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

kp key cancel-delete

Una clave con la política dual-auth-delete requiere autorización de dos usuarios administrativos para suprimir la clave.

Este mandato (kp key cancel-delete) cancela, o elimina, una autorización anterior.

El mandato kp key schedule-delete es la "autorización" para suprimir la clave.

Siga este proceso para suprimir una clave con una política dual-auth-delete.

  1. Cree una clave y habilite la política dual-auth-delete

  2. El usuario 1 planifica (autoriza) una supresión de claves con el Mandato kp key schedule-delete

  3. El usuario 2 planifica (autoriza) una supresión de clave

  4. La clave se suprime después de que se realice la segunda acción schedule-delete, que recibe soporte en la interfaz de usuario, la API y la CLI

  5. Si no se produce una segunda autorización en un plazo de 7 días, la clave vuelve a su estado predeterminado

Hay dos formas de habilitar la política dual-auth-delete:

  • Establecer la política para una sola clave mediante kp key policy-update dual-auth-delete
  • Establecer la política para la instancia utilizando kp instance policy-update dual-auth-delete; todas las claves creadas después de habilitar la política de instancia heredan el valor de política de instancia
ibmcloud kp key cancel-delete KEY_ID_OR_ALIAS
    -i, --instance-id INSTANCE_ID

Ejemplo

En este ejemplo se cancela una supresión de clave planificada anteriormente.

# this key has a dual-auth-delete policy
$ ibmcloud kp key policies $KEY_ID --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T19:13:00Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
    "lastUpdateDate": "2020-06-22T21:29:10Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

# cancel a previously scheduled key delete
$ ibmcloud kp key cancel-delete $KEY_ID

Cancelling key for deletion...
OK

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas eliminar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

kp key create

Crear una clave raíz en la instancia de Key Protect que especifique o importar su propia clave

Las claves raíz debe tener 16, 24 o 32 bytes de longitud, lo que corresponde a 128, 192 o 256 bits.

ibmcloud kp key create KEY_NAME
        -i, --instance-id     INSTANCE_ID
    [--key-ring                KEY_RING_ID]
    [-k, --key-material    KEY_MATERIAL]
    [-n, --encrypted-nonce NONCE]
    [-o, --output          OUTPUT]
    [-s, --standard-key]
    [-v, --iv              IV]
    [-D, --description     DESCRIPTION]

Ejemplos

A continuación se muestran ejemplos de kp key create.

Ejemplo 1

Crear una clave raíz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
24203f96-b134-440e-981a-a24f2d432256   my-root-key

Ejemplo 2

Crear una clave raíz y mostrar la salida JSON.

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "24203f96-b134-440e-981a-a24f2d432256",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:24203f96-b134-440e-981a-a24f2d432256"
}

Ejemplo 3

Crear una clave raíz a partir de un valor codificado en base64.

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# create a root key from a base64-encoded value
$ ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL

Creating key: 'my-base64-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
5f9eef2d-53b4-42e8-8b56-c2970255210a   my-base64-root-key

Ejemplo 4

Crear una clave raíz mediante una señal de importación.

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
qT1pyiS1Sivbmmt4doTtfZC4XuLazk7u ...<redacted>... +a/6EqeAamo/9vo=

# capture the encrypted key material
$ ENCRYPTED_KEY=qT1pyiS1Sivbmmt4doTtfZC4XuLazk7u ...<redacted>... +a/6EqeAamo/9vo=

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
fR8uRvbrKIm9y/LCq9p6pwFBXbF864q/bw5meQ==   efQgA8xBeyuBy39D

# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=fR8uRvbrKIm9y/LCq9p6pwFBXbF864q/bw5meQ==
$ IV=efQgA8xBeyuBy39D

# create a root key using an import token, provide an encrypted key, nonce, and initialization vector (IV)
$ ibmcloud kp key create my-imported-root-key -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV

Creating key: 'my-imported-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
4241a9b3-0ee0-4cfd-b0f3-fd80505fb675   my-imported-root-key

Ejemplo 5

Crear una clave estándar.

# create a standard key
$ ibmcloud kp key create my-standard-key -s

Creating key: 'my-standard-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
12d3f3a4-aea5-4832-8339-fa14dbffd935   my-standard-key

Ejemplo 6

Crear una clave estándar, que se utiliza como caja fuerte para las credenciales.

Cualquier serie codificada en base64 se puede importar como una clave estándar. Este ejemplo muestra cómo almacenar credenciales, no solo claves de cifrado, en Key Protect.

Las claves estándar pueden tener hasta 7.500 bytes de tamaño antes de la codificación en base64.

# create a file with your credentials
$ cat credentials.json

{
    "host": "localhost",
    "database": "dev-backup",
    "username": "my-username",
    "password": "my-password"
}

# encode the credentials (or any string) to a base64 string
$ ENCODED=$(base64 -i credentials.json)

$ echo $ENCODED

ewoJImhvc3QiOiAibG9jYWxob3N0IiwK...<redacted>...cGFzc3dvcmQiCn0K

# create a new key that contains the base64-encoded credentials
$ ibmcloud kp key create credentials-key -i $KP_INSTANCE_ID --key-material $ENCODED --standard-key --output json

# OR... CAPTURE THE KEY_ID
$ KEY_ID=$(ibmcloud kp key create credentials-key -i $KP_INSTANCE_ID --key-material $ENCODED --standard-key --output json | jq -r '.["id"]')

{
    "id": "8480e26f-3add-4fff-bca7-8cf908894b7c",
    "name": "credentials-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": true,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:8480e26f-3add-4fff-bca7-8cf908894b7c",
    "deleted": false
}

# retrieve the base64-encoded payload
$ ibmcloud kp key show $KEY_ID --output json

# OR... CAPTURE THE PAYLOAD
$ PAYLOAD=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["payload"]')

{
    "id": "8480e26f-3add-4fff-bca7-8cf908894b7c",
    "name": "credentials-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-08-18T16:13:08Z",
    "lastUpdateDate": "2020-08-18T16:13:08Z",
    "extractable": true,
    "payload": "ewoJImhvc3QiOiAibG9jYWxob3N0IiwKCSJkYXRhYmFzZSI6ICJkZXYtYmFja3VwIiwKCSJ1c2VybmFtZSI6ICJteS11c2VybmFtZSIsCgkicGFzc3dvcmQiOiAibXktcGFzc3dvcmQiCn0=",
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:8480e26f-3add-4fff-bca7-8cf908894b7c",
    "deleted": false,
    "dualAuthDelete": {
        "enabled": false
      }
}

# decode the payload to get the original string (credentials)
$ echo $PAYLOAD | base64 -d

{
    "host": "localhost",
    "database": "dev-backup",
    "username": "my-username",
    "password": "my-password"
}

Ejemplo 7

Cree una clave raíz con un alias y, a continuación, utilice ese alias para identificar la clave para mostrar los detalles de la clave.

# create a root key with an alias
$ ibmcloud kp key create root-key-with-alias -a example-alias --output json

{
    "id": "b3660416-4186-4587-b528-484886a4731b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "aliases": [
        "example-alias"
    ],
    "keyRingID": "default",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:b3660416-4186-4587-b528-484886a4731b",
    "deleted": false
}

# show key details using the alias as identifier
$ ibmcloud kp key show example-alias --output json

{
    "id": "b3660416-4186-4587-b528-484886a4731b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2022-06-09T21:21:55Z",
    "lastUpdateDate": "2022-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2022-06-09T21:21:55Z"
    },
    "aliases": [
        "example-alias"
    ],
    "keyRingID": "default",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:b3660416-4186-4587-b528-484886a4731b",
    "deleted": false,
    "dualAuthDelete": {
        "enabled": false
    }
}

Ejemplo 8

Añada una descripción a una clave. Por ejemplo, una frase corta utilizada para describir la finalidad prevista de la clave.

ibmcloud kp key create KEY_NAME -i 40f2a13c-780e-4641-bea5-e166e5bb5a9f -D ""description of the key""

Parámetros necesarios

  • KEY_NAME

    Un identificador exclusivo en lenguaje natural para asignar a la clave.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -k, --key-material

    Si ha generado una clave, es el material de clave codificado en base64 que desea almacenar y gestionar en el servicio.

    Las claves raíz debe tener 16, 24 o 32 bytes de longitud, lo que corresponde a 128, 192 o 256 bits. La clave debe estar codificada en base64.

    Las claves estándar pueden tener hasta 7.500 bytes de tamaño. La clave debe estar codificada en base64.

    Si va a crear una clave mediante una señal de importación, es la clave cifrada obtenida del proceso kp import-token key-encrypt.

    Para generar una nueva clave, omita el parámetro -k, --key-material.

  • -n, --encrypted-nonce

    Se utiliza con las señales de importación. El valor de nonce cifrado que verifica la solicitud para importar una clave en Key Protect. Este valor se debe cifrar utilizando el material de claves que importe en el servicio. Consulte ibmcloud kp import-token --help.

    Para recuperar un nonce, utilice ibmcloud kp import-token show. A continuación, cifre el valor ejecutando ibmcloud kp import-token nonce-encrypt.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • -s, --standard-key

    Establezca el parámetro sólo si desea crear una clave estándar. Para crear una clave raíz, omita el parámetro --standard-key.

  • -v, --iv

    Se utiliza con las señales de importación. El vector de inicialización (IV) que se genera cuando cifra un nonce. El valor de IV es necesario para descifrar el valor de nonce cifrado que proporcionará cuando realice una solicitud de importación de claves en el servicio.

    Para generar un IV, cifre el nonce ejecutando ibmcloud kp import-token nonce-encrypt.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

  • -D, --description

    Permite añadir una descripción a la clave. Por ejemplo, una frase corta utilizada para describir la finalidad prevista de la clave.

kp key create-key-with-policy-overrides

Cree una clave con políticas sólo para la clave con nombre que alterará temporalmente las políticas de instancia aplicables.

ibmcloud kp key create-key-with-policy-overrides KEY_NAME
    -i, --instance-id                         INSTANCE_ID
    [-a, --aliases                            ALIAS]
    [-d, --dual-auth-delete-policy-enabled    KEY_RING_ID]
    [--key-ring                               KEY_RING_ID]
    [-k, --key-material                       KEY_MATERIAL]
    [-m, --rotation-interval-month            VALUE]
    [-n, --encrypted-nonce                    NONCE]
    [-o, --output                             OUTPUT]
    [-s, --standard-key]
    [-v, --iv                                 IV]

Ejemplo

Cree una clave raíz que habilite una política de rotación con un intervalo de 2 meses (cada "mes" se valora en 30 días, lo que da como resultado un intervalo de rotación de 60 días).

% ibmcloud kp key create-key-with-policy-overrides test-key -m 2 -r
Creating key with policy overrides: 'test-key', in instance: '47377f07-8721-2O47-f396-ef1982c1e96e'...

OK
Key ID                                 Key Name   
076df396-4c90-e008-bf20-f1bb672d465b   test-key

# List policies
% ibmcloud kp key policies 076df396-4c90-e008-bf20-f1bb672d465b
Retrieving policy details for key ID: 076df396-4c90-e008-bf20-f1bb672d465b...
OK

Created By      IBMid-xxxxnnnnnxxx   
Creation Date   2022-10-27T17:48:20Z   
Last Updated    2022-10-27T17:48:20Z   
Updated By      IBMid-xxxxnnnnnxxx   
Policy Type     Rotation   
Interval        2   
Enabled         true

Parámetros necesarios

  • KEY_NAME

    Un identificador exclusivo en lenguaje natural para asignar a la clave.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -a, --aliases

    Nombres alfanuméricos de alias legibles por el usuario de entre 2 y 90 caracteres asignados a la clave. El alias no puede contener espacios ni caracteres especiales distintos de los subrayados y guiones. Se permite un máximo de 5 alias por clave.

  • -d, --dual-auth-delete-policy-enabled

Habilita la política de supresión de autenticación dual para una clave.

  • -k, --key-material

    Si ha generado una clave, es el material de clave codificado en base64 que desea almacenar y gestionar en el servicio.

    Las claves raíz debe tener 16, 24 o 32 bytes de longitud, lo que corresponde a 128, 192 o 256 bits. La clave debe estar codificada en base64.

    Las claves estándar pueden tener una longitud de hasta 7.500 bytes. La clave debe estar codificada en base64.

    Si va a crear una clave mediante una señal de importación, es la clave cifrada obtenida del proceso kp import-token key-encrypt.

    Para generar una nueva clave, omita el parámetro -k, --key-material.

  • -n, --encrypted-nonce

    Se utiliza con las señales de importación. El valor de nonce cifrado que verifica la solicitud para importar una clave en Key Protect. Este valor se debe cifrar utilizando el material de claves que importe en el servicio. Consulte ibmcloud kp import-token --help.

    Para recuperar un nonce, utilice ibmcloud kp import-token show. A continuación, cifre el valor ejecutando ibmcloud kp import-token nonce-encrypt.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • -m, --rotation-interval-month

Especifica el intervalo de tiempo de rotación (en meses) para una clave. El valor predeterminado es -1.

  • -s, --standard-key

    Establezca el parámetro sólo si desea crear una clave estándar. Para crear una clave raíz, omita el parámetro --standard-key.

  • -v, --iv

    Se utiliza con las señales de importación. El vector de inicialización (IV) que se genera cuando cifra un nonce. El valor de IV es necesario para descifrar el valor de nonce cifrado que proporcionará cuando realice una solicitud de importación de claves en el servicio.

    Para generar un IV, cifre el nonce ejecutando ibmcloud kp import-token nonce-encrypt.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key delete

Suprimir una clave que está almacenada en el servicio Key Protect.

ibmcloud kp key delete KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring          KEY_RING_ID]
    [-f, --force]
    [-o, --output      OUTPUT]

Ejemplos

A continuación se muestran ejemplos de kp key delete.

Ejemplo 1

Suprimir una clave raíz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key

# show key details
$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f

Grabbing info for key id: 8635b804-9966-4918-a16b-d561fdbf181f...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key                 2020-05-05 19:58:02 +0000 UTC   Key does not expire

# delete the key
$ ibmcloud kp key delete 8635b804-9966-4918-a16b-d561fdbf181f

Deleting key: 8635b804-9966-4918-a16b-d561fdbf181f, from instance: 390086ac-76fa-4094-8cf3-c0829bd69526...
OK
Deleted Key
8635b804-9966-4918-a16b-d561fdbf181f

Ejemplo 2

Suprimir una clave raíz y mostrar la salida JSON.

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb145:390086ac-76fa-4094-8cf3-c0829bd69526:key:9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}

# show key details
$ ibmcloud kp key show 9cca88c9-019e-4f0a-9e76-8e657c6b9720 --output json

{
    "id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-05T20:03:00Z",
    "lastUpdateDate": "2020-05-05T20:03:00Z",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb145:390086ac-76fa-4094-8cf3-c0829bd69526:key:9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}

# delete the key
$ ibmcloud kp key delete 9cca88c9-019e-4f0a-9e76-8e657c6b9720 --output json

{
    "id": "9cca88c9-019e-4f0a-9e76-8e657c6b9720"
}

Ejemplo 3

Suprimir una clave raíz que esté registrada con otro recurso de nube.

# create a Cloud Object Storage (COS) instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1

$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global

# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=9d4353d8-6b85-4689-90dd-1ccfb4a275ab

# create a Key Management Service (KMS) instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1

$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south

# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=b0d84b32-09d0-4314-8049-da78e3b9ab6f

# create a policy for COS to read KMS; source is COS, target is KMS (Key Protect)
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
  --source-service-instance-id $COS_INSTANCE_ID \
  --target-service-instance-id $KP_INSTANCE_ID

# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=79375168-2d74-49df-98aa-3e727410fa71

# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json

{
    "id": "52a9d772-8982-4620-bfb4-b070dd812a0c",
    "name": "my-cos-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b0d84b32-09d0-4314-8049-da78e3b9ab6f:key:52a9d772-8982-4620-bfb4-b070dd812a0c"
}

# capture the KP root key id
$ MY_COS_KEY_ID=52a9d772-8982-4620-bfb4-b070dd812a0c

# create a COS bucket and set KP encryption
#   must be done in the console user interface (UI) because
#   there is no API or CLI support at this time

# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket

# view the KP registration; it's a result of creating the COS bucket
$ ibmcloud kp registrations --output json

[
  {
    "keyId": "52a9d772-8982-4620-bfb4-b070dd812a0c",
    "resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:9d4353d8-6b85-4689-90dd-1ccfb4a275ab:bucket:my-cos-kms-bucket",
    "createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:9d4353d8-6b85-4689-90dd-1ccfb4a275ab::",
    "creationDate": "2020-06-15T20:41:23Z",
    "lastUpdated": "2020-06-15T20:41:23Z",
    "keyVersion": { "id": "52a9d772-8982-4620-bfb4-b070dd812a0c", "creationDate": "2020-06-15T20:36:46Z"
    }
  }
]

# delete the authorization policy between COS AND KMS - this breaks everything
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force

# delete the KP root key - this fails because the registration was not deleted
$ ibmcloud kp key delete $MY_COS_KEY_ID

Deleting key: 52a9d772-8982-4620-bfb4-b070dd812a0c, from instance: b0d84b32-09d0-4314-8049-da78e3b9ab6f...
FAILED
kp.Error:
    correlation_id='c27b7948-4a1f-4cbd-8770-cb3616888e27',
    msg='Conflict: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[PROTECTED_RESOURCE_ERR: Key is protecting one or more cloud resources -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/docs/key-protect?topic=key-protect-troubleshooting#unable-to-delete-keys]'

# delete the KP root key; use --force because the registration between COS and KMS still exists
$ ibmcloud kp key delete $MY_COS_KEY_ID --force --output json

{
    "id": "52a9d772-8982-4620-bfb4-b070dd812a0c"
}

# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force

# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force

# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances

Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas eliminar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -f, --force

    Suprimir una clave, de manera forzada, que se utiliza para suprimir una clave que tiene "registros". Los registros son asociaciones entre las claves raíz y otros recursos de nube, tales como los grupos de COS (Cloud Object Storage) o los despliegues de bases de datos de la nube.

    Para obtener más información, consulte kp registrations

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key disable

El mandato kp key disable inhabilita una clave raíz y revoca temporalmente el acceso a los datos asociados a la clave en la nube.

Como administrador, es posible que tenga que inhabilitar una clave raíz de forma temporal si sospecha una posible exposición de seguridad, un riesgo o una infracción de los datos.

La inhabilitación de una clave raíz suspende sus operaciones de cifrado y descifrado. Después de confirmar que un riesgo de seguridad ya no está activo, puede restaurar el acceso a los datos mediante la habilitación de la clave raíz inhabilitada.

Cuando inhabilita una clave raíz que se había habilitado anteriormente, la clave pasa del estado Activo (el valor es 1) al estado Suspendido (el valor es 2).

Para inhabilitar una clave raíz, debe tener asignado un rol de acceso de servicio de Gestor a la instancia o clave. Para saber cómo se correlacionan los roles de IAM con las acciones de servicio de Key Protect, consulte Roles de acceso al servicio.

Si utiliza un servicio de nube integrado que permite revocar el acceso a una clave raíz inhabilitada, el servicio puede tardar hasta 4 horas hasta que se revoque el acceso a los datos asociados de la clave raíz.

Después de que se revoque el acceso a los datos asociados, disable event se muestra en la interfaz de usuario web de IBM Cloud Logs. El disable event indica que la clave se ha revocado (y ahora está inhabilitada) y la clave no se puede utilizar para operaciones de cifrado y descifrado.

ibmcloud kp key disable KEY_ID_OR_ALIAS
    -i, --instance-id INSTANCE_ID
    [--key-ring         KEY_RING_ID]

Ejemplos

A continuación se muestran ejemplos de kp key disable.

Ejemplo 1

Crear una clave raíz, inhabilitarla, verificar el estado de la clave (suspendido), habilitar la clave raíz y verificar el estado clave (activo).

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# disable the root key
$ ibmcloud kp key disable 264fadc3-7667-4b25-916e-5825fe70de0b

Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:23:26Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 2,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

Ejemplo 2

Crear una clave raíz, inhabilitarla e intentar utilizar la clave raíz para envolver otra clave.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

63d044d9-b38b-4803-85ef-ed9a1e5087c2

# disable the root key
$ ibmcloud kp key disable $KEY_ID

Disabling key: '63d044d9-b38b-4803-85ef-ed9a1e5087c2', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

BNxtU9B4kXOZA45Cnyz3wOh4J77TakTXI1n2rj0ZiMc=

# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
# this should fail (the root key is disables)
$ ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json

FAILED
kp.Error:
    correlation_id='c2edbdad-7e62-4690-8fcc-10515ade9913',
    msg='Conflict: Action could not be performed on key. Please see "reasons" for more details.',
    reasons='[KEY_ACTION_INVALID_STATE_ERR: Key is not in a valid state -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

Ejemplo 3

Cree una clave raíz con un alias, utilice ese alias para identificar la clave que se va a inhabilitar, verifique el estado de la clave (suspendido) y, a continuación, habilite la clave raíz y verifique el nuevo estado de la clave (activo).

# create a root key
$ ibmcloud kp key create root-key-with-alias -a example-alias-1 --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "aliases": [
        "example-alias"
    ],
    "deleted": false,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# show key details using the alias as identifier - a state of "1" is "active"
$ ibmcloud kp key show example-alias-1 --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    ...
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# disable the root key identified by alias
$ ibmcloud kp key disable example-alias-1

Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show example-alias-1 --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "root-key-with-alias",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:23:26Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 2,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas eliminar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key enable

Cuando se habilita una clave raíz que se había inhabilitado anteriormente, la clave pasa del estado Suspendido (el valor es 2) al estado Activo (el valor es 1). Esta acción restaura las operaciones de cifrado y descifrado de las claves.

Si utiliza un servicio de nube integrado que da soporte a la restauración del acceso a una clave raíz inhabilitada, el servicio puede tardar hasta un máximo de 4 horas antes de que se restaure el acceso a los datos asociados de la clave raíz.

Después de que se restaure el acceso a los datos asociados, enable event se muestra en la interfaz de usuario web de IBM Cloud Logs. El enable event indica que la clave se ha restaurado (y que ahora está habilitada) y que la clave se puede utilizar para operaciones de cifrado y descifrado, como envolver, desenvolver y volver a envolver.

ibmcloud kp key enable <KEY_ID_OR_ALIAS> -i <INSTANCE_ID> [ --key-ring KEY_RING_ID]

Ejemplos

Este es un ejemplo de kp key enable.

# create a root key
$ ibmcloud kp key create my-root-key --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:21:55Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# disable the root key
$ ibmcloud kp key disable 264fadc3-7667-4b25-916e-5825fe70de0b

Disabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "2" is "suspended"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:23:26Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 2,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

# enable the key
$ ibmcloud kp key enable 264fadc3-7667-4b25-916e-5825fe70de0b

Enabling key: '264fadc3-7667-4b25-916e-5825fe70de0b', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK

# show key details - a state of "1" is "active"
$ ibmcloud kp key show 264fadc3-7667-4b25-916e-5825fe70de0b --output json

{
    "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-09T21:21:55Z",
    "lastUpdateDate": "2020-06-09T21:31:44Z",
    "keyVersion": {
        "id": "264fadc3-7667-4b25-916e-5825fe70de0b",
    "creationDate": "2020-06-09T21:21:55Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:264fadc3-7667-4b25-916e-5825fe70de0b"
}

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas eliminar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key policies

Recuperar detalles sobre una política de claves, como por ejemplo el intervalo de rotación automático de la clave.

ibmcloud kp key policies KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring          KEY_RING_ID]
    [-d, --dual-auth]
    [-o, --output      OUTPUT]
    [-r, --rotation]

Ejemplo

En este ejemplo se muestran las políticas para una clave raíz.

Las políticas de clave son supresión de autorización dual y rotación.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

c024c2b3-2093-46e5-aabb-fdf8cbc14e44

# show key details
$ ibmcloud kp key show $KEY_ID --output json

{
    "id": "c024c2b3-2093-46e5-aabb-fdf8cbc14e44",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-18T20:34:39Z",
    "lastUpdateDate": "2020-06-18T20:34:39Z",
    "keyVersion": {
        "id": "c024c2b3-2093-46e5-aabb-fdf8cbc14e44",
    "creationDate": "2020-06-18T20:34:39Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:c024c2b3-2093-46e5-aabb-fdf8cbc14e44"
}

# update the policy and rotate the key every 2 months
$ ibmcloud kp key policy-update rotation $KEY_ID -m 2 --output json

{
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-18T20:35:41Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:06a40fd6-6fd7-460a-87d7-8388fc1be057",
    "lastUpdateDate": "2020-06-18T20:35:41Z",
    "updatedBy": "user id ...<redacted>...",
    "rotation": {
        "interval_month": 2
      }
}

# list the policies
$ ibmcloud kp key policies $KEY_ID --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-18T20:35:41Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:06a40fd6-6fd7-460a-87d7-8388fc1be057",
    "lastUpdateDate": "2020-06-18T20:35:41Z",
    "updatedBy": "user id ...<redacted>...",
    "rotation": { "interval_month": 2
    }
  }
]

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas consultar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -d, --dual-auth

    Muestre políticas que tienen una política dual-auth-delete.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • -r, --rotation

    Muestre políticas que tienen una política rotation.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key policy-update dual-auth-delete

Puede utilizar Key Protect para suprimir de forma segura las claves de cifrado utilizando un proceso de autorización dual. Cuando suprime una clave, destruye el contenido y los datos asociados a ella. Los datos que haya podido cifrar esa clave quedan inaccesibles.

Para suprimir una clave que tiene una política de autorización dual se requiere la autorización de dos usuarios. Con la API de Key Protect, puede proporcionar la primera autorización definiendo la clave para suprimirla. A continuación, otro usuario proporciona una segunda autorización mediante la GUI o la API para eliminar la clave.

ibmcloud kp key policy-update dual-auth-delete KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
        -e, --enable
    [--key-ring          KEY_RING_ID]
    [-o, --output      OUTPUT]

Ejemplo

En este ejemplo se habilita la política de supresión de autorización dual.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

d887bfe8-5166-4dad-af32-7e3055ca1873

# show key details
$ ibmcloud kp key show $KEY_ID --output json

{
    "id": "d887bfe8-5166-4dad-af32-7e3055ca1873",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-19T16:07:50Z",
    "lastUpdateDate": "2020-06-19T16:07:50Z",
    "keyVersion": {
        "id": "d887bfe8-5166-4dad-af32-7e3055ca1873",
    "creationDate": "2020-06-19T16:07:50Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:d887bfe8-5166-4dad-af32-7e3055ca1873"
}

# enable the dual authorization policy
$ ibmcloud kp key policy-update dual-auth-delete $KEY_ID --enable --output json

{
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-19T16:08:59Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:0aab763d-b650-43a2-86ad-bdfe2c35c94c",
    "lastUpdateDate": "2020-06-19T16:08:59Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": {
        "enabled": true
      }
}

# list the policies
$ ibmcloud kp key policies $KEY_ID --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-19T16:08:59Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:0aab763d-b650-43a2-86ad-bdfe2c35c94c",
    "lastUpdateDate": "2020-06-19T16:08:59Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

# this should fail (the key has a dual authorization policy)
$ ibmcloud kp key delete $KEY_ID_OR_ALIAS

Deleting key: d887bfe8-5166-4dad-af32-7e3055ca1873, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
FAILED
kp.Error:
    correlation_id='fe0db627-1726-4827-a9d2-c21d728e1c92',
    msg='Conflict: 1 prior authorization(s) are required for deletion: Key could not be deleted.
        Please see "reasons" for more details.',
    reasons='[AUTHORIZATIONS_NOT_MET: Number of authorizations required to delete is not met -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/apidocs/key-protect]'

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas consultar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

  • -e, --enable

    Una vez que habilita la política de supresión automática dual, no puede inhabilitarla. No puede suprimir una clave sin dos autorizaciones (dual). El proceso debe completarse en un plazo de 7 días; de lo contrario la política de autorización dual se cancela automáticamente, lo que significa que cualquiera que tenga autorización (no se necesitan dos autorizaciones) puede suprimir la clave.

    Si ha habilitado la política de autorización dual accidentalmente y desea suprimir la clave, puede disable la clave (mediante el mandato kp key disable) y esperar 7 días hasta que caduque la política de autorización dual. En ese momento puede suprimir la clave.

    No puede suprimir la instancia de Key Protect mientras tenga claves activas. Una clave con una política de autorización dual es una clave activa.

Parámetros opcionales

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key policy-update rotation

Cuando se establece una política de rotación automática para una clave raíz, se acorta el tiempo de vida de la clave a intervalos regulares y se limita la cantidad de información que protege dicha clave. Los usuarios también pueden habilitar o inhabilitar la política de rotación de claves en una clave.

Sólo puede crear una política de rotación para las claves raíz que han generado en Key Protect. Si inicialmente ha importado la clave raíz, debe proporcionar nuevo material de clave con codificación base64 para rotar la clave. Para obtener más información, consulte Rotación de claves raíz bajo demanda.

ibmcloud kp key policy-update rotation KEY_ID|KEY_ALIAS
[--enable | --disable] [-m MONTHLY_INTERVAL] [-o FORMAT]
[--key-ring KEY_RING_ID]

Ejemplos

Las políticas de rotación se pueden aplicar en el momento de la creación de claves o después de que se haya creado una clave. En el primer ejemplo, simplemente creamos la clave sin una política de rotación:

# create a root key

ibmcloud kp key create rotateKeyEnableDisableDemo

Creating key: 'rotateKeyEnableDisableDemo', in instance: '5ecfe306-d4at-48c0-ab07-b5c5bc751534'...
OK
Key ID                                 Key Name   
4d5540bd-3235-4a46-a8af-974f7ed6558a   rotateKeyEnableDisableDemo   
---------------------------------------------------------------------------------------------------------------------------------------------------
# set a rotation policy of three months

ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -m 3 -e --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:51:38Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": true,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# show the rotation policy for this key

ibmcloud kp key policies 4d5540bd-3235-4a46-a8af-974f7ed6558a -r --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:51:38Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": true,
                "interval_month": 2
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# update the policy to three months

ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -m 3 -e --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:51:38Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": true,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# disable the policy for this key

ibmcloud kp key policy-update rotation 4d5540bd-3235-4a46-a8af-974f7ed6558a -d --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:52:52Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": false,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------
# show that the policy has been disabled

ibmcloud kp key policies 4d5540bd-3235-4a46-a8af-974f7ed6558a -r --output json

{
        "createdBy": "user id ...<redacted>...",
        "creationDate": "2022-12-02T00:50:11Z",
        "crn": "crn:v1:bluemix:public:kms:us-south:a/e3e8fd14a61a49cda102faad15b06c09:5ecfe306-d4af-48c0-ab07-b5c5bc751534:policy:0ec7ad62-982d-45bb-895f-986d95015f5b",
        "lastUpdateDate": "2022-12-02T00:52:52Z",
        "updatedBy": "user id ...<redacted>...",
        "rotation": {
                "enabled": false,
                "interval_month": 3
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas consultar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

Parámetros opcionales

  • -m, --monthly-interval

    Establezca el intervalo de rotación de claves en meses. El intervalo de rotación debe estar comprendido entre 1 y 12 meses.

  • -e, --enable o -d, --disable

    De forma predeterminada, la política de rotación de claves está habilitada. Si el usuario desea desactivar o activar la política, puede utilizar -d(--disable) o -e(--enable) respectivamente.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key restore

Key Protect puede restaurar una clave raíz suprimida anteriormente, lo cual restaura el acceso a sus datos asociados en la nube.

Como administrador, es posible que tenga que restaurar una clave raíz que se haya importado en Key Protect para acceder a los datos que la clave protegía anteriormente.

Cuando se restaura una clave, ésta pasa del estado Destruido (el valor es 5) al estado Activo (el valor es 1) y se restaura el acceso a cualquier dato que se haya cifrado previamente con la clave.

Puede restaurar una clave suprimida en un plazo de 30 días a partir de su supresión. Esta posibilidad sólo está disponible para las claves raíz que se han creado con un key material.

Sólo puede restaurar las claves raíz que se han creado con un key material, utilizando kp key create con la opción -k, --key-material. No se puede restaurar una clave raíz si no se ha especificado la opción --key-material.

Si desea restaurar una clave raíz suprimida, debe guardar la key material que se ha utilizado para crear la clave raíz. No se puede restaurar una clave suprimida sin proporcionar el key material original.

ibmcloud kp key restore KEY_ID_OR_ALIAS
        -i, --instance-id     INSTANCE_ID
        -k, --key-material    KEY_MATERIAL
    [--key-ring          KEY_RING_ID]
    [-n, --encrypted-nonce ENCRYPTED_NONCE]
    [-v, --iv              IV]

Ejemplos

A continuación se muestran ejemplos de kp key restore.

Ejemplo 1

En este ejemplo se crea una clave raíz utilizando un material de clave, se suprime la clave y luego se restaura la clave.

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

$ echo $KEY_MATERIAL

4EZBMBMkZ87z4nvYsQH21DC5+wslgWhHRiU8bmqJ4CY=

# create a root key from a base64-encoded value
$ KEY_ID=$(ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL --output json | jq -r '.["id"]')

$ echo $KEY_ID

62ad0cd5-70a4-4c4d-9d87-5f4db620b120

# delete the root key
$ ibmcloud kp key delete $KEY_ID

Deleting key: 62ad0cd5-70a4-4c4d-9d87-5f4db620b120, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Deleted Key
62ad0cd5-70a4-4c4d-9d87-5f4db620b120

# list keys - verify the key was deleted
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID   Key Name

# restore the deleted key
$ ibmcloud kp key restore $KEY_ID -k $KEY_MATERIAL --output json

{
    "id": "62ad0cd5-70a4-4c4d-9d87-5f4db620b120",
    "name": "my-base64-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:62ad0cd5-70a4-4c4d-9d87-5f4db620b120"
}

# list keys - verify the key was restored
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
62ad0cd5-70a4-4c4d-9d87-5f4db620b120   my-base64-root-key

Ejemplo 2

En este flujo de ejemplo se crea una clave raíz utilizando una señal de importación, se suprime la clave y luego se restaura la clave.

Este es un proceso que consta de dos pasos.

  1. Cree una clave raíz utilizando una señal de importación y, a continuación, suprima la clave

  2. Cree una señal de importación, que es necesaria para restaurar la clave, y restaure la clave

La creación de una clave raíz mediante un token de importación tiene un límite de tiempo (el -e, --expiration ). Cuando se restaura una clave, se necesita una señal de importación. Por eso es necesario pasar a través de un proceso de señal de importación para restaurar una clave.

Paso 1: crear una clave raíz mediante una señal de importación y luego suprimir la clave

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

Created                         Expires                         Max Retrievals   Remaining Retrievals
2020-06-18 12:21:59 +0000 UTC   2020-06-18 12:26:59 +0000 UTC   10               10

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

$ echo $KEY_MATERIAL

sADDNDE3pcJlbYXu2z5QFORvsxV1PosRiAPERrhYJdk=

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

$ echo $NONCE

/QhqOsqlVPC+ZPWz

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

$ echo $PUBLIC_KEY

LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
C+/puHn1v5p7aohitM4r6N4ohiVkCecP ...<redacted>... eWmJRuvsSxDg/OY=

# capture the encrypted key material
$ ENCRYPTED_KEY=C+/puHn1v5p7aohitM4r6N4ohiVkCecP ...<redacted>... eWmJRuvsSxDg/OY=

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
TxrgdayWnM5OB3JoYuQR97oulxvREptk8TzciQ==   7BiIpcbGxXBzuXZP

# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=TxrgdayWnM5OB3JoYuQR97oulxvREptk8TzciQ==
$ IV=7BiIpcbGxXBzuXZP

# create a root key using an import token, provide an encrypted key, nonce, and initialization vector (IV)
$ KEY_ID=$(ibmcloud kp key create my-imported-root-key -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV --output json | jq -r '.["id"]')

$ echo $KEY_ID

c42c6f2c-8b67-4016-b2c3-99fba9490f5d

# list keys - verify the key was created
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
c42c6f2c-8b67-4016-b2c3-99fba9490f5d   my-imported-root-key

# delete the root key
$ ibmcloud kp key delete $KEY_ID

Deleting key: c42c6f2c-8b67-4016-b2c3-99fba9490f5d, from instance: a192d603-0b8d-452f-aac3-f9e1f95e7411...
OK
Deleted Key
c42c6f2c-8b67-4016-b2c3-99fba9490f5d

# list keys - verify the key was deleted
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID   Key Name

Paso 2: crear una señal de importación, que se necesita para restaurar la clave, y restaurar la clave

# NOTE: "kp key restore" requires an import token to complete the process,
# if you follow this example, the previously created import token may still
# exist and the example works; otherwise, if the import token has expired then
# you need to create a new import token prior to restoring the key

# create an import token that expires in 5 minutes and allows 10 retrievals
$ ibmcloud kp import-token create -e 300 -m 10

Created                         Expires                         Max Retrievals   Remaining Retrievals
2020-06-18 12:30:54 +0000 UTC   2020-06-18 12:35:54 +0000 UTC   10               10

# extract the nonce that was created by the "kp import-token create" command
$ NONCE=$(ibmcloud kp import-token show | jq -r '.["nonce"]')

$ echo $NONCE

N3x8F0ihAZ51nj6M

# extract the public key that was created by the "kp import-token create" command
$ PUBLIC_KEY=$(ibmcloud kp import-token show | jq -r '.["payload"]')

$ echo $PUBLIC_KEY

LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0t ...<redacted>... QyBLRVktLS0tLQo=

# encrypt the key material using the public key
$ ibmcloud kp import-token key-encrypt -k $KEY_MATERIAL -p $PUBLIC_KEY

Encrypted Key
Ch7hcsT1EOfSdghjOHKAemBZuzDoqJoH ...<redacted>... F4p/mkGT/EQJS5o=

# capture the encrypted key material
$ ENCRYPTED_KEY=Ch7hcsT1EOfSdghjOHKAemBZuzDoqJoH ...<redacted>... F4p/mkGT/EQJS5o=

# encrypt the nonce
$ ibmcloud kp import-token nonce-encrypt -k $KEY_MATERIAL -n $NONCE

Encrypted Nonce                            IV
nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA==   N6oLJnUqaKF3v5Sd

# capture the encrypted nonce and the initialization vector (IV)
$ ENCRYPTED_NONCE=nrrCczvYXvc6T7J2G+EOLjHZO1cpPyu/nhsIlA==
$ IV=N6oLJnUqaKF3v5Sd

# restore the deleted key
$ ibmcloud kp key restore $KEY_ID -k $ENCRYPTED_KEY -n $ENCRYPTED_NONCE -v $IV --output json

{
    "id": "c42c6f2c-8b67-4016-b2c3-99fba9490f5d",
    "name": "my-imported-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:key:c42c6f2c-8b67-4016-b2c3-99fba9490f5d"
}

# list keys - verify the key was restored
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
c42c6f2c-8b67-4016-b2c3-99fba9490f5d   my-imported-root-key

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas restaurar.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -k, --key-material

    Deprecated El material de clave de una clave codificada en base64 previamente importada.

    Si ha creado la clave raíz mediante import token, el valor de la opción -k, --key-material es encrypted material key. Consulte el ejemplo 2, que utiliza una señal de importación para crear la clave raíz y utiliza una señal de importación para restaurar la clave raíz.

  • -n, --encrypted-nonce

    Deprecated Verifique una solicitud para importar una clave proporcionando un valor de nonce cifrado.

    Para obtener más información, consulte kp import-token nonce-encrypt.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • -v, --iv

    Deprecated Proporcione el vector de inicialización (IV) que se genera después de cifrar un valor de nonce.

    Para obtener más información, consulte kp import-token nonce-encrypt.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key-rings

Liste los conjuntos de claves asociados a la instancia de kp.

Ejemplo

El ejemplo muestra el uso del conector de CLI para listar los conjuntos de claves adecuados para la instancia dada.

ibmcloud kp key-rings -i <INSTANCE_ID>

Parámetros necesarios

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key-ring create

Cree un conjunto de claves dentro de una instancia de kp.

Ejemplo

El ejemplo muestra el uso del conector de CLI para crear un conjunto de claves en la instancia dada.

ibmcloud kp key-ring create KEY_RING_ID -i <INSTANCE_ID>

Parámetros necesarios

  • KEY_RING_ID

    La referencia alfanumérica mayor o igual a 2 caracteres y menor o igual que 100 para el conjunto de claves.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key-ring delete

Suprima un conjunto de claves dentro de una instancia de kp.

Ejemplo

El ejemplo muestra el uso del conector de CLI para suprimir un conjunto de claves en la instancia determinada. Tenga en cuenta que se ha añadido la fuerza (-f).

ibmcloud kp key-ring delete KEY_RING_ID -i <INSTANCE_ID> -f

Parámetros necesarios

  • KEY_RING_ID

    La referencia alfanumérica mayor o igual a 2 caracteres y menor o igual que 100 para el conjunto de claves.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -f, --force

    Fuerza la supresión de un conjunto de claves que todavía tiene claves en el estado Destruido . No suprime los conjuntos de claves que tienen claves en cualquier otro estado. Si un conjunto de claves contiene claves en estado Destruido y no se añade este distintivo, la supresión del conjunto de claves falla.

kp key rotate

Rotar una clave almacenada en el servicio Key Protect.

Cuando se rota la clave raíz, se sustituye la clave por un nuevo material de clave.

Si Key Protect ha creado la clave (la clave no se ha creado con el parámetro -k), entonces Key Protect crea una clave nueva. No se puede especificar « kp key rotate » con el -k parámetro.

Si has creado una clave y has facilitado el material de la clave ( kp key create key-name -k $KEY_MATERIAL), deberás facilitar un nuevo material de clave cuando renueves la clave (kp key rotate $KEY_ID_OR_ALIAS -k $NEW_KEY_MATERIAL)

No se puede rotar una clave de « standard », es decir, una clave creada mediante la kp create key-name --standard-key.

ibmcloud kp key rotate KEY_ID_OR_ALIAS
        -i, --instance-id  INSTANCE_ID
    [--key-ring           KEY_RING_ID]
    [-k, --key-material KEY_MATERIAL]

Ejemplos

A continuación se muestran ejemplos de kp key rotate.

Ejemplo 1

Rotar una clave raíz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad   my-root-key

# rotate the key
$ ibmcloud kp key rotate 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad

Rotating root key...
OK

# show key details
$ ibmcloud kp key show 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad

Grabbing info for key id: 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad   my-root-key                 2020-05-06 17:25:22 +0000 UTC   Key does not expire

# create a new key material
$ NEW_KEY_MATERIAL=$(openssl rand -base64 32)

# Key Protect created the root key, providing a new key material will fail
$ ibmcloud kp key rotate 1a6d5be8-287c-4eb3-9c44-cf0c2b0d67ad -k $NEW_KEY_MATERIAL

Rotating root key...
FAILED

Ejemplo 2

Rotar una clave de señal codificada en base64 o una clave de señal importada.

En primer lugar, cree una clave raíz a partir de un valor en base64 o una señal importada.

# create a random, base64-encoded, 32-byte key material
$ KEY_MATERIAL=$(openssl rand -base64 32)

# create a root key from a base64-encoded value
$ ibmcloud kp key create my-base64-root-key -k $KEY_MATERIAL

Creating key: 'my-base64-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
e55f86ab-6984-4594-ad23-3024f6440a58   my-base64-root-key

# create a new key material
$ NEW_KEY_MATERIAL=$(openssl rand -base64 32)

# rotate the key
$ ibmcloud kp key rotate e55f86ab-6984-4594-ad23-3024f6440a58 -k $NEW_KEY_MATERIAL

Rotating root key...
OK

# the key was created from a key material, NOT providing a new key material will fail
$ ibmcloud kp key rotate e55f86ab-6984-4594-ad23-3024f6440a58

Rotating root key...
FAILED

Ejemplo 3

En este ejemplo se muestra cómo seguir estos pasos...

  1. Cree una clave raíz

  2. Cree una clave de cifrado de datos (DEK), es decir el plaintext

  3. Envuelva la DEK con la clave raíz, lo que crea un texto cifrado (ciphertext)

  4. Rote la clave raíz

  5. Desenvuelva el texto cifrado para revelar la DEK original (texto sin formato) y un nuevo texto cifrado (el nuevo texto cifrado es el texto sin formato envuelto con la nueva clave raíz rotada)

  6. Desenvuelva el nuevo texto cifrado para revelar la DEK original (texto sin formato)

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

5b976173-7804-4f82-acfa-bb98098bc528

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=

# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiQkFrTlJrS2Q0 ...<redacted>... ODA5OGJjNTI4In0=

# rotate the root key
$ ibmcloud kp key rotate $KEY_ID

Rotating root key...
OK

# show key details
$ ibmcloud kp key show $KEY_ID --output json

{
    "id": "5b976173-7804-4f82-acfa-bb98098bc528",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-10T18:09:27Z",
    "lastUpdateDate": "2020-06-10T18:13:31Z",
    "lastRotateDate": "2020-06-10T18:13:31Z",
    "keyVersion": {
        "id": "4330715a-918b-4718-b5ca-9475a214067e",
    "creationDate": "2020-06-10T18:13:31Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5b976173-7804-4f82-acfa-bb98098bc528"
}

# unwrap the ciphertext, reveal the original DEK (plaintext),
# and see the new ciphertext (the plaintext wrapped with the rotated root key)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT --output json

{
    "Plaintext": "UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=",
    "Rewrapped Plaintext": "eyJjaXBoZXJ0ZXh0IjoiS0FITEFRWjdh ...<redacted>... NWEyMTQwNjdlIn0="
}

# capture the new (rewrapped) plaintext
$ NEWCIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiS0FITEFRWjdh ...<redacted>... NWEyMTQwNjdlIn0=

# unwrap the ciphertext and reveal the original DEK (plaintext)
$ ibmcloud kp key unwrap $KEY_ID $NEWCIPHERTEXT --output json

{
    "Plaintext": "UPJ4YDwbQMjQG/aqlHsPhHV1CBkpIXngLHFS5+i4UZ4=",
    "Rewrapped Plaintext": ""
}

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave raíz que deseas rotar.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -k, --key-material

    Para rotar una clave que se ha generado inicialmente sin el parámetro --key-material, es decir, kp key create my-key, omita el parámetro --key-material.

    Si la clave se ha creado con el parámetro --key-material, especifique el nuevo material de clave codificado en base64 que utiliza para rotar una clave raíz existente.

    Para rotar una clave que se ha importado inicialmente en el servicio, proporcione una nueva clave de 32 bytes (256 bits).

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key schedule-delete

Una clave con la política dual-auth-delete requiere autorización de dos usuarios administrativos para suprimir la clave.

Siga este proceso para suprimir una clave con una política dual-auth-delete.

  1. Cree una clave y habilite la política dual-auth-delete

  2. El usuario 1 planifica (autoriza) una supresión de claves con el Mandato kp key schedule-delete

  3. El usuario 2 planifica (autoriza) una supresión de clave

  4. La clave se suprime después de que se realice la segunda acción schedule-delete, que recibe soporte en la interfaz de usuario, la API y la CLI

  5. Si no se produce una segunda autorización en un plazo de 7 días, la clave vuelve a su estado predeterminado

Hay dos formas de habilitar la política dual-auth-delete:

  • Establecer la política para una sola clave mediante kp key policy-update dual-auth-delete
  • Establecer la política para la instancia utilizando kp instance policy-update dual-auth-delete; todas las claves creadas después de habilitar la política de instancia heredan el valor de política de instancia

El mandato kp key cancel-delete cancela, o elimina, una autorización anterior.

ibmcloud kp key schedule-delete KEY_ID_OR_ALIAS
    -i, --instance-id INSTANCE_ID
    [--key-ring         KEY_RING_ID]

Ejemplo

Este es un ejemplo de cómo programar la eliminación de una clave.

# schedule this key to be deleted
$ ibmcloud kp key schedule-delete $KEY_ID_OR_ALIAS

Scheduling key for deletion...
OK

# this key has a dual-auth-delete policy
$ ibmcloud kp key policies $KEY_ID_OR_ALIAS --output json

[
  {
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-06-22T19:13:00Z",
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:a192d603-0b8d-452f-aac3-f9e1f95e7411:policy:2427dbde-6cff-41eb-8b5a-ff26b038cafc",
    "lastUpdateDate": "2020-06-22T21:36:16Z",
    "updatedBy": "user id ...<redacted>...",
    "dualAuthDelete": { "enabled": true
    }
  }
]

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas eliminar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.

Parámetros opcionales

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key show

Recuperar detalles sobre una clave, como por ejemplo los metadatos y el material de la clave.

Si la clave se ha designado como una clave raíz, el sistema no puede devolver el material de clave de dicha clave.

ibmcloud kp key show KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring          KEY_RING_ID]
    [-o, --output      OUTPUT]

Ejemplos

A continuación se muestran ejemplos de kp key show.

Ejemplo 1

Crear una clave raíz y mostrar los detalles.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key

# show key details
$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f

Grabbing info for key id: 8635b804-9966-4918-a16b-d561fdbf181f...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
8635b804-9966-4918-a16b-d561fdbf181f   my-root-key                 2020-05-05 19:58:02 +0000 UTC   Key does not expire

Ejemplo 2

Esta es una explicación de las claves y valores JSON del kp key show . En este ejemplo, se ha rotado la clave para garantizar que se muestran todos los pares de clave/valor JSON.

$ ibmcloud kp key show 8635b804-9966-4918-a16b-d561fdbf181f --output json

{
    "id": "8635b804-9966-4918-a16b-d561fdbf181f",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-05T19:58:02Z",
    "lastUpdateDate": "2020-05-05T19:58:24Z",
    "lastRotateDate": "2020-05-05T19:58:24Z",
    "keyVersion": {
        "id": "85b65b20-4165-4da3-8ba9-880e72390461",
        "creationDate": "2020-05-05T19:58:24Z"
    },
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:8635b804-9966-4918-a16b-d561fdbf181f"
}
Clave Descripción
ID Es el KEY_ID, es exclusivo y se utiliza siempre que la CLI especifica un KEY_ID
nombre El nombre proporcionado al crear la clave
tipo Utilizado por la API para establecer el tipo de contenido en una llamada REST
algorithmType Los tipos de algoritmo son el estándar de cifrado avanzado (AES) o el encadenamiento de bloques de cifrado (CBC)
createdBy El ID de usuario que ha creado la clave
creationDate Fecha y hora en que se ha creado la clave
lastUpdateDate Fecha y hora en que se ha actualizado la clave por última vez
lastRotateDate Fecha y hora en la que se ha rotado la clave por última vez; esta entrada solo existe si la clave se ha rotado
keyVersion / id Identifica la última versión de la clave raíz
keyVersion / creationDate Fecha y hora en que se ha actualizado el material de clave por última vez
extractable Valor booleano que determina si el material de claves puede dejar el servicio. Si se establece en false, Key Protect designa la clave como clave raíz no extraíble utilizada para envolver y desenvolver acciones. Si se establece en true, Key Protect designa la clave como una clave estándar que puede almacenar en sus apps y servicios. Cuando este valor se establece en false, no se puede cambiar a true.
state 1 - la clave está activa; 2 - la clave está suspendida; consulte estados de clave
crn El nombre del recurso de nube (CRN)

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias v4 de la clave raíz que desea mostrar.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key sync

Este submandato sincroniza los recursos asociados de una clave.

ibmcloud kp key sync KEY_ID
     -i, --instance-id INSTANCE_ID
    [--key-ring             KEY_RING_ID]
    [-o, --output      FORMAT]

Ejemplos

Este es un ejemplo de kp key sync.

Ejemplo

Sincronizar una clave y mostrar los resultados.

# synchronize the associated resources for a given key
$ ibmcloud kp key sync 94c06f9c-a07a-4961-8548-553cf7431f18

Synchronizing key...
OK
Key's associated resources are synchronized successfully

Parámetros necesarios

  • KEY_ID

    El ID de la clave que desea sincronizar.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp key update

Actualizar una clave con un anillo de claves existente o con un nuevo anillo de claves en la instancia de Key Protect.

ibmcloud kp key update KEY_ID_OR_ALIAS
        -i, --instance-id         INSTANCE_ID
        -r, --new-key-ring        KEY_RING_ID
    [-o, --output              OUTPUT]

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias v4 de la clave raíz que desea mostrar.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -r, --new-key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

Parámetros opcionales

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

Ejemplos

Tenga en cuenta que el conjunto de claves ya debe haberse creado, ya sea como parte de la creación de una clave, o por sí mismo.

Este es un ejemplo de kp key update.

ic kp key update 5f2cc155-fe16-492c-845c-4d1f0688c7ba -r TestRing

La ejecución del mandato tiene un resultado típico:

Updating key...
OK
Key ID                                 Key Name             Key Ring ID   
5f2cc155-fe16-492c-845c-4d1f0688c7ba   TestKey                           TestRing   

kp key unwrap

Desencapsular una clave de cifrado de datos utilizando una clave raíz que está almacenada en la instancia de Key Protect.

ibmcloud kp key unwrap KEY_ID_OR_ALIAS CIPHERTEXT_FROM_WRAP
        -i, --instance-id INSTANCE_ID
    [-a, --aad         ADDITIONAL_DATA]
    [--key-ring           KEY_RING_ID]
    [-o, --output      OUTPUT]

Ejemplos

A continuación se muestran ejemplos de kp key unwrap.

Ejemplo 1

Desenvolver un texto cifrado para revelar la clave de cifrado de datos de texto sin formato (DEK).

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# create a data encryption key (DEK), wrapped with the root key
$ ibmcloud kp key wrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Wrapping key...
OK
Ciphertext
eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# capture the ciphertext
$ CIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# unwrap the ciphertext to reveal the plaintext data encryption key (DEK)
$ ibmcloud kp key unwrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea $CIPHERTEXT

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
mXW4GmBhkRG1+Dzkx1D6dMX99a4KyYwtwbghaaLEQZ0=

Ejemplo 2

Desenvolver un texto cifrado y proporcionar información de AAD.

Un caso de uso para suministrar datos de autenticación adicionales (AAD) es "proteger mediante contraseña" el texto cifrado para que resulte más difícil de desenvolver.

El texto cifrado y el AAD son necesarios para desenvolver el texto cifrado y revelar la clave de cifrado de datos de texto sin formato (DEK).

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

5f2cc155-fe16-492c-845c-4d1f0688c7ba

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=

# set the additional authentication data (AAD)
$ AAD1=My-Secret-Password
$ AAD2=My-Verification-Phrase

# wrap the plaintext with the root key and AAD
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -a "$AAD1,$AAD2" -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiL1pQUzRLbUxQ ...<redacted>... ZjA2ODhjN2JiIn0=

# unwrap the ciphertext and reveal the original plaintext DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1,$AAD2

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=

# this should fail (missing some of the AAD)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1

Unwrapping key...
FAILED

# this should fail (AAD is in a different order)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD2,$AAD1

Unwrapping key...
FAILED

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave raíz que utilizaste para la solicitud de envoltura inicial.

  • CIPHERTEXT_FROM_WRAP

    Clave de datos cifrados que se ha devuelto durante la solicitud inicial de envolvimiento.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -a, --aad

    Datos de autenticación adicionales (AAD) que se han utilizado para proteger aún más una clave. Puede proporcionar hasta 255 series, delimitadas mediante comas. Si ha proporcionado AAD durante el envolvimiento, debe especificar los mismos AAD, en el mismo orden, durante el desenvolvimiento.

    El servicio Key Protect no guarda datos de autenticación adicionales. Si proporciona AAD, guarde los datos en una ubicación segura para asegurarse de que pueda acceder y proporcionar los mismos AAD durante las llamadas de desenvolvimiento subsiguientes.

-o, --output

Set the CLI output format. By default, all commands print in table format. To change the output format to JSON, use `--output json`.
  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp versiones de clave

Cuando se rota una clave raíz, Key Protect crea una nueva versión de la clave. Listar todas las versiones de clave que están disponibles para un KeyID o Alias de clave en la instancia de Key Protect.

ibmcloud kp key versions KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [-r, --key-ring                KEY_RING_ID]
    [-n, --number-of-key-versions  VERSION_LIMIT]
    [-o, --output                  OUTPUT]
    [-s, --starting-offset         OFFSET]
    [-t, --total-count             TOTAL_COUNT]
    [-a, --all-key-states          ALL_KEY_STATES]

Ejemplos

A continuación se muestran ejemplos de kp key versions.

Ejemplo 1

Un caso de uso es auditar el historial de rotación de una clave raíz como administrador de seguridad, visualizando su historial de versiones de clave.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Retrieving key Versions...
OK
Key Version ID                         Creation Date   
21562e93-8882-420e-90a7-912c70023373   2022-07-08T17:02:10Z
390086ac-76fa-4094-8cf3-c0829bd69526   2022-07-08T17:02:40Z

Ejemplo 2

El mismo caso de uso para auditar una clave raíz como administrador de seguridad y visualizar el historial, con su recuento total en la salida JSON.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -t -o json
{
        "metadata": {
                "collectionType": "application/vnd.ibm.kms.key.version+json",
                "collectionTotal": 2,
                "totalCount": 2
        },
        "resources": [
                {
                        "id": "21562e93-8882-420e-90a7-912c70023373",
                        "creationDate": "2022-07-08T17:02:10Z"
                },
                {
                        "id": "390086ac-76fa-4094-8cf3-c0829bd69526",
                        "creationDate": "2022-07-08T17:02:40Z"
                }
        ]
}

Ejemplo 3

Otro caso de uso lista las primeras 12 versiones de clave para un conjunto de claves en una rotación mensual durante el año pasado.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -n 12 -o json
{
        "metadata": {
                "collectionType": "application/vnd.ibm.kms.key.version+json",
                "collectionTotal": 12
        },
        "resources": [
                {
                        "id": "21562e93-8882-420e-90a7-912c70023373",
                        "creationDate": "2021-07-08T17:02:10Z"
                },
                {
                        "id": "390086ac-76fa-4094-8cf3-c0829bd69526",
                        "creationDate": "2021-08-08T17:02:40Z"
                },[...10x]
        ]
}

Ejemplo 4

Otro caso de uso lista las segundas 12 versiones clave para un conjunto de claves en una rotación mensual durante los últimos dos años.

ibmcloud kp versiones de claves $KEY_ID_OR_ALIAS -n 12 -s 12

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# rotate the root key
$ ibmcloud kp key rotate 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Rotating root key...
OK

# Inspect the versions
$ ibmcloud kp key versions 807eb0a6-cc10-4bfe-8331-41a6f712c4ea -n 12 -s 12 -o json
{
        "metadata": {
                "collectionType": "application/vnd.ibm.kms.key.version+json",
                "collectionTotal": 12
        },
        "resources": [
                {
                        "id": "21562e93-8882-420e-90a7-912c70023373",
                        "creationDate": "2021-07-08T17:02:10Z"
                },
                {
                        "id": "390086ac-76fa-4094-8cf3-c0829bd69526",
                        "creationDate": "2021-08-08T17:02:40Z"
                },[...10x]
        ]
}

Ejemplo 5

Distintivo opcional para devolver el número de versiones de una clave que no está activa actualmente. Anteriormente, el mandato habría fallado, como en el ejemplo siguiente:

# Attempt to show version count
$ ibmcloud kp key versions af61298c-d75d-42a8-aa76-e04178cf4685 -i 99980ccc-d482-4cd0-bb41-deb4f7f1eb92 -t

Retrieving key Versions...
FAILED
KEY_ACTION_INVALID_STATE_ERR
Key is not in a valid state
Correlation-ID:a494bf49-be82-426f-88d8-17b58cc8634d

Con la versión de CLI 0.8.0 y superior, el mandato se ejecuta correctamente al añadir el distintivo -a, como en el ejemplo siguiente:

# Attempt to show version count
$ ibmcloud kp key versions af61298c-d75d-42a8-aa76-e04178cf4685 -i 99980ccc-d482-4cd0-bb41-deb4f7f1eb92 -t -a

Retrieving key Versions...
OK
TotalCount: 2
Key Version ID                         Creation Date
14dfde20-a751-4c3e-b6b0-e8d00a17d8d1   2023-06-22T15:16:09Z
af61298c-d75d-42a8-aa76-e04178cf4685   2023-06-22T15:10:28Z

Tenga en cuenta que si no se proporciona el distintivo -a, se devuelve KEY_ACTION_INVALID_STATE_ERR para una clave en un estado que no sea activo.

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave raíz que utilizaste para la solicitud de envoltura inicial.

  • -i, --instance-ID

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

  • -n --number-of-key-versions

    Restringe el número de versiones de clave que debe recuperar el valor entero proporcionado (valor predeterminado: 200).

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • -s --starting-offset

    Recupera las versiones de clave del desplazamiento según lo especificado por el valor entero proporcionado.

  • -t --total-count

    Se utiliza para volver a establecer el número total de versiones de clave para una clave por el valor entero proporcionado.

  • -a --all-key-states

    Distintivo opcional para devolver el número de versiones para todos los estados de clave, incluidas las claves que no están activas.

kp key wrap

Encapsular una clave de cifrado de datos (DEK) utilizando una clave raíz que está almacenada en la instancia de Key Protect. Se suele utilizar una DEK para cifrar "otras" partes de la información.

Cuando se encapsula una DEK con una clave raíz, Key Protect combina la potencia de varios algoritmos para proteger la privacidad y la integridad de los datos cifrados.

No se puede envolver una clave de tipo « standard », es decir, una clave creada mediante la función -s parámetro (ibmcloud kp key create my-key-name -s).

ibmcloud kp key wrap KEY_ID_OR_ALIAS
        -i, --instance-id INSTANCE_ID
    [--key-ring           KEY_RING_ID]
    [-a, --aad         ADDITIONAL_DATA]
    [-o, --output      OUTPUT]
    [-p, --plaintext   DATA_KEY]

Prácticas recomendadas

La acción de envolver una clave de cifrado de datos (DEK) crea un ciphertext. El texto cifrado es información cifrada que, cuando se desenvuelve, revela la DEK original.

El servicio Key Protect no almacena la DEK. Guarde o conserve en el almacenamiento el texto cifrado para asegurarse de que puede recuperar la DEK con el mandato kp key unwrap.

Se recomienda no guardar nunca ni conservar en el almacenamiento la DEK en texto plano. En la aplicación, cargue el texto cifrado del almacenamiento, llame a Key Protect para obtener el texto sin formato de la DEK, y utilice la DEK para cifrar o encapsular "otros" fragmentos de información.

No guarde la DEK en el almacenamiento persistente. La exposición de la DEK puede permitir que otros descifren sus datos.

Se crea un nuevo texto cifrado cada vez que se envuelve la clave raíz.

Ejemplos

A continuación se muestran ejemplos de kp key wrap.

Ejemplo 1

Key Protect crea una nueva clave de cifrado de datos (DEK) codificada en base64 y la envuelve con la clave raíz.

# create a root key
$ ibmcloud kp key create my-root-key

Creating key: 'my-root-key', in instance: '390086ac-76fa-4094-8cf3-c0829bd69526'...
OK
Key ID                                 Key Name
807eb0a6-cc10-4bfe-8331-41a6f712c4ea   my-root-key

# create a new key and wrap it with the root key, creating a DEK (this is the ciphertext)
$ ibmcloud kp key wrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea

Wrapping key...
OK
Ciphertext
eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# capture the ciphertext
$ CIPHERTEXT=eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=

# unwrap the ciphertext to reveal the plaintext (DEK)
$ ibmcloud kp key unwrap 807eb0a6-cc10-4bfe-8331-41a6f712c4ea $CIPHERTEXT

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
mXW4GmBhkRG1+Dzkx1D6dMX99a4KyYwtwbghaaLEQZ0=

Ejemplo 2

Generar una clave de cifrado de datos (DEK) codificada en base64 y envolverla con la clave raíz.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

9052d914-bebe-4177-90e9-6073a167b507

# create a random, base64-encoded, 32-byte data encryption key (DEK)
$ PLAINTEXT=$(openssl rand -base64 32)

$ echo $PLAINTEXT

tEqoiCu9CeUsbqRe6yBUkrJg80QKKG/z46OkX0YQMV8=

# wrap the plaintext key with the root key, creating a DEK (this is the ciphertext)
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -p $PLAINTEXT --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiTkdQRlhCb1dT ...<redacted>... M2ExNjdiNTA3In0=

# unwrap the ciphertext and reveal the original DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT

tEqoiCu9CeUsbqRe6yBUkrJg80QKKG/z46OkX0YQMV8=

Ejemplo 3

Envolver una clave raíz y proporcionar información de AAD.

Un caso de uso para suministrar datos de autenticación adicionales (AAD) es "proteger la contraseña" y añadir una "frase de verificación" al texto cifrado, lo que hace que sea más difícil de desenvolver.

El texto cifrado y el AAD son necesarios para desenvolver el texto cifrado y revelar la DEK en texto plano.

# create a root key
$ KEY_ID=$(ibmcloud kp key create my-root-key --output json | jq -r '.["id"]')

$ echo $KEY_ID

5f2cc155-fe16-492c-845c-4d1f0688c7ba

# set the additional authentication data (AAD)
$ AAD1=My-Secret-Password
$ AAD2=My-Verification-Phrase

# wrap the plaintext DEK with the root key and AAD
$ CIPHERTEXT=$(ibmcloud kp key wrap $KEY_ID -a "$AAD1,$AAD2" --output json | jq -r '.["Ciphertext"]')

$ echo $CIPHERTEXT

eyJjaXBoZXJ0ZXh0IjoiL1pQUzRLbUxQ ...<redacted>... ZjA2ODhjN2JiIn0=

# unwrap the ciphertext and reveal the original DEK
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1,$AAD2

Unwrapping key...
OK
Plaintext                                      Rewrapped Plaintext
H4ZfQe66aKcxirfCdNZ/3Na0JECP6HsAM3yclKmIfPQ=

# this should fail (missing some of the AAD)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD1

Unwrapping key...
FAILED

# this should fail (AAD is in a different order)
$ ibmcloud kp key unwrap $KEY_ID $CIPHERTEXT -a $AAD2,$AAD1

Unwrapping key...
FAILED

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave raíz que deseas utilizar para el «wrapping». No puede envolver una clave estándar.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -a, --aad

    Datos de autenticación adicionales (AAD) que se utilizan para proteger aún más una clave. El AAD es una matriz de series que comprueba la integridad del contenido de la clave. Cada serie puede contener hasta 255 caracteres.

    Si proporciona datos de autenticación adicionales (AAD) durante la solicitud de envolvimiento, debe especificar los mismos AAD durante la posterior solicitud de desenvolvimiento.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

  • -p, --plaintext

    El archivo « plaintext » especifica una clave de cifrado de datos (DEK) base64-encoded que está protegida por la clave raíz (identificada por los parámetros « KEY_ID » o « ALIAS »).

    Clave de cifrado de datos (DEK) con codificación base64 que desea gestionar y proteger. Para importar una clave existente, proporcione una clave de 32 bytes (256 bits).

    Para generar y envolver una nueva DEK, omita el parámetro --plaintext.

  • --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

kp keys

Mostrar una lista de las claves que están disponibles en su instancia de Key Protect.

Las claves se muestran por orden de key id; consulte el ejemplo 5.

ibmcloud kp keys
        -i, --instance-id      INSTANCE_ID
        [-b --sort-by          SORT_BY]
        [-c, --crn]
        [-f, --key-filter      FILTERS]
        [--key-ring            KEY_RING_ID]
        [--key-states          STATES]
        [-l --key-search       KEY_SEARCH]
        [-n, --number-of-keys  NUMBER_OF_KEYS]
        [-o, --output          OUTPUT]
        [-s, --starting-offset STARTING_OFFSET]
        [-t, --key-type        TYPE]

Ejemplos

A continuación se muestran ejemplos de kp keys.

Ejemplo 1

Liste las claves. Tenga en cuenta que esto sólo listará las primeras 200 claves de la instancia de forma predeterminada. Para mostrar un número mayor o menor de claves, proporcione un valor para el parámetro --number-of-keys.

# list keys
$ ibmcloud kp keys

Retrieving keys...
OK
Key ID                                 Key Name
5f2cc155-fe16-492c-845c-4d1f0688c7ba   my-root-key
c36e9f3a-feaf-4033-8603-687784dc7e51   my-root-key

Ejemplo 2

Enumera las claves y muestra el nombre del recurso en la nube (CRN) utilizando el --crn parámetro.

# list keys and show the cloud resource name (CRN)
$ ibmcloud kp keys -c

Retrieving keys...
OK
Key ID                                 Key Name      CRN
5f2cc155-fe16-492c-845c-4d1f0688c7ba   my-root-key   crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5f2cc155-fe16-492c-845c-4d1f0688c7ba
c36e9f3a-feaf-4033-8603-687784dc7e51   my-root-key   crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:c36e9f3a-feaf-4033-8603-687784dc7e51

Ejemplo 3

Enumera las claves en formato JSON.

El parámetro --output json implica el parámetro --crn (nombre de recurso de nube) parámetro.

# list keys
$ ibmcloud kp keys --output json

[
  {
    "id": "5f2cc155-fe16-492c-845c-4d1f0688c7ba",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-10T18:04:01Z",
    "lastUpdateDate": "2020-05-10T18:04:01Z",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:5f2cc155-fe16-492c-845c-4d1f0688c7ba"
    },
    {
        "id": "c36e9f3a-feaf-4033-8603-687784dc7e51",
    "name": "my-root-key",
    "type": "application/vnd.ibm.kms.key+json",
    "algorithmType": "AES",
    "createdBy": "user id ...<redacted>...",
    "creationDate": "2020-05-10T17:56:37Z",
    "lastUpdateDate": "2020-05-10T17:56:37Z",
    "extractable": false,
    "state": 1,
    "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:390086ac-76fa-4094-8cf3-c0829bd69526:key:c36e9f3a-feaf-4033-8603-687784dc7e51"
  }
]

Ejemplo 4

Enumerar las claves y recorrerlas, mostrando los detalles.

# list keys and convert to a list
$ KEYS=$(ibmcloud kp keys --output json | jq -r '.[] | .id')

$ for key in $(echo "${KEYS}"); do
    ibmcloud kp key show ${key}
done

Grabbing info for key id: 5f2cc155-fe16-492c-845c-4d1f0688c7ba...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
5f2cc155-fe16-492c-845c-4d1f0688c7ba   my-root-key                 2020-05-10 18:04:01 +0000 UTC   Key does not expire

Grabbing info for key id: c36e9f3a-feaf-4033-8603-687784dc7e51...
OK
Key ID                                 Key Name      Description   Creation Date                   Expiration Date
c36e9f3a-feaf-4033-8603-687784dc7e51   my-root-key                 2020-05-10 17:56:37 +0000 UTC   Key does not expire

Ejemplo 5

Crear 20 claves y mostrarlas en grupos de 5 utilizando las opciones kp keys -n -s.

# create 20 test keys
$ for I in {1..20}; do
    KEY_ID=$(ibmcloud kp key create my-test-key-$I --output json | jq -r '.["id"]')
    KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
    echo $KEY_ID $KEY_NAME
done

b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20

# this is the same list sorted in KEY_ID order
# this is the order we expect when listing keys

10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13

3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4

87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11

cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5

# define a function for listing keys
$ list_keys () {
    N=$1
    S=$2
    KEYS=$(ibmcloud kp keys --number-of-keys $N --starting-offset $S --output json | jq -r '.[] | .id')
    for KEY_ID in $(echo "${KEYS}"); do
        KEY_ID=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["id"]')
    KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
    echo $KEY_ID $KEY_NAME
    done
}

# list the first group of keys
$ list_keys 5 0

10954149-0217-472d-8137-42fc330dbd03 my-test-key-16
16276369-ba81-4eb5-be92-f13512147ad4 my-test-key-14
215f592c-3e42-47b6-867c-3cc1cce8a8fd my-test-key-2
3a5a3b52-6942-463d-9f7a-5b216bbf5123 my-test-key-18
3b4b0511-00df-48e6-ad65-fad35bb6ce17 my-test-key-13

# list the second group of keys
$ list_keys 5 5

3d683d56-d340-40cb-b8b6-605dcfded01f my-test-key-15
3ee0d859-2968-4444-8e4d-3d28614f055c my-test-key-10
54dd2745-7718-487f-85e6-a67e758dd945 my-test-key-17
62090ba8-7363-408e-9edc-aa9fb69c09be my-test-key-12
768c9ceb-368b-46f7-9b1d-be211e036fe1 my-test-key-4

# list the third group of keys
$ list_keys 5 10

87679194-52d0-42af-81e1-bffd64f87315 my-test-key-7
90138be5-1dd1-4eea-b7c1-73cc8609e7f7 my-test-key-19
b70f62a1-4d52-4526-91a9-ce47bf14c2a5 my-test-key-1
b8794334-eea6-4c0d-8fe1-8086300b13f7 my-test-key-6
bc459a2f-56cb-445e-b4ee-9d1866b57560 my-test-key-11

# list the last group of keys
$ list_keys 5 15

cc7faf46-43cf-43b2-be98-7d1815371639 my-test-key-8
cf0a3d8b-4856-4aa5-be6a-88cca465eab0 my-test-key-20
df530c55-39c0-44e8-b7db-397593f70d90 my-test-key-3
e9b08526-3227-406c-b83f-c28844bd952b my-test-key-9
f141be88-5a34-4290-8513-4f01d934e75a my-test-key-5

# delete the test keys
$ KEYS=$(ibmcloud kp keys --output json | jq -r '.[] | .id')

$ for KEY_ID in $(echo "${KEYS}"); do
    KEY_NAME=$(ibmcloud kp key show $KEY_ID --output json | jq -r '.["name"]')
    if [[ $KEY_NAME == *"my-test-key-"* ]]; then
        echo "Deleting... $KEY_NAME $KEY_ID"
    ibmcloud kp key delete $KEY_ID
    fi
done

(output not shown)

Ejemplo 6

Lista las claves basadas en estados de clave (Active, Suspended) en la instancia de Key Protect.

# list active and suspended keys
$ ibmcloud kp keys --key-states active,suspended

Retrieving keys...
OK
Key ID                                 Key Name
ef2cc155-fe56-492c-845c-4d1f0688c7ba   my-active-key
636e9f3a-feaf-4033-8603-687754dc7e51   my-suspended-key

Ejemplo 7

Lista las claves basadas en el tipo de clave (raíz) en la instancia de Key Protect.

# list root keys
$ ibmcloud kp keys -t root

Retrieving keys...
OK
Key ID                                 Key Name
2f1cb135-fa16-40dc-815c-4d1f0ee8c7ba   my-root-key

Ejemplo 8

Lista las claves de la instancia de Key Protect con el nombre de clave o alias que coincide exactamente con los caracteres de la serie "TEST" sin comillas.

# list keys with identifiers exactly matching TEST
$ ibmcloud kp keys -l exact:TEST

Retrieving keys...
OK
Key ID                                 Key Name
636e9f3a-feaf-4033-8603-687754dc7e51   TEST

Ejemplo 9

Lista las claves de la instancia de Key Protect y ordena las claves en función de su ID y de la fecha en que se creó la clave empezando por la más reciente (el guión, '-', indica la clasificación por orden descendente).

# sort keys by id and descending creationDate
$ ibmcloud kp keys -b id,-creationDate

Retrieving keys...
OK
Key ID                                 Key Name
ef2cc155-fe56-492c-845c-4d1f0688c7ba   my-last-key
2f1cb135-fa16-40dc-815c-4d1f0ee8c7ba   my-first-key

Parámetros necesarios

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -b, --sort-by

    Ordene las claves basándose en los parámetros. La propiedad predeterminada para ordenar los resultados es "id." '-' antes del parámetro indica ordenar por orden descendente. Los parámetros de ordenación soportados en este momento son

    • ID
    • state
    • extractable
    • importados
    • creationDate
    • lastUpdateDate
    • lastRotateDate
    • deletionDate
    • expirationDate
  • -c, --crn

    Incluir el nombre del recurso de nube (CRN) en la salida.

  • -f, --key-filter

    Filtre las claves en función de los parámetros. Los parámetros de filtrado de claves soportados son

    • creationDate
    • deletionDate
    • expirationDate
    • extractable
    • lastUpdateDate
    • lastRotateDate
    • state

    Los operadores de soporte para las fechas son:

    • GT (mayor que)
    • gte (mayor o igual que)
    • LT (menor que)
    • lte (menor o igual que)

    Los resultados serán una coincidencia exacta en caso de que falte alguno de estos operadores.

  • --key-states

    El estado de las claves que se van a recuperar. Lista de series que contienen estados válidos: Active, Suspended, Deactivated, Destroyed. (valor predeterminado: active,suspended,deactivated).

  • -l, --key-search

    Listar claves basadas en una serie de búsqueda con calificadores con prefijo (por ejemplo, exact, not, alias, name). Para obtener más detalles, consulte la Documentación de la API.

  • -n, --number-of-keys

    Limita el número de claves que se van a recuperar. El valor predeterminado es 200 y el máximo es 5000.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

    La configuración de la salida a JSON (--output json) incluye el nombre de recurso de nube (CRN) en la salida.

  • -r, --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.

  • -s, --starting-offset

    Recupera claves a partir del desplazamiento especificado. El desplazamiento está basado en cero, lo que significa que el desplazamiento 0 (cero) es la primera clave.

  • -t, --key-type

    El tipo de claves que se van a recuperar. Si se establece en « standard-key », se recuperarán las claves estándar. Si se configura en « root-key », se recuperarán las claves raíz.

kp region-set

Elegir como destino otro punto final regional de Key Protect.

ibmcloud kp region-set REGION
        -i, --instance-id INSTANCE_ID
        [-u, --unset]

Ejemplos

A continuación se muestran ejemplos de kp region-set.

Ejemplo 1

Si no se especifica el parámetro REGION, se le solicita que seleccione una región.

# set the region endpoint
$ ibmcloud kp region-set

Select a Region:
1. au-syd
2. ca-tor
3. eu-de
4. eu-gb
5. jp-osa
6. jp-tok
7. us-east
8. us-south
9. br-sao
10. staging (us-south)
Enter a number:
5
OK

Ejemplo 2

Establecer la región de forma explícita.

# set the region endpoint to "us-south"
$ ibmcloud kp region-set us-south

OK

El valor de REGION debe ser un punto final regional válido.

# this should fail (not a valid regional endpoint)
$ ibmcloud kp region-set not-a-region

FAILED

Ejemplo 3

Anular la definición (eliminar) del punto final regional.

# remove the regional endpoint
$ ibmcloud kp region-set -u

OK

Parámetros necesarios

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • REGION

    Especifique un punto final regional. Este parámetro es opcional y, si no se especifica, se le solicita que seleccione un punto final regional en una lista.

  • -u, --unset

    Anular la definición (eliminar) del punto final regional.

kp registrations

Los registros son asociaciones entre las claves raíz y otros recursos de nube, tales como los grupos de COS (Cloud Object Storage) o los despliegues de bases de datos de la nube.

Por ejemplo, en Key Protect se crea una clave raíz, que es utilizada por COS para proteger los datos en reposo.

La relación entre otros recursos de nube y Key Protect recibe el nombre de registration.

No suprima una clave raíz si hay recursos, como grupos y objetos de COS, que se basan en la clave raíz. La supresión de la clave raíz significa que no puede recuperar esos recursos. Esto se conoce como "destrucción criptográfica" y no hay recuperación de esta acción.

ibmcloud kp registrations
        -i, --instance-id INSTANCE_ID
    [-r, --key-ring    KEY_RING_ID]
    [-c, --crn-query   CRN_PATTERN]
    [-k, --key-id      KEY_ID_OR_ALIAS]
    [-o, --output      OUTPUT]

Ejemplos

A continuación se muestran ejemplos de kp registrations.

Los ejemplos de registro muestran varios nombres de recursos en la nube (CRN). Los CRN siguen este formato:

crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource

Consulte Nombres de recursos en la nube para obtener una explicación detallada de los campos CRN.

Ejemplo 1

Mostrar una lista de todos los registros, que pueden incluir recursos en la nube como bases de datos, almacenamiento, cálculo, contenedores o mensajería.

Este ejemplo muestra el registro entre Cloud Object Storage (COS) y Key Protect.

# view all registrations
$ ibmcloud kp registrations --output json

[
  {
    "keyId": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
    "resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:bucket:my-cos-kms-bucket",
    "createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::",
    "creationDate": "2020-06-15T16:07:37Z",
    "lastUpdated": "2020-06-15T16:07:37Z",
    "keyVersion": { "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f", "creationDate": "2020-06-15T16:05:53Z"
    }
  }
]

Ejemplo 2

Este ejemplo muestra el ciclo de vida completo de dos recursos de nube (Cloud ObjectStorage y Key Protect - desde la creación de instancias de Key Protect y la creación de una política entre ellas para suprimir las instancias.

Este es un resumen de los pasos:

Paso Donde Descripción
1 CLI Crear instancias de Cloud Object Storage (COS) y de Key Protect (KP)
2 CLI Crear una política para COS para acceder a claves de cifrado KP
3 CLI Crear una clave raíz KP que COS utiliza para cifrar datos
4 Interfaz de usuario de la consola Crear un grupo de COS y especificar el cifrado KP; esto se hace en la interfaz de usuario (IU) de la consola porque no hay soporte de API o CLI en este momento
5 CLI Ver el registro de KP
6 CLI Cargar y descargar un objeto para verificar que COS y KP funcionan juntos
7 CLI Suprimir el grupo de COS y la clave raíz de KP
8 CLI Suprimir la política de autorización entre COS y KP
9 CLI Suprimir las instancias de COS y KP

Estos mandatos muestran planes de servicio de COS y de Key Protect . El mandato ibmcloud resource service-instance-create necesita un service plan name y una location, que está en el catálogo.

# show the catalog offerings for cloud object storage (COS) and Key Protect
$ ibmcloud catalog service cloud-object-storage

$ ibmcloud catalog service kms

El ejemplo cubre varios pasos y debe realizarse en consulta con el resumen proporcionado.

# create a Cloud Object Storage (COS) instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1

$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global

Creating service instance my-cos-1 in resource group Default of account <account name> as <email address>...
OK
Service instance my-cos-1 was created.
Name:             my-cos-1
ID:               crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::
GUID:             4b636e74-f3ca-40bb-80b8-3bd21801ccb8
Location:         global
State:            active
Type:             service_instance
Sub Type:
Allow Cleanup:    false
Locked:           false
Created at:       2020-06-15T16:03:39Z
Updated at:       2020-06-15T16:03:39Z
Last Operation:             Status    create succeeded             Message   Completed create instance operation

# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=4b636e74-f3ca-40bb-80b8-3bd21801ccb8

# create a Key Management Service (KMS) service instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1

$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south

Creating service instance my-kms-1 in resource group Default of account <account name> as <email address>...
OK
Service instance my-kms-1 was created.
Name:             my-kms-1
ID:               crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a::
GUID:             b3933ab0-d579-46fc-8ed5-351aea657b9a
Location:         us-south
State:            active
Type:             service_instance
Sub Type:         kms
Allow Cleanup:    false
Locked:           false
Created at:       2020-06-15T16:04:40Z
Updated at:       2020-06-15T16:04:40Z
Last Operation:             Status    create succeeded             Message   Completed create instance operation

# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=b3933ab0-d579-46fc-8ed5-351aea657b9a

# create a policy for COS to read KMS; source is COS, target is KMS
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
  --source-service-instance-id $COS_INSTANCE_ID \
  --target-service-instance-id $KP_INSTANCE_ID

Creating authorization policy under account ea998d3389c3473aa0987652b46fb146 as <email address>...
OK
Authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 was created.
ID:                        18cfc980-4458-4313-972e-93f312cdcd81
Source service name:       cloud-object-storage
Source service instance:   4b636e74-f3ca-40bb-80b8-3bd21801ccb8
Target service name:       kms
Target service instance:   b3933ab0-d579-46fc-8ed5-351aea657b9a
Roles:                     Reader

# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=18cfc980-4458-4313-972e-93f312cdcd81

# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json

{
  "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
  "name": "my-cos-key",
  "type": "application/vnd.ibm.kms.key+json",
  "extractable": false,
  "state": 1,
  "crn": "crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a:key:2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f"
}

# capture the KP root key id
$ MY_COS_KEY_ID=2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f

# create a COS bucket and set KP encryption
#   must be done in the console user interface (UI) because
#   there is no API or CLI support at this time
# 1 - In the UI, go to... Resource list -> Storage -> my-cos-1
# 2 - Create bucket -> custom bucket
# 3 - Properties of a custom bucket
#   a - bucket name: my-cos-kms-bucket
#   b - location: us-south (same region as KP)
#   c - checkbox: Key Protect
#   d - instance: my-kms-1
#   e - key name: my-cos-key
#   f - button: Create bucket

# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket

# view the KP registration; it's a result of creating the COS bucket
$ ibmcloud kp registrations --output json

[
  {
    "keyId": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f",
    "resourceCrn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:bucket:my-cos-kms-bucket",
    "createdBy": "crn-crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8::",
    "creationDate": "2020-06-15T16:07:37Z",
    "lastUpdated": "2020-06-15T16:07:37Z",
    "keyVersion": { "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f", "creationDate": "2020-06-15T16:05:53Z"
    }
  }
]

# list the bucket
$ ibmcloud cos list-buckets --ibm-service-instance-id $COS_INSTANCE_ID

OK
1 bucket found in your account:
Name                Date Created
my-cos-kms-bucket   Jun 15, 2020 at 16:07:38

# upload an object to COS
$ ibmcloud cos put-object --bucket $COS_BUCKET --key '/cos-file.txt' --body cos-file-upload.txt

OK
Successfully uploaded object '/cos-file.txt' to bucket 'my-cos-kms-bucket'.

# get the object from COS
$ ibmcloud cos get-object --bucket $COS_BUCKET --key '/cos-file.txt' cos-file-download.txt

OK
Successfully downloaded '/cos-file.txt' from bucket 'my-cos-kms-bucket'
20 B downloaded.

# verify that the upload and download files are the same
$ cat cos-file-upload.txt

This is a test file

$ cat cos-file-download.txt

This is a test file

# delete the object
$ ibmcloud cos delete-object --bucket $COS_BUCKET --key '/cos-file.txt' --force

OK
Delete '/cos-file.txt' from bucket 'my-cos-kms-bucket' ran successfully.

# delete the bucket
$ ibmcloud cos delete-bucket --bucket $COS_BUCKET --force

OK
Successfully deleted bucket 'my-cos-kms-bucket'. The bucket 'my-cos-kms-bucket' will be available for reuse after 15 minutes.

# list the bucket (it should no longer exist)
$ ibmcloud cos list-buckets --ibm-service-instance-id $COS_INSTANCE_ID

OK
No buckets found in your account.

# view the KP registration (it should no longer exist)
$ ibmcloud kp registrations --output json

# delete the KP root key; COS no longer uses it
$ ibmcloud kp key delete $MY_COS_KEY_ID --output json

{
  "id": "2cbea94c-6070-4a24-b0f8-7a56e4d7cb6f"
}

# delete the authorization policy between COS AND KMS
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force

Deleting authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 under account ea998d3389c3473aa0987652b46fb146...
OK
Authorization policy 18cfc980-4458-4313-972e-93f312cdcd81 is deleted successfully

# view the authorization policy (it should no longer exist)
$ ibmcloud iam authorization-policies

Getting authorization policies under account ea998d3389c3473aa0987652b46fb146 as <email address>...
OK
No policy found

# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force

Deleting service instance my-kms-1 in resource group Default under account <account name> as <email address>...
OK
Service instance my-kms-1 with ID crn:v1:bluemix:public:kms:us-south:a/ea998d3389c3473aa0987652b46fb146:b3933ab0-d579-46fc-8ed5-351aea657b9a:: is deleted successfully

# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force

Deleting service instance my-cos-1 in resource group Default under account <account name> as <email address>...
OK
Service instance my-cos-1 with ID crn:v1:bluemix:public:cloud-object-storage:global:a/ea998d3389c3473aa0987652b46fb146:4b636e74-f3ca-40bb-80b8-3bd21801ccb8:: is deleted successfully

# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances

Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.

Ejemplo 3

Este ejemplo muestra lo que sucede cuando se produce una de las siguientes situaciones entre COS y Key Protect (KP) - COS no puede acceder a la clave raíz de Key Protect.

  • Suprima la clave raíz de KP
  • Elimine la política de autorización de CMS/KP

Este ejemplo no se muestra la salida del mandato excepto cuando resulta relevante.

# create a Cloud Object Storage (COS) service instance
# "lite" is the pricing plan and "global" is the region
$ COS_NAME=my-cos-1

$ ibmcloud resource service-instance-create $COS_NAME cloud-object-storage lite global

# capture the COS instance id (GUID)
$ COS_INSTANCE_ID=c488e11a-c8a0-4688-b002-9327266ea55f

# create a Key Management Service (KMS) service instance
# "tiered-pricing" is the pricing plan and "us-south" is the region
$ KMS_NAME=my-kms-1

$ ibmcloud resource service-instance-create $KMS_NAME kms tiered-pricing us-south

# capture the Key Protect (KP) instance id (GUID)
$ KP_INSTANCE_ID=26f4b198-952a-47ab-9f44-ef69c038b3c5

# create a policy for COS to read KMS; source is COS, target is KMS (Key Protect)
$ ibmcloud iam authorization-policy-create cloud-object-storage kms Reader \
  --source-service-instance-id $COS_INSTANCE_ID \
  --target-service-instance-id $KP_INSTANCE_ID

# capture the COS-to-KMS authorization policy id
$ COS_KMS_AUTHORIZATION=594b946e-0e90-44ea-ac62-6cbb42450cd5

# create a KP root key that COS uses to encrypt data
$ ibmcloud kp key create my-cos-key --output json

# capture the KP root key id
$ MY_COS_KEY_ID=464d78c3-57dc-49a5-b932-8ebf8f8c7771

# create a COS bucket and set KP encryption
#   must be done in the console user interface (UI) because
#   there is no API or CLI support at this time

# capture the name of the COS bucket that was created
$ COS_BUCKET=my-cos-kms-bucket

# upload an object to COS
$ ibmcloud cos put-object --bucket $COS_BUCKET --key '/cos-file.txt' --body cos-file-upload.txt

# delete the authorization policy between COS AND KMS - this breaks everything
$ ibmcloud iam authorization-policy-delete $COS_KMS_AUTHORIZATION --force

# get the object from COS - this fails because COS no longer has access to KMS
$ ibmcloud cos get-object --bucket $COS_BUCKET --key '/cos-file.txt' cos-file-download.txt

FAILED
ServiceNotAuthorized: The specified COS Service Instance does not have sufficient
    permissions to access the resource provided in the ibm-sse-kp-customer-root-key-crn request header
status code: 401,
request id: a51e1da3-9bf7-4cc9-9eb0-0d074c7f9093,
host id:

# delete the object
$ ibmcloud cos delete-object --bucket $COS_BUCKET --key '/cos-file.txt' --force

# delete the bucket
$ ibmcloud cos delete-bucket --bucket $COS_BUCKET --force

# delete the KP root key - this fails because the registration was not deleted
$ ibmcloud kp key delete $MY_COS_KEY_ID --output json

FAILED
kp.Error:
    correlation_id='fffdd8a9-405a-4a91-a5a7-52c30d11424d',
    msg='Conflict: Key could not be deleted. Please see "reasons" for more details.',
    reasons='[PROTECTED_RESOURCE_ERR: Key is protecting one or more cloud resources -
        FOR_MORE_INFO_REFER: https://cloud.ibm.com/docs/key-protect?topic=key-protect-troubleshooting#unable-to-delete-keys]'

# delete the KP root key; use --force because the registration between COS and KMS still exists
$ ibmcloud kp key delete $MY_COS_KEY_ID --force --output json

# delete the KMS instance
$ ibmcloud resource service-instance-delete $KMS_NAME --force

# delete the COS instance
$ ibmcloud resource service-instance-delete $COS_NAME --force

# view resources (COS and KMS should no longer exist)
$ ibmcloud resource service-instances

Retrieving instances with type service_instance in resource group Default in all locations under account <account name> as <email address>...
OK
No service instance found.

Parámetros necesarios

  • KEY_ID_OR_ALIAS

    El UUID o alias « v4 » de la clave que deseas consultar.

  • -i, --instance-id

    ID de instancia de IBM Cloud que identifica la instancia de Key Protect.

    Puede establecer una variable de entorno en lugar de especificar -i con el mandato siguiente: $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Parámetros opcionales

  • -c, --crn-query

    Especifique la consulta crn cuyos registros deben aparecer en la lista

  • -k, --key-id

    Especifique el ID de clave cuyos registros deben aparecer en la lista.

  • -o, --output

    Establecer el formato de salida de la CLI. De forma predeterminada, todos los mandatos se imprimen en formato de tabla. Para cambiar el formato de salida a JSON, utilice --output json.

    La configuración de la salida a JSON (--output json) incluye el nombre de recurso de nube (CRN) en la salida.

  • -r, --key-ring

    Nombre exclusivo y legible para el conjunto de claves. Necesario para mostrar registros en el conjunto de claves dado.

mandato ibmcloud kp kmip

Los mandatos KMIP permiten el acceso de API a adaptadores y objetos KMIP.

Submandato Estado v0.10 Descripción
adaptador-crear Crear un adaptador KMIP
adaptador Recuperar un adaptador KMIP
adaptadores Listar adaptadores KMIP en una instancia
adaptador-suprimir Suprimir un adaptador KMIP
cert-create Crear un certificado de cliente KMIP asociado a un adaptador
cert Recuperar un certificado de cliente KMIP
certificados Listar el certificado de cliente KMIP asociado a un adaptador KMIP
cert-borrar Suprimir un certificado de cliente KMIP
objeto Recuperar un objeto KMIP
Objetos Listar objetos KMIP en un adaptador KMIP
objeto-suprimir Suprimir un objeto KMIP

kp kmip adapter-crear

Utilice kmip adapter-create para crear un adaptador KMIP bajo una instancia de Key Protect. Los adaptadores se utilizan para agrupar y gestionar objetos KMIP. Los adaptadores KMIP bajo la misma instancia de Key Protect deben tener un nombre exclusivo, ya que los adaptadores se pueden recuperar mediante el nombre o el ID. Para todos los mandatos de CLI relacionados con KMIP, cualquier argumento o distintivo que tome un ID de adaptador también puede utilizar un nombre de adaptador.

En función del perfil, es posible que sea necesario proporcionar información diferente para crear el adaptador. Actualmente, solo se da soporte a un perfil del adaptador KMIP: native_1.0.

El perfil native_1.0 sólo necesita que el ID de una clave raíz se proporcione en el distintivo -k.

$ ibmcloud kp kmip adapter-create
    -i, --instance-id      INSTANCE_ID
    -p, --profile PROFILE
    [-k, --crk-id CRK_ID]
    [-n, --name NAME]
    [-d, --description DESC]
    [-o, --output          OUTPUT]

Ejemplo

A continuación se muestran ejemplos de kp kmip adapter-create.

Ejemplo 1

Este ejemplo crea un adaptador KMIP con el perfil native_1.0

$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0 -d "my description"
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      my description  
$ ibmcloud kp kmip adapters
Targeting endpoint: not shown
Listing KMIP Adapters...
OK
Adapter ID                             Adapter Profile   Adapter Name   Created At                      Updated At   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      2024-03-20 22:06:43 +0000 UTC   2024-03-20 22:06:43 +0000 UTC   

kp kmip adaptador

Recuperar detalles sobre un adaptador KMIP, incluida la fecha de creación y actualización. Puede utilizar el ID de adaptador o el nombre de adaptador.

$ ibmcloud kp kmip adapter ADAPTER_NAME_OR_ID
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Ejemplo

A continuación se muestran ejemplos de kp kmip adapter.

Ejemplo 1

Tenga en cuenta que hay algunos atributos para el adaptador sólo visibles en el formato de salida JSON.

$ ibmcloud kp key create rootKmip
Targeting endpoint: not shown
Creating key: 'rootKmip', in instance: '8944cc2d-7e00-46b2-baa4-787051e0f7b3'...
OK
Key ID                                 Key Name   
47a0ad90-204d-4e45-aa5b-68ed40a05fa2   rootKmip   
$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      -   
# retreiving adapter by name
$ ibmcloud kp kmip adapter myadapter
Targeting endpoint: not shown
Getting KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Created At                      Updated At                      Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      2024-03-20 22:06:43 +0000 UTC   2024-03-20 22:06:43 +0000 UTC   -   
# retrieving adapter by ID
$ ibmcloud kp kmip adapter d6a00af1-277f-40e8-b33e-da3a68752209 -o json
{
    "id": "d6a00af1-277f-40e8-b33e-da3a68752209",
    "profile": "native_1.0",
    "profile_data": {
        "crk_id": "47a0ad90-204d-4e45-aa5b-68ed40a05fa2"
    },
    "name": "myadapter",
    "description": "",
    "created_by": "IBMid-664003LB2T",
    "created_at": "2024-03-20T22:06:43Z",
    "updated_by": "IBMid-664003LB2T",
    "updated_at": "2024-03-20T22:06:43Z"
}

kp kmip adaptadores

Liste los adaptadores KMIP que están disponibles en la instancia de Key Protect.

$ ibmcloud kp kmip adapters
    -i, --instance-id       INSTANCE_ID
    [-o, --output           OUTPUT]
    [-n, --limit            LIMIT]
    [-s, --starting-offset  OFFSET]
    [-t, --total-count]
    [-k, --crk-id           CRK_ID]

Ejemplo

A continuación se muestran ejemplos de kp kmip adapters. Utilice el distintivo -k para mostrar sólo los adaptadores que utilizan un ID de CRK específico.

Ejemplo 1

$ ibmcloud kp kmip adapters -n 100 -s 0
Targeting endpoint: not shown
Listing KMIP Adapters...
OK
Adapter ID                             Adapter Profile   Adapter Name   Created At                      Updated At   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      2024-03-20 22:06:43 +0000 UTC   2024-03-20 22:06:43 +0000 UTC

kp kmip adapter-suprimir

Suprime un adaptador KMIP. Esto suprimirá los objetos y certificados asociados con el adaptador.

$ ibmcloud kp kmip adapter-delete ADAPTER_NAME_OR_ID
    -i, --instance-id INSTANCE_ID
    [-f, --force]
    [-y, --skip-confirm]

Ejemplo

A continuación se muestran ejemplos de kp kmip adapter-delete.

Ejemplo 1

$ ibmcloud kp kmip adapter-create -n adap -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
e97e4297-4a6f-41c9-ae67-0920715964fd   native_1.0        adap           -   
$ ibmcloud kp kmip adapter-delete e97e4297-4a6f-41c9-ae67-0920715964fd
Targeting endpoint: not shown
Deleting KMIP Adapter...
OK

kp kmip cert-create

Utilice kp kmip cert-create para crear un certificado de cliente KMIP para asociarlo a un adaptador KMIP específico. El certificado proporcionado en la bandera -c debe tener el formato x509 PEM. El archivo de certificado se puede cargar utilizando el prefijo @ para especificar una vía de acceso de archivo o proporcionando el contenido del archivo de certificado directamente al distintivo.

Los certificados de cliente KMIP se utilizan para conectarse y autenticarse en el servidor KMIP a través de TLS ( mTLS ). Un certificado debe estar registrado antes de que se puedan llevar a cabo operaciones de protocolo KMIP con un adaptador KMIP. El certificado puede tardar hasta 5 minutos en ser utilizable en las operaciones KMIP.

Los certificados deben tener un nombre exclusivo dentro del mismo adaptador KMIP, y el contenido del certificado debe ser exclusivo, incluso entre varios adaptadores.

Consulte también: Especificaciones de protocolo KMIP

$ ibmcloud kp kmip cert-create
    -a, --adapter       ADAPTER_NAME_OR_ID
    -c, --cert-string   {@path/to/cert | CERTIFICATE_STRING}
    [-n, --name         NAME]
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Ejemplo

A continuación se muestran ejemplos de kp kmip cert-create.

Ejemplo 1

Este ejemplo muestra dos formas de cargar el mismo archivo de certificado.

$ ibmcloud kp key create rootKmip
Targeting endpoint: not shown
Creating key: 'rootKmip', in instance: '8944cc2d-7e00-46b2-baa4-787051e0f7b3'...
OK
Key ID                                 Key Name   
47a0ad90-204d-4e45-aa5b-68ed40a05fa2   rootKmip   
$ ibmcloud kp kmip adapter-create -n myadapter -k 47a0ad90-204d-4e45-aa5b-68ed40a05fa2 -p native_1.0
Targeting endpoint: not shown
Creating KMIP Adapter...
OK
Adapter ID                             Adapter Profile   Adapter Name   Adapter Description   
d6a00af1-277f-40e8-b33e-da3a68752209   native_1.0        myadapter      -   

$ export CERT=$(cat ./cert.pem)

$ ibmcloud kp kmip cert-create -n mycert -c "$CERT" -a myadapter
Targeting endpoint: not shown
Creating KMIP Client Certificate...
OK
Certificate ID                         Certificate Name   Created At   
3f550b96-86bc-44fe-8d1d-113e57067219   mycert             2024-03-20 22:08:03 +0000 UTC   

## Alternatively, you can also provide the filepath of the certificate

$ ibmcloud kp kmip cert-delete mycert -a myadapter
Targeting endpoint: not shown
Deleting KMIP Client Certificate...
OK

$ ibmcloud kp kmip cert-create -n mycert -c @./cert.pem -a myadapter
Targeting endpoint: not shown
Creating KMIP Client Certificate...
OK
Certificate ID                         Certificate Name   Created At   
a279fded-06d1-45a1-8a95-901f194fb937   mycert             2024-03-20 22:11:34 +0000 UTC   

Certificado kp kmip

Recupera un certificado de cliente KMIP específico. Un certificado se puede recuperar mediante el ID o el nombre.

$ ibmcloud kp kmip cert CERTIFICATE_ID
    -a, --adapter       ADAPTER_NAME_OR_ID
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Ejemplos

A continuación se muestran ejemplos de kp kmip cert.

Ejemplo 1

Obtención de un certificado por nombre:

$ ibmcloud kp kmip cert mycert -a myadapter
Targeting endpoint: not shown
Getting KMIP Client Certificate...
OK
Certificate ID                         Certificate Name   Created At   
a279fded-06d1-45a1-8a95-901f194fb937   mycert             2024-03-20 22:11:34 +0000 UTC   

Ejemplo 2

Obtención de un certificado por UUID en formato JSON. El contenido del certificado en formato PEM se devolverá en el cuerpo JSON.

$ ibmcloud kp kmip cert a279fded-06d1-45a1-8a95-901f194fb937  -a myadapter -o json
{
    "id": "a279fded-06d1-45a1-8a95-901f194fb937",
    "name": "mycert",
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIFqzCCA5OgAwIBAgIUNXqfJMkAHOBHz6+ekETDlCqIEqUwDQYJKoZIhvcNAQEL\nBQAw
    ... CERTIFICATE CONTENTS ABBREVIATED ...
    Y6uFtHuQSpud0C\n-----END CERTIFICATE-----\n",
    "created_by": "IBMid-12345678",
    "created_at": "2024-03-20T22:11:34Z"
}

Certificados kp y kmip

Listar todos los certificados de cliente KMIP asociados a un adaptador KMIP específico.

$ ibmcloud kp kmip certs
    -a, --adapter           ADAPTER_NAME_OR_ID
    [-n, --limit            LIMIT]
    [-s, --starting-offset  OFFSET]
    [-t, --total-count]
    -i, --instance-id       INSTANCE_ID
    [-o, --output           OUTPUT]

Ejemplos

A continuación se muestran ejemplos de kp kmip certs.

Ejemplo 1

$ ibmcloud kp kmip certs -a myadapter
Targeting endpoint: not shown
Listing KMIP Client Certificates...
OK
Certificate ID                         Certificate Name   Created At   
a279fded-06d1-45a1-8a95-901f194fb937   mycert             2024-03-20 22:11:34 +0000 UTC   

kp kmip cert-borrar

Suprimir un certificado de cliente KMIP.

$ ibmcloud kp kmip cert-delete CERTIFICATE_ID
    -a, --adapter         ADAPTER_NAME_OR_ID
    -i, --instance-id     INSTANCE_ID

Ejemplos

Estos son ejemplos de kp kmip cert-delete

Ejemplo 1

$ ibmcloud kp kmip cert-delete -a myadapter mycert
Targeting endpoint: not shown
Deleting KMIP Client Certificate...
OK

objeto kmip kp

Los objetos KMIP se crean a través de operaciones realizadas a través de un cliente KMIP utilizando el protocolo KMIP. No se pueden crear a través de la API, pero se pueden leer y suprimir. Los objetos pertenecen a un único adaptador.

Los objetos no tienen un nombre y deben recuperarse por ID.

$ ibmcloud kp kmip object OBJECT_ID
    -a, --adapter         ADAPTER_NAME_OR_ID
    -i, --instance-id     INSTANCE_ID
    [-o, --output         OUTPUT]

Ejemplos

Estos son ejemplos de kp kmip object

Ejemplo 1

$ ibmcloud kp kmip object 12365a82-5404-4bd9-a4c7-2b628ee18304 -a testadapter
Targeting endpoint: not shown
Getting KMIP Object...
OK
Object ID                              Object Type     Object State   Created At                      Updated At   
12365a82-5404-4bd9-a4c7-2b628ee18304   Symmetric Key   Active         2024-03-14 21:01:45 +0000 UTC   2024-03-14 21:01:45 +0000 UTC   

Ejemplo 2

La obtención de un objeto KMIP como JSON mostrará algunos atributos adicionales no visibles en la vista de tabla normal.

$ ibmcloud kp kmip object 12365a82-5404-4bd9-a4c7-2b628ee18304 -a testadapter -o json
{
    "id": "12365a82-5404-4bd9-a4c7-2b628ee18304",
    "kmip_object_type": 2,
    "state": 2,
    "created_by_kmip_client_cert_id": "531c18f3-4e37-447e-a7e0-e8676407bb75",
    "created_by": "IBMid-123456",
    "created_at": "2024-03-14T21:01:45Z",
    "updated_by_kmip_client_cert_id": "531c18f3-4e37-447e-a7e0-e8676407bb75",
    "updated_by": "IBMid-123456",
    "updated_at": "2024-03-14T21:01:45Z"
}

kp kmip objetos

Listar objetos KMIP y ver información sobre su tipo de objeto y estado de objeto entre otros metadatos. Utilice el distintivo -f para filtrar objetos sólo en un estado específico. De forma predeterminada, el filtro de estado se establece en 1,2,3,4.

Los números corresponden a los estados de objeto como se indica a continuación:

  • Preactivo = 1
  • Activo = 2
  • Desactivado = 3
  • Comprometido = 4
  • Destruido = 5
  • Compromiso destruido = 6

Consulte Enumeración de estado de KMIP

ibmcloud kp kmip objects
    -a, --adapter           ADAPTER_NAME_OR_ID
    [-n, --limit            LIMIT]
    [-s, --starting-offset  OFFSET]
    [-t, --total-count]
    -i, --instance-id       INSTANCE_ID
    [-o, --output           OUTPUT]

Ejemplos

A continuación se muestran ejemplos de kp kmip objects.

Ejemplo 1

$ ibmcloud kp kmip objects -a myadapter
Targeting endpoint: not shown
Listing KMIP Objects...
OK
Object ID                              Object Type     Object State   Created At                      Updated At   
00196c59-c5c2-42d8-9729-703cd0389f60   Symmetric Key   Compromised    2024-03-14 20:47:54 +0000 UTC   2024-03-14 20:47:54 +0000 UTC   
02f1043c-0494-4399-82af-5395a14b019f   Symmetric Key   Pre-Active     2024-03-14 20:58:06 +0000 UTC   2024-03-14 20:58:06 +0000 UTC   
08082ff4-821b-4689-83ec-15cac5bd1939   Symmetric Key   Pre-Active     2024-02-22 00:10:46 +0000 UTC   2024-02-22 00:11:23 +0000 UTC   
0c1ea28d-dfaa-404a-b9c4-fcdc3f5d8b02   Symmetric Key   Deactivated    2024-03-14 21:05:48 +0000 UTC   2024-03-14 21:05:48 +0000 UTC   
10b49b05-0101-4234-927b-20a3356da291   Symmetric Key   Pre-Active     2024-03-14 21:26:54 +0000 UTC   2024-03-14 21:26:54 +0000 UTC   
12365a82-5404-4bd9-a4c7-2b628ee18304   Symmetric Key   Active         2024-03-14 21:01:45 +0000 UTC   2024-03-14 21:01:45 +0000 UTC

Ejemplo 2

Utilización del distintivo -f para filtrar objetos de un estado específico. Utilice comas para especificar varios estados.

$ ibmcloud kp kmip objects -a testadapter -f 5,6
Targeting endpoint: not shown
Listing KMIP Objects...
OK
Object ID                              Object Type     Object State            Created At                      Updated At   
03d38805-2bb2-4aa0-bbf3-dc4a6d5d0475   Symmetric Key   Destroyed               2024-03-14 20:47:58 +0000 UTC   2024-03-14 20:47:58 +0000 UTC   
08c94f34-0100-4331-b759-5937ed5b1228   Symmetric Key   Destroyed               2024-03-14 20:46:38 +0000 UTC   2024-03-14 20:46:38 +0000 UTC   
1a13e112-41f8-4d52-be08-a0946b8c22fa   Symmetric Key   Destroyed Compromised   2024-03-14 20:58:20 +0000 UTC   2024-03-14 20:58:20 +0000 UTC   

kp kmip object-suprimir

Suprimir un objeto KMIP. Sólo se pueden suprimir correctamente los objetos cuyo estado no sea Activo o no Destruido.

$ ibmcloud kp kmip object-delete OBJECT_ID
    -a, --adapter ADAPTER_NAME_OR_ID
    -i, --instance-id INSTANCE_ID
    [-f, --force]
    [-y, --skip-confirm]

Ejemplos

Estos son ejemplos de kp kmip object-delete

Ejemplo 1

$ ibmcloud kp kmip object-delete 9b2f5af5-3534-4f02-8836-f89af37c4351 -a testadapter
Targeting endpoint: not shown
Deleting KMIP Object...
OK

criptomoneda kp

El comando kp crypto-unit le permite gestionar sus unidades criptográficas. Tenga en cuenta que este comando no hace nada por sí solo. Debe utilizar uno de los subcomandos junto con él.

NAME:
  -ibmcloud key-protect crypto-unit - Manage crypto units

USAGE:
  ibmcloud key-protect crypto-unit command [arguments...] [command options]

COMMANDS:
  claim        Claim crypto unit(s)
  master-key   Commands to manage Master Keys (MKs) of crypto unit(s)
  master-keys  List the MKs uploaded to crypto unit(s)
  sig-key      Generate a signature key file compatible for use as a crypto unit user credential
  user         Manage users in crypto unit(s)
  users        List users in crypto unit(s)
  zeroize      Zeroize a crypto unit
  help, h      Show help

Enter 'ibmcloud key-protect crypto-unit help [command]' for more information about a command.

Si tiene problemas con el comando kp crypto-unit, consulte la sección Solución de problemas.

zeroize

Se desaconseja encarecidamente poner a cero las unidades criptográficas una vez que se hayan creado claves o realizado operaciones con claves. Si se requiere la puesta a cero después de este punto, todas las claves deben ser borradas y purgadas. Tenga en cuenta que hay un periodo de espera de cuatro horas antes de que una clave eliminada pueda ser purgada.

NAME:
  zeroize - Zeroize a crypto unit

USAGE:
  zeroize --id CRYPTO_UNIT_ID

OPTIONS:
  --id value                     Required. The ID of the crypto unit to zeroize

claim

Reclamación de ibmcloud kp crypto-unit

NAME:
  claim - Claim crypto unit(s)

USAGE:
  claim --credential ADMIN_KEY_FILE

OPTIONS:
  --credential value  Required. Path to file containing signature key that will be associated with the user. Must be between 1 and 255 characters. Do not include file passphrase
  --ids strings         Optional. List of crypto unit IDs to target, can be provided as a comma-separated list, or repeating the flag. If omitted, all crypto units will be targeted

master-key

NAME:
  ibmcloud key-protect crypto-unit master-key - Commands to manage Master Keys (MKs) of crypto unit(s)

USAGE:
  ibmcloud key-protect crypto-unit master-key command [arguments...] [command options]

COMMANDS:
  generate   Generate Master Key (MK) material. This command does not store the MK material in crypto unit used to generate it. Use `crypto-unit master-key import` to upload an MK to a crypto unit
  import     Import a Master Key (MK) to crypto unit(s)
  help, h    Show help

master-key generate

NAME:
  generate - Generate Master Key (MK) material. This command does not store the MK material in crypto unit used to generate it. Use `crypto-unit master-key import` to upload an MK to a crypto unit

USAGE:
  generate --keyshare-files KEYSHARE_FILES --keyshare-minimum KEYSHARE_MINIMUM --algo ALGO --key-name KEYNAME --cu CRYPTO_UNITS

OPTIONS:
  --algo value              Required. Algorithm that generated MK will be compatible with. Only AES-256 is supported
  --auth value              Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --cu value                Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --key-name value          Required. MK name. Must be between 1 and 8 characters
  --keyshare-files value    Required. Array specifying file paths to write MK key share files to. Format: '["file1.key#filepwd1", "file2.key#filepwd2"]'. File path must be 1-255 characters. Passphrase must be between 6 and 255 characters. Omit # to be prompted to enter file passphrase.
  --keyshare-minimum value  Required. Number of key shares needed to reconstruct the MK. Must be between 2 and 255 and less than or equal to the number of keyshare files

master-key import

NAME:
  import - Import a Master Key (MK) to crypto unit(s)

USAGE:
  import --keyshare-files KEYSHARE_FILES --auth AUTH

OPTIONS:
  --auth value            Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --cu value              Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --keyshare-files value  Required. Array specifying file paths to MK key share files. Format: '["file1.key#filepwd1", "file2.key#filepwd2"]'. File path must be 1-255 characters. Passphrase must be between 6 and 255 characters. Omit # to be prompted to enter file passphrase.

master-keys

NAME:
  master-keys - List the MKs uploaded to crypto unit(s)

USAGE:
  master-keys [--cu CRYPTO_UNITS]

OPTIONS:
  --cu value  Optional. Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive. If omitted, lists MKs in all crypto units of the instance.

sig-key

NAME:
  ibmcloud key-protect crypto-unit sig-key - Generate a signature key file compatible for use as a crypto unit user credential

USAGE:
  ibmcloud key-protect crypto-unit sig-key command [arguments...] [command options]

COMMANDS:
  generate   Generate a signature key file compatible for use as a crypto unit user credential
  help, h    Show help

Enter 'ibmcloud key-protect crypto-unit sig-key help [command]' for more information about a command.

sig-key generate

NAME:
  generate - Generate a signature key file compatible for use as a crypto unit user credential

USAGE:
  generate --file FILE --passphrase PASSWORD --algo RSA-2048

OPTIONS:
  --algo value      The algorithm type used to generate the signature key. Only RSA-2048 is supported
  --file value      Required. The file path to write the signature key to. Must be between 1 and 255 characters
  --passphrase value                 --passphrase string   Optional passphrase used to encrypt the signature key file. Provide "-" to prompt for password

user

NAME:
  ibmcloud key-protect crypto-unit user - Manage users in crypto unit(s)

USAGE:
  ibmcloud key-protect crypto-unit user command [arguments...] [command options]

COMMANDS:
  add       Add new user to crypto unit(s)
  remove    Remove user from crypto unit
  help, h   Show help

Enter 'ibmcloud key-protect crypto-unit user help [command]' for more information about a command.

user-add

NAME:
  add - Add new user to crypto unit(s)

USAGE:
  add --type TYPE --name NAME --credential CREDENTIAL --auth AUTH

OPTIONS:
  --auth value          Credentials to use for authenticating request(s) sent to crypto unit(s). Format: '[{"myUsername": "/path/to/signature.key#filepassphrase"}]' or '@/path/to/auth.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --credential value    Required. Path to file containing signature key that will be associated with the user. Must be between 1 and 255 characters. Do not include file passphrase
  --cu value            Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  --name value        Required. Name of the user to add. Must be between 1 and 255 characters
  --type value        Required. Type of user to add. Allowable values are: admin, kmsCryptoUser

user-remove

NAME:
  remove - Remove user from crypto unit

USAGE:
  remove -u USER --cu CRYPTO_UNITS

OPTIONS:
  --cu value              Crypto unit(s) for the request to target and credentials to submit request with. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab", "Auth": [{"ADMIN": "/path/to/signature.key#filepassphrase"}]}]' or '@/path/to/cu.json'. Omit # to be prompted to enter file passphrase. --auth and --cu are mutually exclusive
  -u value, --user value  Required. The username of the user to remove from crypto-unit(s)

users

NAME:
  users - List users in crypto unit(s)

USAGE:
  users [--cu CRYPTO_UNITS]

OPTIONS:
  --cu value  Optional. Crypto unit(s) for the request to target. Format: '[{"CryptoUnitId": "fadedbee-0000-0000-0000-1234567890ab"}]' or '@/path/to/cu.json'. If omitted, lists users in all crypto units of the instance.

kp crypto-units

El comando kp crypto-units le permite listar sus unidades criptográficas.


NAME:
  ibmcloud kp - List crypto units allocated to instance

USAGE:
  ibmcloud crypto-units

COMMANDS:

Additional help topics:

Use "export KP_INSTANCE_ID=TARGET_INSTANCE_ID" or "ibmcloud kp command [arguments...] [command options] -i TARGET_INSTANCE_ID" to set a target instance ID.

Próximos pasos

Busque las operaciones relacionadas en la documentación de la API.