AWS Connexion à une instance EC2 – Partie 3: SSM Session Manager
On continue dans la série des différentes méthodes pour se connecter à une instance EC2 grâce au service AWS Systems Manager (SSM) – Session Manager. À l’image de EC2 Instance Connect, cette méthode nous dispense l’utilisation, et donc la gestion, de clés SSH et rend encore plus accessible la gestion de flotte d’instances.
Qu’est-ce que AWS SSM – Session Manager ?
Session Manager est un service d’AWS System manager qui permet une gestion sécurisée et traçable des instances sans nécessiter l’ouverture de ports entrants, la gestion d’hôtes bastion ou l’utilisation de clés SSH. Il permet de se conformer aux politiques d’entreprise en assurant un accès contrôlé aux instances gérées, en appliquant des pratiques de sécurité strictes et en fournissant des journaux d’audit détaillés pour chaque session. De plus, il offre aux utilisateurs finaux un accès multiplateforme en un seul clic à ces instances gérées, via le console AWS ou en CLI. Enfin, il peut tout à fait être utilisé dans un environnement hybride ou multi-cloud et offrir une gestion centralisée de toutes les machines en un seul point.
Les étapes pour utiliser AWS SSM – Session Manager
Configurer un rôle IAM
Configurer un rôle IAM pour le service EC2 avec la politique “AmazonSSMManagedInstanceCore”. Cela permet à SSM Session Manager d’établir une communication sécurisée avec l’instance EC2 via l’API SSM (utilisant des websockets). L’instance doit donc être autorisée à échanger des données avec le service.
Appliquer le rôle IAM à l’instance EC2
Que ce soit lors de sa création ou sur une instance déjà en cours d’exécution. Il est possible d’utiliser SSM Session Manager sur des instances existantes en ajoutant simplement les autorisations via le rôle IAM et en suivant les étapes nécessaires.
Si vous travaillez déjà avec une flotte d’instance et que vous souhaitez les configurer pour l’utilisation de session manager, le plus simple est d’utiliser le service “Quick Setup” de SSM.
Pour ce faire, rendez-vous dans SSM – Quick Setup et créez une nouvelle configuration de type “Host Management”.
Sélectionnez les options souhaitées comme la mise à jour de l’agent SSM automatiquement ou la configuration de l’agent CloudWatch.
Puis sélectionnez la région et la liste d’instances via tag, resource group, manuel…
Le service se chargera, entre autres, de créer le rôle IAM adéquat et de paramétrer toutes les instances voulues. À noter que la configuration peut prendre plusieurs minutes avant de se finaliser et que l’on puisse utiliser Session manager.
S’assurer que l’AMI utilisée a l’agent SSM installé
La plupart des AMIs courantes incluent l’agent SSM par défaut.
Liste des instances compatibles:
- Amazon Linux Base AMIs dated 2017.09 and later
- Amazon Linux 2
- Amazon Linux 2 ECS-Optimized Base AMIs
- Amazon Linux 2023 (AL2023)
- Amazon EKS-Optimized Amazon Linux AMIs
- macOS 10.14.x (Mojave), 10.15.x (Catalina), and 11.x (Big Sur)
- SUSE Linux Enterprise Server (SLES) 12 and 15
- Ubuntu Server 16.04, 18.04, and 20.04
- Windows Server 2008-2012 R2 AMIs published in November 2016 or later
- Windows Server 2016, 2019, and 2022
Si vous utilisez d’autres AMI ou pour les clouds hybrides, voici quelques liens pour pouvoir installer l’agent manuellement:
Configurer le réseau
Il n’est pas nécessaire d’ouvrir des flux entrants spécifiques dans les groupes de sécurité, ce qui est toujours une bonne chose en termes de sécurité. Étant donné que la connexion se fait à partir de SSM, il suffit de configurer les flux sortants appropriés pour permettre la communication.
Au minimum:
- ec2messages.<region-ID>.amazonaws.com
- ssm.<region-ID>.amazonaws.com
- ssmmessages.<region-ID>.amazonaws.com
À noter qu’il n’est pas obligatoire d’avoir une IP publique, à condition que le sous-réseau (subnet) privé passe par une NAT gateway, afin que l’instance puisse sortir sur internet.
Se connecter à l’instance EC2
Avec les autorisations appropriées et une fois que tout est configuré, les utilisateurs peuvent facilement se connecter à leurs instances gérées via la console AWS ou en utilisant les commandes CLI.
AWS Console – EC2 connect
CLI
aws ssm start-session –region <region> –target <instance-id>
Pour conclure, ce service mérite d’être exploré car il est simple d’utilisation et fait partie d’une suite plus large: System Manager, offrant ainsi une multitude de fonctionnalités d’automatisation pour les flottes d’instances EC2. Vous pourrez lancer des commandes en simultané, gérer les mises à jour, contrôler l’accès en fonction de l’heure ou pour une période spécifique, et bien plus encore.
Ces informations sont correctes au moment de la rédaction de l’article, cependant, il est important de noter que les services AWS évoluent constamment. Il est possible que certaines fonctionnalités, noms, etc. soient différents ou aient changé depuis lors.