J'essaie d'utiliser AWS Systems Manager Session Manager pour me connecter à mes instances EC2.
Il s'agit d'instances EC2 privées, sans adresse IP publique, situées sur un sous-réseau privé dans un VPC avec accès Internet via une passerelle NAT.
Les ACL réseau sont entièrement ouvertes (à la fois entrantes et sortantes), mais il n'y a pas de groupe de sécurité qui autorise l'accès SSH aux instances.
J'ai parcouru toutes les conditions préalables de Session Manager (agent SSM, Amazon Linux 2 AMI), cependant, lorsque j'essaie de me connecter à une instance via AWS Console, j'obtiens un panneau d'avertissement rouge disant: " Nous n'avons pas pu nous connecter à votre exemple. Les raisons courantes à cela incluent ".
Ensuite, si j'ajoute un groupe de sécurité à l'instance qui autorise l'accès SSH (port entrant 22) et que j'attends quelques secondes, répétez la même procédure de connexion et l'avertissement rouge ne s'affiche pas et je peux me connecter à l'instance.
Même si je sais que ces instances sont sûres (elles n'ont pas d'adresse IP publique et sont situées dans un sous-réseau privé), leur ouvrir le port SSH n'est pas une exigence que j'attendrais de Session Manager. En fait, la documentation officielle indique que l'un de ses avantages est: " Pas de ports entrants ouverts et pas besoin de gérer des hôtes bastions ou des clés SSH ".
J'ai recherché des articles connexes mais je n'ai rien trouvé de spécifique. Des idées de ce que je pourrais manquer?
Merci!
3 Réponses :
Veuillez vous assurer que vous utilisez la console Session Manager et non la console EC2 pour établir la session SSH.
De ma propre expérience, je sais que parfois en utilisant l'option EC2 Console de "Connect" ne fonctionne pas au début.
Cependant, si vous accédez à la console AWS Systems Manager
, puis à Session Manager
vous pourrez Start session
sur votre instance. Cela suppose que votre agent SSM, votre rôle et votre connectivité Internet sont correctement configurés. Si oui, vous devriez pouvoir voir les instances gérées par SSM pour lesquelles démarrer votre session ssh.
Le groupe de sécurité doit également autoriser les connexions sortantes . Les ssh entrants ne sont pas nécessaires si vous configurez tout correctement.
Merci pour votre réponse. J'ai essayé de me connecter en utilisant la console Session Manager au lieu de la console EC2 et je n'ai pas fonctionné. En fait, je reçois l'avertissement rouge seulement la première fois que j'essaye de me connecter sans que le port SSH soit ouvert. Ensuite, j'attribue un groupe de sécurité avec un accès entrant au port 22 et je peux me connecter. Maintenant, lorsque je supprime le groupe de sécurité et que je réessaye de me connecter, je ne reçois pas l'avertissement rouge dans la console mais un écran vide, rien ne se passe et je ne peux pas entrer.
Cela étant dit, j'ai trouvé que mes instances EC2 n'avaient pas de port sortant ouvert dans les groupes de sécurité. J'ai ouvert toute la plage de ports TCP pour la sortie, sans ouvrir SSH entrant et j'ai pu me connecter. Ensuite, j'ai limité un peu la plage de ports sortants: j'ai essayé d'ouvrir uniquement la plage éphémère (les ports réservés bloqués) et ce problème est revenu.
Ma conclusion est que toute la plage de ports TCP doit être ouverte pour le sortant. C'est mieux que d'ouvrir le port SSH 22 pour le trafic entrant, mais il y a quelque chose que je ne comprends toujours pas complètement. Il est raisonnable que des ports sortants soient nécessaires pour établir la connexion et communiquer avec l'instance, pourquoi acheter des ports réservés? Le côté serveur SSH utilise-t-il un port réservé pour la connexion arrière?
Ah! À partir des conditions préalables de Systems Manager - AWS Systems Manager : «Vérifiez que vous autorisez le trafic sortant HTTPS (port 443) vers les points de terminaison Systems Manager.» En règle générale, vous ne devriez jamais avoir à restreindre les paramètres du groupe de sécurité sortant, sauf si vous effectuez des verrouillages de sécurité sévères. De même, ne modifiez jamais les paramètres NACL à moins qu'il n'y ait une raison spécifique (par exemple la création d'une DMZ).
En fait, je viens de confirmer que seul le port 443 sortant est suffisant pour que cela fonctionne. Indépendamment de cela, je vais ouvrir complètement la plage sortante dans le groupe de sécurité comme vous l'avez mentionné, mais il était bon de confirmer la cause spécifique du problème. Merci!
J'étais coincé avec ce problème similaire. Mes groupes de sécurité et NACLS avaient des ports entrants et sortants ouverts uniquement aux ports et adresses IP précis selon les besoins, en plus de la plage de ports éphémères de 1024 ~ 65535 pour toutes les adresses IP internes.
Enfin, ce qui a fonctionné, c'était l'ouverture du port 443 sortant pour toutes les adresses IP Internet. Même restreindre 443 sortants aux plages d'adresses IP internes ne fonctionnait pas.
Systems Manager n'utilise pas le port 22. D'après votre description, vous sélectionnez probablement EC2 Instance Connect , qui est une méthode de connexion différente.
Non, j'utilisais en effet Systems Manager Session Manager. S'il vous plaît voir ma réponse ci-dessous, je pourrais le résoudre partiellement. Des informations supplémentaires sur la plage de ports sortants que j'ai dû ouvrir sont appréciées. Merci!