Comment puis-je me connecter à un cluster de bases de données Amazon Aurora depuis l'extérieur d'un VPC ?

Date de la dernière mise à jour : 28/01/2021

J'ai un cluster de bases de données Amazon Aurora et je voudrais m'y connecter depuis l'extérieur d'un VPC. Je veux également sécuriser mon cluster de bases de données Aurora contre les connexions extérieures. Comment dois-je procéder ?

Brève description

Pour qu'une connexion à un cluster de bases de données Amazon Aurora soit possible directement depuis l'extérieur du VPC, les instances du cluster doivent satisfaire les exigences suivantes :

  • L'instance de base de données doit avoir une adresse IP publique
  • L'instance de base de données doit s'exécuter dans un sous-réseau accessible au public

Outre la configuration de votre instance de base de données de sorte qu'il soit possible de s'y connecter depuis l'extérieur d'un VPC, vous pouvez également sécuriser les connexions à l'aide du protocole TLS (Transport Layer Security), anciennement SSL (Secure Sockets Layer).

Résolution

Définir le paramètre Accessible publiquement de l'instance de base de données sur Oui

Le paramètre Accessible publiquement d'une instance de base de données Amazon Relational Database Service (Amazon RDS) contrôle l'attribution d'une adresse IP publique à l'instance de base de données.

  • Si ce paramètre est défini sur Non, l'instance de base de données n'a pas d'adresse IP publique.
  • Si ce paramètre est défini sur Oui, l'instance de base de données possède à la fois une adresse IP publique et une adresse IP privée.

Pour modifier le paramètre Accessible publiquement de l'instance de base de données et le définir sur Oui, procédez comme suit :

  1. Ouvrez la console Amazon RDS.
  2. Sélectionnez Bases de données dans le panneau de navigation, puis sélectionnez l'instance de base de données.
  3. Cliquez sur Modifier.
  4. Sous Connectivité, développez la section Configuration supplémentaire, puis sélectionnez Accessible publiquement.
  5. Cliquez sur Continuer.
  6. Sélectionnez Modifier l'instance de base de données

Remarque : vous n'avez pas besoin de sélectionner Appliquer immédiatement. Pour plus d'informations sur la façon dont le paramètre Appliquer immédiatement peut affecter les temps d'arrêt, consultez la section Utilisation du paramètre Appliquer immédiatement.

Exécuter une instance de base de données dans un sous-réseau public

Un sous-réseau public est un sous-réseau associé à une table de routage contenant une route vers une passerelle Internet, généralement la route par défaut, 0.0.0.0/0. Cette route permet aux instances de base de données d'un sous-réseau de communiquer avec des ressources à l'extérieur du VPC.

Dans le cas d'instances de base de données Amazon Aurora, vous ne pouvez pas sélectionner un sous-réseau spécifique. Sélectionnez plutôt un groupe de sous-réseaux de base de données lorsque vous créez l'instance.

Un groupe de sous-réseaux de base de données est un ensemble de sous-réseaux appartenant à un VPC. Lors de la création de l'hôte sous-jacent, Amazon RDS sélectionne au hasard un sous-réseau dans le groupe de sous-réseaux de base de données. Généralement, un VPC contient à la fois des sous-réseaux publics et des sous-réseaux privés. Si le groupe de sous-réseaux de base de données contient lui aussi des sous-réseaux publics et privés, vous pouvez lancer l'hôte sous-jacent dans un sous-réseau public ou un sous-réseau privé. Vous ne pouvez pas vous connecter à l'instance de base de données depuis l'extérieur du VPC si l'hôte sous-jacent est lancé dans un sous-réseau privé.

Créez plutôt un groupe de sous-réseaux de base de données avec des sous-réseaux ayant une configuration réseau similaire. Par exemple, un groupe de sous-réseaux de base de données pour les sous-réseaux publics et un second groupe de sous-réseaux de base de données pour les sous-réseaux privés. Pour plus d'informations, consultez la section Utilisation d'une instance de base de données dans un groupe de sous-réseaux.

Procédez comme suit pour vous assurer que le sous-réseau utilisé par votre instance de base de données dispose d'un accès Internet :

  1. Vérifiez que votre VPC est associé à une passerelle Internet.
  2. Vérifiez que tous les sous-réseaux du groupe de sous-réseaux de base de données utilisent une table de routage avec Internet Gateway.
    • Si le sous-réseau utilise la table de routage principale du VPC, ajoutez la route vers Internet Gateway (la destination est 0.0.0.0/0).
    • Si nécessaire, créez une table de routage personnalisée avec une route vers Internet Gateway et associez-la au sous-réseau.
  3. Ajoutez l'adresse IP publique source que vous souhaitez connecter à l'instance de base de données dans les règles entrantes du groupe de sécurité.
  4. S'agissant du Type de règle, sélectionnez MySQL/aurora ou PostgreSQL, en fonction de votre type de moteur.
  5. S'agissant de Source, entrez la plage CIDR manuellement ou sélectionnez Mon adresse IP pour vous connecter à l'instance de base de données sur le même poste de travail.

Sécuriser le cluster de bases de données contre des connexions extérieures au VPC

Comme le transfert de données se fait sur Internet, vous pouvez utiliser TLS pour chiffrer les connexions provenant de l'extérieur d'un VPC. Pour être certain d'utiliser le niveau de sécurité le plus élevé, utilisez le paramètre ssl-ca pour transmettre le certificat d'une autorité de certification et activez ensuite la validation du nom d'hôte. Utilisez les exemples de commandes suivants pour les connexions TLS, en fonction de la version d'Aurora que vous utilisez.

Aurora MySQL 5.6 et versions ultérieures :

mysql -h test-aurora-56.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -u master_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert

Aurora MySQL 5.7 et versions ultérieures :

mysql -h test-aurora-57.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -u master_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY

Aurora PostgreSQL :

psql -h test-aurora-pg.cluster-xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -p 5432 "dbname=postgres user=master_user sslrootcert=rds-combined-ca-bundle.pem sslmode=verify-full"

Remarque : vous pouvez également appliquer TLS pour les clusters de bases de données. S'agissant de Aurora MySQL, vous devez appliquer TLS au niveau de l'utilisateur de base de données. S'agissant de Aurora PostgreSQL, définissez le paramètre rds.force_ssl sur 1.


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


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