Impossible de se connecter à l'instance EC2 dans VPC (Amazon AWS)

46

J'ai pris les mesures suivantes:

  1. Création d'un VPC (avec un seul sous-réseau public)
  2. Ajout d'une instance EC2 au VPC
  3. Alloué une IP élastique
  4. Associé l'IP élastique à l'instance
  5. Création d'un groupe de sécurité et affectation à l'instance
  6. Modification des règles de sécurité pour autoriser les échos ICMP et TCP entrants sur le port 22

J'ai fait tout cela et je ne peux toujours pas cingler ou ssh dans l'instance. Si je suis les mêmes étapes moins les bits de VPC, je peux le configurer sans problème. Quelle étape me manque?

Ryan Lynch
la source
2
Avez-vous affecté une passerelle et un itinéraire au sous-réseau VPC?
Zorlem
Si je vais aux passerelles Internet, il y a une passerelle assignée au VPC. Comment vérifier si un itinéraire a été attribué?
Ryan Lynch
Est-ce que route est une table de route?
Ryan Lynch
2
oui, vous devez attribuer une "passerelle Internet" à la table de routage publique.
Zorlem
1
Excellent, merci mec. Si vous le mettez sous forme de réponse, je l'accepterai. Dans votre réponse, pourriez-vous également préciser quoi mettre exactement dans la table des itinéraires? Je mets 0.0.0.0/0 et la cible comme passerelle Internet, mais cela ne semble pas être la bonne chose à faire.
Ryan Lynch

Réponses:

75

Pour communiquer en dehors du VPC, chaque sous-réseau autre que celui par défaut nécessite une table de routage et une passerelle Internet qui lui est associée (les sous-réseaux par défaut reçoivent une passerelle externe et une table de routage par défaut).

Selon la manière dont vous avez créé le sous-réseau public dans le VPC, vous devrez peut-être les ajouter explicitement. Votre configuration VPC semble correspondre au scénario 1: un cloud privé (VPC) avec un seul sous-réseau public et une passerelle Internet pour permettre la communication sur Internet à partir de la documentation AWS VPC.

Vous devrez ajouter une passerelle Internet à votre VPC et à l' intérieur de la table de routage de sous - réseau public de assign0.0.0.0/0 (route par défaut) pour accéder à la passerelle Internet Assigned. Il existe une belle illustration de la topologie exacte du réseau dans la documentation.

De plus, pour plus d'informations, vous pouvez consulter la documentation AWS de VPC Internet Gateway . Malheureusement, c'est un peu en désordre et un piège non évident.

Pour plus d'informations sur les problèmes de connexion, voir aussi: Dépannage de la connexion à votre instance .

Zorlem
la source
2
En plus d'affecter la route par défaut à la passerelle Internet, j'ai également dû associer le sous-réseau à la table de routage. Mais une fois que j'ai fait ces deux choses, j'étais opérationnel. Merci.
Sam Kenny
4
Gestion VPC> Tableau des routes> [Routes]> Ajouter, 0.0.0.0/0, liste déroulante pour choisir votre passerelle Internet
Scott R. Frost
Je vais lancer ceci sur Internet pour apprendre de mon erreur. Si votre route vers Internet Gateway a la destination 0.0.0.0/32, cela ne fonctionnera pas. L'itinéraire doit être changé en 0.0.0.0/0 comme spécifié dans la réponse de Zorlem.
Douglas Held le
4

Je ne sais pas si c'est exactement le cas, mais je viens de créer un VPC avec des sous-réseaux publics et privés et j'ai remarqué qu'il existe un groupe de sécurité par défaut qui possède l'adresse source sous le même nom de groupe de sécurité. Efficace il n'y a pas d'accès. Devait changer cette source en Partout et cela a commencé à fonctionner.

dil
la source
Bonjour, je teste également le scénario 2. Instance publique et privée dans un sous-réseau public et privé. Le fait est que je ne comprends pas comment l'instance privée pourrait accéder à Internet et mettre à jour les logiciels.
Le One
Merci, c'était mon problème, je supposais, cela signifie que toutes les instances à l'intérieur de VPC ont accès
Santthosh
3

J'ai remarqué que (je pense) que vous devez faire attention à la zone de disponibilité dans laquelle votre instance est créée. Le sous-réseau, l'interface réseau et l'instance doivent se trouver dans la même zone de disponibilité, faute de quoi il est impossible de se connecter à une adresse IP publique. pour cette instance.

Je me trompe peut-être - mais je ne pense pas, cela m'a coûté 12 heures de travail à comprendre.

J'espère que ceci aide quelqu'un d'autre.

malsmith
la source
C'est correct. Comme indiqué dans la réponse, le scénario 1 correspond à la création d'un /16VPC, puis à la création d'un /24dans chaque AZ où vous souhaitez travailler
Machavity
1

Vous devez allouer un ENI et attribuer l’adresse IP Elastic à cet ENI. En outre, vous devez attribuer cet ENI à votre VPC. La table de routage doit également être correcte pour que les paquets extérieurs soient correctement transférés vers votre VPC.

Lucas Freitas
la source
Je pense que l'ajout d'un ENI est nécessaire lorsque vous souhaitez ajouter des interfaces réseau à vos instances. Par défaut, elles sont fournies avec une seule carte réseau.
Zorlem
0

Étant donné que SSH est un protocole statefull, vous devez vous assurer que la règle OUTBOUND suivante est définie dans votre ACL réseau:

Rule #  Type            Protocol        Port Range      Destination     Allow / Deny
100     Custom TCP Rule TCP (6)         49152-65535     0.0.0.0/0       ALLOW
Khalid Anwar
la source