Par défaut, les données suivantes sont stockées chiffrées dans le plan d'exécution hybride :
- Données du système de gestion des clés (KMS)
- Données de mappage clé-valeur (KVM)
- Données en cache
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 pour KMS, KVM et le cache 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 | Champ d'application |
---|---|
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 hybride fournit un ensemble de clés encodées en base64 utilisées pour chiffrer les données 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.
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 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=" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
- Appliquez le fichier de remplacement à votre cluster comme suit :
- Si vous modifiez les clés KVM ou de cache, mettez uniquement à jour l'environnement :
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name
- Si vous modifiez les clés KMS, mettez à jour l'organisation et l'environnement :
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name
- Si vous modifiez les clés KVM ou de cache, mettez uniquement à jour l'environnement :
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é dans les étapes suivantes :
Les exemples de commandes suivants génèrent des chaînes appropriées de manière aléatoire. Il s'agit de chaînes de 32 caractères, encodées en base64 qui n'incluent pas de caractères non imprimables :
LC_ALL=C tr -dc A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)\\-+= < /dev/urandom | head -c 32 | openssl base64 PSFvX0BPc1Z2NVklcXdxcF8xR0N4MV4temFveStITU4=
ou
LC_ALL=C tr -dc "[:print:]" < /dev/urandom | head -c 32 | openssl base64