Effectuer une rotation des clés de compte de service

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 :

  1. Créez un répertoire pour stocker une sauvegarde de vos secrets actuels :

    mkdir backup
  2. 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é du 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
  3. 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
  4. 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.
  5. Dans le fichier de configuration du cluster d'administrateur, recherchez le champ componentAccessServiceAccountKeyPath, la section gkeConnect, la section stackdriver et la section cloudAuditLogging. À ces endroits, remplacez les chemins d'accès aux fichiers de clé de compte de service.

  6. Dans le fichier de configuration du cluster d'utilisateur, recherchez le champ componentAccessServiceAccountKeyPath, la section gkeConnect, la section stackdriver, la section cloudAudigLogging et la section usageMetering. À ces endroits, remplacez les chemins d'accès aux fichiers de clé de compte de service.

  7. Enregistrez les modifications que vous avez apportées à l'aide des commandes suivantes :

    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 : l'une des valeurs componentaccess, register, cloudauditlogging, usagemetering ou stackdriver.

    • 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.

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/