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é :

  1. Connectez-vous à l'interface utilisateur.

  2. Accédez à Menu > Liste de ressources pour afficher la liste de vos ressources.

  3. Dans la liste de ressources IBM Cloud, sélectionnez votre instance Hyper Protect Crypto Services mise à disposition.

  4. Sur la page Clés KMS, utilisez la table Clés pour parcourir les clés de votre service.

  5. Sélectionnez la clé que vous souhaitez faire pivoter et cliquez sur l'icône Actions Icône Actions pour ouvrir une liste d'options pour la clé.

  6. 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.
  7. 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
  1. Extrayez vos données d'authentification et de service afin d'utiliser les clés dans le service.

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

  3. 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
    region Obligatoire. Abréviation de la région, comme us-south ou au-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.
    port Obligatoire. Numéro de port du noeud final d'API.
    key_ID Obligatoire. Identificateur unique de la clé racine à laquelle appliquer la rotation.
    IAM_token Obligatoire. 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_ID Obligatoire. Identificateur unique affecté à votre instance de service Hyper Protect Crypto Services. Pour plus d'informations, voir Extraction d'un ID d'instance.
    key_ring_ID Facultatif. 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-ring ont l'ID de fichier de clé "default". Pour plus d'informations, voir Gestion des fichiers de clés.

    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 pivoter une clé initialement générée parHyper Protect Crypto Services, omettez le payload attribut 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é.

  4. 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 lastRotateDate 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: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 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 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
  1. 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.

  2. 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/keys demande, ou en affichant vos clés dans l’interface utilisateur.

  3. Créez et extrayez un jeton d'importation.

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

  5. 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
    region Obligatoire. Abréviation de la région, comme us-south ou au-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.
    port Obligatoire. Numéro de port du noeud final d'API.
    key_ID Obligatoire. Identificateur unique de la clé à laquelle appliquer la rotation.
    IAM_token Obligatoire. 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_ID Obligatoire. Identificateur unique affecté à votre instance de service Hyper Protect Crypto Services. Pour plus d'informations, voir Extraction d'un ID 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 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. 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_type Valeur booléenne qui détermine si les informations de clé peuvent quitter le service. Lorsque vous définissez le extractable attribuer à false, le service désigne la clé comme clé racine que vous pouvez utiliser pour wrap ou unwrap opérations.
    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, reportez-vous à la section 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 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é.

  6. 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 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 l'API Hyper Protect Crypto Services. Pour en savoir plus, voir Affichage des versions de clé.

Etapes suivantes