6 votes

Autoriser l'accès à l'instance RDS depuis l'instance EC2 sur le même VPC

Je rencontre des difficultés à accéder à une instance MySQL RDS.

J'essaie de me connecter à l'instance RDS depuis une instance EC2. Les deux instances RDS et EC2 sont toutes deux contenues dans le même VPC, myVPC. J'ai confirmé cela en vérifiant que le VPC répertorié sous l'instance RDS et l'instance RC2 correspondent.

La plupart des questions sur ce problème que j'ai trouvées tournaient autour des groupes de sécurité. De nombreux utilisateurs rencontraient des difficultés et leur problème était résolu en s'assurant que le groupe de sécurité VPC associé à l'instance RDS était le même que celui de leur instance EC2. Dans mon cas, les deux instances sont sur le même VPC et utilisent le même groupe de sécurité. Dans ce groupe de sécurité, j'ai une règle qui permet tout le trafic entrant sur l'ensemble de la plage d'adresses IP de mon VPC (par exemple, 172.35.0.0/16). Dans une tentative de faire fonctionner, j'ai permis TOUT le trafic sur tous les ports depuis toutes les adresses IP pour ce groupe de sécurité. Cela n'a toujours pas fonctionné.

Après lecture de la documentation, il semble qu'il faille s'assurer que vos sous-réseaux sont associés à la même table de routage utilisée par votre VPC. J'ai fait cela en allant à la table de routage associée à tous les sous-réseaux de mon VPC avec cette table de routage.

J'ai également essayé avec et sans une IP élastique. Je parviens à me connecter à mon instance EC2 avec l'adresse IP élastique.

Je réalise que cette question est posée assez souvent. Jusqu'à présent, je n'ai pas encore trouvé de solution à mon problème.

Modifié : Ajoute plus de détails sur les paramètres de sécurité L'instance ec2 et RDS utilisent le même groupe de sécurité. Dans ce groupe de sécurité se trouve une ligne qui indique quelque chose comme

MYSQL TCP 3306 172.35.0.0/16 Ma plage CIDR

J'ai ajouté

MYSQL TCP 3306 172.35.0.1/32 L'adresse IP privée de mon instance ec2

Aucune des solutions ci-dessus n'a fonctionné.

La solution qui a fonctionné était de modifier une ligne de mes paramètres de liste de contrôle d'accès réseau de

1 MySQL(3306) TCP(6) 3306 172.35.0.1/32 AUTORISER

à

1 TOUT LE TRAFIC TOUS TOUS 0.0.0.0/32 AUTORISER

Donc, mon problème a été résolu, mais maintenant j'ai une autre question. Comment puis-je éviter d'avoir le port 3306 ouvert à toutes les connexions entrantes? Je pourrais poser cette question comme une nouvelle question et la lier ici.

6voto

tofa Points 21

J'ai moi-même rencontré ce problème il y a quelques semaines. Dans mon cas, j'avais oublié d'autoriser le trafic sortant sur le port 3306 pour mon instance EC2 vers le CIDR VPC. Essayez d'ajouter une règle de sortie à votre groupe de sécurité de l'instance EC2 ressemblant à ceci :

Type    Protocol    Port Range    Destination
MYSQL   TCP         3306          172.35.0.0/16

0 votes

Cela n'a pas non plus corrigé le problème. Mes règles sortantes autorisent tout le trafic sortant sur tous les ports pour toutes les adresses IP. C'était le paramètre par défaut lorsque j'ai créé le groupe de sécurité. Je l'ai édité comme vous l'avez suggéré dans l'espoir que cela résoudrait le problème, mais malheureusement cela n'a pas fonctionné.

0 votes

De manière intéressante, après avoir modifié mes paramètres ACL pour autoriser tout le trafic entrant sur tous les ports, j'ai pu me connecter. Si je supprime cette règle et la remplace pour autoriser le trafic mysql depuis mon CIDR VPC, cela ne fonctionnera pas. Je ne comprends pas entièrement pourquoi c'est le cas. Si possible, je préférerais ne pas autoriser tout le trafic entrant sur tous les ports depuis l'ACL. Y a-t-il un moyen d'éviter cela et d'être plus spécifique avec les autorisations?

0 votes

Hmm. Pourriez-vous mettre à jour votre message avec une copie de vos groupes de sécurité attachés à l'instance RDS et à l'instance EC2 respectivement? Et aussi leurs adresses IP internes? @vckngs7

3voto

TheFiddlerWins Points 2963

Êtes-vous certain que votre base de données est à l'intérieur du VPC avec votre instance EC2 ? En supposant que c'est le cas, créez un groupe de sécurité qui autorise l'entrée du port 3306 depuis la plage CIDR de votre VPC.

Pour tester de manière un peu plus familière, vous pouvez temporairement créer une instance avec MySQL dessus, cela devrait fonctionner de la même manière tant qu'elle est également dans votre VPC.

Assurez-vous que votre RDS est dans un groupe de sous-réseaux accessible depuis d'autres machines de votre VPC, par exemple assurez-vous que vous pouvez router entre les sous-réseaux si vous êtes en multi-AZ, etc.

Mise à jour : Essayez également d'utiliser l'adresse IP du VPC, pas le nom DNS externe pour y accéder, votre DNS peut pointer vers une adresse réseau externe ou ne pas fonctionner correctement.

0 votes

En ce qui concerne votre premier commentaire, je suis assez certain que mon instance EC2 et mon instance RDs sont dans le même VPC. Si je regarde sous les détails des deux instances, le champ ID du VPC est identique pour les deux instances. Le port 3306 est également ouvert. Je l'ai ouvert à l'adresse IP publique de l'Elastic IP ainsi qu'à l'adresse IP privée et à la plage CIDR. Je n'utilise pas de configuration multi-AZ.

0 votes

Installer mysql client sur votre instance et voir si vous pouvez vous connecter au RDS manuellement. Il est un peu confus - la chose principale est de s'assurer que le port 3306 est ouvert!

2voto

Kevin Points 121

J'ai eu le même problème. J'utilisais des instances micro avec le niveau gratuit pour les tests. Si votre RDS et EC2 ne se trouvent pas dans les mêmes zones de disponibilité, vous devrez utiliser l'IP publique. S'ils se trouvent dans la même zone ou si l'EC2 est partagé entre plusieurs zones, vous pouvez utiliser l'IP privée.

1voto

Paul Points 655

Après avoir beaucoup cherché une solution au même problème, je voulais fournir ce qui semblait fonctionner pour moi. À l'origine, j'avais RDS et l'instance EC2 avec des groupes de sécurité différents.

Après avoir mis à jour RDS pour utiliser le groupe de sécurité VPC, je n'ai toujours pas pu me connecter. Ce qui a finalement fonctionné, c'est lorsque j'ai ajouté la règle entrante pour le port 3306 pour la plage CDIR sur mon VPC comme l'a répondu @TheFiddlerWins.

Le groupe de sécurité VPC devrait déjà encapsuler cette règle, donc décevant que je ne puisse pas dire exactement pourquoi cela a fonctionné, mais cela a fonctionné après cela.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X