Rotation manuelle des clés racine
Vous pouvez faire pivoter votre clés racineA symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. à la demande en utilisantIBM Cloud®Hyper Protect Crypto Services.
Lorsque vous effectuez une rotation de votre clé racine, vous raccourcissez sa durée de vie et limitez la quantité d'informations qu'elle protège.
Pour savoir comment la rotation des clés vous aide à répondre aux normes de l'industrie et à respecter les meilleurs pratiques en matière de cryptographie, voir Rotation des clés.
Rotation des clés racine dans l'interface utilisateur
Si vous préférez faire pivoter vos clés racine à l'aide d'une interface graphique, vous pouvez utiliser l'interface utilisateur.
Après avoir créé ou importé vos clés racine existantes dans le service, procédez comme suit pour effectuer une rotation de clé :
-
Accédez à Menu > Liste de ressources pour afficher la liste de vos ressources.
-
Dans la liste de ressources IBM Cloud, sélectionnez votre instance Hyper Protect Crypto Services mise à disposition.
-
Sur la page Clés KMS, utilisez la table Clés pour parcourir les clés de votre service.
-
Sélectionnez la clé que vous souhaitez faire pivoter et cliquez sur l'icône Actions
pour ouvrir une liste d'options pour la clé.
-
Dans le menu d'options, cliquez sur Effectuer la rotation de la clé.
Si vous avez initialement fourni le matériel de clé pour la clé, spécifiez le nouveau matériel de clé codée base64 que vous souhaitez stocker et gérer dans le service. Vérifiez que les informations de clé remplissent les conditions suivantes :
- Doit être de 128, 192 ou 256 bits.
- Les octets de données, par exemple 32 octets pour 256 bits, doivent être codés en base64.
-
Cliquez sur Effectuer la rotation de la clé pour confirmation.
Rotation des clés racine à l'aide de l'API
Vous pouvez effectuer la rotation d'une clé racine en soumettant un appel POST au noeud final ci-après.
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate
-
Extrayez vos données d'authentification et de service afin d'utiliser les clés dans le service.
-
Copiez l'ID de la clé racine à laquelle vous souhaitez appliquer la rotation.
Vous pouvez trouver l'ID d'une clé dans votre instance de service en récupérer une liste de vos clés, ou en accédant à l'interface utilisateur.
-
Remplacez la clé par les nouvelles informations de clé en exécutant la commande cURL suivante :
curl -X POST \ 'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate' \ -H 'accept: application/vnd.ibm.kms.key_action+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H "x-kms-key-ring: <key_ring_ID>" \ -H 'content-type: application/vnd.ibm.kms.key_action+json' \ -d '{ "payload": "<key_material>" }'Remplacez les variables de l'exemple de demande conformément au tableau suivant :
Tableau 2. Décrit les variables nécessaires pour faire pivoter une clé spécifiée dansHyper Protect Crypto Services Variables Description regionObligatoire. Abréviation de la région, comme us-southouau-syd, représentant la zone géographique dans laquelle votre instance de service Hyper Protect Crypto Services réside. Pour plus d'informations, voir Noeuds finaux de service régional.portObligatoire. Numéro de port du noeud final d'API. key_IDObligatoire. Identificateur unique de la clé racine à laquelle appliquer la rotation. IAM_tokenObligatoire. Votre jeton d'accès IBM Cloud. Incluez l'ensemble du contenu du jeton IAM, y compris la valeur Bearer, dans la demande cURL. Pour plus d'informations, voir Extraction d'un jeton d'accès.instance_IDObligatoire. Identificateur unique affecté à votre instance de service Hyper Protect Crypto Services. Pour plus d'informations, voir Extraction d'un ID d'instance. key_ring_IDFacultatif. Identificateur unique du fichier de clés auquel appartient la clé. S'il n'est pas spécifié, Hyper Protect Crypto Services recherche la clé dans chaque fichier de clés associé à l'instance spécifiée. Par conséquent, il est conseillé de spécifier l'ID du fichier de clés pour une demande plus optimisée. Remarque : les clés créées sans en-tête
x-kms-key-ringont l'ID de fichier de clé "default". Pour plus d'informations, voir Gestion des fichiers de clés.key_materialFacultatif. Nouveau matériel de clé codé en base64 à stocker et gérer dans le service. Cette valeur est requise si vous avez initialement importé le matériel de clé lors de l'ajout de la clé au service.
Pour faire pivoter une clé initialement générée parHyper Protect Crypto Services, omettez le
payloadattribut et transmettez un corps d’entité de requête vide. Pour faire pivoter une clé importée, fournissez un élément de clé qui répond aux exigences suivantes :- La clé doit être de 128, 192 ou 256 bits.
- Les octets de données, par exemple 32 octets pour 256 bits, doivent être codés en base64.
Une demande de rotation réussie renvoie une réponse HTTP
204 No Content, qui indique que votre clé racine a été remplacée par de nouvelles informations de clé. -
Facultatif : vérifiez que la clé a fait l'objet d'une rotation en exécutant l'appel suivant pour parcourir les clés de votre instance de service Hyper Protect Crypto Services.
curl -X GET \ https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \ -H 'accept: application/vnd.ibm.collection+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \Examinez la valeur
lastRotateDatede la réponse entity-body pour connaître la date et l'heure de la dernière rotation de votre clé.{ "metadata": { "collectionType": "application/vnd.ibm.kms.key+json", "collectionTotal": 1 }, "resources": [ { "type": "application/vnd.ibm.kms.key+json", "id": "02fd6835-6001-4482-a892-13bd2085f75d", "name": "test-root-key", "state": 1, "extractable": false, "crn": "crn:v1:bluemix:public:hs-crypto:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d", "imported": false, "creationDate": "2020-03-12T03:50:12Z", "createdBy": "...", "algorithmType": "AES", "algorithmMetadata": { "bitLength": "256", "mode": "CBC_PAD" }, "algorithmBitSize": 256, "algorithmMode": "CBC_PAD", "lastUpdateDate": "2020-03-12T03:50:12Z", "lastRotateDate": "2020-03-12T03:49:01Z", "keyVersion": { "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2", "creationDate": "2020-03-12T03:50:12Z" }, "dualAuthDelete": { "enabled": false }, "deleted": false } ] }L'attribut
keyVersioncontient les informations d'identification qui décrivent la dernière version de la clé racine.Vous pouvez également répertorier les versions disponibles pour la clé à l'aide de la l'API de service de gestion de clés Hyper Protect Crypto Services. Pour en savoir plus, voir Affichage des versions de clé.
Utilisation d'un jeton d'importation pour procéder à la rotation d'une clé
Si vous avez initialement importé une clé racine à l'aide d'un jeton d'importation, vous pouvez effectuer la rotation de la clé en soumettant un appel POST au noeud final suivant :
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate
-
Extrayez vos données d'authentification afin d'utiliser les clés dans le service.
Pour faire pivoter une clé, vous devez être affecté à une règle d'accès éditeur ou Gestionnaire pour l'instance ou la clé. Pour savoir comment les rôles IAM sont mappés aux actions du service Hyper Protect Crypto Services, consultez la rubrique Rôles d'accès au service.
-
Extrayez l'ID de la clé à laquelle appliquer la rotation.
Vous pouvez récupérer l'ID d'une clé spécifiée en créant un
GET /v2/keysdemande, ou en affichant vos clés dans l’interface utilisateur. -
Utilisez le jeton d'importation pour chiffrer les informations de clé que vous souhaitez utiliser pour effectuer la rotation de la clé existante.
Pour savoir comment utiliser un jeton d'importation, reportez-vous au Tutoriel : Création et importation de clés de chiffrement.
-
Remplacez la clé existante par les nouvelles informations de clé en exécutant la commande cURL suivante :
curl -X POST \ https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'accept: application/vnd.ibm.kms.key_action+json' \ -H 'content-type: application/vnd.ibm.kms.key_action+json' \ -d '{ "type": "application/vnd.ibm.kms.key+json", "name": "<key_alias>", "description": "<key_description>", "extractable": <key_type>, "payload": "<encrypted_key>", "encryptionAlgorithm": "RSAES_OAEP_SHA_1", "encryptedNonce": "<encrypted_nonce>", "iv": "<iv>" }'Remplacez les variables de l'exemple de demande conformément au tableau suivant :
Tableau 3. Décrit les variables nécessaires à la restauration des clés avec l'APIHyper Protect Crypto Services Variables Description regionObligatoire. Abréviation de la région, comme us-southouau-syd, représentant la zone géographique dans laquelle votre instance de service Hyper Protect Crypto Services réside. Pour plus d'informations, voir Noeuds finaux de service régional.portObligatoire. Numéro de port du noeud final d'API. key_IDObligatoire. Identificateur unique de la clé à laquelle appliquer la rotation. IAM_tokenObligatoire. Votre jeton d'accès IBM Cloud. Incluez l'ensemble du contenu du jeton IAM, y compris la valeur Bearer, dans la demande cURL. Pour plus d'informations, voir Extraction d'un jeton d'accès.instance_IDObligatoire. Identificateur unique affecté à votre instance de service Hyper Protect Crypto Services. Pour plus d'informations, voir Extraction d'un ID d'instance. key_aliasObligatoire. Nom lisible permettant d'identifier facilement votre clé. Pour protéger votre vie privée, ne stockez aucune donnée personnelle comme métadonnées pour votre clé. key_descriptionDescription étendue de votre clé. Pour protéger votre vie privée, ne stockez aucune donnée personnelle comme métadonnées pour votre clé. encrypted_keyObligatoire. Nouveau matériel de clé qui est chiffré par le jeton d'importation. La valeur doit être codée en base64. Vérifiez que le matériel de clé répond aux exigences suivantes: - La clé doit être de 128, 192 ou 256 bits.
- Les octets de données, par exemple 32 octets pour 256 bits, doivent être codés en base64.
Pour en savoir plus, reportez-vous au Tutoriel : Création et importation de clés de chiffrement.
key_typeValeur booléenne qui détermine si les informations de clé peuvent quitter le service. Lorsque vous définissez le extractableattribuer àfalse, le service désigne la clé comme clé racine que vous pouvez utiliser pourwrapouunwrapopérations.encrypted_nonceObligatoire. Valeur nonce chiffrée AES-GCM qui garantit que les bits que vous envoyez dans le cadre d'une demande sont exactement les mêmes que ceux que vous recevez. La valeur nonce valide la clé que vous restaurez. Pour en savoir plus, reportez-vous à la section Tutoriel : Création et importation de clés de chiffrement. ivObligatoire. Vecteur d'initialisation (IV) généré par l'algorithme AES-GCM lorsque vous chiffrez une valeur nonce. Cette valeur est utilisée afin de décoder la clé pour stockage dans le système Hyper Protect Crypto Services. Pour en savoir plus, reportez-vous à la section Tutoriel : Création et importation de clés de chiffrement. Une demande de rotation réussie renvoie une réponse HTTP
204 No Content, qui indique que votre clé racine a été remplacée par les nouvelles informations de clé. -
Facultatif : vérifiez que la clé a fait l'objet d'une rotation en extrayant les détails relatifs à la clé.
curl -X GET \ https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_id>/metadata \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' -H 'accept: application/vnd.ibm.kms.key+json'Examinez les valeurs
lastRotateDateetkeyVersionde la réponse entity-body pour connaître la date et l'heure de la dernière rotation de votre clé.Vous pouvez également répertorier les versions disponibles pour la clé à l'aide de l'API Hyper Protect Crypto Services. Pour en savoir plus, voir Affichage des versions de clé.
Etapes suivantes
- Lorsque vous appliquez une rotation à une clé racine, de nouvelles informations de clé de chiffrement deviennent disponibles pour protéger les clés de chiffrement de données associées à la clé racine. Découvrez comment recrypter ou réemballer votre DEKS sans exposer les clés sous leur forme de texte brut, voir Réemballage des clés.
- Pour découvrir comment le chiffrement d'enveloppe peut vous aider à contrôler la sécurité des données au repos dans le cloud, reportez-vous à la rubrique Protection des données avec le chiffrement d'enveloppe.
- Pour en savoir plus sur la gestion programmatique de vos clés,VérifiezHyper Protect Crypto Services Document de référence sur l'API du service de gestion des clés.