Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Démarrer avec AWS Systems Manager pour l'administration à distance

By Alexandre TostivintSep 8, 20245 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Chez DoiT, vous croiserez des profils variés, tous engagés à améliorer votre quotidien professionnel. Si vous avez déjà eu à vous connecter à vos instances EC2 via un VPN, vous savez à quel point ce processus peut être fastidieux. Automatiser la gestion de ces instances sans avoir à s'y connecter représenterait un vrai gain. Et il serait encore plus avantageux de piloter ces automatisations depuis une interface unique, plutôt que de les stocker sur chaque instance ou dans une golden image.

Lors d'une expérience précédente, j'ai été confronté à des problématiques similaires lorsque j'ai commencé à gérer notre parc de serveurs AWS Active Directory tout en devant intégrer rapidement de nouveaux collaborateurs. C'est à ce moment-là que j'ai découvert Systems Manager.

Qu'est-ce que Systems Manager ?

Systems Manager est la réponse d'AWS pour gérer intelligemment votre infrastructure. L'agent installé sur la machine reçoit des commandes depuis les comptes AWS et renvoie des informations, ce qui ouvre plusieurs possibilités :

  • Exécuter des commandes Windows et Linux. Chaque agent ajoute un utilisateur local nommé ssm-user, qui permet d'exécuter des commandes sur l'instance en bash, PowerShell et CMD. Vous pouvez vous appuyer sur IAM pour gérer les règles et les permissions, à la place des clés SSH et des règles réseau.
  • Inventaire et gestion des correctifs. Inventoriez vos applications et correctifs installés, puis définissez une politique de patching adaptée à vos préférences et à votre planning.
  • Runbooks et automatisation. Vous pouvez créer des documents Systems Manager regroupant une série d'étapes à appliquer sur une instance. Vous pouvez également mettre en place des automatisations Systems Manager qui interagissent avec votre infrastructure AWS via un rôle IAM et des API AWS comme EC2 ou Step Functions.
  • Maintenance Windows permet de planifier et de contrôler l'exécution des runbooks selon des critères précis de temps, de disponibilité et de réussite.

Aujourd'hui, je vais vous guider pour activer ce service et vous connecter à vos instances de manière interactive via SSM grâce à Session Manager.

Configuration de Systems Manager

Pour utiliser SSM, vous devez remplir les conditions suivantes :

  • L'agent doit être installé sur la machine
  • Un rôle IAM avec les permissions minimales pour Systems Manager (appelé AmazonSSMManagedInstanceCore) doit y être attaché
  • La machine doit pouvoir atteindre Internet sur le port 443, ou disposer de 3 endpoints VPC

Lorsque vous lancez une image fournie par AWS, l'agent Systems Manager est installé par défaut sur votre instance. Si ce n'est pas le cas, vous devrez peut-être exécuter l'une des commandes suivantes :

#Si vous êtes sur un système basé sur Red Hat
sudo yum install amazon-ssm-agent
#Si vous êtes sur un système basé sur Debian
sudo apt-get install amazon-ssm-agent
#Une fois installé, démarrez le service
sudo systemctl start amazon-ssm-agent

Le deuxième point implique d'attacher ou de mettre à jour le rôle d'instance utilisé sur votre machine. Vous devez attribuer un ensemble de permissions managées appelé AmazonSSMManagedInstanceCore, qui permet à la ressource d'interagir directement avec le service AWS via un jeu de permissions limité. Cela vous évite de stocker des identifiants sur l'instance et de risquer de les perdre.

Si vous n'aviez pas de rôle au départ, vous pouvez aussi tirer parti de la Default Host Management Configuration :

  • Rendez-vous sur la console AWS Systems Manager et sélectionnez Fleet Manager à gauche. Vérifiez que vous êtes bien dans la région où se trouvent la plupart de vos instances EC2.
  • Dans Account Management et Configure Default Host Management Configuration, activez Enable Default Host Management Configuration.
  • On vous demandera de choisir un rôle IAM ; vous pouvez retenir l'option recommandée pour créer un nouveau rôle Instance Management par défaut.

Lors de la création du rôle IAM par défaut pour la gestion des hôtes, vous pouvez créer un nouveau rôle ou en utiliser un existant

  • Finalisez la configuration en cliquant sur Configure.

Toutes les instances de la région devraient pouvoir accéder à l'endpoint Systems Manager grâce au rôle par défaut que vous venez de créer.

Pour le dernier point, il y a de fortes chances que la plupart des configurations réseau vous permettent déjà d'atteindre Internet sur le port 443. Sinon, voici un récapitulatif des prérequis réseau.

L'agent SSM doit au minimum pouvoir contacter ces adresses sur le port 443 :

ssm.==region==.amazonaws.com
ssmmessages.==region==.amazonaws.com
ec2messages.==region==.amazonaws.com

Si vous n'autorisez pas l'accès vers l'extérieur, vous pouvez créer des Amazon VPC Endpoints pour activer l'accès. Vous devrez toutefois les configurer dans chaque région où vous les utiliserez, et rester vigilant sur votre configuration réseau pour que la plupart des instances puissent joindre le service. Je recommande de placer ces endpoints sur un VPC de service.

Utiliser Session Manager

Si vous disposez des bons identifiants et d'un accès à IAM, vous pouvez désormais vous connecter à ces instances directement, depuis n'importe où.

Si vous utilisez une instance Windows et souhaitez passer par l'interface graphique, rendez-vous dans Fleet Manager, sélectionnez votre instance et cliquez sur Connect with Remote Desktop.

L'interface de Fleet Manager, où vous pouvez visualiser et vous connecter à vos instances distantes

Comme Windows exige un mot de passe pour le compte d'administration, vous devez disposer des identifiants, ou bien l'instance doit être configurée avec une Key Pair. AWS s'en sert pour dériver un mot de passe pour le compte administrateur.

Interface de connexion à distance à des instances via Remote Desktop

Après avoir cliqué sur le bouton de connexion, Systems Manager prend en charge la connexion en créant un tunnel sécurisé entre votre ordinateur et l'instance à gérer. Vous pourrez ainsi reprendre vos tâches d'administration depuis n'importe où dans le monde.

Interface d'une connexion distante à un Windows Remote Desktop

La connexion en ligne de commande aux instances Windows et Linux est encore plus simple : il suffit de cliquer sur Start Commandline session pour ouvrir un terminal avec un accès Administration sur les machines enrôlées dans SSM.

Chaque agent crée un utilisateur local nommé ssm-user, que vous pouvez personnaliser selon que vous souhaitez ou non lui accorder des permissions de niveau administrateur sur l'instance. C'est ce même utilisateur qui exécutera les runbooks appelés Documents, que vous pouvez configurer dans Systems Manager.

Interface d'une connexion distante avec un terminal en ligne de commande Windows

J'espère que cet article vous sera utile. Il existe de nombreuses façons d'enrichir et de personnaliser votre expérience d'AWS Systems Manager ; cet article vous propose une approche pour profiter rapidement des fonctionnalités de ce service.

N'hésitez pas à me contacter via le DoiT Support si vous avez besoin d'aide pour administrer vos instances sur AWS, ou à laisser un commentaire sous cet article.

Contactez-nous chez DoiT. Composée exclusivement d'ingénieurs seniors, notre équipe est spécialisée dans le conseil cloud avancé : architecture, débogage et services de consulting.