Effectuer une rotation des clés de signature KSA

Clusters Anthos sur VMware (GKE On-Prem) utilise une clé cryptographique privée pour signer les jetons de compte de service Kubernetes qu'il émet 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 l'identité du pod.

Lors de la création d'un cluster d'utilisateur, Clusters Anthos sur VMware génère les clés privées et publiques. De plus, lors de la création d'un cluster, Clusters Anthos sur VMware enregistre le cluster dans un parc et fournit la clé publique à Google Cloud.

Par la suite, vous pourrez alterner les paires 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. En outre, 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 prévus. Les anciens jetons n'expirent jamais et sont conservés dans les secrets Kubernetes. Nous vous recommandons d'associer les jetons, car ils sont plus sécurisés.

Les jetons liés et les anciens jetons sont actualisés pendant la rotation des clés.

Lancer une rotation des clés

Avant de commencer une rotation des clés, tenez compte des points suivants:

  • Lors d'une rotation de clés, vous ne pouvez pas en lancer d'autres, de la rotation des autorités de certification ou d'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 crée des nœuds.

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 recevoir d'invite.

Afficher l'état d'une rotation de clés

Pour afficher l'état d'une rotation de 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]}