Rotation manuelle des clés
Vous pouvez effectuer manuellement une rotation de vos clés racine à l'aide d'IBM® Key Protect for IBM Cloud®.
Lorsque vous faites pivoter votre clé racine, vous ajoutez un nouveau matériau à la clé. Ce processus crée une nouvelle version de clé que vous pouvez utiliser pour réencapsuler ou chiffrer à nouveau vos données.
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 de vos clés de chiffrement.
La rotation est disponible uniquement pour les clés racine. Pour en savoir plus sur vos options de rotation des clés dans Key Protect, consultez la section Comparaison de vos options de rotation.
Rotation des clés racine dans la console
Après avoir créé une clé racine, procédez comme suit pour effectuer une rotation de la 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 Key Protect mise à disposition.
-
Sur la page des détails de l'application, parcourez les clés de votre service dans le tableau Clés. Si vous disposez de nombreuses clés, utilisez les barres de recherche pour filtrer les clés activées (les autres types de clés ne pouvant pas faire l'objet d'une rotation), celles appartenant à un trousseau spécifique et celles associées à un alias particulier.
-
Une fois la clé trouvée, cliquez sur l'icône Actions (⋯) pour ouvrir la liste des options relatives à la clé que vous souhaitez faire tourner.
-
Dans le menu Options, cliquez sur « Rotation » pour ouvrir le panneau latéral « Rotation ».
-
À partir de là, vous pouvez faire pivoter la clé d'un tour en cliquant sur « Rotate ». Si cette clé a été importée, vous devez fournir un nouveau matériel de clé.
Vous pouvez également définir une politique de rotation pour cette clé selon la fréquence de votre choix :
- Revenez aux options principales et cliquez sur « Modifier la politique de rotation »
- Activer la règle
- Sélectionnez l'intervalle de 30 jours souhaité pour la rotation des clés
Si une clé doit faire l'objet d'une rotation tous les
2mois, par exemple, elle le sera tous les 60 jours, quel que soit le nombre de jours d'un mois donné. -
Cliquez sur « Enregistrer » pour définir cette politique.
Pour en savoir plus sur la définition d'une politique de rotation pour votre instance qui définit une politique de rotation pour chaque clé créée ultérieurement, consultez la section Définition d'une politique de rotation.
Pour les clés racine importées uniquement, vous devez ajouter le matériel de clé codé en base64 que vous souhaitez stocker et gérer dans le service. Assurez-vous que le matériel de clé est en 128, 192 ou 256 bits et que les octets de données (par exemple, 32 octets pour 256 bits) sont codés en base64.
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://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rotate
-
Extrayez les données d'authentification 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 Key Protect enextrayant une liste de vos clés ou en accédant au tableau de bord Key Protect tableau de bord.
-
Pour effectuer une rotation de la clé, fournissez un nouveau matériel de clé en respectant les instructions suivantes :
curl.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/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 :
| Variable | Description |
|---|---|
| région | Obligatoire. L'abréviation de la région, telle que us-south ou eu-gb, qui désigne la zone géographique où se trouve votre instance Key Protect.Pour plus d'informations, voir Points d'extrémité de service. |
| keyID_or_alias | Obligatoire. Identificateur unique ou alias de la clé racine dont vous souhaitez effectuer la rotation. |
| IAM_token | Obligatoire. Votre jeton d'accès IBM Cloud. Incluez le contenu complet du jeton IAM, notamment la valeur Bearer, dans la requête curl. Pour plus d'informations, consultez la section « Récupération d'un jeton d'accès ». |
| instance_ID | Obligatoire. Identificateur unique affecté à votre instance de service Key Protect. Pour plus d'informations, consultez la section « Récupération d'un identifiant d'instance ». |
| key_ring_ID | Facultatif. Identificateur unique du fichier de clés dont la clé fait partie. S'il n'est pas indiqué, Key Protect recherche la clé dans chaque fichier de clés associé à l'instance indiquée. Il est recommandé d'indiquer
l'ID du fichier de clés pour une demande optimisée. Remarque : l'identifiant de trousseau des clés créées sans en-tête « x-kms-key-ring » est : default.For more information, see Touches de regroupement. |
| key_material | Facultatif. 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 tourner une clé initialement générée par Key Protect, omettez l'attribut « payload » et transmettez un corps d'entité de requête vide. Pour effectuer la rotation d'une clé importée, fournissez des informations de clé répondant aux exigences suivantes : La clé doit être 128, 192 ou 256 bits. Les octets de données (par exemple, 32 octets pour 256 bits) doivent être encodés à l'aide de l'encodage « 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 la rotation de la clé.
Vous pouvez vérifier qu'une clé a fait l'objet d'une rotation en émettant une demande de liste de clés :
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
Où <instance_ID> est le nom de votre instance et votre <IAM_token> est votre jeton IAM.
Examinez les valeurs lastRotateDate et keyVersion de 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:kms: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": "Deprecated",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"algorithmBitSize": 256,
"algorithmMode": "Deprecated",
"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 keyVersion contient 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 Key Protect. 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://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/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 les actions de maintenance Key Protect, consultez Rôles d'accès au service.
-
Extrayez l'ID de la clé à laquelle appliquer la rotation.
Vous pouvez extraire l'ID d'une clé spécifiée en effectuant
GET /v2/keysdemande, ou en consultant vos clés dans le tableau de bord Key Protect. -
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 une nouvelle clé en exécutant la commande suivante : commande
curl.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rotate" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -d '{ "type": "application/vnd.ibm.kms.key+json", "name": "<key_alias>", "description": "<key_description>", "extractable": <key_type>, "payload": "<encrypted_key>", "encryptionAlgorithm": "RSAES_OAEP_SHA_256", "encryptedNonce": "<encrypted_nonce>", "iv": "<iv>" }'Remplacez les variables de l'exemple de demande conformément au tableau suivant :
| Variable | Description |
|---|---|
| région | Obligatoire. L'abréviation de la région, telle que us-south ou eu-gb, qui désigne la zone géographique où se trouve votre instance Key Protect.Pour plus d'informations, consultez la section « Points de terminaison des services régionaux ». |
| keyID_or_alias | Obligatoire. Identificateur unique ou alias de la clé dont vous souhaitez effectuer la rotation. |
| IAM_token | Obligatoire. Votre jeton d'accès IBM Cloud. Incluez le contenu complet du jeton IAM, y compris la valeur Bearer, dans la demande cURL. Pour plus d'informations, consultez la section « Récupération d'un jeton d'accès ». |
| instance_ID | Obligatoire. Identificateur unique affecté à votre instance de service Key Protect. Pour plus d'informations, consultez la section « Récupération d'un identifiant d'instance ». |
| key_alias | Obligatoire. 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_description | Facultatif. Description é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_key | Obligatoire. Matériel de clé chiffré que vous souhaitez stocker et gérer dans le service. La valeur doit être codée en base64. Assurez-vous que la clé répond aux exigences suivantes : La clé doit avoir une longueur de 128, 192 ou 256 bits. Les octets de données (par exemple, 32 octets pour 256 bits) doivent être encodés à l'aide de l'encodage « base64 ». |
| key_type | Facultatif. Valeur booléenne qui détermine si les informations de clé peuvent quitter le service. Lorsque vous définissez l'attribut « extractable » sur « false », la clé devient une clé racine que vous pouvez utiliser pour les opérations d'encapsulation ou de désencapsulation. |
| encrypted_nonce | Obligatoire. 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, consultez le tutoriel : « Création et importation de clés de chiffrement ». |
| iv | Obligatoire. Vecteur d'initialisation (IV) généré par l'algorithme AES-GCM lorsque vous chiffrez une valeur nonce. Cette valeur sert à décoder la clé en vue de son stockage dans le système « Key Protect ». Pour en savoir plus, consultez le 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 de nouvelles informations de clé.
Facultatif : vérifiez la rotation de la clé avec jeton d'importation.
Vous pouvez vérifier qu'une clé importée via un jeton d'importation a fait l'objet d'une rotation en émettant une demande d'obtention de métadonnées de clé :
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/metadata" \
-H "accept: application/vnd.ibm.kms.key+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
Où <keyID_or_alias> est l'ID ou l'alias de la clé, <instance_ID> est le nom de votre instance, et votre <IAM_token> est votre jeton IAM.
Examinez les valeurs lastRotateDate et keyVersion de 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 la l'API Key Protect. Pour en savoir plus, voir Affichage des versions de clé.