Informations de référence sur l'interface de ligne de commande de Key Protect

La dernière version du plug-in de l'interface de ligne de commande IBM® Key Protect for IBM Cloud® fournit un moyen sûr et efficace de gérer les clés dans votre instance de Key Protect.

Lorsque vous vous connectez à l'interface CLI d' IBM Cloud, vous recevez une notification dès que des mises à jour sont disponibles. Veillez à tenir à jour votre interface de ligne de commande de manière à pouvoir utiliser les commandes et indicateurs disponibles pour le plug-in d'interface de ligne de commande de Key Protect.

Remarques

Pour installer et configurer le plug-in d'interface de ligne de commande Key Protect, voir la rubrique Configuration de l'interface de ligne de commande.

L'exemple montrant comment utiliser region-set décrit une étape critique de la configuration.

Versions antérieures

Cette documentation relative à la version 0.8 ne mentionne pas les commandes obsolètes.

Toutes les commandes obsolètes fonctionnent dans les versions 0.4.0 et 0.5.2. Autrement dit, la version 0.5.2 est compatible en amont avec les versions 0.3.9 et 0.4.0.

Exemples

Il existe une section Example pour toutes les commandes, qui explique comment utiliser la commande dans le contexte d'un flux de travaux.

Les exemples supposent que vous avez openssl et jq installé.

De nombreux exemples tirent parti d'une variable d'environnement définie pour la session concernant l'ID instance Key Protect au lieu du paramètre -i. Les variables définies de cette manière seront automatiquement utilisées par le plug-in, le cas échéant et au besoin.

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

Veillez à définir le point de terminaison de votre instance Key Protect:

export KP_TARGET_ADDR=<KEY_PROTECT_INSTANCE_ENDPOINT>   

Remplacez <KEY_PROTECT_INSTANCE_ENDPOINT> par l'adresse de l'instance correspondant à votre ID d'instance. Exemple :

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

Vous pouvez trouver le point de terminaison de l'instance pour Key Protect dans la console de l'interface utilisateur IBM Cloud pour votre instance spécifique.

Récapitulatif des commandes ibmcloud kp

ibmcloud kp prend en charge les commandes répertoriées ici.

Commande kp import-token

La commande kp import-token permet de préparer une clé racine à une importation sécurisée.

Sous-commandes pour la gestion des jetons d'importation
Sous-commande Statut v0.8 Description
Commande create Créer un jeton d'importation
key-encrypt Chiffrer la clé que vous importez dans le service
nonce-encrypt Chiffrer la valeur nonce qui est générée par kp import-token create
show Extraire un jeton d'importation

Commande kp instance

La commande kp instance gère les règles d'une instance Key Protect.

Sous-commandes pour la gestion des clés
Sous-commande Statut v0.8 Description
policies Répertorier les règles associées à une instance
policy-update allowed-network Mettre à jour la stratégie d'instance pour allowed network
policy-update dual-auth-delete Mettre à jour la stratégie d'instance pour dual auth delete
policy-update rotation Mettre à jour la stratégie d'instance pour rotation

Commande kp key

La commande kp key permet de gérer des clés individuelles.

Sous-commandes pour la gestion des clés
Sous-commande Statut v0.8 Description
Alias-create Créer un alias pour une référence unique et pratique à une clé
cancel-delete Annuler une demande précédemment planifiée pour supprimer une clé
Commande create Créer une clé ou importer votre propre clé
delete Supprimer une clé
disable Désactiver une clé
enable Activer une clé
policies Extraire une liste de clés
policy-update dual-auth-delete Mettre à jour la stratégie de clés pour dual auth delete
policy-update rotation Mettre à jour la stratégie de clés pour rotation
restore Restaurer une clé racine précédemment supprimée
effectuer une rotation Effectuer la rotation d'une clé racine
schedule-delete Autoriser la suppression d'une clé, avec une règle de suppression avec autorisation double
show Extraire une clé
sync Synchroniser les ressources associées d'une clé
unwrap Désencapsuler une clé de chiffrement de données
Mise à jour Mettez à jour une clé, transférez-la sur un nouveau fichier de clés.
versions Liste de toutes les versions de clé
wrap Encapsuler une clé de chiffrement de données

Commande kp key-ring

La prise en charge du fichier de clés permet de gérer des groupes de clés pour les meilleures pratiques à l'aide de la commande kp key-ring.

Sous-commandes pour la gestion des porte-clés
Sous-commande Statut v0.8 Description
Commande create Crée un fichier de clés dans une instance kp.
delete Supprime un fichier de clés dans une instance kp.

Autres commandes kp

Autres commandes de gestion Les ressources Key Protect peuvent prendre en charge les meilleures pratiques.

Commandes pour la gestion d'autres ressources
Commande Statut v0.8 Description
kp keys Répertorier les clés qui sont disponibles dans votre instance Key Protect
kp key-rings Répertorie les fichiers de clés associés à l'instance kp.
kp region-set Cibler un autre noeud final régional
kp registrations Répertorier les associations entre des clés racine et d'autres ressources de cloud
kp kmip Créez et gérez des adaptateurs KMIP et les ressources associées.
kp crypto-unité Gérer les unités de crypto-monnaie
crypto-unités kp Liste des unités cryptographiques allouées à une instance

Les alias de clé peuvent être utilisés comme identificateurs pour les méthodes, comme illustré dans les exemples de création de clé, de désactivation de clé, et partout où l'option'ID de clé ou alias'est prise en charge ici.

Affichage de l'aide

Vous trouverez ci-après des exemples de commande permettant d'afficher des informations d'aide sur la commande kp.

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

Les commandes kp import-token et kp key comportent des sous-commandes. Les exemples ci-après illustrent des commandes permettant d'afficher de l'aide sur certaines sous-commandes.

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

kp import-token create

Créer un jeton d'importation que vous pouvez utiliser pour chiffrer et importer une clé racine dans instance Key Protect. Par défaut, le jeton d'importation expire après 10 minutes (600 secondes).

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

Exemple

L'exemple ci-après illustre la création d'un jeton d'importation. Le jeton d'importation est composé d'une valeur nonce et d'une public key.

Une valeur nonce est un nombre arbitraire qui ne peut être utilisé qu'une fois dans une communication cryptographique.

# 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="
}

Paramètres obligatoires

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -e, --expiration

    Spécifiez un délai d'expiration (en secondes) pour un jeton d'importation. Cette valeur détermine la durée de validité du jeton d'importation et de la clé publique associée pour les opérations.

    La valeur minimale est de 300 secondes (5 minutes) et la valeur maximale, de 86400 secondes (24 heures). La valeur par défaut est de 600 secondes (10 minutes).

  • -m, --max-retrievals

    Définissez le nombre d'utilisations du jeton d'importation. Cette valeur détermine le nombre de fois que le jeton d'importation peut être extrait au cours de son délai d'expiration avant de cesser d'être accessible. La valeur par défaut est 1.

kp import-token key-encrypt

Chiffrer les informations de clé que vous importez dans Key Protect à l'aide de la clé publique associée à votre instance Key Protect.

Ensuite, fournissez la clé chiffrée récupérée lorsque vous exécutez ibmcloud kp key create pour importer la clé dans le service.

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

Exemple

Cet exemple chiffre une adresse key material à l'aide de la clé publique créée par 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=

Paramètres obligatoires

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -k, --key

    Matériel de clé codé en base64 que vous stockez et gérez dans le service.

    -p, --pubkey

    Clé de chiffrement publique codée en base64 qui a été distribuée par Key Protect. Pour créer une nouvelle clé publique, utilisez ibmcloud kp import-token create. Pour extraire une clé publique, utilisez ibmcloud kp import-token show.

Paramètres facultatifs

  • -a, --hash

    Algorithme de hachage utilisé pour encapsuler la clé. SHA1 et SHA256 sont pris en charge. La valeur par défaut est SHA256. SHA1 est pris en charge uniquement par HPCS.

    Cette option permet de générer une clé chiffrée qui ne peut être utilisée que dans une demande avec l'API HPCS. N'utilisez pas cette option pour créer des clés racine Key Protect.

    Hyper Protect Crypto Services (HPCS) comprend un service de gestion de clés dédié et un module HSM. HPCS s'intègre à Key Protect pour générer et chiffrer des clés. La fonction KYOK (Keep Your Own Key) est également activée par HPCS.

Remarques

Pour plus d'informations sur HPCS, voir Initiation à IBM Cloud Hyper Protect Crypto Services.

kp import-token nonce-encrypt

Chiffrez le nonce qui est distribué par Key Protect avec les informations de clé que vous importez dans le service.

Indiquez ensuite les valeurs nonce et IV chiffrées extraites lors de l'exécution ibmcloud kp key create pour importer la clé.

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

Exemple

Cet exemple chiffre le nonce à l'aide du key material.

Une valeur nonce est un nombre arbitraire qui ne peut être utilisé qu'une fois dans une communication cryptographique.

# 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

Paramètres obligatoires

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -k, --key

    Matériel de clé codé en base64 que vous stockez et gérez dans le service.

    -n, --nonce

    Valeur nonce qui est utilisée pour vérifier une demande d'importation d'une clé. La valeur est codée en base64. Pour extraire un nonce, utilisez ibmcloud kp import-token show.

Paramètres facultatifs

  • -c, --cbc

    Chiffrez la valeur nonce à l'aide de l'algorithme de chiffrement AES-CBC. Cette méthode d'algorithme est prise en charge uniquement pour HPCS. L'algorithme de chiffrement par défaut est AES-GCM.

    Cette option permet de générer une valeur nonce chiffrée qui ne peut être utilisée que dans une demande avec l'API HPCS. N'utilisez pas cette option pour créer des clés racine Key Protect.

    Hyper Protect Crypto Services (HPCS) comprend un service de gestion de clés dédié et un module HSM. HPCS s'intègre à Key Protect pour générer et chiffrer des clés. La fonction KYOK (Keep Your Own Key) est également activée par HPCS.

Remarques

Pour plus d'informations sur HPCS, voir Initiation à IBM Cloud Hyper Protect Crypto Services.

kp import-token show

Extraire le jeton d'importation associé à votre Key Protect .

Le jeton d'importation contient une clé de chiffrement publique et une valeur nonce. Indiquez la clé publique extraite et la valeur nonce comme arguments pour ibmcloud kp import-token nonce-encrypt and ibmcloud kp import-token key-encrypt.

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

Exemple

L'exemple ci-après illustre la création d'un jeton d'importation et l'affichage des résultats.

# 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=

Paramètres obligatoires

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp instance policies

Extrayez des détails sur les règles d'instance, telles que allowed networks (public-and-private ou private-only), les règles allowed IP, l'accès key create import, les métriques et la suppression avec autorisation double (la suppression d'une clé nécessite une autorisation de la part de deux utilisateurs).

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]

Exemple

L'exemple montre comment utiliser la commande et les résultats. Si le service n'a pas de résultats pour la requête, un tableau vide ([]) sera rapatrié.

# 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" }
    }
  }
]

Paramètres obligatoires

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -p, --allowed-ip

    Afficher la politique d'instance pour « adresses IP autorisées ».

  • -a, --allowed-network

    Affichez la règle d'instance pour "allowed network".

  • -d, --dual-auth-delete

    Afficher la politique d'instance pour dual authorization delete.

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

    Extrait les détails de la règle d'accès d'importation de création de clé de l'instance.

  • -m, --metrics

    Extrait les détails de la règle de métriques de l'instance.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • -r, --rotation

    Extrait les détails de la règle de rotation de l'instance.

kp instance policy-update allowed-network

Mettez à jour la stratégie d'une instance et définissez le réseau autorisé sur public-and-private ou private-only.

La règle allowed-network empêche une instance d'obtenir des demandes émanant de réseaux publics ou privés.

Pour les instances existantes, la règle d'accès au réseau est appliquée après avoir été définie.

Pour plus d'informations, voir Gestion des règles d'accès au réseau.

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

Exemple

L'exemple ci-après illustre l'affection de la valeur "public-and-private" à la règle de réseau autorisé.

# 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

Paramètres obligatoires

  • -d, --disable

  • -e, --enable

    Désactivez ou activez la règle d'accès au réseau. Une option est requise.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -t, --network-type

    Spécifiez le type d'accès réseau autorisé. Les options sont public-and-private ou private-only.

kp instance policy-update dual-auth-delete

Permet d'utiliser la règle dual-auth-delete pour supprimer des clés de chiffrement en toute sécurité. Lorsque vous supprimez une clé, vous détruisez son contenu et les données qui lui sont associées. Les données chiffrées par la clé deviennent inaccessibles.

Supprimer une clé à laquelle s'applique une règle d'autorisation double requiert une autorisation de deux utilisateurs.

Pour plus d'informations, voir Utilisation de politiques de double autorisation pour la suppression des clés.

Remarques

La suppression avec une règle d'autorisation double pour une instance est différente de la suppression avec une autorisation double pour des clés.

Une fois que vous avez activé la règle dual-auth-delete pour une clé, vous ne pouvez pas la désactiver ou la retirer. Vous devez attendre 7 jours pour que la règle arrive à expiration.

La suppression avec une règle d'autorisation double pour une instance peut être activée ou désactivée à tout moment.

Si une règle dual-auth-delete est associée à une clé, la modification de la règle d'instance n'entraîne pas la modification des règles de clé existantes.

Lorsque vous modifiez la règle d'instance, de nouvelles clés sont appliquées avec la règle d'instance.

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

Exemples

Vous trouverez ci-après des exemples de la commande kp instance policy-update dual-auth-delete.

Exemple 1

L'exemple ci-après illustre l'activation de la règle de suppression avec autorisation double.

# 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
    }
  }
]

Exemple 2

L'exemple ci-après illustre l'activation de la règle de suppression avec autorisation double et la création d'une nouvelle clé pour montrer comment une nouvelle clé hérite de la règle d'instance.

La désactivation de la règle d'autorisation double pour une instance n'entraîne pas la modification de la règle pour des clés existantes. La règle d'instance s'applique aux nouvelles clés créées après la mise à jour de la règle.

# 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]'

Paramètres obligatoires

  • -d, --disable

  • -e, --enable

    Désactivez ou activez la règle d'autorisation double. Une option est requise.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Alias de clé kp-create

Crée un alias pour une clé et affiche le résultat au format JSON. Les alias peuvent être utilisés comme référence dans les méthodes qui acceptent une clé ID. Chaque alias est unique uniquement au sein de l'instance concernée et n'est pas réservé à l'échelle du service Key Protect. Chaque clé peut avoir jusqu'à cinq alias. Il n'y a pas de limite au nombre d'alias par instance. La longueur de l'alias peut être comprise entre 2 et 90 caractères inclus.

Un alias doit être alphanumérique et ne peut pas contenir d'espaces ou de caractères spéciaux autres que'-'ou'_'. De plus, l'alias ne peut pas être un UUID de version 4 et ne doit pas être un nom réservé 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]

Exemples

Voici un exemple de kp key alias-create.

Exemple

Créez un alias de clé.

# 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

Paramètres obligatoires

  • KEY_ID

    ID de la clé que vous souhaitez modifier. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

  • KEY_ALIAS

    L'alias, ou l'identificateur de remplacement, de la clé que vous souhaitez modifier. L'identificateur doit être: alphanumérique, aucun espace ou caractère spécial autre que '-' ou '_', et ne peut pas être un UUID de version 4.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

kp key cancel-delete

Une clé à laquelle une règle dual-auth-delete est associée nécessite l'autorisation de deux administrateurs pour pouvoir être supprimée.

La commande ci-après (kp key cancel-delete) permet d'annuler, ou de retirer, une autorisation préalable.

La commande kp key schedule-delete est l'autorisation nécessaire pour supprimer la clé.

Suivez le processus ci-après pour supprimer une clé à laquelle une règle dual-auth-delete est associée.

  1. Créez une clé et activez la règle dual-auth-delete.

  2. L'utilisateur 1 planifie (autorise) la suppression d'une clé avec le commande kp key schedule-delete

  3. L'utilisateur 2 planifie (autorise) la suppression de la clé.

  4. La clé est supprimée après l'exécution de la seconde commande schedule-delete, prise en charge dans l'interface utilisateur, l'API et l'interface de ligne de commande.

  5. Si une seconde autorisation n'est pas émise dans un délai de 7 jours, la clé reprend son statut par défaut.

Il existe deux manières d'activer la règle dual-auth-delete :

  • Définissez la règle pour une seule clé à l'aide de la commande kp key policy-update dual-auth-delete.
  • Définissez la règle pour l'instance à l'aide de kp instance policy-update dual-auth-delete; toutes les clés créées après l'activation de la règle d'instance héritent du paramètre de règle d'instance
ibmcloud kp key cancel-delete KEY_ID_OR_ALIAS
    -i, --instance-id INSTANCE_ID

Exemple

L'exemple ci-après illustre l'annulation d'une suppression de clé préalablement planifiée.

# 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

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez supprimer. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

kp key create

Permet de créer une clé racine dans l'instance Key Protect que vous spécifiez ou importez votre propre clé.

Les clés racine doivent être de 16, 24 ou 32 octets, correspondant à 128, 192 ou 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]

Exemples

Vous trouverez ci-après des exemples de la commande kp key create.

Exemple 1

Créez une clé racine.

# 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

Exemple 2

Créez une clé racine et affichez la sortie 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"
}

Exemple 3

Créez une clé racine à partir d'une valeur codée 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

Exemple 4

Créez une clé racine à l'aide d'un jeton d'importation.

# 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

Exemple 5

Créez une clé standard.

# 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

Exemple 6

Créez une clé standard, qui est utilisée en tant que coffre pour les données d'identification.

Toute chaîne codée en base64 peut être importée en tant que clé standard. Cet exemple montre comment stocker les données d'identification, et pas seulement les clés de chiffrement, dans Key Protect.

La taille des clés standard peut atteindre 7 500 octets avant le codage de base 64.

# 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"
}

Exemple 7

Créez une clé racine avec un alias, puis utilisez cet alias pour identifier la clé afin d'afficher les détails de la clé.

# 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
    }
}

Exemple 8

Ajoutez une description à une clé. Par exemple, une courte phrase utilisée pour décrire la finalité de la clé.

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

Paramètres obligatoires

  • KEY_NAME

    Un identificateur unique, lisible par l'utilisateur, à affecter à votre clé.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -k, --key-material

    Si vous avez généré une clé, il s'agit du matériel de clé codé en base64 que vous stockez et gérez dans le service.

    Les clés racine doivent être de 16, 24 ou 32 octets, correspondant à 128, 192 ou 256 bits. La clé doit être codée en base64.

    La taille des clés standard peut atteindre 7 500 octets. La clé doit être codée en base64.

    Si vous créez une clé à l'aide d'un jeton d'importation, il s'agit de la clé chiffrée générée par le processus kp import-token key-encrypt.

    Pour générer une nouvelle clé, omettez le paramètre -k, --key-material.

  • -n, --encrypted-nonce

    Utilisé avec des jetons d'importation. Valeur nonce chiffrée qui vérifie votre demande d'importation d'une clé dans Key Protect. Cette valeur doit être chiffrée à l'aide du matériel de clé que vous importez dans le service. Voir ibmcloud kp import-token --help.

    Pour extraire un nonce, utilisez ibmcloud kp import-token show. Chiffrez ensuite la valeur en exécutant ibmcloud kp import-token nonce-encrypt.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • -s, --standard-key

    Définissez ce paramètre uniquement si vous voulez créer une clé standard. Pour créer une clé racine, omettez le paramètre --standard-key.

  • -v, --iv

    Utilisé avec des jetons d'importation. Vecteur d'initialisation (IV) généré lorsque vous chiffrez une valeur nonce. La valeur IV est requise pour déchiffrer la valeur nonce chiffrée que vous fournissez lorsque vous envoyez une demande d'importation de clé au service.

    Pour générer une valeur IV, chiffrez la valeur nonce en exécutant la commande ibmcloud kp import-token nonce-encrypt.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

  • -D, --description

    Permet d'ajouter une description à la clé. Par exemple, une courte phrase utilisée pour décrire la finalité de la clé.

kp key create-key-with-policy-remplace

Créez une clé avec des règles uniquement pour la clé nommée qui remplacera les règles d'instance applicables.

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]

Exemple

Créez une clé racine qui active une règle de rotation avec un intervalle de 2 mois (chaque "mois" est évalué à 30 jours, ce qui donne un intervalle de rotation de 60 jours).

% 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

Paramètres obligatoires

  • KEY_NAME

    Un identificateur unique, lisible par l'utilisateur, à affecter à votre clé.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -a, --aliases

    Noms d'alias alphanumériques, lisibles par l'utilisateur, de 2 à 90 caractères affectés à votre clé. L'alias ne peut pas contenir d'espaces ou de caractères spéciaux autres que des traits de soulignement et des tirets. Un maximum de 5 alias sont autorisés par clé.

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

Active la règle de suppression d'authentification double pour une clé.

  • -k, --key-material

    Si vous avez généré une clé, il s'agit du matériel de clé codé en base64 que vous stockez et gérez dans le service.

    Les clés racine doivent être de 16, 24 ou 32 octets, correspondant à 128, 192 ou 256 bits. La clé doit être codée en base64.

    Les clés standard peuvent avoir une longueur maximale de 7 500 octets. La clé doit être codée en base64.

    Si vous créez une clé à l'aide d'un jeton d'importation, il s'agit de la clé chiffrée générée par le processus kp import-token key-encrypt.

    Pour générer une nouvelle clé, omettez le paramètre -k, --key-material.

  • -n, --encrypted-nonce

    Utilisé avec des jetons d'importation. Valeur nonce chiffrée qui vérifie votre demande d'importation d'une clé dans Key Protect. Cette valeur doit être chiffrée à l'aide du matériel de clé que vous importez dans le service. Voir ibmcloud kp import-token --help.

    Pour extraire un nonce, utilisez ibmcloud kp import-token show. Chiffrez ensuite la valeur en exécutant ibmcloud kp import-token nonce-encrypt.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • -m, --rotation-interval-month

Spécifiez l'intervalle de rotation (en mois) pour une clé. La valeur par défaut est -1.

  • -s, --standard-key

    Définissez ce paramètre uniquement si vous voulez créer une clé standard. Pour créer une clé racine, omettez le paramètre --standard-key.

  • -v, --iv

    Utilisé avec des jetons d'importation. Vecteur d'initialisation (IV) généré lorsque vous chiffrez une valeur nonce. La valeur IV est requise pour déchiffrer la valeur nonce chiffrée que vous fournissez lorsque vous envoyez une demande d'importation de clé au service.

    Pour générer une valeur IV, chiffrez la valeur nonce en exécutant la commande ibmcloud kp import-token nonce-encrypt.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key delete

Supprimez une clé stockée dans votre service 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]

Exemples

Vous trouverez ci-après des exemples de la commande kp key delete.

Exemple 1

Supprimez une clé racine.

# 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

Exemple 2

Supprimez une clé racine et affichez la sortie 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"
}

Exemple 3

Supprimez une clé racine enregistrée avec une autre ressource de cloud.

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

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez supprimer. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -f, --force

    Supprimez une clé, avec l'option --force, qui est utilisée pour supprimer une clé comportant des enregistrements. Les enregistrements sont des associations entre des clés racine et d'autres ressources de cloud, telles que des compartiments COS (Cloud Object Storage) ou des déploiements de base de données cloud.

    Pour plus d'informations, voir kp registrations

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key disable

La commande kp key disable permet de désactiver une clé racine et de révoquer temporairement l'accès aux données associées à la clé dans le cloud.

En tant qu'administrateur, vous pouvez être amené à désactiver une clé racine de manière temporaire si vous suspectez un risque lié à la sécurité, une compromission ou une violation de vos données.

La désactivation d'une clé racine interrompt les opérations de chiffrement et de déchiffrement de cette clé. Après avoir vérifié qu'un risque de sécurité n'est plus actif, vous pouvez restaurer l'accès à vos données en activant la clé racine désactivée.

Lorsque vous désactivez une clé racine précédemment activée, la clé passe de l'état Actif (valeur 1) vers l'état Suspendu (valeur 2).

Pour désactiver une clé racine, vous devez être affecté à un rôle d'accès au service Gestionnaire pour l'instance ou la clé. Pour savoir comment les rôles IAM sont mappés les actions de maintenance Key Protect, voir Rôles d'accès au service.

Si vous utilisez un service cloud intégré qui prend en charge la révocation de l'accès à une clé racine désactivée, un maximum de 4 heures peut s'écouler avant que l'accès aux données associées à la clé racine soit révoqué.

Une fois l'accès aux données associées révoqué, un disable event s'affiche dans l'interface utilisateur Web d' IBM Cloud Logs. L'disable event indique que la clé a été révoquée (et est maintenant désactivée) et qu'elle ne peut pas être utilisée pour les opérations de chiffrement et de déchiffrement.

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

Exemples

Vous trouverez ci-après des exemples de la commande kp key disable.

Exemple 1

Créez une clé racine, désactivez-la, vérifiez son état (Interrompu), activez la clé racine et vérifiez son état (Actif).

# 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"
}

Exemple 2

Créez une clé racine, désactivez-la et essayez de l'utiliser pour encapsuler une autre clé.

# 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]'

Exemple 3

Créez une clé racine avec un alias, utilisez cet alias pour identifier la clé à désactiver, vérifiez l'état de la clé (suspendue), puis activez la clé racine et vérifiez l'état de la nouvelle clé (active).

# 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"
}

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez supprimer. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key enable

Lorsque vous activez une clé racine précédemment désactivée, la clé passe de l'état Suspendu (valeur 2) à l'état Actif (valeur 1). Cette action restaure les opérations de chiffrement et de déchiffrement de la clé.

Si vous utilisez un service Cloud intégré qui prend en charge la restauration de l'accès à une clé racine désactivée, le service peut prendre jusqu'à 4 heures avant que l'accès aux données associées à la clé racine ne soit restauré.

Une fois que l'accès aux données associées a été restauré, un enable event s'affiche dans l'interface utilisateur Web d' IBM Cloud Logs. L'enable event indique que la clé a été restaurée (et est maintenant activée) et qu'elle peut être utilisée pour les opérations de chiffrement et de déchiffrement, telles que l'encapsulage, le désencapsulage et le réencapsulage.

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

Exemples

Voici un exemple 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"
}

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez supprimer. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key policies

Permet d'extraire les détails d'une règle de clé, comme l'intervalle de rotation automatique de la clé.

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]

Exemple

L'exemple ci-après illustre l'affichage de la liste des règles pour une clé racine.

Les règles de clé sont les suivantes : suppression avec autorisation double et rotation.

# 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
    }
  }
]

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez interroger. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -d, --dual-auth

    Affichez les règles comportant une règle dual-auth-delete.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • -r, --rotation

    Affichez les règles comportant une règle rotation.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key policy-update dual-auth-delete

Vous pouvez utiliser Key Protect pour supprimer des clés de chiffrement en toute sécurité à l'aide d'un processus d'autorisation double. Lorsque vous supprimez une clé, vous détruisez son contenu et les données qui lui sont associées. Les données chiffrées par la clé deviennent inaccessibles.

Supprimer une clé à laquelle s'applique une règle d'autorisation double requiert une autorisation de deux utilisateurs. Avec l'API Key Protect, vous pouvez fournir la première autorisation en définissant la clé pour la suppression. Ensuite, un autre utilisateur donne une deuxième autorisation via l' interface graphique ou l' API pour supprimer la clé.

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]

Exemple

L'exemple ci-après illustre l'activation de la règle de suppression avec autorisation double.

# 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]'

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez interroger. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

  • -e, --enable

    Une fois activée, la règle dual-auth-delete ne peut plus être désactivée. Vous ne pouvez pas supprimer une clé sans deux autorisations (autorisation double). Le processus doit être effectué dans les 7 jours, sinon, la règle d'autorisation double est automatiquement annulée, ce qui signifie que la clé peut être supprimée par quiconque autorisé à le faire (les deux autorisations ne sont pas requises).

    Si vous avez activé la règle d'autorisation double par accident et que vous voulez supprimer la clé, vous pouvez disable la clé (à l'aide de la commande kp key disable) et attendre 7 jours que la clé d'autorisation double arrive à expiration. A ce moment-là, vous pourrez supprimer la clé.

    Vous ne pouvez pas supprimer l'instance Key Protect tant que ces clés sont actives. Une clé à laquelle s'applique une règle d'autorisation double est une clé active.

Paramètres facultatifs

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key policy-update rotation

Lorsque vous définissez une règle de rotation automatique pour une clé racine, vous écourtez la durée de vie de la clé à des intervalles réguliers, et vous limitez le volume d'information qui est protégé par cette clé. Les utilisateurs peuvent également activer ou désactiver la règle de rotation des clés sur une clé.

Vous pouvez uniquement créer une règle de rotation pour les clés racine qui sont générées dans Key Protect. Si vous avez initialement importé la clé racine, vous devez fournir un nouveau matériel de clé codé en base64 pour effectuer une rotation de la clé. Pour en savoir plus, voir Rotation des clés racine à la demande.

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

Exemples

Les règles de rotation peuvent être appliquées au moment de la création de la clé ou après la création d'une clé. Dans le premier exemple, nous créons simplement la clé sans politique de rotation:

# 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
        }
}
---------------------------------------------------------------------------------------------------------------------------------------------------

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez interroger. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

Paramètres facultatifs

  • -m, --monthly-interval

    Définissez l'intervalle de rotation des clés en mois. L'intervalle de rotation doit être compris entre 1 et 12 mois.

  • -e, --enable ou -d, --disable

    Par défaut, la règle de rotation des clés est activée. Si l'utilisateur souhaite désactiver ou activer la politique, il peut utiliser respectivement -d(--disable) ou -e(--enable).

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key restore

Key Protect peut restaurer une clé racine précédemment supprimée et ainsi restaurer l'accès aux données qui lui sont associées dans le cloud.

En tant qu'administrateur, vous devrez peut-être restaurer une clé racine qui a été importée dans Key Protect pour accéder aux données précédemment protégées par la clé.

Lorsque vous restaurez une clé, vous faites passer la clé de l'état Détruit (valeur 5) à l'état Actif (valeur 1) et vous restaurez l'accès à toutes les données précédemment chiffrées à l'aide de la clé.

Vous pouvez restaurer une clé supprimée dans un délai de 30 jours après sa suppression. Cette fonction n'est disponible que pour les clés racine qui ont été créées avec un key material.

Vous pouvez uniquement restaurer des clés racine qui ont été créées avec un key material, à l'aide de kp key create avec l'option -k, --key-material. Vous ne pouvez pas restaurer une clé racine si l'--key-material option n'a pas été spécifiée.

Si vous souhaitez restaurer une clé racine supprimée, vous devez sauvegarder le key material qui a été utilisé pour créer la clé racine. Vous ne pouvez pas restaurer une clé supprimée sans fournir l'original key material.

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]

Exemples

Vous trouverez ci-après des exemples de la commande kp key restore.

Exemple 1

L'exemple ci-après illustre la création d'une clé racine à l'aide d'un matériel de clé, puis la suppression et la restauration de cette clé.

# 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

Exemple 2

Le flux de travaux ci-après illustre la création d'une clé racine à l'aide d'un jeton d'importation, puis la suppression et la restauration de cette clé.

Il s'agit d'un processus en deux étapes.

  1. Créez une clé racine à l'aide d'un jeton d'importation, puis supprimez la clé.

  2. Créez un jeton d'importation requis pour restaurer la clé, puis restaurez la clé.

La création d'une clé racine à l'aide d'un jeton d'importation est soumise à une limite de temps (la -e, --expiration ). Lorsque vous restaurez une clé, vous avez besoin d'un jeton d'importation. Par conséquent, vous devez passer par un processus de jeton d'importation pour restaurer une clé.

Etape 1 - Créer une clé racine à l'aide d'un jeton d'importation, puis supprimer la clé

# 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

Etape 2 - Créer un jeton d'importation, requis pour restaurer la clé, puis restaurer la clé

# 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

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez restaurer.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -k, --key-material

    Deprecated Le matériel de clé d'une clé codée en base64 précédemment importée.

    Si vous avez créé la clé racine à l'aide d'un import token, la valeur de l'option -k, --key-material correspond au matériel de clé chiffré. Voir l'exemple 2, qui utilise un jeton d'importation pour créer la clé racine et un jeton d'importation pour restaurer la clé racine.

  • -n, --encrypted-nonce

    Deprecated Vérifiez une demande d'importation de clé en fournissant un nonce chiffré.

    Pour plus d'informations, voir kp import-token nonce-encrypt.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • -v, --iv

    Deprecated Indiquez le vecteur d'initialisation (IV) qui est généré après le chiffrement d'un nonce.

    Pour plus d'informations, voir kp import-token nonce-encrypt.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key-rings

Répertoriez les fichiers de clés associés à l'instance kp.

Exemple

L'exemple montre l'utilisation du plug-in de l'interface de ligne de commande pour répertorier les fichiers de clés appropriés à l'instance donnée.

ibmcloud kp key-rings -i <INSTANCE_ID>

Paramètres obligatoires

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key-ring create

Créez un fichier de clés dans une instance kp.

Exemple

L'exemple montre l'utilisation du plug-in de l'interface de ligne de commande pour créer un fichier de clés dans l'instance donnée.

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

Paramètres obligatoires

  • KEY_RING_ID

    Référence alphanumérique supérieure ou égale à 2 caractères et inférieure ou égale à 100 pour le fichier de clés.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

kp key-ring delete

Supprimez un fichier de clés dans une instance kp.

Exemple

L'exemple montre l'utilisation du plug-in de l'interface de ligne de commande pour supprimer un fichier de clés dans l'instance donnée. Notez que la force (-f) a été ajoutée.

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

Paramètres obligatoires

  • KEY_RING_ID

    Référence alphanumérique supérieure ou égale à 2 caractères et inférieure ou égale à 100 pour le fichier de clés.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -f, --force

    Force la suppression d'un fichier de clés qui contient toujours des clés à l'état Détruit . Ne supprime pas les fichiers de clés dont les clés sont dans un autre état. Si un fichier de clés contient des clés à l'état Détruit et que cet indicateur n'est pas ajouté, la suppression du fichier de clés échoue.

kp key rotate

Permet de procéder à la rotation d'une clé racine stockée dans votre service Key Protect.

Lorsque vous effectuez une rotation de votre clé racine, vous remplacez la clé par un nouveau matériel de clé.

Si Key Protect a créé la clé (la clé a été n'a pas été créée avec le paramètre -k), alors Key Protect crée une nouvelle clé. Vous ne pouvez pas spécifier « kp key rotate » avec le -k paramètre.

Si vous avez créé une clé et fourni les données de clé ( kp key create key-name -k $KEY_MATERIAL), vous devez alors fournir de nouvelles données de clé lorsque vous effectuez une rotation de la clé (kp key rotate $KEY_ID_OR_ALIAS -k $NEW_KEY_MATERIAL)

Il n'est pas possible de faire pivoter une clé « standard », c'est-à-dire une clé créée à l'aide de la commande 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]

Exemples

Vous trouverez ci-après des exemples de la commande kp key rotate.

Exemple 1

Procédez à la rotation d'une clé racine.

# 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

Exemple 2

Procédez à la rotation d'une clé codée en base64 ou d'une clé de jeton importée.

Créez d'abord une clé racine à partir d'une valeur en base64 ou d'un jeton importé.

# 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

Exemple 3

L'exemple ci-après illustre les opérations suivantes :

  1. Créer une clé racine

  2. Créer une clé de chiffrement de données (DEK), c'est le texte brut (plaintext)

  3. Encapsuler la clé DEK avec la clé racine, ce qui crée un texte chiffré (ciphertext)

  4. Effectuer la rotation d'une clé racine

  5. Désencapsuler le nouveau texte chiffré pour révéler la clé DEK d'origine (texte brut) et un nouveau texte chiffré (le nouveau texte chiffré est le texte brut encapsulé avec la nouvelle clé racine ayant subi une rotation)

  6. Désencapsuler le nouveau texte chiffré pour révéler la clé DEK d'origine (texte brut)

# 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": ""
}

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé racine que vous souhaitez renouveler.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -k, --key-material

    Pour procéder à la rotation d'une clé initialement générée sans un paramètre --key-material à l'aide de la commande kp key create my-key, omettez le paramètre --key-material.

    Si une clé a été créée avec le paramètre --key-material, spécifiez le nouveau matériel de clé codé en base64 que vous utilisez pour effectuer la rotation d'une clé racine existante.

    Pour procéder à la rotation d'une clé initialement importée dans le service, fournissez une nouvelle clé de 32 octets (256 bits).

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key schedule-delete

Une clé à laquelle une règle dual-auth-delete est associée nécessite l'autorisation de deux administrateurs pour pouvoir être supprimée.

Suivez le processus ci-après pour supprimer une clé à laquelle une règle dual-auth-delete est associée.

  1. Créez une clé et activez la règle dual-auth-delete.

  2. L'utilisateur 1 planifie (autorise) la suppression d'une clé avec le commande kp key schedule-delete

  3. L'utilisateur 2 planifie (autorise) la suppression de la clé.

  4. La clé est supprimée après l'exécution de la seconde commande schedule-delete, prise en charge dans l'interface utilisateur, l'API et l'interface de ligne de commande.

  5. Si une seconde autorisation n'est pas émise dans un délai de 7 jours, la clé reprend son statut par défaut.

Il existe deux manières d'activer la règle dual-auth-delete :

  • Définissez la règle pour une seule clé à l'aide de la commande kp key policy-update dual-auth-delete.
  • Définissez la règle pour l'instance à l'aide de kp instance policy-update dual-auth-delete; toutes les clés créées après l'activation de la règle d'instance héritent du paramètre de règle d'instance

La commande kp key cancel-delete permet d'annuler, ou de retirer, une autorisation préalable.

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

Exemple

Voici un exemple de planification de la suppression d'une clé.

# 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
    }
  }
]

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez supprimer. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.

Paramètres facultatifs

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key show

Permet d'extraire les détails d'une clé, comme les métadonnées de clé et le matériel de clé.

Si la clé a été conçue en tant que clé racine, le système ne peut pas renvoyer le matériel de clé pour cette clé.

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

Exemples

Vous trouverez ci-après des exemples de la commande kp key show.

Exemple 1

Créez une clé racine et affichez les détails.

# 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

Exemple 2

Il s'agit d'une explication des clés JSON et des valeurs de kp key show . Dans cet exemple, la clé a fait l'objet d'une rotation pour faire en sorte que toutes les paires clé/valeur JSON soient affichées.

$ 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"
}
Clé Description
identificateur ID de clé, unique et utilisé chaque fois que l'interface de ligne de commande spécifie un paramètre KEY_ID
nom Nom fourni au moment de la création de la clé
type Utilisé par l'API pour définir le type de contenu dans un appel REST
algorithmType Les types d'algorithme sont AES (Advanced Encryption Standard) ou CBC (Cipher Block Chaining)
createdBy ID utilisateur ayant servi pour la création de la clé
creationDate Date et heure de création de la clé
lastUpdateDate Date et heure de la dernière mise à jour de la clé
lastRotateDate Date et heure de la dernière rotation de la clé ; cette entrée n'existe que si la clé a fait l'objet d'une rotation
keyVersion / id Dernière version de la clé racine
keyVersion / creationDate Date et heure de la dernière mise à jour du matériel de clé
extractable Valeur booléenne qui détermine si le matériel de clé peut quitter le service. Si ce paramètre a pour valeur false, Key Protect désigne la clé comme clé racine non extractible utilisée pour les actions d'encapsulage et de désencapsulage. Si ce paramètre a pour valeur true, Key Protect désigne la clé comme clé standard que vous pouvez stocker dans vos applications et vos services. Une fois la valeur false définie, elle ne peut pas être remplacée par true.
état 1 - la clé est active ; 2 - la clé est interrompue ; voir Etats de clé
crn Nom de ressource de cloud

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    Identificateur unique universel ou alias v4 de la clé racine que vous souhaitez afficher.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key sync

Cette sous-commande synchronise les ressources associées pour une clé.

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

Exemples

Voici un exemple de kp key sync.

Exemple

Synchronisez une clé et affichez les résultats.

# 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

Paramètres obligatoires

  • KEY_ID

    ID de la clé à synchroniser.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp key update

Mettez à jour d'une clé avec un fichier de clés existant ou un nouveau fichier de clés dans votre instance 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]

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    Identificateur unique universel ou alias v4 de la clé racine que vous souhaitez afficher.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

  • -r, --new-key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

Paramètres facultatifs

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

Exemples

Notez que le fichier de clés doit déjà être créé, soit dans le cadre de la création d'une clé, soit par lui-même.

Exemple de commande kp key update.

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

L'exécution de la commande a un résultat typique :

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

kp key unwrap

Désencapsulez une clé de chiffrement de données à l'aide d'une clé racine stockée dans votre instance 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]

Exemples

Vous trouverez ci-après des exemples de la commande kp key unwrap.

Exemple 1

Désencapsulez un texte chiffré pour révéler la clé de chiffrement de données sous forme de texte brut.

# 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=

Exemple 2

Désencapsulez un texte chiffré et fournissez des données d'authentification supplémentaires (AAD).

Un cas d'utilisation pour fournir des données d'authentification supplémentaires (AAD) consiste à protéger par mot de passe le texte chiffré afin de le rendre plus difficile à désencapsuler.

Le texte chiffré et les données d'authentification supplémentaires sont requis pour désencapsuler le texte chiffré et révéler la clé de chiffrement de données sous forme de texte brut.

# 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

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID « v4 » ou l'alias de la clé racine que vous avez utilisé pour la demande d'encapsulation initiale.

  • CIPHERTEXT_FROM_WRAP

    Clé de chiffrement de données renvoyée au cours de l'opération d'encapsulage initiale.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -a, --aad

    Données d'authentification supplémentaires (AAD) utilisées pour sécuriser davantage une clé. Vous pouvez entrer jusqu'à 255 chaînes séparées par une virgule. Si vous avez indiqué des données d'authentification supplémentaires lors de l'encapsulage, vous devez spécifier les mêmes données d'authentification supplémentaires, dans le même ordre, lors du désencapsulage.

    Le service Key Protect ne sauvegarde pas de données d'authentification supplémentaires. Si vous indiquez des données d'authentification supplémentaires, sauvegardez ces données dans un emplacement sécurisé afin de pouvoir y accéder et fournir les mêmes données lors des demandes de désencapsulage ultérieures.

-o, --output

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

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

versions de clé kp

Lorsque vous effectuez la rotation d'une clé racine, Key Protect crée une nouvelle version de la clé. Répertoriez toutes les versions de clé disponibles pour un KeyID ou un alias de clé dans votre instance 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]

Exemples

Vous trouverez ci-après des exemples de la commande kp key versions.

Exemple 1

L'un des cas d'utilisation consiste à auditer l'historique de rotation d'une clé racine en tant qu'administrateur de sécurité, en affichant l'historique de sa version de clé.

# 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

Exemple 2

Le même scénario d'utilisation pour l'audit d'une clé racine en tant qu'administrateur de sécurité et l'affichage de l'historique, avec son nombre total en sortie 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"
                }
        ]
}

Exemple 3

Un autre cas d'utilisation répertorie les 12 premières versions de clé pour un ensemble de clés lors d'une rotation mensuelle au cours de l'année écoulée.

# 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]
        ]
}

Exemple 4

Un autre cas d'utilisation répertorie les 12 secondes versions de clé pour un ensemble de clés lors d'une rotation mensuelle au cours des deux dernières années.

ibmcloud kp versions des clés $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]
        ]
}

Exemple 5

Indicateur facultatif permettant de renvoyer le nombre de versions d'une clé qui n'est pas active actuellement. Auparavant, la commande aurait échoué, comme dans l'exemple suivant:

# 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

Avec la version 0.8.0 et les versions ultérieures de l'interface de ligne de commande, la commande aboutit lors de l'ajout de l'indicateur -a, comme dans l'exemple suivant:

# 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

Notez que si l'indicateur -a n'est pas indiqué, KEY_ACTION_INVALID_STATE_ERR est toujours renvoyé pour une clé dans un état autre que actif.

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID « v4 » ou l'alias de la clé racine que vous avez utilisé pour la demande d'encapsulation initiale.

  • -i, --instance-ID

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

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

    Limite le nombre de versions de clé à extraire par la valeur entière fournie (valeur par défaut: 200).

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • -s --starting-offset

    Extrait les versions de clé du décalage spécifié par la valeur entière fournie.

  • -t --total-count

    Utilisé pour reteriger le nombre total de versions de clé pour une clé par la valeur entière fournie.

  • -a --all-key-states

    Indicateur facultatif permettant de renvoyer le nombre de versions pour tous les états de clé, y compris les clés qui ne sont pas actives.

kp key wrap

Encapsulez une clé de chiffrement de données (DEK) à l'aide d'une clé racine stockée dans instance Key Protect. Une clé de chiffrement de données est généralement utilisée pour chiffrer d'autres éléments d'informations.

Lorsque vous encapsulez une clé de données de chiffrement avec une clé racine, Key Protect combine la force de plusieurs algorithmes pour protéger la confidentialité et l'intégrité de vos données chiffrées.

Vous ne pouvez pas encapsuler une clé de type « standard », c'est-à-dire une clé créée à l'aide de la fonction -s paramètre (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]

Meilleures pratiques

L'encapsulage d'une clé de chiffrement de données crée un texte chiffré (ciphertext). Le texte chiffré est constitué d'informations chiffrées qui, lorsqu'elles sont désencapsulées, révèlent la clé de chiffrement de données d'origine.

Le service Key Protect ne stocke pas votre clé de chiffrement de données. Sauvegardez, ou conservez sur stockage, le texte chiffré de manière à pouvoir extraire la clé de chiffrement de données à l'aide de la commande kp key unwrap.

IL est recommandé de ne jamais sauvegarder, ou conserver sur stockage, la clé de chiffrement de données sous forme de texte brut. Dans votre application, chargez le texte chiffré à partir du stockage, appelez Key Protect pour obtenir la clé de chiffrement des données en clair, et utilisez-la pour chiffrer, ou encapsuler, d'autres éléments d'information.

Ne sauvegardez pas la clé de chiffrement de données sur un stockage permanent. L'exposition de la clé de chiffrement de données pourrait permettre à d'autres utilisateurs de déchiffrer vos données.

Un nouveau texte chiffré est créé chaque fois que la clé racine est encapsulée.

Exemples

Vous trouverez ci-après des exemples de la commande kp key wrap.

Exemple 1

Key Protect crée une nouvelle clé de chiffrement de données codée en base64 et l'encapsule avec la clé racine.

# 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=

Exemple 2

Générez une clé de chiffrement de données codée en base64 et encapsulez-la avec la clé racine.

# 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=

Exemple 3

Encapsulez une clé racine et fournissez des données d'authentification supplémentaires (AAD).

Un cas d'utilisation pour fournir des données d'authentification supplémentaires (AAD) consiste à protéger par mot de passe le texte chiffré et à lui ajouter une phrase de vérification afin de le rendre plus difficile à désencapsuler.

Le texte chiffré et les données d'authentification supplémentaires sont requis pour désencapsuler le texte chiffré et révéler la clé de chiffrement de données sous forme de texte brut.

# 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

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé racine que vous souhaitez utiliser pour l'encapsulation. Vous ne pouvez pas encapsuler une clé standard.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -a, --aad

    Données d'authentification supplémentaires (AAD) utilisées pour sécuriser davantage une clé. Les données d'authentification supplémentaires représentent un tableau de chaînes qui vérifie l'intégrité du contenu de la clé. Chaque chaîne peut inclure jusqu'à 255 caractères.

    Si vous indiquez des données d'authentification supplémentaires lors d'une demande d'encapsulage, vous devez indiquer les mêmes données d'authentification supplémentaires, dans le même ordre, lors de la demande de désencapsulage suivante.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

  • -p, --plaintext

    L' plaintext spécifie une clé de chiffrement des données (DEK) de type « base64-encoded » qui est encapsulée par la clé racine (identifiée par les paramètres KEY_ID ou ALIAS ).

    Clé de chiffrement de données codée en base64 que vous souhaitez gérer et protéger. Pour importer une clé existante, indiquez une clé de 32 octets (256 bits).

    Pour générer et encapsuler une nouvelle clé DEK, omettez le paramètre --plaintext.

  • --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

kp keys

Permet de répertorier les clés qui sont disponibles dans votre instance Key Protect.

Les clés sont répertoriées par ordre d'ID (key id) ; voir l'exemple 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]

Exemples

Vous trouverez ci-après des exemples de la commande kp keys.

Exemple 1

Répertorier les clés. Notez que les 200 premières clés de votre instance sont répertoriées par défaut. Pour afficher un nombre de clés supérieur ou inférieur, indiquez une valeur pour le paramètre --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

Exemple 2

Répertorier les clés et afficher le nom de la ressource cloud (CRN) à l'aide de la commande --crn paramètre.

# 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

Exemple 3

Énumérer les clés au format JSON.

Le paramètre --output json implique le paramètre --crn (nom de la ressource de cloud) paramètre.

# 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"
  }
]

Exemple 4

Répertorier les clés et les parcourir une à une, en affichant les détails.

# 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

Exemple 5

Créez 20 clés et affichez-les par groupes de 5 à l'aide de l'option 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)

Exemple 6

Répertorie les clés en fonction des états de clé (Active, Suspended) dans l'instance 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

Exemple 7

Répertorie les clés en fonction du type de clé (racine) dans l'instance 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

Exemple 8

Répertorie les clés de l'instance Key Protect dont le nom de clé ou l'alias correspond exactement aux caractères de la chaîne "TEST" sans guillemets.

# 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

Exemple 9

Répertorie les clés de l'instance Key Protect et trie les clés en fonction de leur ID et de la date de création de la clé en commençant par le plus récent (le trait d'union,'-', indique un tri par ordre décroissant).

# 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

Paramètres obligatoires

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -b, --sort-by

    Triez les clés en fonction des paramètres. La propriété par défaut pour le tri des résultats est "id". '-'avant le paramètre indique le tri par ordre décroissant. Les paramètres de tri pris en charge pour le moment sont les suivants:

    • identificateur
    • état
    • extractable
    • importé
    • creationDate
    • lastUpdateDate
    • lastRotateDate
    • deletionDate
    • expirationDate
  • -c, --crn

    Incluez le nom de ressource de cloud dans la sortie.

  • -f, --key-filter

    Filtrez les clés en fonction des paramètres. Les paramètres de filtrage de clé pris en charge sont les suivants:

    • creationDate
    • deletionDate
    • expirationDate
    • extractable
    • lastUpdateDate
    • lastRotateDate
    • état

    Les opérateurs de support pour les dates sont les suivants:

    • GT (supérieur à)
    • gte (supérieur ou égal à)
    • LT (inférieur à)
    • lte (inférieur ou égal à)

    Les résultats seront une correspondance exacte si l'un de ces opérateurs est manquant.

  • --key-states

    L'état des clés à récupérer. Liste des chaînes contenant des états valides- Active, Suspended, Deactivated, Destroyed. (par défaut: active,suspended,deactivated).

  • -l, --key-search

    Liste des clés basées sur une chaîne de recherche avec des qualificatifs ajoutés en préfixe (par exemple, exact, not, alias, name). Pour plus de détails, voir la documentation d'API.

  • -n, --number-of-keys

    Limite le nombre de clés à récupérer. La valeur par défaut est 200 et la valeur maximale est 5000.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

    La définition de la sortie vers JSON (--output json) inclut le nom de ressource de cloud dans la sortie.

  • -r, --key-ring

    Nom unique et lisible du fichier de clés. Obligatoire si l'utilisateur ne dispose pas des droits sur le fichier de clés par défaut.

  • -s, --starting-offset

    Extrait les clés à partir du décalage spécifié. Le décalage est basé sur zéro, autrement dit, le décalage 0 (zéro) correspond à la première clé.

  • -t, --key-type

    Type de clés à extraire. Si cette option est définie sur « standard-key », les clés standard seront récupérées. Si l'option est définie sur « root-key », les clés racines seront récupérées.

kp region-set

Permet de cibler un autre noeud final régional Key Protect.

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

Exemples

Vous trouverez ci-après des exemples de la commande kp region-set.

Exemple 1

Si le paramètre REGION n'est pas spécifié, vous êtes invité à sélectionner une région.

# 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

Exemple 2

Définissez la région de manière explicite.

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

OK

REGION doit être un noeud final régional valide.

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

FAILED

Exemple 3

Annulez (retirez) le noeud final régional.

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

OK

Paramètres obligatoires

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • REGION

    Spécifiez un nœud final régional. Ce paramètre est facultatif et s'il n'est pas spécifié, vous serez invité à sélectionner un noeud final régional dans une liste.

  • -u, --unset

    Annulez (retirez) le noeud final régional.

kp registrations

Les enregistrements sont des associations entre des clés racine et d'autres ressources de cloud, telles que des compartiments COS (Cloud Object Storage) ou des déploiements de base de données cloud.

Par exemple, dans Key Protect, vous créez une clé racine qui est utilisée par COS pour protéger les données au repos.

La relation entre d'autres ressources cloud et Key Protect est désignée par le terme registration.

Ne supprimez pas une clé racine s'il existe des ressources, telles que des compartiments et des objets COS, qui en dépendent. La suppression de la clé racine signifie que vous ne pouvez pas récupérer ces ressources. Ceci est connu sous le nom de « crypto-broyage », et aucune reprise de cette action ne peut être effectuée.

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]

Exemples

Vous trouverez ci-après des exemples de la commande kp registrations.

Les exemples de commande registrations ci-après illustrent de nombreux noms de ressource de cloud. Le format des noms de ressource de cloud est le suivant :

crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource

Consultez la section « Noms des ressources cloud » pour obtenir des explications détaillées sur les champs CRN.

Exemple 1

Répertoriez tous les enregistrements, pouvant inclure des ressources de cloud telles que les bases de données, le stockage, le calcul, les conteneurs ou la messagerie.

Cet exemple illustre l'enregistrement entre Cloud Object Storage (COS) et 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"
    }
  }
]

Exemple 2

Cet exemple montre le cycle de vie complet de deux ressources cloud (Cloud Object Storage et Key Protect à partir de la création d'instances Key Protect et de la création d'une règle entre elles pour supprimer les instances.

Vous trouverez ci-dessous un récapitulatif des étapes :

Etape Description
1 Interface CLI Créer des instances COS (Cloud Object Storage) et KP (Key Protect)
2 Interface CLI Créer une règle COS pour permettre l'accès à des clés de chiffrement KP
3 Interface CLI Créer une règle racine KP que COS utilise pour chiffrer des données
4 Interface utilisateur de console Créer un compartiment COS et spécifier le chiffrement KP ; cette étape s'effectue dans l'interface utilisateur de console car l'API ou l'interface de ligne de commande n'est pas prise en charge pour le moment
5 Interface CLI Afficher l'enregistrement KP
6 Interface CLI Envoyer par téléchargement et recevoir par téléchargement un objet pour vérifier que COS et KP fonctionnent ensemble
7 Interface CLI Supprimer le compartiment COS et la clé racine KP
8 Interface CLI Supprimer la règle d'autorisation entre COP et KP
9 Interface CLI Supprimer les instances COS et KP

Ces commandes affichent les plans de service COS et Key Protect . La commande ibmcloud resource service-instance-create requiert un service plan name et un location, qui se trouve dans le catalogue.

# show the catalog offerings for cloud object storage (COS) and Key Protect
$ ibmcloud catalog service cloud-object-storage

$ ibmcloud catalog service kms

L'exemple couvre plusieurs étapes et doit être réalisé en consultation avec le récapitulatif fourni.

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

Exemple 3

Cet exemple montre c qui se produit lorsque l'une des situations suivantes se produit entre COS et Key Protect (KP) - COS ne peut pas accéder à la clé racine Key Protect.

  • Supprimer la clé racine KP
  • Retirer la règle d'autorisation CMS/KP

L'exemple ci-après n'affiche pas le résultat de la commande sauf si cela est pertinent.

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

Paramètres obligatoires

  • KEY_ID_OR_ALIAS

    L'UUID ou l'alias « v4 » de la clé que vous souhaitez interroger.

  • -i, --instance-id

    ID instance IBM Cloud qui identifie votre instance Key Protect.

    Vous pouvez définir une variable d'environnement au lieu de spécifier -i à l'aide de la commande suivante : $ export KP_INSTANCE_ID=<INSTANCE_ID>.

Paramètres facultatifs

  • -c, --crn-query

    Spécifiez la requête de nom de ressource de cloud dont les enregistrements doivent être répertoriés.

  • -k, --key-id

    Spécifiez l'ID de clé dont les enregistrements doivent être répertoriés.

  • -o, --output

    Définissez le format de sortie de l'interface de ligne de commande. Par défaut, toutes les commandes impriment au format tableau. Pour modifier le format de sortie à JSON, utilisez --output json.

    La définition de la sortie vers JSON (--output json) inclut le nom de ressource de cloud dans la sortie.

  • -r, --key-ring

    Nom unique et lisible du fichier de clés. Requis pour afficher les enregistrements sur le fichier de clés donné.

Commande ibmcloud kp kmip

Les commandes KMIP permettent aux API d'accéder aux objets et aux adaptateurs KMIP.

Sous-commande Statut v0.10 Description
adaptateur-création Création d'un adaptateur KMIP
adaptateur Extraction d'un adaptateur KMIP
adaptateurs Liste des adaptateurs KMIP dans une instance
adaptateur-suppression Suppression d'un adaptateur KMIP
créer un certificat Créer un certificat client KMIP associé à un adaptateur
cert Extraire un certificat client KMIP
certificats Liste des certificats client KMIP associés à un adaptateur KMIP
cert-suppression Supprimer un certificat client KMIP
objet Extraire un objet KMIP
Objets Liste des objets KMIP dans un adaptateur KMIP
objet-suppression Supprimer un objet KMIP

kp kmip adapter-créer

Utilisez kmip adapter-create pour créer un adaptateur KMIP sous une instance Key Protect. Les adaptateurs permettent de regrouper et de gérer des objets KMIP. Les adaptateurs KMIP sous la même instance Key Protect doivent avoir un nom unique, car les adaptateurs peuvent être extraits par le nom ou l'ID. Pour toutes les commandes d'interface de ligne de commande liées à KMIP, tout argument ou indicateur qui prend un ID adaptateur peut également utiliser un nom d'adaptateur.

En fonction du profil, il peut être nécessaire de fournir des informations différentes pour créer l'adaptateur. Actuellement, un seul profil d'adaptateur KMIP est pris en charge: native_1.0.

Le profil native_1.0 n'a besoin que de l'ID d'une clé racine à fournir dans l'indicateur -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]

Exemple

Vous trouverez ci-après des exemples de la commande kp kmip adapter-create.

Exemple 1

Cet exemple crée un adaptateur KMIP avec le profil 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   

adaptateur kmip kp

Extrayez les détails relatifs à un adaptateur KMIP, y compris la date de création et de mise à jour. Vous pouvez utiliser l'ID adaptateur ou le nom de l'adaptateur.

$ ibmcloud kp kmip adapter ADAPTER_NAME_OR_ID
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Exemple

Vous trouverez ci-après des exemples de la commande kp kmip adapter.

Exemple 1

Notez que certains attributs de l'adaptateur ne sont visibles que dans le format de sortie 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"
}

adaptateurs kmip kp

Répertoriez les adaptateurs KMIP disponibles dans votre instance 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]

Exemple

Vous trouverez ci-après des exemples de la commande kp kmip adapters. Utilisez l'indicateur -k pour afficher uniquement les adaptateurs qui utilisent un ID CRK spécifique.

Exemple 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-supprimer

Supprime un adaptateur KMIP. Cette opération supprimera tous les objets et certificats associés à l'adaptateur.

$ ibmcloud kp kmip adapter-delete ADAPTER_NAME_OR_ID
    -i, --instance-id INSTANCE_ID
    [-f, --force]
    [-y, --skip-confirm]

Exemple

Vous trouverez ci-après des exemples de la commande kp kmip adapter-delete.

Exemple 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

Utilisez kp kmip cert-create pour créer un certificat client KMIP à associer à un adaptateur KMIP spécifique. Le certificat fourni dans l'indicateur -c doit être au format x509 PEM. Le fichier de certificat peut être téléchargé à l'aide du préfixe @ pour spécifier un chemin de fichier ou en fournissant le contenu du fichier de certificat directement à l'indicateur.

Les certificats des clients KMIP sont utilisés pour se connecter et s'authentifier auprès du serveur KMIP par l'intermédiaire de TLS ( mTLS ). Un certificat doit être enregistré pour que des opérations de protocole KMIP puissent être effectuées avec un adaptateur KMIP. L'utilisation du certificat dans les opérations KMIP peut prendre jusqu'à 5 minutes.

Les certificats doivent avoir un nom unique dans le même adaptateur KMIP, et le contenu du certificat doit être unique, même entre plusieurs adaptateurs.

Voir aussi: Spécifications de protocole 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]

Exemple

Vous trouverez ci-après des exemples de la commande kp kmip cert-create.

Exemple 1

Cet exemple montre deux manières de télécharger le même fichier de certificat.

$ 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   

Certificat kp kmip

Extrait un certificat client KMIP spécifique. Un certificat peut être extrait à l'aide de l'ID ou du nom.

$ ibmcloud kp kmip cert CERTIFICATE_ID
    -a, --adapter       ADAPTER_NAME_OR_ID
    -i, --instance-id   INSTANCE_ID
    [-o, --output       OUTPUT]

Exemples

Vous trouverez ci-après des exemples de la commande kp kmip cert.

Exemple 1

Obtention d'un certificat par nom:

$ 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   

Exemple 2

Obtention d'un certificat par UUID au format JSON. Le contenu du certificat au format PEM sera renvoyé dans le corps 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"
}

Certificats kmip kp

Répertorie tous les certificats client KMIP associés à un adaptateur KMIP spécifique.

$ 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]

Exemples

Vous trouverez ci-après des exemples de la commande kp kmip certs.

Exemple 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-delete

Supprimez un certificat client KMIP.

$ ibmcloud kp kmip cert-delete CERTIFICATE_ID
    -a, --adapter         ADAPTER_NAME_OR_ID
    -i, --instance-id     INSTANCE_ID

Exemples

Voici des exemples de kp kmip cert-delete

Exemple 1

$ ibmcloud kp kmip cert-delete -a myadapter mycert
Targeting endpoint: not shown
Deleting KMIP Client Certificate...
OK

objet kp kmip

Les objets KMIP sont créés via des opérations effectuées via un client KMIP à l'aide du protocole KMIP. Ils ne peuvent pas être créés via l'API, mais peuvent être lus et supprimés. Les objets appartiennent à un adaptateur unique.

Les objets n'ont pas de nom et doivent être extraits par ID.

$ ibmcloud kp kmip object OBJECT_ID
    -a, --adapter         ADAPTER_NAME_OR_ID
    -i, --instance-id     INSTANCE_ID
    [-o, --output         OUTPUT]

Exemples

Voici des exemples de kp kmip object

Exemple 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   

Exemple 2

L'obtention d'un objet KMIP en tant que JSON affichera des attributs supplémentaires non visibles dans la vue de table normale.

$ 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"
}

objets kp kmip

Répertoriez les objets KMIP et affichez des informations sur leur type d'objet et leur état d'objet, entre autres métadonnées. Utilisez l'indicateur -f pour filtrer les objets uniquement dans un état spécifique. Par défaut, le filtre d'état est défini sur 1,2,3,4.

Les nombres correspondent aux états d'objet comme suit:

  • Pré-actif = 1
  • Actif = 2
  • Désactivé = 3
  • Compromis = 4
  • Détruit = 5
  • Détruit compromis = 6

Voir KMIP State Enumeration

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]

Exemples

Vous trouverez ci-après des exemples de la commande kp kmip objects.

Exemple 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

Exemple 2

Utilisation de l'indicateur -f pour filtrer les objets d'un état spécifique. Utilisez des virgules pour spécifier plusieurs états.

$ 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 suppression d'objet

Supprimer un objet KMIP. Seuls les objets dont l'état n'est pas Actif ou Détruit peuvent être supprimés.

$ ibmcloud kp kmip object-delete OBJECT_ID
    -a, --adapter ADAPTER_NAME_OR_ID
    -i, --instance-id INSTANCE_ID
    [-f, --force]
    [-y, --skip-confirm]

Exemples

Voici des exemples de kp kmip object-delete

Exemple 1

$ ibmcloud kp kmip object-delete 9b2f5af5-3534-4f02-8836-f89af37c4351 -a testadapter
Targeting endpoint: not shown
Deleting KMIP Object...
OK

kp crypto-unité

La commande kp crypto-unit vous permet de gérer vos unités cryptographiques. Notez que cette commande ne fait rien en soi. Vous devez utiliser l'une des sous-commandes en même temps que celle-ci.

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 vous rencontrez des problèmes avec la commande kp crypto-unit, consultez la section Dépannage.

zeroize

Il est fortement déconseillé de réduire à zéro vos unités de crypto-monnaie une fois que vous avez créé des clés ou effectué des opérations sur les clés. Si une remise à zéro est nécessaire après cette étape, toutes les clés doivent être supprimées et purgées. Notez qu'il y a une période d'attente de quatre heures avant qu'une clé supprimée puisse être purgée.

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

ibmcloud kp crypto-unit réclamation

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

La commande kp crypto-units vous permet de dresser la liste de vos unités cryptographiques.


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.

Etapes suivantes

Recherchez les opérations connexes dans la documentation de l'API.