Je souhaite configurer mon cluster de base de données Amazon Aurora provisionné afin qu'il soit accessible au public et sécuriser mon cluster de base de données Aurora contre les connexions extérieures.
Brève description
Pour que votre cluster de base de données Aurora soit accessible au public, les instances du cluster doivent disposer d'une adresse IP publique et être exécutées dans un sous-réseau public.
Pour une instance de base de données Aurora, vous ne pouvez pas choisir un sous-réseau spécifique. Vous devez plutôt choisir un groupe de sous-réseaux de base de données lorsque vous créez l'instance. Assurez-vous de créer un groupe de sous-réseaux de base de données avec des configurations réseau similaires. Par exemple, créez un groupe de sous-réseaux de base de données pour les sous-réseaux publics et un autre pour les sous-réseaux privés.
Après avoir configuré l'instance de base de données pour autoriser les connexions provenant de l'extérieur du VPC, vous pouvez utiliser le protocole TLS pour sécuriser les connexions.
Remarque : Il est recommandé de ne pas autoriser les connexions provenant de l'extérieur du VPC, sauf si vous devez disposer d'un accès public.
Résolution
Définir le paramètre Accessible au public pour l'instance de base de données sur Oui
Le paramètre Accessible au public pour 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. Lorsque vous définissez le paramètre sur Non, l'instance de base de données n’utilise pas d'adresse IP publique. Lorsque vous définissez le paramètre sur Oui, l'instance de base de données utilise des adresses IP publiques et privées.
Pour modifier le paramètre Accessible au public de l'instance de base de données à Oui, procédez comme suit :
- Ouvrez la console Amazon RDS.
- Dans le volet de navigation, choisissez Bases de données, puis votre instance de base de données.
- Sélectionnez Modifier.
- Dans la section Connectivité, choisissez Configuration supplémentaire, puis Accessible au public.
- Sélectionnez Continuer.
- Dans la section Modifications de la planification, choisissez l'option la mieux adaptée à votre cas d'utilisation.
Remarque : L'option Appliquer immédiatement peut entraîner une durée d’indisponibilité. Pour plus d'informations, consultez la section Utilisation du paramètre de modifications de la planification.
- Sélectionnez Modifier l'instance de base de données.
Exécuter l'instance de base de données dans un sous-réseau public
Pour vous assurer que le sous-réseau public de votre instance de base de données dispose d'un accès Internet, procédez comme suit :
- Créez une passerelle Internet, puis attachez-la au VPC.
- Dans le volet de navigation, choisissez Sous-réseaux.
- 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 la passerelle Internet.
- Si le sous-réseau utilise la table de routage principale du VPC, ajoutez la route 0.0.0.0/0 pour la passerelle Internet. Vous pouvez également créer une table de routage personnalisée avec une route vers la passerelle Internet, puis associer la table de routage au sous-réseau.
- Pour ajouter l’adresse IP publique source à partir de laquelle vous souhaitez vous connecter à l’instance de base de données, configurez les règles entrantes du groupe de sécurité.
Dans Type, sélectionnez MySQL/Aurora ou PostgreSQL.
Dans Source, sélectionnez Personnalisé et saisissez manuellement la plage CIDR. Vous pouvez également choisir Mon adresse IP pour vous connecter à l'instance de base de données depuis le même poste de travail.
Sécuriser le cluster de base de données contre les connexions qui se trouvent à l'extérieur du VPC
Utilisez le protocole TLS pour chiffrer les connexions situées en dehors d'un VPC, car le transfert de données s'effectue via Internet. Pour confirmer que vous utilisez le plus haut niveau de sécurité, utilisez le paramètre ssl-ca pour transmettre le certificat d'autorité de certification (CA), puis activez la validation du nom d'hôte.
Pour tester la connexion TLS, exécutez la commande suivante pour la version d'Aurora que vous utilisez.
Amazon Aurora édition compatible avec MySQL 5.6
mysql -h test-aurora-56.cluster-############.us-east-1.rds.amazonaws.com -u test_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert
Remarque : Remplacez test-aurora-56.cluster-############.us-east-1.rds.amazonaws.com par le point de terminaison de votre cluster. Remplacez test_user par votre nom d'utilisateur. Remplacez rds-combined-ca-bundle.pem par le chemin de votre CA.
Amazon Aurora compatible avec MySQL 5.7 et versions ultérieures
mysql -h test-aurora-57.cluster-############.us-east-1.rds.amazonaws.com -u test_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY
Remarque : Remplacez test-aurora-57.cluster-############.us-east-1.rds.amazonaws.com par le point de terminaison de votre cluster. Remplacez test_user par votre nom d'utilisateur. Remplacez rds-combined-ca-bundle.pem par le chemin de votre CA.
Amazon Aurora édition compatible avec PostgreSQL
psql -h test-aurora-pg.cluster-############.us-east-1.rds.amazonaws.com -p 5432 "dbname=postgres user=test_user sslrootcert=rds-combined-ca-bundle.pem sslmode=verify-full"
Remarque : Remplacez test-aurora-pg.cluster-############.us-east-1.rds.amazonaws.com par le point de terminaison de votre cluster. Remplacez 5432 par le port de votre cluster. Remplacez postgres par le nom d'utilisateur de votre base de données et test_user par votre nom d'utilisateur. Remplacez rds-combined-ca-bundle.pem par le chemin de votre CA.
Vous pouvez également appliquer le protocole TLS aux clusters de base de données. Pour Aurora compatible avec MySQL, définissez le protocole TLS au niveau de l'utilisateur de la base de données. Pour Aurora compatible avec PostgreSQL, définissez le paramètre rds.force_ssl sur 1.
Informations connexes
Utilisation du protocole SSL/TLS pour chiffrer une connexion à un cluster de base de données
Sécurisation des données Aurora PostgreSQL avec SSL/TLS
Comment me connecter à mon instance de base de données Amazon RDS à l'aide d'un hôte bastion depuis mon ordinateur Linux ou macOS ?
Comment configurer des points de terminaison Aurora privés et publics dans la console Amazon RDS ?