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.aws.amazon.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.

c.  Choisissez le type d'instance t2.micro.

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.

f. Sous Détails avancés, dans le menu déroulant Profile d'instance IAM, choisissez le rôle EnablesEC2ToAccessSystemsManagerRole que vous avez créé précédemment. Conservez toutes les autres valeurs par défaut. Choisissez Lancer des instances.

É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é.

Cette page vous a-t-elle été utile ?

Étapes suivantes

Lire les témoignages de clients
Découvrir comment Pegasystems utilise AWS Systems Manager pour gérer les instances à grande échelle avec un accès SSH dans cet article de blog.
Suivant »
Découvrir les cas d'utilisation d'AWS Systems Manager
Visiter le blog consacré aux Outils de gestion pour découvrir les autres cas d'utilisation d'AWS Systems Manager.
Suivant »
Explorer les fonctionnalités d'AWS Systems Manager
Consulter la page produit de Systems Manager pour découvrir les autres fonctionnalités telles que les paramètres de correction, d'inventaire et de stockage.
Suivant »