Initialisation de Dedicated Key Protect par la création d'une instance, d'informations d'identification et d'une clé principale

Pour que Dedicated Key Protect fonctionne, vous devez d'abord provisionner une instance, puis générer les identifiants d'administration utilisés pour faire fonctionner vos unités cryptographiques, et enfin créer et charger la clé principale, qui permet à Key Protect d'effectuer des opérations cryptographiques sur les unités cryptographiques en votre nom.

Pour plus d'informations sur les concepts clés du service Dedicated Key Protect, consultez la page About Standard and Dedicated Key Protect.

Trois versions différentes de chaque commande sont présentées dans cette rubrique : pour Mac/ Linux, pour Windows Powershell ou pour l'invite de commande de Windows (CMD). Assurez-vous que vous utilisez la commande qui correspond à votre système.

Avant de commencer

Si vous ne disposez pas de la dernière version du CLI IBM Cloud, il se peut que vous ne puissiez pas initialiser votre instance. Assurez-vous que votre initialisation réussisse en mettant à jour la dernière version du plugin CLI.

Vous devez utiliser la dernière version du CLI pour terminer l'initialisation, même si vous déployez votre instance à l'aide de la console. Si vous recevez l'erreur - Unable to obtain plug-in's metadata, lors de l'installation de la dernière version du plugin KP CLI, consultez les étapes de dépannage.

Provisionnement de votre instance dans la console

Pour provisionner votre instance dans la console, suivez les instructions ici et sélectionnez la tuile "Dedicated" dans le catalogue. Le processus d'approvisionnement peut prendre plusieurs minutes.

Une fois votre instance provisionnée, vous êtes prêt à générer des identifiants d'administration et à réclamer vos unités de crypto-monnaie.

Si vous ne spécifiez pas de nombre d'unités cryptographiques, votre instance est provisionnée avec deux unités. Vous pouvez également spécifier trois unités cryptographiques à l'aide du menu déroulant. Que vous spécifiez deux ou trois unités de cryptage, notez que la valeur ne peut pas être modifiée ultérieurement.

Provisionnement de votre instance dans le CLI

Avant de pouvoir créer des unités cryptographiques et d'initialiser votre instance, celle-ci doit être créée. Tout d'abord, définissez un groupe de ressources à cibler par émission :

ibmcloud target -c <resource-group>

Si vous ne connaissez pas votre groupe de ressources, vous pouvez le trouver en émettant un numéro :

ibmcloud resource groups

Après avoir défini votre groupe de ressources, créez l'instance en émettant :

ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south

Où :

  • <INSTANCE_NAME> est le nom que vous donnez à votre instance.

Notez que cette commande propose par défaut deux unités cryptographiques. Vous pouvez spécifier trois unités cryptographiques en émettant :

ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south -p '{"crypto_units": 3}'

Si vous spécifiez un nombre d'unités cryptographiques différent de 2 ou 3, une erreur est renvoyée. Vous ne pouvez pas modifier le nombre d'unités cryptographiques ultérieurement.

Le provisionnement d'une instance dédiée peut prendre plusieurs minutes. Vous pouvez vérifier l'état de votre instance en envoyant un message :

ibmcloud resource service-instance <INSTANCE_NAME>

Où :

  • <INSTANCE_NAME> est le nom que vous avez donné à votre instance à l'étape précédente.

L'instance peut avoir l'un des deux états suivants : actif ou en cours. Notez qu'une instance active n'a cependant pas encore été initialisée, car cela nécessite de compléter les étapes restantes de cette rubrique. Tant que vous n'avez pas initialisé votre instance, elle ne peut pas être utilisée, car vos identités n'ont pas encore été configurées avec vos unités cryptographiques pour créer la clé principale.

Obtenir le point final

Une fois que votre instance est active, obtenez le point de terminaison et le GUID en émettant :

ibmcloud resource service-instance <INSTANCE_NAME> -o json

Où :

  • <INSTANCE_NAME> est le nom que vous avez donné à votre instance à l'étape précédente.

Le point final est la valeur du paramètre public dans la strophe endpoints de la sortie json ci-dessus. Il se présente sous la forme suivante : https://<instance-id>.api.<region>.kms.appdomain.cloud. Le GUID est la valeur du paramètre GUID dans la sortie ci-dessus. Il se présente sous la forme de UUID.

Vous pouvez obtenir le point de terminaison en envoyant la commande suivante : ibmcloud resource service-instance <\kp-instance-id\> --output json | jq -r '.[].extensions.endpoints'.

Enregistrez le point final complet en tant que variable d'environnement en lançant deux commandes sur l'un des trois systèmes d'exploitation pris en charge.

Pour macOS:

export KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>

Et.. :

export KP_INSTANCE_ID=<GUID>

Pour Windows Powershell :

$Env:KP_INSTANCE_ID = <GUID>

Et.. :

$Env:KP_TARGET_ADDR = <ST_INSTANCE_ENDPOINT>

Pour Windows CMD :

set KP_INSTANCE_ID=<GUID>

Et.. :

set KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>

Où :

  • <ST_INSTANCE_ENDPOINT> est le point final complet de votre instance, au format https://<instance-id>.api.<region>.kms.appdomain.cloud.
  • <GUID> est l'identifiant de l'instance dans la sortie ci-dessus.

Vous êtes maintenant prêt à générer les informations d'identification de l'administrateur.

Il se peut que vous deviez attendre quelques minutes après le provisionnement avant que vos unités de crypto-monnaie ne soient disponibles.

Pour plus d'informations sur les états dans lesquels une unité de cryptographie peut se trouver, consultez la page États des unités de cryptographie.

Générer des identifiants d'administration et réclamer vos unités de crypto-monnaie

Une unité cryptographique est gérée par un ou plusieurs administrateurs, ce qui signifie que vous devez disposer d'identités ou en créer. Si vous avez correctement formaté les identités des administrateurs (une clé AES symétrique de 256 bits utilisant RSA-2048 ), vous pouvez passer à la section Créer la clé principale.

Générer les identifiants de l'administrateur

Si vous devez créer un identifiant d'administrateur, émettez :

ibmcloud kp crypto-unit sig-key generate --file <ADMIN_KEY_FILE> --passphrase <PWD> --algo RSA-2048

Où :

  • <ADMIN_KEY_FILE> est l'emplacement sur votre machine où l'identité est créée (par exemple, admin-keyfile.key).
  • <PWD> est un mot de passe facultatif utilisé pour crypter le fichier au repos. Spécifiez "-" pour être invité à saisir une phrase d'authentification.

Enregistrez une copie de ce fichier clé et mémorisez la phrase d'authentification. Il est requis pour toutes les commandes authentifiées lors de l'interaction avec les unités cryptographiques.

Si une commande ibmcloud kp crypto-unit renvoie le code d'erreur e00bad05, voir les étapes de dépannage.

Réclamer vos unités de crypto-monnaie

Pour plus d'informations sur les états dans lesquels une unité de cryptographie peut se trouver, consultez la page États des unités de cryptographie.

Les unités de cryptage attribuées à un utilisateur démarrent dans un état d'effacement. Toutes les unités de chiffrement d'une instance de service doivent être configurées de la même façon. Si une zone de disponibilité dans la région où se trouve votre instance n'est pas accessible, les unités de chiffrement opérationnelles peuvent être utilisées de manière interchangeable pour l'équilibrage de charge ou pour la haute disponibilité.

La clé principale de toutes les unités de chiffrement d'une même instance de service doit être identique. Le même ensemble d'administrateurs doit être ajouté dans toutes les unités de chiffrement, et toutes les unités de chiffrement doivent être initialisées simultanément.

Pour afficher les instances de service et les unités de chiffrement d'un groupe de ressources cibles sous le compte utilisateur en cours, exécutez la commande suivante :

ibmcloud kp crypto-units

La sortie ci-après illustre ce qui s'affiche. La colonne « ID » du tableau de sortie identifie les unités cryptographiques ciblées par les commandes administratives ultérieures émises par le plug-in KP CLI.

*******************************************************  
Id                                     InstanceID                             State  
6e0aead3-9d44-4c92-a4c4-f7a1ab415420   c28a8939-3980-4697-a80c-50b1f8bbf160   reserved  
3bb363fc-b1f9-4237-b37b-2c9e07784e3c   c28a8939-3980-4697-a80c-50b1f8bbf160   reserved  
*******************************************************  

La partie publique de la paire de clés RSA est intégrée à un certificat qui est installé dans l'unité cryptographique cible afin de désigner un administrateur de cette unité. Utilisez la commande claim pour le télécharger en tant qu'administrateur par défaut de vos unités cryptographiques :

ibmcloud kp crypto-unit claim --credential <ADMIN_KEY_FILE>

Où :

  • <ADMIN_KEY_FILE> est le fichier dans lequel l'identité a été stockée.

Toutes les commandes crypto-unit s'appliquent à toutes les unités cryptographiques. Ce sont en fait des clones l'un de l'autre.

Générer et importer la clé principale

Étant donné que vous importez les informations d'identification de votre clé principale, Key Protect n'a pas accès à cette clé et n'en a pas fait de sauvegarde. Conservez votre clé principale dans un endroit sûr.

Maintenant que vous avez créé votre instance et votre identité d'administrateur, vous pouvez les utiliser pour créer votre clé principale. La clé principale, également appelée clé maître HSM, est utilisée pour chiffrer l'instance de service pour le stockage des clés. Il s'agit d'une clé AES 256 bits symétrique. Grâce à la clé principale, vous devenez propriétaire du HSM dans le cloud et détenez la racine de confiance qui chiffrer l'ensemble de la hiérarchie des clés de chiffrement, y compris les clés racines et les clés standard présentes dans le magasin de clés de gestion des clés. Une instance de service ne peut avoir qu'une seule clé principale. Si vous supprimez la clé principale de l'instance de service, vous pouvez efficacement détruire par crypto-broyage toutes les données qui ont été chiffrées avec les clés gérées dans le service.

Key Protect, un service spécialisé, utilise le procédé dit de « fractionnement de clé », qui consiste à diviser une clé cryptographique en plusieurs parties afin de renforcer la sécurité. Au moins 2 "keyshares" doivent être créés, bien qu'il soit possible d'en utiliser davantage en fonction du cas d'utilisation.

Pour générer la clé principale localement, exécutez la commande sur l'un des trois systèmes d'exploitation pris en charge.

Pour macOS:

ibmcloud kp crypto-unit master-key generate --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2>"]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSOWRD3>"}]'

Pour Windows Powershell :

ibmcloud kp crypto-unit master-key generate --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSOWRD3>"""}]'

Pour Windows CMD :

ibmcloud kp crypto-unit master-key generate --keyshare-files"[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2>\"]" --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSOWRD3>\"}]"

Où :

  • <KEYSHARE_FILE_1>#<PASSWORD1> est l'emplacement de l'un des trousseaux de clés, ainsi qu'une phrase d'authentification pour le fichier créé. La phrase de passe est obligatoire et doit comporter entre 6 et 255 caractères. Omettre #<PASSWORD1> pour être invité à saisir une phrase de passe.
  • <KEYSHARE_FILE_2>#<PASSWORD2> est l'emplacement d'un autre partage de clés, ainsi qu'une phrase d'authentification pour le fichier créé. La phrase de passe est obligatoire et doit comporter entre 6 et 255 caractères. Omettre #<PASSWORD2> pour être invité à saisir une phrase de passe. Omettre #<PASSWORD2> pour être invité à saisir une phrase de passe.
  • <KEY_NAME> est le nom de votre clé principale.
  • <ADMIN_KEY_FILE>#<PASSOWRD3> est l'emplacement de votre administrateur et la phrase de passe que vous avez générée précédemment (si vous n'apportez pas votre propre identité). Omettre #<PASSWORD3> pour être invité à saisir une phrase de passe.

Notez que la valeur keyshare-minimum, qui est fixée par défaut à 2 mais peut être augmentée, représente le nombre minimum d'emplacements de clés que vous devez spécifier (en fonction de leur emplacement).

Pour télécharger votre clé principale dans les unités cryptographiques de votre instance, exécutez la commande sur l'un des trois systèmes d'exploitation pris en charge.

Pour macOS:

ibmcloud kp crypto-unit master-key import --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2"]' --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD3>"}]'

Pour Windows PowerShell:

ibmcloud kp crypto-unit master-key import --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD3>"""}]'

Pour Windows CMD :

ibmcloud kp crypto-unit master-key import --keyshare-files "[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2\"]" --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD3>\"}]"

Où :

  • <KEYSHARE_FILE_1>#<PASSWORD1> est l'emplacement de l'un des trousseaux de clés, ainsi qu'une phrase d'authentification pour le fichier qui sera créé. La phrase de passe est obligatoire et doit comporter entre 6 et 255 caractères. Omettre #<PASSWORD1> pour être invité à saisir une phrase de passe.
  • <KEYSHARE_FILE_2>#<PASSWORD2> est l'emplacement d'un autre partage de clés, ainsi qu'une phrase de passe pour le fichier qui sera créé. La phrase de passe est obligatoire et doit comporter entre 6 et 255 caractères. Omettre #<PASSWORD2> pour être invité à saisir une phrase de passe.
  • <ADMIN_KEY_FILE>#<PASSWORD3> est l'emplacement de votre administrateur et la phrase de passe que vous avez générée précédemment (si vous n'apportez pas votre propre identité). Omettre #<PASSWORD3> pour être invité à saisir une phrase de passe.

Maintenant que votre clé principale a été créée, vous devez permettre au service Key Protect d'effectuer des actions sur vos unités cryptographiques (par exemple, créer des clés). Notez que le niveau d'autorisations accordé à Key Protect est inférieur à celui d'un administrateur. Exécutez la commande en utilisant l'un des trois systèmes d'exploitation pris en charge.

Pour macOS:

ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD>"}]'

Pour Windows PowerShell:

ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD>"""}]'

Pour Windows CMD :

ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD>\"}]"

Où :

  • <ADMIN_KEY_FILE>#<PASSWORD> est l'emplacement de votre fichier de clé d'administration et de sa phrase de passe générée précédemment (si vous n'apportez pas votre propre identité). Omettre #<PASSWORD> pour être invité à saisir une phrase de passe.

Cette commande peut également être utilisée pour ajouter des administrateurs à vos unités cryptographiques en créant votre --type admin et en ajoutant un --name et un --file qui pointent vers une identité d'administrateur que vous possédez. N'ajoutez pas --name ou --file lorsque vous ajoutez kmsCryptoUser. Exemple :

ibmcloud kp crypto-unit user add --type admin --name <USERNAME> --credential "<USERNAME_KEY_FILE>" --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PWD>"}]'

Où :

  • <USERNAME> est le nom de l'identité d'administrateur que vous ajoutez.
  • <USERNAME_KEY_FILE> est le chemin d'accès au fichier des informations d'identification à associer au nouvel utilisateur.
  • <ADMIN_KEY_FILE>#<PWD> est l'emplacement de votre administrateur existant et de sa phrase de passe que vous avez générée précédemment (si vous n'apportez pas votre propre identité). Omettre #<PWD> pour être invité à saisir une phrase de passe.

N'ajoutez pas --name ou --file lorsque vous ajoutez kmsCryptoUser en tant qu'administrateur.

Félicitations, Votre instance a été entièrement initialisée.

Il faudra peut-être attendre entre 5 et 10 minutes avant de pouvoir utiliser votre instance.

Etapes suivantes

Maintenant que votre instance a été créée, que vous avez des identités d'administrateur qui peuvent être utilisées pour la faire fonctionner, que vous avez créé votre clé principale et que vous avez donné à Key Protect l'accès pour effectuer des actions sur votre instance, vous êtes prêt à faire des choses comme.. :

Les jetons d'importation ne sont pas pris en charge par Key Protect Dedicated.

Fonctions non prises en charge

Traitement des incidents

Unable to obtain plug-in's metadata erreur lors de l'installation ou de la mise à jour du plugin KP CLI

Si vous recevez l'erreur suivante lorsque vous installez le plugin IBM Key Protect CLI :

Installing binary...
FAILED
Unable to obtain plug-in's metadata. Error: exit status 1

Linux l'environnement

Installez ou mettez à jour la bibliothèque système libstdc++ avec GLIBCXX version 3.4.26 ou ultérieure à partir du gestionnaire de paquets de votre distribution. Utilisez les exemples de commandes d'installation suivants :

  • Ubuntu/Debian: apt-get update && apt-get install libstdc++6
  • RHEL/Fedora/CentOS: yum install libstdc++
  • Alpine: apk add --no-cache gcompat libstdc++

Si cela ne permet pas de résoudre l'erreur, contactez le service d'assistance d' Key Protect.

Environnement Windows ou macOS

Contactez l'assistance Key Protect.

command failed with error code: e00bad05erreur

Si une commande ibmcloud kp crypto-unit renvoie l'erreur suivante :

FAILED
command failed with error code: e00bad05

Cette erreur peut indiquer que votre système n'est pas compatible avec la fonction ibmcloud kp crypto-unit. La configuration recommandée est la suivante

  • Windows : AMD64 (Windows 10 ou version ultérieure)
  • Linux: AMD64 (Debian, Ubuntu, Red Hat)
  • macOS: ARM64 (Apple Silicon)

Les systèmes qui ne figurent pas dans cette liste peuvent être compatibles avec la fonction ibmcloud kp crypto-unit. Si vous souhaitez confirmer la compatibilité avec votre système spécifique, ou si l'erreur e00bad05 persiste malgré le respect de la configuration recommandée, contactez le service d'assistance Key Protect.

HTTP Erreur 503 « no healthy upstream »

Si les appels aux opérations Key Protect renvoient HTTP 503 avec le message no healthy upstream: no crypto units are in kms-initialized state at this time, les causes suivantes sont possibles :

  • Vous n'avez pas encore terminé les étapes d'initialisation dédiées.
  • Vous avez terminé les étapes d'initialisation dédiées, mais vous devez attendre quelques minutes pour que Key Protect reconnaisse les nouvelles unités cryptographiques kms-initialized.
  • Vous n'avez qu'une seule unité cryptographique dans l'état kms-initialized, et cette unité cryptographique est en panne pour cause de maintenance.
  • Vous avez téléchargé un matériel de clé maîtresse non compatible dans une ou plusieurs unités de cryptographie.

context deadline exceedederreur

Si les commandes CLI renvoient l'erreur context deadline exceeded (Client.Timeout exceeded while awaiting headers), vous avez défini KP_TARGET_ADDR sur un point d'extrémité privé à partir d'un système qui ne répond pas aux exigences relatives aux points d'extrémité privés.

Pour la résoudre, procédez comme suit :

Les commandes des unités cryptographiques ne s'appliquent pas à toutes les unités cryptographiques

Si les commandes crypto-unit claim, crypto-unit master-key import, ou crypto-unit user add --type kmsCryptoUser ne s'appliquent pas à toutes les unités cryptographiques, vous pouvez obtenir un résultat similaire à l'exemple suivant :

Executing operation Generate Master Key against CryptoUnit with ID fadedbee-0000-0000-0000-1234567890ab
OK
Executing operation Generate Master Key against CryptoUnit with ID addedace-0000-0000-0000-1234567890ab
FAILED

Pour résoudre cet incident, procédez comme suit :

  1. Par défaut, les commandes claim, master-key import et user add tentent de s'appliquer à toutes les unités cryptographiques. Si ces commandes n'aboutissent que partiellement (elles ne s'appliquent qu'à un sous-ensemble d'unités cryptographiques de l'instance), il faut réessayer la commande uniquement avec les unités cryptographiques qui ont échoué. Chacune de ces commandes peut être configurée pour cibler des unités cryptographiques spécifiques. Pour savoir comment cibler des unités cryptographiques spécifiques, ajoutez -h à n'importe quelle commande crypto-unit pour afficher le texte d'aide, ou consultez la référence CLI.

  2. Exécutez la commande kp crypto-units dans la référence CLI pour confirmer que toutes les unités cryptographiques sont dans le même état.

    • Si les états des unités cryptographiques ne sont pas compatibles, voir États des unités cryptographiques.
    • Si une unité cryptographique est dans l'état maintenance, réessayez les commandes kp crypto-unit ultérieurement.