Effectuer la rotation des identifiants de sécurité

Cet article explique comment faire tourner les identifiants de sécurité pour les clusters d'utilisateur et le service de gestion GKE sur AWS. Pour plus d'informations sur les fonctionnalités de sécurité de GKE sur AWS, consultez la page Sécurité.

Avant de commencer

Pour terminer les étapes décrites sur cette page, vous devez avoir accès au répertoire de votre configuration GKE sur AWS.

Certificats de service de gestion

Cette section explique comment faire tourner les certificats de votre service de gestion.

Autorités de certification de gestion

Cette section explique comment alterner la signature de l'autorité de certification (CA) pour les composants GKE sur AWS.

Autorité de certification racine du serveur de l'API de gestion

Pour effectuer une rotation de l'autorité de certification racine du serveur d'API, procédez comme suit :

  1. Accédez au répertoire contenant votre configuration GKE sur AWS. Vous avez créé ce répertoire lors de l'installation du service de gestion.
    cd anthos-aws
  2. Ouvrez votre fichier anthos-gke.status.yaml dans un éditeur de texte.
  3. Supprimez toutes les valeurs sous la clé certificateAuthority. Cela inclut encryptedPrivateKey.kmsKeyARN, encryptedPrivateKey.value et encryptedPrivateKey.certificate.
  4. Exécutez anthos-gke aws management init pour mettre à jour le fichier anthos-gke.status.yaml.

     anthos-gke aws management init
    
  5. Exécutez anthos-gke aws management apply pour mettre à jour le service de gestion.

     anthos-gke aws management apply
    

  1. À partir de votre répertoire anthos-aws, utilisez anthos-gke pour basculer vers le contexte de votre service de gestion.
    cd anthos-aws
    anthos-gke aws management get-credentials

Autres autorités de certification de gestion

Cette section décrit la rotation de toutes les autorités de certification suivantes :

  • CA de webhook d'authentification
  • CA Etcd
  • CA de signataire de compte de service

Vous pouvez alterner ces CA à l'aide de l'une des méthodes suivantes :

  • Supprimez la section certificateAuthority de votre fichier anthos-gke.status.yaml.

    1. Accédez au répertoire contenant votre configuration GKE sur AWS. Vous avez créé ce répertoire lors de l'installation du service de gestion.
      cd anthos-aws
    2. Ouvrez votre fichier anthos-gke.status.yaml dans un éditeur de texte.
    3. Supprimez toutes les valeurs sous la clé certificateAuthority. Cela inclut encryptedPrivateKey.kmsKeyARN, encryptedPrivateKey.value et encryptedPrivateKey.certificate.
    4. Exécutez anthos-gke aws management init pour mettre à jour le fichier anthos-gke.status.yaml.

       anthos-gke aws management init
      
    5. Exécutez anthos-gke aws management apply pour mettre à jour le service de gestion.

       anthos-gke aws management apply
      

  • Si une nouvelle version de GKE sur AWS est disponible, mettez à niveau votre service de gestion GKE sur AWS.

  • Recréez l'instance EC2 du service de gestion.

    1. À partir de votre répertoire anthos-aws, utilisez terraform pour obtenir l'ID de votre service de gestion.
      cd anthos-aws
      terraform output cluster_id
      La sortie inclut l'ID de votre service de gestion. Dans l'exemple ci-dessous, l'ID est gke-12345abc.
      terraform output cluster_id
      gke-12345abc
      
    2. Ouvrez la console AWS EC2.
    3. Cliquez sur Instances.
    4. Recherchez l'instance nommée cluster-id-management-0.
    5. Sélectionnez Actions -> Instance state -> terminate (Actions -> État de l'instance -> interrompre) pour supprimer l'instance. EC2 crée automatiquement une instance avec le même volume EBS.

Gérer les clés et certificats client/serveur TLS

Pour assurer la rotation des clés et des certificats client/serveur TLS pour votre service de gestion, vous devez recréer votre instance de service de gestion. Pour recréer l'instance, procédez comme suit :

  1. À partir de votre répertoire anthos-aws, utilisez terraform pour obtenir l'ID de votre service de gestion.
    cd anthos-aws
    terraform output cluster_id
    La sortie inclut l'ID de votre service de gestion. Dans l'exemple ci-dessous, l'ID est gke-12345abc.
    terraform output cluster_id
    gke-12345abc
    
  2. Ouvrez la console AWS EC2.
  3. Cliquez sur Instances.
  4. Recherchez l'instance nommée cluster-id-management-0.
  5. Sélectionnez Actions -> Instance state -> terminate (Actions -> État de l'instance -> interrompre) pour supprimer l'instance. EC2 crée automatiquement une instance avec le même volume EBS.

Comptes de service Google Cloud

Comptes de service de gestion

Pour effectuer la rotation des comptes de service Google Cloud pour votre service de gestion, procédez comme suit :

  1. Créez des comptes de service et téléchargez les clés de compte de service en suivant les étapes décrites dans la section Prérequis.
  2. Accédez au répertoire contenant votre configuration GKE sur AWS. Vous avez créé ce répertoire lors de l'installation du service de gestion.
    cd anthos-aws
  3. Si vous avez téléchargé des clés vers un autre chemin d'accès, ouvrez votre fichier anthos-gke.yaml dans un éditeur de texte. Remplacez la valeur de .spec.googleCloud.serviceAccountKeys.managementService, .status.googleCloud.serviceAccountKeys.connectAgent et .spec.googleCloud.serviceAccountKeys.node par les nouveaux chemins.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
     name: management
    spec:
     googleCloud:
       serviceAccountKeys:
         managementService: MANAGEMENT_KEY_PATH
         connectAgent: CONNECT_KEY_PATH
         node: NODE_KEY_PATH
     ...
    
  4. Exécutez anthos-gke aws management init pour mettre à jour le fichier anthos-gke.status.yaml.

    anthos-gke aws management init
    
  5. Exécutez anthos-gke aws management apply pour mettre à jour le service de gestion.

    anthos-gke aws management apply
    

Comptes de service de cluster d'utilisateur

Pour appliquer ces comptes de service à vos clusters AWSClusters et AWSNodePools, vous devez les mettre à niveau ou les supprimer, puis les recréer.

Certificats de cluster d'utilisateur

Cette section explique comment faire tourner les certificats de vos clusters d'utilisateur.

Autorités de certification de cluster d'utilisateur et clés SSH

La plupart des autorités de certification de vos clusters d'utilisateur sont créées lors de la création du cluster.

Lorsque vous supprimez un cluster utilisateur, GKE sur AWS effectue la rotation des certificats suivants :

  • CA racine de serveur d'API
  • CA de proxy frontal d'API
  • CA Etcd
  • CA de signataire de compte de service Kubernetes
  • Plan de contrôle sur les paires de clés SSH de nœud

CA de webhook d'authentification de cluster d'utilisateur

Pour faire tourner l'autorité de certification de webhook d'authentification de cluster d'utilisateur, vous devez modifier votre fichier anthos-gke.status.yaml et appliquer les modifications.

  1. Accédez au répertoire contenant votre configuration GKE sur AWS. Vous avez créé ce répertoire lors de l'installation du service de gestion.
    cd anthos-aws
  2. Ouvrez votre fichier anthos-gke.status.yaml dans un éditeur de texte.
  3. Supprimez toutes les valeurs sous la clé certificateAuthority. Cela inclut encryptedPrivateKey.kmsKeyARN, encryptedPrivateKey.value et encryptedPrivateKey.certificate.
  4. Exécutez anthos-gke aws management init pour mettre à jour le fichier anthos-gke.status.yaml.

     anthos-gke aws management init
    
  5. Exécutez anthos-gke aws management apply pour mettre à jour le service de gestion.

     anthos-gke aws management apply
    

Certificats et paires de clés TLS de cluster d'utilisateur

GKE sur AWS génère des certificats et des paires de clés TLS lors de la création d'une instance. Pour faire tourner ces paires, recréez l'instance en procédant comme suit pour votre plan de contrôle et vos pools de nœuds.

Plan de contrôle

  1. À partir de votre répertoire anthos-aws, utilisez anthos-gke pour basculer vers le contexte de votre service de gestion.
    cd anthos-aws
    anthos-gke aws management get-credentials
  2. Utilisez kubectl pour obtenir le groupe cible AWS EC2 du plan de contrôle à partir de l'AWSCluster.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get awscluster cluster-name \
      -o jsonpath='{.status.targetGroupName}{"\n"}'
    

    La sortie inclut le nom du groupe cible EC2 du plan de contrôle. (par exemple, gke-123456a7-controlplane)

  3. Ouvrez la console AWS EC2. Sélectionnez Target Groups (Groupes cibles) dans le volet de gauche.

  4. Cliquez sur la barre de recherche et recherchez votre groupe cible. Cliquez sur le nom du groupe cible, puis sur Targets (Cibles). La liste des instances de votre plan de contrôle s'affiche.

  5. Pour chaque instance du groupe cible, procédez comme suit :

    1. Cliquez sur l'ID d'instance de l'instance. La console des instances AWS EC2 s'affiche.

    2. Cliquez sur ID d'instance.

    3. Sélectionnez Actions -> Instance state -> terminate (Actions -> État de l'instance -> interrompre) pour supprimer l'instance. EC2 crée automatiquement une instance avec le même volume EBS.

    4. Revenez à la page "Groupes cibles".

  6. Après avoir arrêté toutes les instances du groupe, revenez à la page "Groupes cibles".

  7. Dans la section Registered Targets (Cibles enregistrées) de la page, recherchez la colonne État. Toutes les instances doivent se trouver à l'état Opérationnel. Si l'une des instances est opérationnelle, attendez quelques minutes, puis cliquez sur l'icône Actualiser ().

  8. Lorsque toutes les instances du groupe cible sont opérationnelles, passez à l'étape suivante.

Pools de nœuds

Pour effectuer la rotation des certificats TLS de votre pool de nœuds, procédez comme suit :

  1. À partir de votre répertoire anthos-aws, utilisez anthos-gke pour basculer vers le contexte de votre service de gestion.
    cd anthos-aws
    anthos-gke aws management get-credentials
  2. Utilisez kubectl pour obtenir le groupe cible EC2 AWS de votre pool de nœuds à partir d'AWSNodePool.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get awsnodepool -o jsonpath='{.items[*].status.autoScalingGroupName}{"\n"}'
    

    La sortie inclut le nom du groupe cible EC2 de votre pool de nœuds. (par exemple, gke-123456a7-nodepool-abc123)

  3. Ouvrez la console AWS EC2. Sélectionnez Target Groups (Groupes cibles) dans le volet de gauche.

  4. Cliquez sur la barre de recherche et recherchez votre groupe cible. Cliquez sur le nom du groupe cible, puis sur Targets (Cibles). La liste des instances de votre plan de contrôle s'affiche.

  5. Pour chaque instance du groupe cible, procédez comme suit :

    1. Cliquez sur l'ID d'instance de l'instance. La console des instances AWS EC2 s'affiche.

    2. Cliquez sur ID d'instance.

    3. Sélectionnez Actions -> Instance state -> terminate (Actions -> État de l'instance -> interrompre) pour supprimer l'instance. EC2 crée automatiquement une instance avec le même volume EBS.

    4. Revenez à la page "Groupes cibles".

  6. Après avoir arrêté toutes les instances du groupe, revenez à la page "Groupes cibles".

  7. Dans la section Registered Targets (Cibles enregistrées) de la page, recherchez la colonne État. Toutes les instances doivent se trouver à l'état Opérationnel. Si l'une des instances est opérationnelle, attendez quelques minutes, puis cliquez sur l'icône Actualiser ().

  8. Lorsque toutes les instances du groupe cible sont opérationnelles, passez à l'étape suivante.