Cette page explique comment alterner les clés pour les comptes de service suivants :
Pour effectuer la rotation des clés de votre compte de service, procédez comme suit :
Créez un répertoire pour stocker une sauvegarde de vos secrets actuels :
mkdir backup
Notez les informations suivantes pour le compte de service concerné :
Accès aux composants
Cluster Secret Espace de noms Admin admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Admin private-registry-creds kube-system Utilisateur private-registry-creds kube-system - Si vous n'utilisez pas de registre privé, le Secret
private-registry-creds
contient la clé de votre compte de service d'accès au composant. - Si vous utilisez un registre privé, le Secret
private-registry-creds
contient les identifiants de votre registre privé, et non la clé de compte de service d'accès au composant.
Registre Connect
Cluster Secret Espace de noms Admin admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Surveillance et journalisation
Cluster Secret Espace de noms Admin admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Utilisateur google-cloud-credentials kube-system Utilisateur stackdriver-service-account-key knative-serving Journaux d'audit
Cluster Secret Espace de noms Admin admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Admin kube-apiserver CLUSTER_NAME Stackdriver
Cluster Secret Espace de noms Admin admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Utilisateur google-cloud-credentials kube-system Utilisateur stackdriver-service-account-key knative-serving - Si vous n'utilisez pas de registre privé, le Secret
Créez une sauvegarde de chaque secret à l'aide de la commande suivante :
kubectl get secret SECRET --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json
Remplacez les éléments suivants :
NAMESPACE
: espace de noms dans lequel se trouve le secret. Par exemple,kube-system
.KUBECONFIG
: chemin d'accès au fichier kubeconfig pour le cluster d'administrateur ou d'utilisateur.SECRET
: nom du secret. Par exemple,admin-cluster-creds
.
Par exemple, exécutez les commandes suivantes pour le compte de service de journalisation d'audit :
kubectl get secret admin-cluster-creds --namespace kube-system \ --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json kubectl get secret user-cluster-creds --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json kubectl get secret kube-apiserver --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
Pour créer un fichier de clé de compte de service, exécutez la commande suivante :
gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT
Remplacez les éléments suivants :
NEW_KEY_FILE
: nom du nouveau fichier de clé de compte de service.IAM_ACCOUNT
: adresse e-mail du compte de service.
Dans le fichier de configuration du cluster d'administrateur, recherchez le champ
componentAccessServiceAccountKeyPath
, la sectiongkeConnect
, la sectionstackdriver
et la sectioncloudAuditLogging
. À ces endroits, remplacez les chemins d'accès aux fichiers de clé de compte de service.Dans le fichier de configuration du cluster d'utilisateur, recherchez le champ
componentAccessServiceAccountKeyPath
, la sectiongkeConnect
, la sectionstackdriver
et la sectioncloudAudigLogging
. À ces endroits, remplacez les chemins d'accès aux fichiers de clé de compte de service.Enregistrez les modifications que vous avez apportées en exécutant les commandes suivantes:
Vous pouvez faire pivoter les touches d'un composant à la fois ou toutes les clés en même temps en définissant le composant sur
sakeys
.gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --admin-cluster gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Remplacez les éléments suivants :
COMPONENT
a l'une des valeurs suivantes :componentaccess
register
cloudauditlogging
stackdriver
sakeys
(fait pivoter toutes les clés de composant)
ADMIN_CLUSTER_KUBECONFIG
: chemin d'accès au fichier kubeconfig pour le cluster d'administrateur.ADMIN_CLUSTER_CONFIG
: chemin d'accès au fichier de configuration du cluster d'administrateur.USER_CLUSTER_CONFIG
: chemin d'accès au fichier de configuration du cluster d'utilisateur.
Recréation de nœuds
Certaines rotations de clés de compte de service peuvent prendre plus de temps, car la recréation de nœuds est requise:
Compte de service | Récréation des nœuds requise |
---|---|
Accès aux composants | Si vous utilisez Artifact Registry: Oui Si vous utilisez un registre privé: Non |
Journaux d'audit | Cluster administrateur: Oui, mais uniquement pour les nœuds de plan de contrôle Cluster utilisateur utilisant kubeception: Non Cluster utilisateur utilisant Controlplane V2: Oui, mais uniquement pour les nœuds de plan de contrôle |
Surveillance et journalisation | Non |
Registre Connect | Non |
Pour une rotation de clés qui nécessite la recréation de nœuds, ceux-ci sont remplacés dans un processus de mise à jour progressive, c'est-à-dire qu'ils sont recréés un par un.
Le temps d'arrêt possible lors d'une rotation des clés est semblable à celui d'une mise à niveau de cluster. Pour en savoir plus, consultez la section Temps d'arrêt pendant les mises à niveau.
Restaurer des sauvegardes
Si vous devez restaurer les sauvegardes des secrets que vous avez créés précédemment, exécutez la commande suivante :
kubectl apply -f backup/
Différences avancées entre les clusters pour la rotation des clés de compte de service
La commande gkectl update credentials
n'est que partiellement compatible avec les clusters avancés. Le tableau suivant répertorie les variantes de commande acceptées et non acceptées:
Commande | Description | Assistance |
---|---|---|
gkectl update credentials certificate-authorities rotate |
Alternez les autorités de certification. | Compatible |
gkectl update credentials certificate-authorities status |
(Aperçu) Afficher l'état de la rotation des autorités de certification. | Compatible |
gkectl update credentials certificate-authorities update-kubeconfig |
Téléchargez un fichier kubeconfig avec le dernier certificat client. | Compatible |
gkectl update credentials cloudauditlogging |
Mettre à jour les identifiants Cloud Audit Logs. | Non compatible |
gkectl update credentials componentaccess |
Mettez à jour les identifiants de clé du compte de service d'accès aux composants pour les clusters créés avec Google Distributed Cloud pour VMware. | Compatible |
gkectl update credentials f5bigip |
Mettez à jour les identifiants de l'équilibreur de charge F5 BIG-IP. | Non nécessaire |
gkectl update credentials ksa-signing-key rotate |
Faites tourner la clé de signature du jeton du compte de service Kubernetes (KSA). | Non compatible |
gkectl update credentials ksa-signing-key status |
Afficher l'état d'une rotation des clés de signature de jeton KSA en cours. | Non compatible |
gkectl update credentials |
Mettez à jour les identifiants du cluster. | Compatible |
gkectl update credentials privateregistry |
Mettez à jour les identifiants du registre privé d'un cluster. | Compatible |
gkectl update credentials register |
Mettre à jour les identifiants de la clé de compte de service enregistrée | Compatible |
gkectl update credentials sakeys |
Mettez à jour les identifiants des clés de compte de service pour un cluster. | Compatible |
gkectl update credentials stackdriver |
(Aperçu) Mettez à jour les identifiants Google Cloud Observability. | Compatible |
gkectl update credentials vsphere |
Mettez à jour les identifiants vSphere d'un cluster. | Compatible |
Pour obtenir une liste complète des fonctionnalités de Google Distributed Cloud pour VMware compatibles ou non avec les clusters avancés, consultez la section Différences lors de l'exécution de clusters avancés.