Clusters Anthos sur VMware (GKE On-Prem) utilise une clé cryptographique privée pour signer les jetons de compte de service Kubernetes qu'il envoie aux pods. Il utilise la clé publique correspondante pour valider les jetons lorsque les pods envoient des requêtes au serveur d'API Kubernetes. Lorsqu'un pod utilise Workload Identity pour appeler les API Google Cloud, Google Cloud utilise la même clé publique pour authentifier son identité.
Lors de la création du cluster d'utilisateur, Clusters Anthos sur VMware génère les clés privée et publique. Toujours lors de la création du cluster, Clusters Anthos sur VMware enregistre le cluster dans un parc et fournit la clé publique à Google Cloud.
Par la suite, vous pourrez effectuer une rotation de la paire de clés publique/privée. La rotation émet automatiquement de nouveaux jetons signés par la nouvelle clé privée. À la fin de la rotation, le cluster dispose d'une nouvelle clé privée, d'une nouvelle clé publique et de jetons actualisés. De plus, Google Cloud dispose de la nouvelle clé publique.
Jetons liés et anciens jetons
Un pod peut utiliser un ancien jeton ou un jeton lié pour l'authentification et l'autorisation lorsqu'il appelle le serveur d'API Kubernetes. Les jetons liés ont une durée de vie limitée et sont distribués aux pods à l'aide de volumes projetés. Les anciens jetons n'expirent jamais et sont conservés dans les secrets Kubernetes. Nous vous recommandons d'utiliser des jetons liés, car ils sont plus sécurisés.
Les jetons liés et les anciens jetons sont actualisés lors d'une rotation des clés.
Démarrer la rotation des clés
Avant de démarrer une rotation des clés, tenez compte des points suivants:
Lors d'une rotation de clés, vous ne pouvez pas démarrer une autre rotation des clés, une rotation des autorités de certification ou une mise à jour du cluster.
La rotation des clés ne peut pas être suspendue ni annulée. Toutes les anciennes clés sont supprimées.
Une rotation des clés supprime les nœuds de cluster existants et en crée d'autres.
Pour démarrer une rotation des clés:
gkectl update credentials ksa-signing-key rotate \ --config USER_CLUSTER_CONFIG \ --kubeconfig ADMIN_CLUSTER_KUBECONIFG \ [--skip-prompt]
Remplacez les éléments suivants :
USER_CLUSTER_CONFIG: chemin d'accès au fichier de configuration du cluster d'utilisateur
ADMIN_KUBECONFIG_FILE: chemin d'accès au fichier kubeconfig du cluster d'administrateur.
Incluez --skip-prompt
si vous ne souhaitez pas y être invité.
Afficher l'état d'une rotation des clés
Pour afficher l'état d'une rotation des clés:
gkectl update credentials ksa-signing-key status \ --config USER_CLUSTER_CONFIG \ --kubeconfig ADMIN_CLUSTER_KUBECONIFG
Si la rotation des clés est déjà terminée, un message semblable à celui-ci s'affiche:
State of KSASigningKeyRotation with KSASigningKeyVersion 2 is - status: True, reason: KSASigningKeyRotationCompleted, message:{"tokenVersion":2,"privateKeyVersion":2,"publicKeyVersions":[2]}
Si la rotation de la clé de signature KSA est toujours en cours, un message semblable à celui-ci s'affiche:
State of KSASigningKeyRotation with KSASigningKeyVersion 2 is - status: False, reason: KSASigningKeyRotationProcessedReason, message:{"tokenVersion":2,"privateKeyVersion":2,"publicKeyVersions":[1,2]}