Utiliser le chiffrement des secrets toujours activé

Google Distributed Cloud version 1.10 accepte le chiffrement des secrets sans nécessiter de service de gestion des clés externe ni d'autres dépendances.

Notez la limitation suivante avec les clusters avancés:

  • Version 1.31: le chiffrement des secrets toujours activé n'est pas compatible avec les clusters avancés.
  • Version 1.32 et ultérieure: le chiffrement permanent est compatible avec les clusters avancés.

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 des données (DEK, Data Encryption Key) générée pour chaque écriture de secret. Cette clé de chiffrement des données est utilisée en mode AES-GCM pour chiffrer l'objet Secret. La DEK est ensuite chiffrée à l'aide d'une clé de chiffrement de clé (KEK). L'algorithme de chiffrement est A256GCM (AES GCM à l'aide d'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 :

    1. Modifiez le fichier de configuration du cluster d'administrateur pour ajouter la section secretsEncryption.

    2. Exécutez la commande gkectl update.

      gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
  • Pour un cluster d'utilisateur :

    1. Modifiez le fichier de configuration du cluster d'utilisateur pour ajouter la section secretsEncryption.

    2. 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 le système maître administrateur à l'adresse /opt/data, et les clés de chiffrement se trouvent à l'adresse /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 la 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