Rotation des informations d'identification de cluster
Découvrez comment faire pivoter les informations d'identification des clusters créés à l'aide de Kubernetes Engine (OKE).
Pour activer la communication sécurisée TLS (anciennement SSL) vers, depuis et au sein des clusters, Kubernetes utilise des certificats PKI (Public Key Infrastructure) pour l'authentification. Pour plus d'informations sur les certificats PKI et les clusters Kubernetes, reportez-vous à Certificats et exigences PKI dans la documentation Kubernetes.
Les clusters que vous créez avec Kubernetes Engine ont des autorités de certification racine PKI (autorités de certification) et des clés privées pour le cluster, le composant etcd et le composant de proxy avant. Ces autorités de certification racine sont utilisées pour signer les certificats et les clés privées utilisés dans le cluster. Les autorités de certification racine, les certificats signés et les clés privées utilisés dans le cluster sont collectivement appelés informations d'identification de cluster.
Dans les clusters que vous créez avec Kubernetes Engine, les autorités de certification racine expirent au bout de cinq ans. Pour continuer à utiliser un cluster, vous devez modifier (ou "faire pivoter") les informations d'identification du cluster avant la fin de la période de cinq ans. En outre, votre organisation peut avoir mis en place des directives et des stratégies de sécurité qui nécessitent une rotation plus fréquente des informations d'identification de cluster (dans certains cas, beaucoup plus fréquente). Des messages vous informant de l'expiration prochaine des informations d'identification de cluster sont affichés dans la console. Vous pouvez également utiliser la console, l'interface de ligne de commande et l'API pour savoir quand les informations d'identification de cluster doivent expirer.
Lorsque vous effectuez la rotation des informations d'identification de cluster, vous devez mettre à jour les clients d'API Kubernetes qui utilisaient les informations d'identification précédentes pour communiquer avec l'API Kubernetes. Ces clients d'API Kubernetes incluent des fichiers kubeconfig et des pods qui communiquent directement avec l'API Kubernetes.
Vous pouvez démarrer la rotation des informations d'identification de cluster à tout moment, mais vous devez démarrer la rotation des informations d'identification avant l'expiration des informations d'identification.
Afin d'éviter toute interruption de service, si vous n'avez pas démarré la rotation des informations d'identification de cluster 90 jours avant l'expiration des informations d'identification, Kubernetes Engine tente de faire pivoter automatiquement les informations d'identification de cluster. Toutefois, nous vous recommandons vivement de faire pivoter les informations d'identification du cluster vous-même, plutôt que de vous appuyer sur la rotation automatique des informations d'identification du cluster. Pour plus d'informations, reportez-vous à Rotation automatique des informations d'identification de cluster.
La rotation des informations d'identification du cluster s'effectue en trois étapes :
-
Etape 1, lancement de la phase de démarrage de la rotation des informations d'identification : pendant la phase de démarrage de la rotation des informations d'identification, de nouvelles autorités de certification racine, de nouvelles clés privées et de nouveaux certificats sont créés. Vous pouvez lancer la phase Démarrer la rotation des informations d'identification à tout moment, mais vous devez démarrer la rotation des informations d'identification avant l'expiration des informations d'identification. Le démarrage de la rotation des informations d'identification avant l'expiration des informations d'identification permet également d'éviter toute interruption de service.
Lorsque vous lancez la phase Démarrer la rotation des informations d'identification, vous indiquez explicitement la durée d'une "période de retard" avant que la phase Terminer la rotation des informations d'identification soit lancée automatiquement. La période de retard vous permet de mettre à jour les clients d'API Kubernetes (étape 2). Pendant la période de retard, les informations d'identification héritées et les nouvelles informations d'identification fournissent une communication sécurisée vers, depuis et au sein du cluster. Le délai que vous spécifiez doit être d'au moins 1 jour et d'au plus 90 jours. Vous pouvez lancer manuellement la phase de rotation complète des informations d'identification avant la fin de la période de retard, à condition que les nouvelles informations d'identification datent d'au moins 24 heures et que vous ayez terminé avec succès l'étape 2.
Ne démarrez pas l'étape 2 tant que les nouvelles autorités de certification racine, clés privées et certificats n'ont pas été créés.
Remarque
Lorsque vous utilisez l'interface de ligne de commande ou l'API pour lancer la phase de démarrage de la rotation des informations d'identification, indiquez la durée de la période de délai au format de durée ISO 8601. Par exemple :- utilisez
P5D
pour indiquer cinq jours - utilisez
P5DT5H
pour indiquer cinq jours et cinq heures - utilisez
P5DT5H5M
pour indiquer cinq jours, cinq heures et cinq minutes
Pour plus d'informations sur le format de durée ISO 8601, effectuez une recherche en ligne.
- utilisez
- Etape 2, mise à jour des clients d'API Kubernetes : lorsque les nouvelles autorités de certification racine, clés privées et certificats ont été créées, et dans le délai que vous avez indiqué (pas moins de 1 jour et pas plus de 90 jours) :
- Configurez de nouveaux fichiers kubeconfig pour permettre l'accès au cluster à l'aide des nouvelles informations d'identification et des anciennes.
- Recréez ou redémarrez les noeuds de processus actif hébergeant des pods qui communiquent directement avec le serveur d'API Kubernetes (ou pour éviter toute interruption des noeuds de processus actif, redémarrez simplement les pods eux-mêmes). Si le cluster contient des noeuds virtuels, redémarrez tous les pods exécutés sur les noeuds virtuels.
Ne démarrez pas l'étape 3 tant que vous n'avez pas configuré de nouveaux fichiers kubeconfig et que vous n'avez pas recréé ou redémarré les noeuds de processus actif (ou simplement redémarré les pods).
- Etape 3, Lancer la phase Terminer la rotation des informations d'identification : lorsque vous avez terminé l'étape 2, et dans le délai que vous avez indiqué (pas moins de 1 jour et pas plus de 90 jours), vous pouvez lancer manuellement la phase Terminer la rotation des informations d'identification. Au cours de la phase de rotation complète des informations d'identification, les autorités de certification root héritées, les clés privées et les certificats sont retirés et supprimés. Lancez la phase Terminer la rotation des informations d'identification au plus tôt 24 heures après avoir lancé la phase Démarrer la rotation des informations d'identification et seulement après avoir terminé l'étape 2. Si les nouvelles informations d'identification datent d'au moins 24 heures, vous pouvez lancer la phase de rotation complète des informations d'identification dès que vous êtes prêt.
Si vous ne lancez pas manuellement la phase de rotation complète des informations d'identification pendant la période de retard que vous avez spécifiée (pas moins de 1 jour et pas plus de 90 jours), la phase de rotation complète des informations d'identification est automatiquement lancée à la fin de la période de retard.
Une fois la phase de rotation complète des informations d'identification terminée, nous vous recommandons de remplacer tout fichier kubeconfig créé au cours de l'étape 2 (qui contiendra à la fois les informations d'identification héritées et les nouvelles informations d'identification) par un nouveau fichier kubeconfig contenant uniquement les nouvelles informations d'identification. Si le cluster contient des noeuds virtuels, nous vous recommandons également de redémarrer tous les pods exécutés sur les noeuds virtuels.
Les phases Démarrer la rotation des informations d'identification et Terminer la rotation des informations d'identification sont générées dynamiquement en tant que demandes de travail distinctes. Pour suivre la progression des phases Démarrer la rotation des informations d'identification et Terminer la rotation des informations d'identification, affichez le statut de la demande de travail correspondante. Reportez-vous à Affichage des demandes de travail.
Vous pouvez effectuer la rotation des informations d'identification de cluster à l'aide de la console, de l'interface de ligne de commande et de l'API.
Tenez compte des points suivants lors de la rotation des informations d'identification de cluster :
- La rotation des informations d'identification est prise en charge pour les clusters exécutant Kubernetes version 1.20 ou ultérieure.
- La simple mise à niveau de la version de Kubernetes sur le plan de contrôle du cluster n'entraîne pas la rotation des informations d'identification. Vous devez effectuer toutes les étapes du processus de rotation des informations d'identification.
- La phase Démarrer la rotation des informations d'identification et la phase Terminer la rotation des informations d'identification ne peuvent commencer que lorsque tous les noeuds de processus actif du cluster (noeuds gérés, noeuds virtuels, noeuds autogérés) ont le statut READY. Si le statut d'un ou de plusieurs noeuds de processus actif passe à NOT READY pendant la rotation des informations d'identification, les opérations de rotation des informations d'identification s'interrompent jusqu'à 24 heures, en attendant que tous les noeuds aient à nouveau le statut READY avant la reprise. Si un ou plusieurs noeuds de processus actif ont toujours le statut NOT READY après 24 heures, les opérations de rotation des informations d'identification expirent.
- Si la phase Démarrer la rotation des informations d'identification ou la phase Terminer la rotation des informations d'identification échoue pour une raison quelconque, les informations d'identification héritées continuent de fonctionner et ne sont pas mises hors service tant qu'elles n'expirent pas.
- Si vous ne lancez pas manuellement la phase de rotation complète des informations d'identification dans le délai que vous avez indiqué (pas moins de 1 jour et pas plus de 90 jours), la phase de rotation complète des informations d'identification est lancée automatiquement. Si vous n'avez pas mis à jour les clients d'API Kubernetes avant la fin de la période de retard, le cluster subira une interruption de service.
Stratégies IAM requises pour la rotation des informations d'identification de cluster
Pour effectuer la rotation des informations d'identification de cluster, vous devez appartenir à un groupe disposant de droits d'accès permettant de gérer le cluster pour lequel effectuer la rotation des informations d'identification ou être dans le groupe d'administrateurs de la location.
Rotation automatique des informations d'identification de cluster
Kubernetes Engine surveille votre environnement Kubernetes pour identifier les clusters dont les informations d'identification approchent de leur date d'expiration. Lorsque le moteur Kubernetes détecte un cluster dont les informations d'identification expirent dans 90 jours et que vous n'avez pas commencé à effectuer de rotation, Kubernetes Engine tente de faire pivoter automatiquement les informations d'identification du cluster afin d'éviter toute interruption de service. Cependant, nous vous recommandons vivement de faire pivoter les informations d'identification de cluster vous-même, plutôt que de vous fier à Kubernetes Engine pour effectuer automatiquement la rotation des informations d'identification de cluster.
Le moteur Kubernetes effectue automatiquement la rotation des informations d'identification de cluster, quelle que soit la version de Kubernetes exécutée sur le cluster. Contrairement à la rotation manuelle des informations d'identification de cluster, la rotation automatique des informations d'identification de cluster ne nécessite pas que les clusters exécutent Kubernetes version 1.20 ou ultérieure.
Par ailleurs, contrairement à la rotation manuelle des informations d'identification de cluster, Kubernetes Engine effectue automatiquement la rotation des informations d'identification de cluster, quel que soit le statut des noeuds de processus actif dans le cluster. La rotation automatique des informations d'identification de cluster ne nécessite pas que les noeuds de processus actif aient le statut READY lors de la phase de démarrage de la rotation des informations d'identification ou de la phase de finalisation des informations d'identification.
Lorsque le moteur Kubernetes lance automatiquement la phase de démarrage de la rotation des informations d'identification, il vous informe que la rotation automatique des informations d'identification de cluster a démarré. Au cours de la phase de démarrage de la rotation des informations d'identification, de nouvelles autorités de certification racine, des clés privées et des certificats sont créés. Lorsque la phase de démarrage des informations d'identification est terminée :
- Si les informations d'identification de cluster n'ont pas encore expiré, Kubernetes Engine programme la phase de rotation complète des informations d'identification pour démarrer trois jours avant la date d'expiration des informations d'identification. Vous pouvez lancer manuellement la phase de rotation complète des informations d'identification plus tôt si vous préférez en effectuant l'étape 3, lancement de la phase de rotation complète des informations d'identification (pour éviter une interruption de service, terminez d'abord l'étape 2, mise à jour des clients d'API Kubernetes).
- Si les informations d'identification de cluster ont déjà expiré ou expirent dans les trois jours, Kubernetes Engine lance immédiatement la phase de rotation complète des informations d'identification.
Avant de lancer la phase d'informations d'identification complètes, pour éviter une interruption de service, il est de votre responsabilité de mettre à jour les clients d'API Kubernetes pour :
- Configurez de nouveaux fichiers kubeconfig pour permettre l'accès au cluster à l'aide des nouvelles informations d'identification et des informations d'identification héritées.
- Recréez ou redémarrez les noeuds de processus actif hébergeant des pods qui communiquent directement avec le serveur d'API Kubernetes (ou pour éviter toute interruption des noeuds de processus actif, redémarrez simplement les pods eux-mêmes).
Si Kubernetes Engine lance immédiatement la phase de rotation complète des informations d'identification car les informations d'identification de cluster ont déjà expiré, vous n'avez pas la possibilité de mettre à jour les clients d'API Kubernetes avant le retrait des informations d'identification héritées. Par conséquent, le cluster subira une interruption de service jusqu'à ce que vous ayez configuré de nouveaux fichiers kubeconfig pour permettre l'accès au cluster à l'aide des nouvelles informations d'identification, et recréé ou redémarré les noeuds de processus actif (ou redémarré les pods).
Utilisation de la console
Procédure de vérification de l'expiration des informations d'identification de cluster
- Sur la page de liste Clusters, sélectionnez le nom du cluster pour lequel vous voulez vérifier la date d'expiration des informations d'identification. Si vous avez besoin d'aide pour trouver la page de liste ou le cluster, reportez-vous à Liste des clusters.
- Dans l'onglet Détails du cluster, vérifiez la date en regard du libellé Les informations d'identification du cluster expirent le :.
Etape 1 : Lancer la phase de rotation des informations d'identification de début
- Dans la page de liste Clusters, sélectionnez le nom du cluster pour lequel effectuer la rotation des informations d'identification. Si vous avez besoin d'aide pour trouver la page de liste ou le cluster, reportez-vous à Liste des clusters.
- Dans l'onglet Détails du cluster, sélectionnez Démarrer la rotation en regard du libellé Les informations d'identification du cluster expirent le :.
- Dans la boîte de dialogue Démarrer la rotation des informations d'identification, indiquez la durée pendant laquelle retarder le lancement automatique de la phase Terminer la rotation des informations d'identification. La période de retard que vous indiquez doit être :
- au moins 24 heures après le lancement de la phase de rotation des informations d'identification de début
- pas plus de 90 jours après le lancement de la phase de rotation des informations d'identification de début
- Sélectionnez Démarrer pour lancer la phase de rotation des informations d'identification.
- Pour afficher la progression de la demande de travail Démarrer la rotation des informations d'identification, sélectionnez l'onglet Demandes de travail.
- Uniquement lorsque le statut de la demande de travail Démarrer la rotation des informations d'identification est Terminé, passez à la mise à jour des clients d'API Kubernetes (reportez-vous à Etape 2 : mise à jour des clients d'API Kubernetes).
Etape 2 : mise à jour des clients d'API Kubernetes
Lorsque le statut de la demande de travail Démarrer la rotation des informations d'identification est Terminé :
- Configurez de nouveaux fichiers kubeconfig pour accéder au cluster à l'aide des nouvelles informations d'identification, à l'aide de la commande
oci ce cluster create-kubeconfig
(reportez-vous à Configuration de l'accès au cluster).Les fichiers kubeconfig contiennent à la fois les nouvelles informations d'identification et les informations d'identification héritées.
- Recréez ou redémarrez les noeuds de processus actif hébergeant des pods qui communiquent directement avec le serveur d'API Kubernetes (ou pour éviter toute interruption des noeuds de processus actif, redémarrez simplement les pods eux-mêmes) :
- Recréer ou redémarrer des noeuds de processus actif :
- Recréez un noeud de processus actif en le supprimant sans réduire le pool de noeuds. Un nouveau noeud de processus actif est créé pour remplacer le noeud de processus actif supprimé. Reportez-vous à Suppression de noeuds de processus actif.
- Redémarrez un noeud de processus actif. Reportez-vous à la section Rebooting an Instance.
- Redémarrez les pods exécutés sur le cluster qui communiquent directement avec le serveur d'API Kubernetes. Si le cluster contient des noeuds virtuels, redémarrez tous les pods exécutés sur les noeuds virtuels.
- Recréer ou redémarrer des noeuds de processus actif :
- Uniquement lorsque vous avez configuré de nouveaux fichiers kubeconfig et recréé ou redémarré des noeuds de processus actif ou des pods, passez à la rotation des informations d'identification (reportez-vous à Etape 3 : lancement de la phase de rotation complète des informations d'identification).
Etape 3 : Lancer la phase de rotation complète des informations d'identification
Lorsque vous lancez la phase Démarrer la rotation des informations d'identification, vous indiquez explicitement la durée d'une période de retard avant le lancement automatique de la phase Terminer la rotation des informations d'identification. Le délai que vous spécifiez doit être d'au moins 1 jour et d'au plus 90 jours. Pendant la période de retard, les informations d'identification héritées et les nouvelles informations d'identification fournissent une communication sécurisée vers, depuis et au sein du cluster.
Si vous préférez, plutôt que d'attendre le lancement automatique de la phase de rotation complète des informations d'identification à la fin de la période de retard, vous pouvez lancer la phase de rotation complète des informations d'identification immédiatement, comme suit :
- Vérifiez les points suivants :
- Le statut de la demande de travail Démarrer la rotation des informations d'identification est Terminé. Reportez-vous à Etape 1 : lancement de la phase de rotation des informations d'identification.
- Clients d'API Kubernetes mis à jour. Reportez-vous à Etape 2 : mise à jour des clients d'API Kubernetes.
- Sur la page Cluster, sélectionnez Finaliser la rotation maintenant en regard du libellé Finaliser la rotation des informations d'identification sur :.
- Dans la boîte de dialogue Finaliser la rotation, sélectionnez l'option J'ai lu le message ci-dessus pour confirmer que vous avez mis à jour les clients d'API Kubernetes.
- Sélectionnez Démarrer pour lancer la phase de rotation complète des informations d'identification, au cours de laquelle les autorités de certification racine héritées, les clés privées et les certificats sont retirés et supprimés.
- Pour afficher la progression de la demande de travail Terminer la rotation des informations d'identification, sélectionnez l'onglet Demandes de travail.
Lorsque le statut de la demande de travail Terminer la rotation des informations d'identification est Terminé, les nouvelles informations d'identification sont utilisées pour la communication sécurisée vers, depuis et au sein du cluster. Les informations d'identification héritées ont été retirées et supprimées.
- (Recommandé, mais non requis) Remplacez tout fichier kubeconfig créé au cours de l'étape 2 (qui contiendra à la fois des informations d'identification héritées et nouvelles) par un nouveau fichier kubeconfig contenant uniquement les nouvelles informations d'identification, à l'aide de la commande
oci ce cluster create-kubeconfig
(reportez-vous à Configuration de l'accès au cluster). Si le cluster contient des noeuds virtuels, nous vous recommandons également de redémarrer tous les pods exécutés sur les noeuds virtuels.
Utilisation de l'interface de ligne de commande
Pour obtenir des informations sur l'utilisation de l'interface de ligne de commande, reportez-vous à Interface de ligne de commande (CLI). Afin d'obtenir la liste complète des indicateurs et des options disponibles pour les commandes de l'interface de ligne de commande, reportez-vous à Référence de ligne de commande.
Lancement de la phase de démarrage de la rotation des informations d'identification
oci ce cluster start-credential-rotation --auto-completion-delay-duration <number-of-days> --cluster-id <cluster-ocid>
Par exemple :
oci ce cluster start-credential-rotation --auto-completion-delay-duration 'P5D' --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Affichage du statut des demandes de travail de rotation des informations d'identification
oci ce cluster credential-rotation-status get --cluster-id <cluster-ocid>
Par exemple :
oci ce cluster credential-rotation-status get --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Lancer la phase de rotation des informations d'identification
oci ce cluster complete-credential-rotation --cluster-id <cluster-ocid>
Par exemple :
oci ce cluster complete-credential-rotation --cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd
Utilisation de l'API
Exécutez les opérations suivantes pour effectuer la rotation des informations d'identification de cluster :