Cette page explique comment alterner les clés pour les comptes de service suivants :
- Accès aux composants
- Registre Connect
- Surveillance et journalisation
- Journaux d'audit
- Mesure de l'utilisation
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 Administrateur admin-cluster-creds kube-system Administration user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administration 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 Administrateur admin-cluster-creds kube-system Administration user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Surveillance et journalisation
Cluster Secret Espace de noms Administrateur admin-cluster-creds kube-system Administration 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 Administrateur admin-cluster-creds kube-system Administration user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Administration kube-apiserver CLUSTER_NAME Mesure de l'utilisation
Cluster Secret Espace de noms Administration user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Utilisateur usage-metering-bigquery-service-account-key kube-system Stackdriver
Cluster Secret Espace de noms Administrateur admin-cluster-creds kube-system Administration 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. Exemple :kube-system
KUBECONFIG
: chemin d'accès au fichier kubeconfig pour le cluster d'administrateur ou d'utilisateur.SECRET
: nom du secret. 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
, la sectioncloudAudigLogging
et la sectionusageMetering
. À ces endroits, remplacez les chemins d'accès aux fichiers de clé de compte de service.Enregistrez les modifications apportées en exécutant les commandes suivantes. Vous pouvez alterner les clés d'un composant à la fois ou alterner toutes les clés simultanément 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
usagemetering
stackdriver
sakeys
(Alterner les clés pour plusieurs composants)
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 des clés de compte de service peuvent prendre plus de temps, car la recréation des nœuds est nécessaire:
Compte de service | Recréation des nœuds requise |
---|---|
Accès au composant | Si vous utilisez Container Registry: oui Si vous utilisez un registre privé: non |
Journaux d'audit | Cluster d'administrateur: oui Cluster d'utilisateur avec Contrlplane V2 activé: oui, mais uniquement les nœuds du plan de contrôle |
Surveillance et journalisation | Non |
Registre Connect | Non |
Mesure de l'utilisation | Non |
Pour une rotation des clés nécessitant la recréation des nœuds, ceux-ci sont remplacés par un processus de mise à jour progressive, c'est-à-dire que les nœuds sont recréés un par un.
Le temps d'arrêt possible lors d'une rotation des clés est semblable au temps d'arrêt pour une mise à niveau d'un 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/