Exécuter des commandes à distance sur une instance EC2 avec AWS Systems Manager
DIDACTICIEL
Présentation
Dans ce didacticiel pratique, vous allez apprendre à utiliser AWS Systems Manager pour exécuter à distance des commandes sur vos instances Amazon EC2. Systems Manager est un outil de gestion qui vous permet d'obtenir des connaissances opérationnelles et de prendre des mesures sur les ressources AWS en toute sécurité et à grande échelle. En utilisant la commande d'exécution, une des fonctionnalités d'automatisation de Systems Manager, vous pouvez simplifier la gestion des tâches en éliminant la nécessité d'utiliser des hôtes bastion, des instances SSH ou des PowerShell à distance.
Dans notre scénario d'exemple, en tant qu'administrateur système, vous devez mettre à jour les packages sur vos instances EC2. Pour compliquer cette tâche d'administration habituellement simple, votre équipe de sécurité ne vous permet pas d'accéder directement aux serveurs de production par le biais des instances SSH ni d'utiliser les hôtes bastion. Heureusement, vous pouvez utiliser Systems Manager pour exécuter des commandes à distance, comme mettre à jour des packages, sur vos instances EC2.
Pour résoudre cette situation complexe, vous allez créer un rôle Identity and Access Management (IAM), autoriser un agent sur votre instance qui communique avec Systems Manager, puis respecter les meilleures pratiques en exécutant le document AWS-UpdateSSMAgent pour mettre à jour votre agent Systems Manager, et enfin utiliser Systems Manager pour exécuter une commande sur votre instance.
AWS Systems Manager est un outil toujours gratuit. L’instance EC2 que vous créez dans ce didacticiel est éligible à l’offre gratuite.
Ouvrez AWS Management Console afin de maintenir ouvert le guide détaillé. Lorsque la page s’affiche, saisissez votre nom d'utilisateur et votre mot de passe pour commencer.
Expérience AWS
Débutant
Temps nécessaire
10 minutes
Coût de réalisation
Admissible à l'offre gratuite
Éléments requis
- Compte AWS
- Dernière version de Chrome ou de Firefox (recommandé)
[**] Les comptes créés dans les dernières 24 heures sont susceptibles de ne pas encore avoir accès aux services nécessaires pour ce didacticiel.
Date de la dernière mise à jour
14 juillet 2022
Implémentation
Étape 1 : Créer un rôle Identity and Access Management (IAM)
Dans cette étape, vous devrez créer un rôle IAM qui sera utilisé pour autoriser Systems Manager à agir sur vos instances.
a. Ouvrez la console IAM sur https://console.thinkwithwp.com/iam/.
b. Dans le volet de navigation de gauche, sélectionnez Rôles, puis Créer un rôle.
c. Sur la page Sélectionner une entité de confiance, sous Service AWS, sélectionnez EC2, puis Suivant.
d. Sur la page Ajouter des autorisations, dans la barre de recherche, tapez AmazonEC2RoleforSSM. Dans la liste des politiques, sélectionnez AmazonEC2RoleforSSM, puis Suivant.
e. Sur la page Nommer, vérifier et créer, saisissez EnablesEC2ToAccessSystemsManagerRole dans le champ Nom du rôle. Dans le champ Description, saisissez Enables an EC2 instance to access Systems Manager (Autorise une instance EC2 à accéder à Systems Manager). Sélectionnez Créer un rôle.
Étape 2 : Créer une instance EC2
Dans cette étape, vous devrez créer une instance EC2 à l'aide du rôle EnablesEC2ToAccessSystemsManagerRole. Cela permettra à Systems Manager de gérer l'instance EC2.
a. Ouvrez la console Amazon EC2. Depuis la console EC2, sélectionnez la Région de votre choix. Systems Manager est pris en charge dans toutes les régions AWS. Choisissez Lancer l'instance.
b. Dans le champ Nom, saisissez MyEC2Tutorial. Sélectionnez AMI Amazon Linux. Conservez la sélection par défaut qui apparaît dans la liste déroulante. Vous pouvez également installer l'agent Systems Manager sur votre propre système Windows ou Linux.
d. Vous n'aurez besoin d'aucune paire de clés pour utiliser Systems Manager si vous souhaitez exécuter des commandes à distance. Faites défiler jusqu'à Paire de clés et, sous la liste déroulante Nom de la paire de clés, choisissez Procéder sans paire de clés.
e. Conservez les paramètres par défaut sous Paramètres réseau et Configurer le stockage.
Étape 3 : Mettre à jour l'agent Systems Manager
Maintenant que vous avez une instance EC2 qui exécute l'agent Systems Manager, vous pouvez automatiser les tâches d'administration et gérer l'instance. Au cours de cette étape, vous exécuterez une commande pré-intégrée, appellée document, qui mettra à jour l'agent. Nous vous recommandons de mettre à jour l'agent Systems Manager lorsque vous créez une nouvelle instance.
a. Dans la barre de navigation supérieure, recherchez Systems Manager et ouvrez la console Systems Manager.
b. Dans la section Gestion des nœuds de la barre de navigation de gauche, choisissez Gestionnaire de flotte.
c. Sélectionnez l'ID du nœud créé à l'étape 2, MyEC2Tutorial, pour ouvrir la page détaillée du nœud.
d. Sur la page détaillée du nœud, dans la liste déroulante Actions du nœud, sélectionnez Exécuter la commande d'exécution.
e. Sur la page Exécuter une commande, cliquez dans la barre de recherche et sélectionnez Préfixe du nom du document, cliquez sur Égaux, puis saisissez AWS-UpdateSSMAgent.
Sélectionnez ensuite le bouton radio situé à gauche de AWS-UpdateSSMAgent. Ce document mettra à jour l'agent Systems Manager sur l'instance.
f. Faites défiler la page vers le bas pour atteindre le volet Cibles, puis sélectionnez la case située à côté de votre instance EC2 gérée.
Enfin, faites défiler vers le bas et sélectionnez Exécuter.
g. Vous verrez ensuite une page documenter votre commande en cours d'exécution, puis passer au vert pour indiquer la réussite de l'opération. Félicitations ! Vous venez d'exécuter votre première commande à distance à l'aide de Systems Manager.
Étape 4 : Exécuter un script shell à distance
Maintenant que votre instance EC2 dispose de la version la plus récente de l'agent Systems Manager, vous pouvez mettre à jour les packages sur votre instance EC2. Dans cette étape, vous exécuterez un script shell via Exécuter une commande.
a. Dans la section Gestion des nœuds de la barre de navigation de gauche, choisissez Gestionnaire de flotte.
b. Sélectionnez l'ID du nœud créé à l'étape 2, MyEC2Tutorial, pour ouvrir la page détaillée du nœud.
c. Sur la page détaillée du nœud, dans la liste déroulante Actions du nœud, sélectionnez Exécuter la commande d'exécution.
d. Sur la page Exécuter une commande, cliquez dans la barre de recherche et sélectionnez Préfixe du nom du document, cliquez sur Égaux, puis saisissez AWS-RunShellScript.
Sélectionnez ensuite le bouton radio situé à gauche de AWS-RunShellScript.
e. Faites défiler la page vers le bas pour atteindre le volet Paramètres de la commande, puis insérez la commande suivante dans la zone de texte Commandes :
sudo yum update –y
f. Faites défiler la page vers le bas pour atteindre le volet Cibles, puis sélectionnez la case située à côté de votre instance EC2 gérée.
Enfin, faites défiler vers le bas et sélectionnez Exécuter.
g. Lorsque votre script s'exécute à distance sur votre instance EC2 gérée, l'État global qui s'affiche est En cours. L'État global ne mettra pas longtemps avant d'afficher Réussite. Lorsque cela est le cas, faites défiler la page vers le bas pour atteindre le volet Cibles et sorties, puis sélectionnez l'ID de votre instance. Votre ID d'instance sera différent de celui qui figure sur la photo.
h. Sur la page Sortie sur : i-XX, sélectionnez l'en-tête du volet Sortie pour afficher la sortie de la commande de mise à jour de l'instance.
Étape 5 : Arrêter vos ressources
Au cours de cette étape, vous supprimerez vos ressources liées à Systems Manager et à EC2. Important : il est conseillé de résilier les ressources qui ne sont pas utilisées de façon active, afin de réduire les coûts. Des ressources non résiliées peuvent entraîner des frais.
a. Ouvrez la console Amazon EC2 et dans le panneau de navigation de gauche, sous la section Instances, sélectionnezInstances.
b. Cochez la case de votre instance et choisissez État de l'instance, puis sélectionnez Terminer l'instance. Cela résiliera complètement votre instance.
Conclusion
Félicitations ! Vous venez de créer avec succès une instance gérée et d'exécuter une commande à distance à l'aide d'AWS Systems Manager. Vous avez d’abord configuré les bonnes autorisations via IAM. Ensuite, vous avez lancé une instance Amazon Linux qui était pré-installée avec l’agent Systems Manager. Enfin, vous avez utilisé Exécuter une commande pour mettre à jour l’agent et effectuer à distance une yum update.
Systems Manager est un très bon choix lorsque vous avez besoin de voir les données d'exploitation des groupes de ressources, d'automatiser les actions opérationnelles, de comprendre et de contrôler l'état actuel de vos ressources, de gérer les environnements hybrides, et d'assurer la sécurité et la conformité.