Description du chiffrement pour Portworx
Présentation du chiffrement
L'image suivante illustre le flux de travail de chiffrement dans Portworx lorsque vous avez configuré un chiffrement par volume.
- L'utilisateur crée une réservation de volume persistant (PVC) avec une classe de stockage Portworx et demande que le stockage soit chiffré.
- Portworx appelle l'API IBM Key Protect ou Hyper Protect Crypto Services
WrapCreateDEKpour créer une phrase passe en utilisant la clé racine du client (CRK) stockée dans le secret Portworx. - L'instance de service IBM Key Protect ou Hyper Protect Crypto Services génère une phrase passe de 256 bits et l'encapsule dans la clé de chiffrement de données (DEK). La clé DEK est renvoyée au cluster Portworx.
- Le cluster Portworx utilise la phrase passe pour chiffrer le volume.
- Le cluster Portworx stocke la clé DEK en texte en clair dans la base de données etcd Portworx, associe l'ID du volume à la clé DEK et supprime la phrase passe de sa mémoire.
Présentation du déchiffrement
L'image suivante illustre le flux de travail de déchiffrement dans Portworx lorsque vous avez configuré un chiffrement par volume.
- Kubernetes envoie une demande de déchiffrement d'un volume chiffré.
- Portworx demande la clé DEK correspondant au volume dans la base de données etcd Portworx.
- La base de données etcd Portworx recherche la clé DEK et la renvoie au cluster Portworx.
- Le cluster Portworx appelle l'API IBM Key Protect ou Hyper Protect Crypto Services
UnWrapDEKen fournissant la clé DEK et la clé racine (CRK) stockée dans le secret Portworx. - IBM Key Protect ou Hyper Protect Crypto Services désencapsule la clé DEK pour extraire la phrase passe et renvoie la phrase passe au cluster Portworx.
- Le cluster Portworx utilise la phrase passe pour déchiffrer le volume. Une fois le volume déchiffré, la phrase passe est retirée du cluster Portworx.
Configuration du chiffrement de volume
Pour protéger les données d'un volume Portworx, vous pouvez utiliser un fournisseur de services de gestion de clés (KMS) tel que IBM Key Protect ou Hyper Protect Crypto Services.
Si vous ne voulez pas utiliser de clés racine IBM Key Protect ou Hyper Protect Crypto Services pour chiffrer vos volumes, vous pouvez sélectionner Kubernetes Secret comme type de magasin de secret Portworx lors de l'installation de Portworx. Cette option vous permet de stocker votre propre clé de chiffrement personnalisée dans un secret Kubernetes après avoir installé Portworx. Pour plus d’informations, consultez la documentation d’ Portworx.
Obtention de votre instance KMS et de vos données d'identification
Configuration du chiffrement de volume avec Hyper Protect Crypto Services
IBM Cloud modifie ses services de gestion de clés dédiés. Hyper Protect Crypto Services sera remplacé par Key Protect Dedicated.
-
Créez un ID de service.
-
Clusters privés: créez une passerelle de points d'extrémité virtuels privés qui permet d'accéder à votre instance KMS. Veillez à lier au moins une adresse IP de chaque sous-réseau de votre VPC au VPE.
-
Récupérer le point de terminaison public de la gestion des clés : URL. Veillez à noter votre noeud final dans le format correct ; par exemple,
https://api.us-south.hs-crypto.cloud.ibm.com:<port>. Pour plus d'informations, consultez la documentation de l'API Hyper Protect Crypto Services.
Configuration du chiffrement de volume avec IBM Key Protect
-
Créez un ID de service.
-
Extrayez la région dans laquelle vous avez créé votre instance de service et notez. Vous aurez besoin de cette valeur ultérieurement lorsque vous créerez votre secret.
-
Clusters privés: créez une passerelle de points d'extrémité virtuels privés qui permet d'accéder à votre instance KMS. Veillez à lier au moins une adresse IP de chaque sous-réseau de votre VPC au VPE.
Création d'un secret dans votre cluster
- Codez en base64 les données d'identification que vous avez extraites dans la section précédente et notez toutes les valeurs codées en base64. Répétez cette commande pour chaque paramètre afin d'extraire la valeur codée en base64.
echo -n "<value>" | base64 - Créez dans votre cluster l'espace de nom
portworx.kubectl create ns portworx - Créez le secret Kubernetes
px-ibmdans l'espace de nomportworxde votre cluster pour stocker vos informations IBM Key Protect.- Créez un fichier de configuration pour votre secret Kubernetes avec le contenu suivant.
apiVersion: v1 kind: Secret metadata: name: px-ibm namespace: portworx type: Opaque data: IBM_SERVICE_API_KEY: <base64_apikey> IBM_INSTANCE_ID: <base64_guid> IBM_CUSTOMER_ROOT_KEY: <base64_rootkey> IBM_BASE_URL: <base64_endpoint> ``` `metadata.name` : Entrez `px-ibm` comme nom de votre secret Kubernetes. Si vous utilisez un autre nom, Portworx ne reconnaît pas le secret lors de l'installation. `data.IBM_SERVICE_API_KEY` : Entrez la clé d'API IBM Key Protect ou Hyper Protect Crypto Services codée en base64 que vous avez récupérée précédemment. `data.IBM_INSTANCE_ID` : Entrez l'identificateur global unique (GUID) d'instance de service codé en base64 que vous avez récupéré précédemment. `data.IBM_CUSTOMER_ROOT_KEY` : Entrez la clé racine codée en base64 que vous avez récupérée précédemment. `data.IBM_BASE_URL` : IBM Key Protect : Entrez le noeud final d'API codé base64 de votre instance de service. : Hyper Protect Crypto Services : entrez le noeud final public de gestion de clés codé en base 64. 2. Créez le secret dans l'espace de noms `portworx` de votre cluster. ```sh {: pre} kubectl apply -f secret.yaml ``` 3. Vérifiez que le secret a été créé. ```sh {: pre} kubectl get secrets -n portworx ```