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-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-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-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-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.
| 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 -hibmcloud kp import-token -hibmcloud kp key -hibmcloud 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 -hibmcloud 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-idID 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, --expirationSpé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
300secondes (5 minutes) et la valeur maximale, de86400secondes (24 heures). La valeur par défaut est de600secondes (10 minutes). -
-m, --max-retrievalsDé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-idID 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, --keyMatériel de clé codé en base64 que vous stockez et gérez dans le service.
-p, --pubkeyClé 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, utilisezibmcloud kp import-token show.
Paramètres facultatifs
-
-a, --hashAlgorithme 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-idID 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, --keyMatériel de clé codé en base64 que vous stockez et gérez dans le service.
-n, --nonceValeur 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, --cbcChiffrez 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-idID 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-IDID 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-ipAfficher la politique d'instance pour « adresses IP autorisées ».
-
-a, --allowed-networkAffichez la règle d'instance pour "allowed network".
-
-d, --dual-auth-deleteAfficher la politique d'instance pour
dual authorization delete. -
-k, --key-create-import-accessExtrait les détails de la règle d'accès d'importation de création de clé de l'instance.
-
-m, --metricsExtrait les détails de la règle de métriques de l'instance.
-
-o, --outputDé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, --rotationExtrait 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, --enableDésactivez ou activez la règle d'accès au réseau. Une option est requise.
-
-i, --instance-IDID 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-typeSpécifiez le type d'accès réseau autorisé. Les options sont
public-and-privateouprivate-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, --enableDésactivez ou activez la règle d'autorisation double. Une option est requise.
-
-i, --instance-IDID 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_IDID de la clé que vous souhaitez modifier. Pour extraire une liste de vos clés disponibles, exécutez la commande kp keys.
-
KEY_ALIASL'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-IDID 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, --outputDé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.
-
Créez une clé et activez la règle
dual-auth-delete. -
L'utilisateur 1 planifie (autorise) la suppression d'une clé avec le commande
kp key schedule-delete -
L'utilisateur 2 planifie (autorise) la suppression de la clé.
-
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. -
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_ALIASL'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_NAMEUn identificateur unique, lisible par l'utilisateur, à affecter à votre clé.
-
-i, --instance-IDID 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-materialSi 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-nonceUtilisé 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écutantibmcloud kp import-token nonce-encrypt. -
-o, --outputDé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-keyDé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, --ivUtilisé 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-ringNom 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, --descriptionPermet 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_NAMEUn identificateur unique, lisible par l'utilisateur, à affecter à votre clé.
-
-i, --instance-IDID 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, --aliasesNoms 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-materialSi 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-nonceUtilisé 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écutantibmcloud kp import-token nonce-encrypt. -
-o, --outputDé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-keyDé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, --ivUtilisé 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-ringNom 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_ALIASL'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-idID 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, --forceSupprimez 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, --outputDé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-ringNom 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_ALIASL'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-idID 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-ringNom 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_ALIASL'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-idID 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-ringNom 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_ALIASL'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-idID 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-authAffichez les règles comportant une règle
dual-auth-delete. -
-o, --outputDé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, --rotationAffichez les règles comportant une règle
rotation. -
--key-ringNom 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_ALIASL'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, --enableUne 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
disablela clé (à l'aide de la commandekp 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, --outputDé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-ringNom 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_ALIASL'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-intervalDéfinissez l'intervalle de rotation des clés en mois. L'intervalle de rotation doit être compris entre 1 et 12 mois.
-
-e, --enableou-d, --disablePar 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, --outputDé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-ringNom 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.
-
Créez une clé racine à l'aide d'un jeton d'importation, puis supprimez la clé.
-
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_ALIASL'UUID ou l'alias « v4 » de la clé que vous souhaitez restaurer.
-
-i, --instance-IDID 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-materialDeprecatedLe 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-materialcorrespond 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-nonceDeprecatedVérifiez une demande d'importation de clé en fournissant un nonce chiffré.Pour plus d'informations, voir kp import-token nonce-encrypt.
-
-o, --outputDé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, --ivDeprecatedIndiquez 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-ringNom 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-IDID 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_IDRé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-IDID 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_IDRé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-IDID 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, --forceForce 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 :
-
Créer une clé racine
-
Créer une clé de chiffrement de données (DEK), c'est le texte brut (
plaintext) -
Encapsuler la clé DEK avec la clé racine, ce qui crée un texte chiffré (
ciphertext) -
Effectuer la rotation d'une clé racine
-
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)
-
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_ALIASL'UUID ou l'alias « v4 » de la clé racine que vous souhaitez renouveler.
-
-i, --instance-idID 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-materialPour procéder à la rotation d'une clé initialement générée sans un paramètre
--key-materialà l'aide de la commandekp 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-ringNom 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.
-
Créez une clé et activez la règle
dual-auth-delete. -
L'utilisateur 1 planifie (autorise) la suppression d'une clé avec le commande
kp key schedule-delete -
L'utilisateur 2 planifie (autorise) la suppression de la clé.
-
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. -
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_ALIASL'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-ringNom 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_ALIASIdentificateur unique universel ou alias v4 de la clé racine que vous souhaitez afficher.
-
-i, --instance-idID 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, --outputDé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-ringNom 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_IDID de la clé à synchroniser.
-
-i, --instance-idID 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, --outputDé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-ringNom 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_ALIASIdentificateur unique universel ou alias v4 de la clé racine que vous souhaitez afficher.
-
-i, --instance-idID 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-ringNom 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, --outputDé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_ALIASL'UUID « v4 » ou l'alias de la clé racine que vous avez utilisé pour la demande d'encapsulation initiale.
-
CIPHERTEXT_FROM_WRAPClé de chiffrement de données renvoyée au cours de l'opération d'encapsulage initiale.
-
-i, --instance-IDID 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, --aadDonné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-ringNom 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_ALIASL'UUID « v4 » ou l'alias de la clé racine que vous avez utilisé pour la demande d'encapsulation initiale.
-
-i, --instance-IDID 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-ringNom 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-versionsLimite le nombre de versions de clé à extraire par la valeur entière fournie (valeur par défaut: 200).
-
-o, --outputDé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-offsetExtrait les versions de clé du décalage spécifié par la valeur entière fournie.
-
-t --total-countUtilisé pour reteriger le nombre total de versions de clé pour une clé par la valeur entière fournie.
-
-a --all-key-statesIndicateur 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_ALIASL'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-idID 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, --aadDonné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, --outputDé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, --plaintextL'
plaintextspé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ètresKEY_IDouALIAS).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-ringNom 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-idID 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-byTriez 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, --crnIncluez le nom de ressource de cloud dans la sortie.
-
-f, --key-filterFiltrez 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-statesL'é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-searchListe 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-keysLimite le nombre de clés à récupérer. La valeur par défaut est 200 et la valeur maximale est 5000.
-
-o, --outputDé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-ringNom 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-offsetExtrait 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-typeType 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-idID 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
-
REGIONSpé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, --unsetAnnulez (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 | Où | 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_ALIASL'UUID ou l'alias « v4 » de la clé que vous souhaitez interroger.
-
-i, --instance-idID 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-querySpécifiez la requête de nom de ressource de cloud dont les enregistrements doivent être répertoriés.
-
-k, --key-idSpécifiez l'ID de clé dont les enregistrements doivent être répertoriés.
-
-o, --outputDé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-ringNom 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
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.