GKE sur VMware version 1.10 permet de chiffrer des secrets sans avoir besoin d'un service de gestion des clés (KMS) externe, ni d'aucune autre dépendance.
Activer le chiffrement des secrets toujours activé
Le chiffrement des secrets permanents consiste à générer automatiquement une clé de chiffrement à utiliser avant de stocker les secrets dans la base de données etcd pour ce cluster. Les secrets sont chiffrés à l'aide d'une clé de chiffrement de données (DEK) générée pour chaque écriture du secret. Cette DEK est utilisée en mode AES-GCM pour chiffrer l'objet Secret. La clé DEK est à son tour chiffrée à l'aide d'une clé de chiffrement de clé (KEK, Key Encrypting Key). L'algorithme de chiffrement est A256GCM (AES GCM avec une clé de 256 bits).
La version de clé est un nombre qui indique la clé actuellement utilisée.
Vous pouvez activer le chiffrement des secrets une fois qu'un cluster a été créé.
Pour le cluster d'administrateur :
Modifiez le fichier de configuration du cluster d'administrateur pour ajouter la section
secretsEncryption
.Exécutez la commande
gkectl update
.gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Pour un cluster d'utilisateur :
Modifiez le fichier de configuration du cluster d'utilisateur pour ajouter la section
secretsEncryption
.Exécutez la commande
gkectl update
.gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Remplacez les éléments suivants :
ADMIN_KUBECONFIG
par le chemin d'accès au fichier kubeconfig du cluster d'administrateur.ADMIN_CLUSTER_CONFIG
par le chemin d'accès au fichier de configuration du cluster d'administrateur.USER_CLUSTER_CONFIG
est le chemin d'accès au fichier de configuration du cluster d'utilisateur.
Les commandes gkectl update
fournies dans cette section peuvent également être utilisées pour toute autre mise à jour du cluster correspondant.
Le stockage des clés
Les clés de chiffrement du cluster d'administrateur sont stockées sur le disque de données de celui-ci. Ce disque est installé sur la machine maître d'administration dans /opt/data, et les clés de chiffrement se trouvent sous /opt/data/gke-k8s-kms-plugin/generatedkeys/. Ces clés doivent être sauvegardées afin de conserver l'accès aux secrets chiffrés utilisés par cette clé. Vous devez activer le chiffrement de la VM/du stockage dans l'hyperviseur ou des mesures similaires pour vous assurer que les disques de VM du plan de contrôle sont protégés.
Rotation des clés
Pour effectuer la rotation d'une clé de chiffrement existante sur un cluster, incrémentez keyVersion
dans le fichier de configuration du cluster d'administrateur ouFichier de configuration de cluster d'utilisateur correspondant, puis exécutez la commande gkectl update
appropriée. Cette opération crée une clé correspondant au nouveau numéro de version, rechiffre chaque secret et efface l'ancien. Tous les nouveaux secrets sont chiffrés à l'aide de la nouvelle clé de chiffrement.
Désactiver le chiffrement permanent des secrets
Pour désactiver le chiffrement des secrets sur un cluster existant, ajoutez un champ disabled: true
. Exécutez ensuite la commande gkectl update
correspondante. Cette mise à jour déchiffre chaque secret existant et les stocke en texte brut. Tous les nouveaux secrets sont stockés en texte brut.
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true