Le chiffrement des données est recommandé pour les scénarios exigeant un niveau élevé de sécurité ou de conformité. Utilisez des Customer Master Keys (CMK) issues du service Key Management Service (KMS) ou des clés gérées par Object Storage Service (OSS) pour chiffrer les volumes OSS dans les clusters ACK. Cette approche garantit la confidentialité des données et vous offre un contrôle total sur vos informations.
Méthodes de chiffrement
Le chiffrement des volumes OSS s'effectue soit côté serveur (SSE), soit côté client. ACK prend uniquement en charge le chiffrement côté serveur.
Chiffrement côté serveur : OSS chiffre les données avant de les stocker sur disque dans un centre de données, puis les déchiffre automatiquement lors du téléchargement des objets.
Chiffrement côté client : utilisez un SDK de chiffrement côté client pour chiffrer les données localement avant de les télécharger vers OSS.
OSS propose deux méthodes de chiffrement côté serveur. Une seule méthode peut être appliquée à un objet à la fois.
-
Utilisation de CMK issues de KMS pour le chiffrement (SSE-KMS)
Utiliser la CMK par défaut : lors du téléchargement d'un objet, définissez l'en-tête de requête
X-OSS-server-side-encryptionsurKMSsans spécifier d'ID de CMK.Utiliser un ID de CMK spécifique : lors du téléchargement d'un objet, définissez l'en-tête de requête
X-OSS-server-side-encryptionsurKMS, et attribuez votreCMK IDau paramètreX-OSS-server-side-encryption-key-id.
ImportantL'utilisation des clés KMS entraîne des frais minimes liés aux appels API. Pour plus d'informations, consultez la rubrique Facturation de KMS 1.0.
Cette méthode est rentable car OSS n'envoie pas les données sur le réseau vers le serveur KMS pour le chiffrement et le déchiffrement.
-
Utilisation de clés entièrement gérées par OSS pour le chiffrement (SSE-OSS)
Cette méthode repose sur des clés entièrement gérées par OSS ; le chiffrement constitue une propriété de l'objet.
OSS génère et gère les clés de chiffrement des données en utilisant l'algorithme de chiffrement robuste AES-256, conforme aux normes industrielles.
Lors du téléchargement d'un objet, définissez l'en-tête de requête
X-OSS-server-side-encryptionsurAES256.
Configurez les paramètres de chiffrement d'un volume OSS à l'aide de l'outil ossfs. Ces paramètres sont appliqués lors du montage du volume persistant (PV).
Pour savoir comment configurer et installer ossfs, consultez la rubrique Installer ossfs 1,0 .
Prérequis
-
Les composants csi-plugin et csi-provisioner sont installés.
Les composants CSI sont installés par défaut. Vérifiez qu'ils restent présents. Consultez leur statut d'installation sur la page . Nous vous recommandons de mettre à jour les composants CSI vers la dernière version.
-
Créer un bucket. Le bucket et le cluster doivent appartenir au même compte Alibaba Cloud.
Pour monter un bucket OSS provenant d'un autre compte, nous vous recommandons d'utiliser RRSA pour l'authentification. Pour plus d'informations, consultez la rubrique Comment monter un bucket OSS depuis un autre compte ?
Scénario 1 : Utiliser la CMK KMS par défaut
-
Copiez le contenu suivant dans un fichier nommé kms-cmk-default.yaml.
apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-csi-pv volumeAttributes: bucket: "python" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" akId: "<YourAccessKey ID>" # Replace with your AccessKey ID akSecret: "<YourAccessKey Secret>" # Replace with your AccessKey Secret path: "/" encrypted: "kms"Paramètre
Description
akIdID AccessKey
akSecretSecret AccessKey
encryptedMéthode de chiffrement du volume :
kms: chiffrement KMS.aes256: chiffrement AES-256.
-
Créez le volume chiffré.
kubectl create -f kms-cmk-default.yaml -
Consultez le volume chiffré créé.
kubectl get pv
Scénario 2 : Utiliser un ID de CMK KMS spécifique
1. Configurer les autorisations d'accès à KMS
Pour chiffrer un objet OSS avec une CMK spécifique, l'utilisateur RAM ou le rôle associé à l'AccessKey du PV doit disposer des autorisations nécessaires pour utiliser cette CMK. Pour plus d'informations, consultez la section Chiffrement côté serveur.
Avant de commencer, assurez-vous d'avoir créé un utilisateur RAM ou créé un rôle RAM .
Connectez-vous à la console RAM en utilisant un compte Alibaba Cloud ou en tant qu'administrateur RAM.
Dans le volet de navigation, sélectionnez ou Role.
-
Recherchez l'utilisateur RAM cible et cliquez sur Add Permissions dans la colonne Actions. Vous pouvez également rechercher le rôle RAM cible et cliquer sur Attach Policy dans la colonne Actions. Suivez les instructions à l'écran pour accorder les autorisations. Attachez la stratégie système AliyunKMSFullAccess ou une stratégie personnalisée nommée AliyunOSSEncryptCustomizedPolicy.
L'autorisation AliyunKMSFullAccess offre un accès étendu. Pour un contrôle plus granulaire, créez une stratégie personnalisée nommée AliyunOSSEncryptCustomizedPolicy avec le contenu suivant.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "acs:kms:*:141661496593****:*" // This allows the principal to use all KMS keys under this Alibaba Cloud account. To allow access to only a specific CMK, replace the wildcard resource with the ARN of that CMK. ] } ] }
2. Créer le volume chiffré
-
Créez un fichier nommé kms-cmk.yaml.
apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-csi-pv volumeAttributes: bucket: "python" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" akId: "<YourAccessKey ID>" # Replace with your AccessKey ID akSecret: "<YourAccessKey Secret>" # Replace with your AccessKey Secret path: "/" encrypted: "kms" kmsKeyId: "<YourCMKID>" # Replace with your CMK ID -
Créez le volume chiffré.
kubectl create -f kms-cmk.yaml -
Consultez le volume chiffré créé.
kubectl get pv
Scénario 3 : Utiliser des clés gérées par OSS
-
Créez un fichier nommé sse-oss.yaml.
apiVersion: v1 kind: PersistentVolume metadata: name: oss-csi-pv spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: oss-csi-pv volumeAttributes: bucket: "python" url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" akId: "<YourAccessKey ID>" # Replace with your AccessKey ID akSecret: "<YourAccessKey Secret>" # Replace with your AccessKey Secret path: "/" encrypted: "aes256" -
Créez le volume chiffré.
kubectl create -f sse-oss.yaml -
Consultez le volume chiffré créé.
kubectl get pv