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.
| 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.
| 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.
| 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.
| 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.
| 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 -hibmcloud kp import-token -hibmcloud kp key -hibmcloud 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 -hibmcloud 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-e, --expirationEspecifique 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
300segundos (5 minutos) y el valor máximo es86400segundos (24 horas). El valor predeterminado es600segundos (10 minutos). -
-m, --max-retrievalsEstablezca 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-k, --keyEl material de clave codificado en base64 que desea almacenar y gestionar en el servicio.
-p, --pubkeyLa 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, utiliceibmcloud kp import-token show.
Parámetros opcionales
-
-a, --hashEl 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-k, --keyEl material de clave codificado en base64 que desea almacenar y gestionar en el servicio.
-n, --nonceEl 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, --cbcCifrar 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon 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-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-p, --allowed-ipMostrar la política de la instancia para «direcciones IP permitidas».
-
-a, --allowed-networkMuestre la política de instancia para "red permitida".
-
-d, --dual-auth-deleteMostrar la política de instancia de
dual authorization delete. -
-k, --key-create-import-accessRecupera los detalles de la política de acceso de importación de creación de claves de la instancia.
-
-m, --metricsRecupera los detalles de la política de métricas de la instancia.
-
-o, --outputEstablecer 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, --rotationRecupera 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, --enableInhabilitar o habilitar la política de acceso a la red. Es obligatoria una de las dos opciones.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-t, --network-typeEspecifique el tipo de acceso a la red permitido. Las opciones son
public-and-privateoprivate-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, --enableInhabilitar o habilitar la política de autorización dual. Es obligatoria una de las dos opciones.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon 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_IDEl ID de la clave que desea modificar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.
-
KEY_ALIASEl 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-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-o, --outputEstablecer 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.
-
Cree una clave y habilite la política
dual-auth-delete -
El usuario 1 planifica (autoriza) una supresión de claves con el Mandato
kp key schedule-delete -
El usuario 2 planifica (autoriza) una supresión de clave
-
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 -
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_ALIASEl 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_NAMEUn identificador exclusivo en lenguaje natural para asignar a la clave.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-k, --key-materialSi 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-nonceSe 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 ejecutandoibmcloud kp import-token nonce-encrypt. -
-o, --outputEstablecer 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-keyEstablezca 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, --ivSe 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-ringNombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.
-
-D, --descriptionPermite 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_NAMEUn identificador exclusivo en lenguaje natural para asignar a la clave.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-a, --aliasesNombres 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-materialSi 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-nonceSe 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 ejecutandoibmcloud kp import-token nonce-encrypt. -
-o, --outputEstablecer 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-keyEstablezca 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, --ivSe 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-ringNombre 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_ALIASEl 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-f, --forceSuprimir 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, --outputEstablecer 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-ringNombre 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_ALIASEl 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
--key-ringNombre 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_ALIASEl 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
--key-ringNombre 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_ALIASEl 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-d, --dual-authMuestre políticas que tienen una política
dual-auth-delete. -
-o, --outputEstablecer 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, --rotationMuestre políticas que tienen una política
rotation. -
--key-ringNombre 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_ALIASEl UUID o alias « v4 » de la clave que deseas consultar. Para recuperar una lista de las claves disponibles, ejecute el mandato kp keys.
-
-e, --enableUna 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
disablela clave (mediante el mandatokp 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, --outputEstablecer 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-ringNombre 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_ALIASEl 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-intervalEstablezca el intervalo de rotación de claves en meses. El intervalo de rotación debe estar comprendido entre 1 y 12 meses.
-
-e, --enableo-d, --disableDe 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, --outputEstablecer 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-ringNombre 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.
-
Cree una clave raíz utilizando una señal de importación y, a continuación, suprima la clave
-
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_ALIASEl UUID o alias « v4 » de la clave que deseas restaurar.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-k, --key-materialDeprecatedEl 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-materiales 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-nonceDeprecatedVerifique 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, --outputEstablecer 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, --ivDeprecatedProporcione 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-ringNombre 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-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon 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_IDLa referencia alfanumérica mayor o igual a 2 caracteres y menor o igual que 100 para el conjunto de claves.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon 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_IDLa referencia alfanumérica mayor o igual a 2 caracteres y menor o igual que 100 para el conjunto de claves.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-f, --forceFuerza 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...
-
Cree una clave raíz
-
Cree una clave de cifrado de datos (DEK), es decir el
plaintext -
Envuelva la DEK con la clave raíz, lo que crea un texto cifrado (
ciphertext) -
Rote la clave raíz
-
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)
-
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_ALIASEl UUID o alias « v4 » de la clave raíz que deseas rotar.
-
-i, --instance-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-k, --key-materialPara 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-ringNombre 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.
-
Cree una clave y habilite la política
dual-auth-delete -
El usuario 1 planifica (autoriza) una supresión de claves con el Mandato
kp key schedule-delete -
El usuario 2 planifica (autoriza) una supresión de clave
-
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 -
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_ALIASEl 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-ringNombre 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_ALIASEl UUID o alias v4 de la clave raíz que desea mostrar.
-
-i, --instance-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-o, --outputEstablecer 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-ringNombre 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_IDEl ID de la clave que desea sincronizar.
-
-i, --instance-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-o, --outputEstablecer 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-ringNombre 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_ALIASEl UUID o alias v4 de la clave raíz que desea mostrar.
-
-i, --instance-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>. -
-r, --new-key-ringNombre 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, --outputEstablecer 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_ALIASEl UUID o alias « v4 » de la clave raíz que utilizaste para la solicitud de envoltura inicial.
-
CIPHERTEXT_FROM_WRAPClave de datos cifrados que se ha devuelto durante la solicitud inicial de envolvimiento.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-a, --aadDatos 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-ringNombre 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_ALIASEl UUID o alias « v4 » de la clave raíz que utilizaste para la solicitud de envoltura inicial.
-
-i, --instance-IDID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
--key-ringNombre 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-versionsRestringe el número de versiones de clave que debe recuperar el valor entero proporcionado (valor predeterminado: 200).
-
-o, --outputEstablecer 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-offsetRecupera las versiones de clave del desplazamiento según lo especificado por el valor entero proporcionado.
-
-t --total-countSe utiliza para volver a establecer el número total de versiones de clave para una clave por el valor entero proporcionado.
-
-a --all-key-statesDistintivo 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_ALIASEl UUID o alias « v4 » de la clave raíz que deseas utilizar para el «wrapping». No puede envolver una clave estándar.
-
-i, --instance-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-a, --aadDatos 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, --outputEstablecer 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, --plaintextEl 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-ringNombre 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-b, --sort-byOrdene 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, --crnIncluir el nombre del recurso de nube (CRN) en la salida.
-
-f, --key-filterFiltre 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-statesEl 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-searchListar 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-keysLimita el número de claves que se van a recuperar. El valor predeterminado es 200 y el máximo es 5000.
-
-o, --outputEstablecer 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-ringNombre exclusivo y legible para el conjunto de claves. Necesario si el usuario no tiene permisos en el conjunto de claves predeterminado.
-
-s, --starting-offsetRecupera 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-typeEl 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-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
REGIONEspecifique 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, --unsetAnular 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_ALIASEl UUID o alias « v4 » de la clave que deseas consultar.
-
-i, --instance-idID de instancia de IBM Cloud que identifica la instancia de Key Protect.
Puede establecer una variable de entorno en lugar de especificar
-icon el mandato siguiente:$ export KP_INSTANCE_ID=<INSTANCE_ID>.
Parámetros opcionales
-
-c, --crn-queryEspecifique la consulta crn cuyos registros deben aparecer en la lista
-
-k, --key-idEspecifique el ID de clave cuyos registros deben aparecer en la lista.
-
-o, --outputEstablecer 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-ringNombre 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.