Le chiffrement des disques permet de chiffrer automatiquement les données écrites sur les disques et de les déchiffrer lors de la lecture. Avec des clés gérées par KMS, vous pouvez chiffrer les volumes de disque du cluster sans déployer votre propre infrastructure de gestion des clés. Cette rubrique explique comment configurer une StorageClass avec KMS pour chiffrer les volumes de disque au repos.
Cette fonctionnalité couvre le chiffrement des volumes de données des charges de travail via une StorageClass. Elle ne couvre pas le chiffrement du volume racine des nœuds.
Fonctionnement du chiffrement
Les disques Alibaba Cloud utilisent un chiffrement AES-256 géré par KMS. KMS met en œuvre une hiérarchie de clés à deux niveaux — clés maîtres client (CMK) et clés de données (DK) — via le chiffrement sous enveloppe :
Chiffrez une clé de données. KMS chiffre la DK avec la CMK. La DK chiffrée est stockée aux côtés des données chiffrées et ne peut pas être déchiffrée sans la CMK.
Stockez et lisez les données chiffrées. Lors de la lecture des données chiffrées, KMS déchiffre la DK après avoir vérifié la requête. La DK en texte clair existe uniquement en mémoire pendant les E/S du disque et n'est jamais écrite sur le support de stockage.
La CMK en texte clair ne quitte jamais le module de sécurité matériel (HSM) géré par KMS. La DK en texte clair existe uniquement dans la mémoire de l'hyperviseur et n'est jamais stockée sur le disque.
Consultez Processus de chiffrement.
Types de données pouvant être chiffrés
Types de disques pris en charge
Les types de disques suivants prennent en charge le chiffrement :
| Type de disque | Chiffrement pris en charge |
|---|---|
| Enterprise SSDs (ESSDs) | Oui |
| ESSD AutoPL disks | Oui |
| ESSD Entry disks | Oui |
| Standard SSDs | Oui |
| Ultra disks | Oui |
| Basic disks | Oui |
| Local disks | Non |
Limites
Vous ne pouvez définir le chiffrement que lors de la création du disque ; il est impossible de le modifier par la suite. Le montage et le démontage n'affectent pas le chiffrement.
La conversion d'un disque non chiffré en disque chiffré, ou inversement, n'est pas prise en charge.
Autoriser ECS à accéder à KMS
Accordez à Elastic Compute Service (ECS) l'accès à KMS en configurant le rôle RAM AliyunECSDiskEncryptDefaultRole.
-
Créez le rôle RAM (consultez Créer un rôle RAM pour un service Alibaba Cloud de confiance) avec les valeurs suivantes :
Si le rôle
AliyunECSDiskEncryptDefaultRoleexiste déjà, ignorez cette étape.Champ Valeur Principal Type Cloud Service Principal Name Elastic Compute Service Role Name AliyunECSDiskEncryptDefaultRole -
Accordez des autorisations au rôle
AliyunECSDiskEncryptDefaultRole(consultez Accorder des autorisations à un rôle RAM) avec les valeurs suivantes :ImportantAliyunKMSFullAccessaccorde des autorisations complètes sur KMS. Pour appliquer le principe du moindre privilège, utilisez une politique personnalisée avec les autorisations suivantes :Champ Valeur Resource Scope Account Policy AliyunKMSFullAccess(accès complet à KMS) ouAliyunECSDiskEncryptCustomizedPolicy(autorisations minimales requises){ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt", "kms:TagResource" ], "Resource": "*" } ] } Cliquez sur Grant permissions.
Procédure
Le chiffrement se configure au niveau de la StorageClass. Toute revendication de volume persistant (PVC) qui utilise une StorageClass activée pour le chiffrement s'appuie sur un disque chiffré.
Prérequis
Assurez-vous d'avoir :
-
Le module complémentaire Container Storage Interface (CSI) (csi-plugin et csi-provisioner) installé. Vérifiez sa présence sous Operations > Add-ons > Storage. Consultez Mettre à jour csi-plugin et csi-provisioner.
Si votre cluster utilise FlexVolume, migrez vers CSI avant de continuer. FlexVolume n'est plus pris en charge. Consultez Migrer de FlexVolume vers CSI .
Le rôle RAM
AliyunECSDiskEncryptDefaultRoleconfiguré avec les autorisations KMS (consultez Autoriser ECS à accéder à KMS)
Étape 1 : Créer une StorageClass chiffrée
-
Créez un fichier nommé
sc-kms.yamlavec le contenu suivant, en ajustant les paramètres selon vos besoins :Paramètre Description encryptedDéfinissez sur "true"pour chiffrer les disques créés par cette StorageClass.kmsKeyIdClé KMS pour le chiffrement du disque. Si ce paramètre n'est pas défini, la CMK par défaut s'applique. Ignoré si encryptedest défini sur"false".typeType de disque. fsTypeType de système de fichiers. apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-disk-encrypted provisioner: diskplugin.csi.alibabacloud.com parameters: fsType: ext4 type: cloud_essd encrypted: "true" kmsKeyId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx reclaimPolicy: DeleteLe tableau ci-dessus décrit les paramètres liés au chiffrement dans la section
parameters. -
Créez la StorageClass :
kubectl create -f sc-kms.yaml
Étape 2 : Créer une PVC
-
Créez un fichier nommé
sc-pvc.yamlavec le contenu suivant :apiVersion: v1 kind: PersistentVolumeClaim metadata: name: disk-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: csi-disk-encrypted -
Créez la PVC :
kubectl create -f sc-pvc.yaml -
Vérifiez que la PVC est liée :
kubectl get pvcL'état de la PVC doit être
Bound. La colonneVOLUMEaffiche l'ID du disque provisionné :NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-2ze0nmbv2var0d9h**** 20Gi RWO csi-disk-encrypted <unset> 6m20s
Étape 3 : Vérifier le chiffrement du disque
Connectez-vous à la console ECS.
Choisissez Storage & Snapshots > Block Storage.
Connectez-vous à la console ECS.
Dans l'onglet Cloud Disk, trouvez le disque et cliquez sur son ID.
Dans l'onglet Basic Information, confirmez que Encrypted apparaît dans le champ Encrypted/Unencrypted.
Étapes suivantes
Consultez Chiffrer les disques cloud.