Migration de VPC Block Storage de HPCS à Key Protect

Migrez votre chiffrement Hyper Protect Crypto Services (HPCS) pour les volumes VPC Block Storage afin d'utiliser IBM Key Protect ( Key Protect ) à la place.

Avant de commencer

Si vous ne l'avez pas encore fait, examinez les informations contenues dans l'aperçu de la migration pour déterminer si vous devez migrer vos volumes de stockage VPC Block afin d'utiliser Key Protect au lieu de HPCS.

Conditions préalables à la migration

Effectuez ces étapes avant de commencer la migration.

  1. Créez une nouvelle instance ou utilisez une instance existante de IBM Key Protect Dedicated.

  2. Dans l'instance Key Protect, notez le CRN de la clé racine du client (CRK) de destination.

    ibmcloud kp keys -i KP-INSTANCE-ID
    
  3. Assurez-vous que le VPC Block Storage a un accès en lecture à l'instance Key Protect. Il se peut que vous deviez attribuer un accès en utilisant IAM. Cet accès peut être croisé et doit être configuré correctement avant de poursuivre.

  4. Si vous ne l'avez pas encore fait, téléchargez les outils de migration qui se trouvent dans l'aperçu de la migration.

Etapes de migration

Suivez les étapes suivantes pour migrer vos volumes VPC Block Storage de HPCS à Key Protect.

  1. Créez un fichier CSV qui fait correspondre votre CRK HPCS source au CRK Key Protect de destination.

    1. Récupérez le CRN de votre clé racine HPCS.
        ibmcloud resource service-instance <hpcs-instance-name>
        ```
    2. Obtenez le CRN de votre clé racine Key Protect.
    
    ```sh {: pre}
        ibmcloud resource service-instance <kp-instance-name>
        ```
    3. Créez un fichier CSV (par exemple, `hpcs-kms-migration.csv`) au format suivant :
    
    ```csv {: codeblock}
        <source-hpcs-crk-crn>,<destination-kp-crk-crn>
        ```
        Exemple :
        ```csv {: codeblock}
        crn:v1:staging:public:hs-crypto:us-south:a/1152aa1c1ec54274ac42b807c90c:0ce92f39-69fd-4200-ba53-5ed555689:key:43eb6a-5451-4ea1-8080-0ca2d6cc7,crn:v1:staging:public:kms:us-south:a/1152aa1c1ec54274ac4ad8507c90c:b2ee9d-b658-4939-bb63-ffb6e7442:key:8cf424f4-bd6a-4de9-8ad5-5c60332de
        ```
    
  2. Configurer les variables d'environnement nécessaires à l'outil de migration.

    Si vous disposez de plusieurs instances KMS, assurez-vous que les points de terminaison utilisés dans cette étape correspondent bien à l'instance que vous souhaitez migrer.

    1. Exportez les variables d'environnement requises. Remplacez les valeurs de remplacement par vos points d'extrémité et votre clé API.
        export HPCS_API_ENDPOINT=https://<hpcs-instance-id>.api.<region>.hs-crypto.appdomain.cloud
        export KP_ST_ENDPOINT=https://<kp-instance-id>.api.<region>.kms.appdomain.cloud
        export IBMCLOUD_API_KEY=<api-key-with-access-to-kms-and-hpcs>
        export IBMCLOUD_API_KEY_KP_ST=$IBMCLOUD_API_KEY
        ```
        Pour les environnements d'essai, définir également :
        ```sh {: pre}
        export IBMCLOUD_STAGE=true
        export DEBUG_MODE=true
        ```
    
  3. Valider le fichier CSV et vérifier l'état actuel de la migration. Notez que si plusieurs clés sont utilisées, le fichier « CSV » peut contenir plusieurs entrées.

    1. Exécutez la commande « status » pour vérifier votre configuration.
        ./crk-migration-tool-darwin-arm64-1.1.0 status hpcs-kms-migration.csv
        ```
    2. Examinez le résultat pour vous assurer que les CRK de source et de destination sont correctement identifiés.
    
    
  4. Créer l'intention de migration CRK à l'aide du fichier CSV.

    1. Exécutez la commande create pour établir l'intention de migration.
        ./crk-migration-tool-darwin-arm64-1.1.0 create hpcs-kms-migration.csv
        ```
    2. Vérifiez que l'intention a été créée avec succès en consultant la sortie de la commande.
    
    
  5. Effectuer la migration réelle du CRK en synchronisant l'intention. Notez que si la même clé est utilisée dans plusieurs clusters, cela entraînera également la migration de tous les volumes qui utilisent cette clé dans ces clusters.

    1. Lancez la commande de synchronisation pour effectuer la migration.
        ./crk-migration-tool-darwin-arm64-1.1.0 sync hpcs-kms-migration.csv
        ```
    2. Attendez que l'opération de synchronisation soit terminée. Ce processus permet de migrer les clés de chiffrement de vos volumes.
    
    
  6. Vérifiez que vos volumes font désormais référence au CRK Key Protect.

    Il vous suffit de vérifier les volumes que vous avez migrés. Si vous avez utilisé le script de détection pour répertorier les volumes qui utilisent la clé HPCS, vérifiez les volumes figurant dans le résultat.

    1. Dressez la liste de vos volumes persistants et notez les identifiants des volumes.
        kubectl get pv
        ```
    2. Décrire un volume persistant pour obtenir l'identifiant du volume.
    
    ```sh {: pre}
        kubectl describe pv <pv-name>
        ```
    3. Vérifiez les détails du volume à l'aide de l'interface CLI de IBM Cloud.
    
    ```sh {: pre}
        ibmcloud is volume <volume-id>
        ```
    4. Dans le résultat, vérifiez que le champ `Encryption Key` fait désormais référence au CRK CRN de votre instance Key Protect au lieu de l'instance HPCS.
    
    
  7. Mettez à jour vos classes de stockage pour vous assurer que tous les futurs PVC utilisent le CRK Key Protect.

    Vous ne devez effectuer cette étape que pour les classes de stockage que vous avez migrées. Si vous avez utilisé le script de détection pour répertorier les classes de stockage qui utilisent la clé HPCS, effectuez cette étape pour les classes figurant dans la liste de résultats.

    1. Dressez la liste de vos classes de stockage existantes.
        kubectl get storageclass
        ```
    2. Identifier les classes de stockage qui font référence au CRK HPCS dans leurs paramètres.
    
    3. Supprimez les classes de stockage basées sur HPCS.
    
    ```sh {: pre}
        kubectl delete storageclass <storageclass-name>
        ```
    4. Créer de nouvelles classes de stockage avec Key Protect CRK CRN. Utilisez l'exemple suivant comme modèle :
    
    ```yaml {: codeblock}
        apiVersion: storage.k8s.io/v1
        kind: StorageClass
        metadata:
          name: ibmc-vpc-block-kms
        provisioner: vpc.block.csi.ibm.io
        parameters:
          profile: "general-purpose"
          encrypted: "true"
          encryptionKey: "<key-protect-crk-crn>"
          csi.storage.k8s.io/fstype: "ext4"
        reclaimPolicy: Delete
        allowVolumeExpansion: true
        volumeBindingMode: WaitForFirstConsumer
        ```
    5. Appliquer la nouvelle classe de stockage.
    
    ```sh {: pre}
        kubectl apply -f <storageclass-file>
        ```
    

Etapes suivantes

  • Vérifiez que vos applications continuent à fonctionner correctement avec les volumes migrés.
  • Surveillez votre instance Key Protect pour détecter tout problème d'accès ou de cryptage.
  • Mettez à jour votre documentation et vos runbooks pour refléter la nouvelle configuration de Key Protect.
  • Pensez à mettre en place des politiques de rotation des clés pour vos clés racine Key Protect.