Par défaut, les données suivantes sont stockées chiffrées dans le plan d'exécution hybride :
- Données en cache
- Données des clés de contrat
- Données du système de gestion des clés (KMS)
- Données de mappage clé-valeur (KVM)
Le chiffrement des données ne nécessite aucune configuration spéciale de votre part. Toutefois, si pour une raison quelconque vous souhaitez utiliser vos propres clés de chiffrement (en remplaçant celles par défaut), vous pouvez le faire, comme expliqué dans cet article.
Champ d'application de la clé de chiffrement
Les clés de chiffrement Apigee hybrid ont un champ d'application. Par exemple, les clés KMS ont un champ d'application organisation. Cela signifie que la clé permet de chiffrer les données KMS pour l'ensemble de l'organisation. Le tableau suivant répertorie le champ d'application pour chaque type de clé :
Clé de chiffrement | Niveau d'accès |
---|---|
Contrat | Organisation uniquement |
KMS | Organisation uniquement |
KVM |
Organisation ou environnement
Si une règle KVM spécifie un champ d'application |
Cache | Environnement uniquement |
À propos des clés de chiffrement par défaut
Par défaut, Apigee hybrid fournit un ensemble de clés encodées en base64 permettant de chiffrer les données de contrat, KVM, KMS et de cache. Le programme d'installation Apigee hybride stocke les clés dans le plan d'exécution sous forme de secrets Kubernetes et les utilise pour chiffrer vos données avec le chiffrement standard AES-128. Les clés sont sous votre contrôle ; le plan de gestion hybride n'y a jamais accès, à aucun moment.
Les clés par défaut sont appliquées à tous les nouveaux composants Apigee hybrid lorsque vous les créez.
Modifier les clés de chiffrement par défaut
Bien que cela ne soit pas obligatoire, vous pouvez modifier n'importe quelle clé de chiffrement par défaut si vous le souhaitez. Pour remplacer une ou plusieurs clés par défaut, procédez comme suit :
- Copiez les stanzas suivants dans votre fichier de remplacement.
Cette configuration vous permet de modifier les clés de chiffrement KMS et KVM au niveau de l'organisation, ainsi que les clés de chiffrement KVM et de cache au niveau de l'environnement :
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Générez une nouvelle clé pour chaque clé que vous souhaitez remplacer. Chaque clé doit être une chaîne encodée en base64 d'une longueur de 16, 24 ou 32 octets exactement. Consultez également la section Créer une clé encodée.
- Remplacez les clés par défaut par de nouvelles. Dans cet exemple, toutes les clés par défaut sont remplacées par des clés :
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
Remplacer les clés par défaut
Vous pouvez remplacer les clés de l'organisation ou des environnements spécifiques nommés dans votre fichier de remplacement. Lorsque vous créez les composants, les clés que vous spécifiez pour l'organisation ou des environnements individuels remplacent les valeurs par défaut.
- Copiez les stanzas suivants dans votre fichier de remplacement.
Cette configuration vous permet de modifier les clés de chiffrement KMS et KVM au niveau de l'organisation, ainsi que les clés de chiffrement KVM et de cache au niveau de l'environnement :
org:YOUR_ORG_NAME kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key envs - name: ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key - name: 2ND_ENV_NAME kvmEncryptionKey: base64-encoded-key kmsEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Générez une nouvelle clé pour chaque clé que vous souhaitez remplacer. Chaque clé doit être une chaîne encodée en base64 d'une longueur de 16, 24 ou 32 octets exactement. Consultez également la section Créer une clé encodée.
- Spécifiez les clés que vous souhaitez remplacer. Dans cet exemple, toutes les clés par défaut sont remplacées par des clés :
org:hybrid-org kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" envs: - name: prod kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "QjEyAvC1Njc4OTAxMjM0NQ==" envs: - name: test kvmEncryptionKey: "A1b2C3d4E5f6G7h8I9j10K==" kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" cacheEncryptionKey: "B1c2D3e4F5f6H7i8J9k10L=="
Appliquer les modifications apportées aux clés
Appliquez le fichier de remplacement à votre cluster en exécutant les commandes Helm suivantes :- Si vous modifiez la clé de contrat ou la clé KVM de l'organisation, mettez à jour l'organisation :
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
- Si vous modifiez la clé de cache ou la clé KVM d'un environnement, mettez à jour l'environnement :
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f OVERRIDES_FILE.yaml
- Si vous modifiez les clés KMS, mettez à jour l'organisation et l'environnement :
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE.yaml
Remarque sur la rétrocompatibilité
Si vous deviez supprimer les clés de chiffrement dans votre fichier de remplacement lors de la première installation d'Apigee hybride, vous désactiveriez le chiffrement et les valeurs seraient stockées de manière non chiffrée. Si, par la suite, vous activez le chiffrement en fournissant des clés, les données en sortie restent non chiffrée. Toutefois, toutes les données futures ajoutées seront chiffrées. Le système continue de fonctionner normalement avec les données non chiffrées et les nouvelles données chiffrées.
Sachez également que vous ne pourrez plus modifier les clés de chiffrement une fois les données d'exécution chiffrées.
Créer une clé chiffrée
Une clé au format Base64 correctement formatée est requise pour le chiffrement des données KVM, KMS et de cache. La clé utilisée pour l'une de ces actions doit être encodée en base64 à partir d'une chaîne de 16, 24 ou 32 octets, comme expliqué ci-dessous :
L'exemple de commande suivant génère de manière aléatoire une chaîne appropriée de 32 caractères encodée en base64.
head -c 32 /dev/random | openssl base64