Comment puis-je me connecter à une instance de base de données Amazon RDS privée à partir d'une machine locale à l'aide d'une instance Amazon EC2 comme hôte bastion ?

Date de la dernière mise à jour : 29/03/2022

Comment puis-je me connecter à une instance de base de données Amazon Relational Database Service (Amazon RDS) privée à partir d'une machine locale à l'aide d'une instance Amazon Elastic Compute Cloud (Amazon EC2) en tant qu'hôte bastion (saut) ?

Brève description

Procédez comme suit pour vous connecter à une instance de base de données RDS privée à partir d'une machine locale à l'aide d'une instance EC2 comme serveur de saut :

  1. Lancez et configurez votre instance EC2, puis configurez le paramètre réseau de l'instance.
  2. Configurez les groupes de sécurité de l'instance de base de données RDS.
  3. Connectez-vous à l'instance de base de données RDS à partir de votre ordinateur local.

Important : pour vous connecter à une instance de base de données Amazon RDS ou Amazon Aurora privée, il est préférable d'utiliser VPN ou AWS Direct Connect. Si vous ne pouvez pas utiliser VPN ou Direct Connect, utilisez un hôte bastion. L'exemple de configuration suivant restreint l'accès à l'aide de groupes de sécurité. Toutefois, vous pouvez également restreindre la liste de contrôle d'accès réseau (ACL réseau) des sous-réseaux pour sécuriser la connexion. Vous pouvez également restreindre la portée du routage de la passerelle Internet pour utiliser une plage plus petite au lieu de 0.0.0.0/0. Par exemple, vous pouvez ajouter uniquement la plage d'adresses CIDR requise dans la table de routage de la destination lorsque vous ajoutez la passerelle Internet. Pour plus d’informations, consultez les Exemples d'options de routage.

Solution

L'exemple de configuration suivant concerne une instance Amazon RDS for MySQL qui se trouve dans un Amazon Virtual Private Cloud (Amazon VPC). L'instance possède des groupes de sécurité configurés pour une instance EC2.

Lancer et configurer une l'instance EC2

  1. Ouvrez la console Amazon EC2, puis choisissez « Launch instance » (Lancer une instance).
  2. Sélectionnez une Amazon Machine Image (AMI)
  3. Choisissez un type d'instance, puis « Next: Configure Instance Details » (Étape suivante : configurer les informations de l'instance).
  4. Pour « Network » (Réseau), choisissez le VPC utilisé par l'instance de base de données RDS.
  5. Pour « Subnet » (Sous-réseau), sélectionnez le sous-réseau qui comporte une passerelle Internet dans sa table de routage. Si vous n'avez pas encore de passerelle Internet, vous pouvez l'ajouter au sous-réseau une fois l'instance EC2 créée.
  6. Choisissez « Next : Add Storage » (Étape suivante : ajouter le stockage) et modifiez le stockage en fonction des besoins.
  7. Choisissez « Next : Add Tags » (Étape suivante : ajouter des balises) et ajoutez des balises si nécessaire.
  8. Choisissez « Next: Configure Security Group » (Étape suivante : configurer, le groupe de sécurité), choisissez« Add Rule » (Ajouter une règle) et entrez les informations suivantes :
    Type : règle TCP personnalisée
    « Protocol » (Protocole) : TCP
    « Port Range » (Étendue de port) : 22
    Source : entrez l'adresse IP de votre ordinateur local. Par défaut, l'adresse IP source est ouverte à tous. Cependant, vous pouvez restreindre l'accès à votre adresse IP publique locale uniquement.
  9. Choisissez « Review and Launch » (Vérifier et lancer).
  10. Choisissez « Launch » (Lancer).

Configurer les groupes de sécurité de l'instance de base de données RDS

  1. Ouvrez la console Amazon RDS, puis choisissez Databases (Bases de données) dans le panneau de navigation.
  2. Choisissez le nom de l'instance de base de données RDS. Vous pouvez aussi choisir de créer une instance de base de données RDS si vous n'en avez pas déjà une.
  3. Choisissez l'onglet Connectivity & security (Connectivité et sécurité).
  4. Dans la section Security (Sécurité), choisissez le lien sous VPC security groups (Groupes de sécurité VPC).
  5. Sélectionnez le groupe de sécurité, choisissez Actions, puis« Edit inbound rules » (Modifier les règles entrantes).
  6. Choisissez « Add rule » (Ajouter une règle) et entrez ce qui suit :
    Type : règle TCP personnalisée
    « Protocol » (Protocole) : TCP
    « Port Range » (Plage de port) : saisissez le port de votre instance de base de données RDS
    Source : saisissez l'adresse IP privée de votre instance EC2
  7. Choisissez « Save » (Enregistrer).

Cette configuration pour le groupe de sécurité autorise le trafic à partir de l'adresse IP privée de l'instance EC2. Si l'instance EC2 et l'instance de base de données RDS utilisent le même VPC, vous n'avez pas besoin de modifier la table de routage de l'instance de base de données RDS. Si le VPC est différent, créez une connexion d'appairage de VPC pour autoriser les connexions entre ces VPC.

Connexion à l'instance de base de données RDS à partir de votre ordinateur local

Les étapes de connexion à l'instance de base de données RDS varient en fonction du client que vous utilisez. Pour plus d'informations, consultez Connexion à une instance de base de données Amazon RDS. Si vous utilisez MySQL, une bonne pratique consiste à utiliser SSL pour chiffrer la connexion entre l'application client et Amazon RDS.

L'exemple suivant utilise le client MySQL Workbench pour se connecter à l'hôte bastion :

  1. Démarrez une nouvelle connexion et sélectionnez Standard TCP/IP over SSH comme Méthode de connexion.
  2. Saisissez les informations suivants sur l'instance EC2 pour les paramètres SSH :
    « SSH Hostname » (Nom d'hôte SSH) : saisissez le nom DNS public de l'instance EC2.
    « SSH Username » (Nom d'utilisateur SSH) : saisissez le nom d'utilisateur de votre instance EC2. Par exemple, « ec2-user » est le nom d'utilisateur des machines EC2 Linux.
    « SSH Key File » (Fichier de clé SSH) : sélectionnez la clé privée qui a été utilisée lors de la création de l'instance EC2.
  3. Saisissez les détails suivants pour les paramètres de l'instance MySQL :
    MySQL Hostname : (Nom d'hôte MySQL) saisissez le point de terminaison de l'instance de base de données RDS.
    MySQL Server port : (Port de serveur MySQL) saisissez 3306 (ou le port personnalisé que vous utilisez).
    « Username » (Nom d'utilisateur) : saisissez le nom d'utilisateur principal de l'instance de base de données RDS.
    « Password » (Mot de passe) : saisissez le mot de passe principal de l'instance de base de données RDS.
  4. Choisissez « Test Connection » (Tester la connexion).
  5. Une fois la connexion réussie, saisissez un nom de connexion et enregistrez la connexion.

Pour vous connecter à partir de votre client MySQL local à une instance RDS privée à l'aide d'un tunnel SSH, consultez les commandes suivantes.

Linux ou macOS :

Exécutez les commandes suivantes :

ssh -N -L 3336:127.0.0.1:3306 [user]@[server_ip]

mysql -u MYSQL_USER -p -h 127.0.0.1

Remarque : remplacez user, server_ip et mysql_user par vos informations.

Windows PowerShell :

ssh -i "<filename>.pem" <user_name>@<EC2_Endpoint> -L <Port_number>:<RDS_Endpoint>:<Port_number> -N

Remarque : remplacez filename et username par vos informations. Remplacez EC2_Endpoint, port_number, RDS_Endpoint et Port_number par les informations de votre instance RDS.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?