Comment résoudre les problèmes lorsque je me connecte à mon cluster de bases de données Aurora compatible avec PostgreSQL ?
Je souhaite résoudre les problèmes de connexion liés à mon cluster de bases de données (DB) Amazon Aurora édition compatible avec PostgreSQL.
Résolution
Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Vérifier que vous avez configuré les paramètres de connexion appropriés
Procédez comme suit :
- Ouvrez la console Amazon Relational Database Service (Amazon RDS).
- Dans le volet de navigation, sélectionnez Bases de données.
- Sélectionnez votre cluster de bases de données Aurora compatible avec PostgreSQL.
- Dans l'onglet Connectivité et sécurité, notez les valeurs suivantes :<br id=hardline_break/> Point de terminaison d’enregistreur ou de lecteur<br id=hardline_break/> Numéro de port par défaut 5432
- Vérifiez que le nom de base de données, le nom d'utilisateur et le mot de passe sont corrects.
Pour tester votre connexion, exécutez la commande psql suivante :
psql -h your-cluster-endpoint -p 5432 -U your-username -d your-database-name
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster, your-username par le nom d'utilisateur de votre base de données et your-database-name par le nom de votre base de données.
Tester la connectivité réseau
Pour vérifier que votre client peut atteindre le point de terminaison du cluster de bases de données Aurora compatible avec PostgreSQL, exécutez les commandes suivantes.
Utiliser Telnet
Exécutez la commande telnet suivante :
telnet your-cluster-endpoint 5432
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster.
Si la connexion est établie, la sortie est similaire à la suivante :
Trying xxx.xxx.xxx.xxx... Connected to your-cluster-endpoint.
Utiliser netcat
Si telnet n'est pas disponible, exécutez la commande netcat suivante :
nc -zv your-cluster-endpoint 5432
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster.
Si la connexion est établie, la sortie est similaire à la suivante :
Connection to your-cluster-endpoint 5432 port [tcp/postgresql] succeeded!
Si les commandes précédentes arrivent à expiration ou échouent, cela signifie qu’un problème de connectivité réseau s’est produit. Vérifiez que vous avez configuré les règles entrantes de groupes de sécurité appropriées.
Vérifier les règles entrantes de votre groupe de sécurité
Procédez comme suit :
- Ouvrez la console Amazon RDS.
- Dans le volet de navigation, sélectionnez Bases de données.
- Sélectionnez votre cluster de bases de données Aurora compatible avec PostgreSQL.
- Dans la section Connectivité et sécurité, notez le nom du groupe de sécurité sous Groupes de sécurité de VPC.
- Ouvrez la console Amazon Virtual Private Cloud (Amazon VPC).
- Dans le volet de navigation, choisissez Groupes de sécurité.
- Sélectionnez votre groupe de sécurité.
- Choisissez Règles entrantes.
- Vérifiez qu'il existe une règle avec les paramètres suivants :<br id=hardline_break/> Le type est PostgreSQL ou TCP personnalisé.<br id=hardline_break/> Le port est 5432.<br id=hardline_break/> La source est l'adresse IP de votre client ou le bloc CIDR approprié.
Pour utiliser la console Amazon VPC afin d'ajouter une règle entrante à votre groupe de sécurité, consultez la section Configurer les règles du groupe de sécurité.
Pour utiliser l'AWS CLI afin d'ajouter une règle entrante, exécutez la commande authorize-security-group-ingress suivante :
aws ec2 authorize-security-group-ingress \ --group-id your-group-id \ --protocol tcp \ --port 5432 \ --cidr your-IP-address/32 \ --region your-region
Remarque : remplacez your-group-id par l'ID de votre groupe de sécurité, your-IP-address/32 par votre adresse IP ou votre bloc CIDR, et your-region par votre région AWS.
Vérifier vos règles entrantes de liste ACL réseau de VPC
Pour vérifier vos règles de liste ACL réseau, procédez comme suit :
- Ouvrez la console Amazon VPC.
- Dans le volet de navigation, sélectionnez ACL réseau.
- Sélectionnez l'ACL réseau qui est associée à votre sous-réseau de base de données.
- Choisissez l'onglet Règles entrantes.
- Vérifiez qu'il existe une règle avec les paramètres suivants :<br id=hardline_break/> Le type est PostgreSQL (5432) ou Tout le trafic.<br id=hardline_break/> La source est la plage d'adresses IP de votre client ou 0.0.0.0/0.
Pour ajouter une règle ACL réseau, consultez la section Ajouter des règles.
Vérifier votre configuration de sous-réseau et de routage
Pour vérifier votre configuration de sous-réseau, procédez comme suit :
- Ouvrez la console Amazon RDS.
- Dans le volet de navigation, sélectionnez Bases de données.
- Sélectionnez votre cluster de bases de données Aurora compatible avec PostgreSQL.
- Dans l'onglet Connectivité et sécurité, notez le nom du groupe de sous-réseaux de base de données.
- Choisissez le lien du groupe de sous-réseaux.
- Vérifiez que les sous-réseaux se trouvent dans les zones de disponibilité et le VPC appropriés.
Pour vérifier la configuration de votre table de routage, consultez la section Déterminer la table de routage d'un sous-réseau.
Vérifier les autorisations au niveau de votre base de données
Vérifiez que l'utilisateur de la base de données dispose des autorisations nécessaires pour se connecter à la base de données.
Se connecter en tant qu'utilisateur principal
Exécutez la commande psql suivante :
psql -h your-cluster-endpoint -p 5432 -U primary-username -d postgres
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster et primary-username par votre nom d'utilisateur principal.
Vérifier les autorisations utilisateur IAM
Une fois connecté en tant qu'utilisateur principal, exécutez les requêtes SQL suivantes pour vérifier les autorisations utilisateur.
Pour répertorier tous les utilisateurs de la base de données, exécutez la commande suivante :
SELECT usename, usesuper, usecreatedb, useconnlimit FROM pg_user ORDER BY usename;
Pour vérifier les autorisations utilisateur spécifiques, exécutez la commande suivante :
SELECT usename, usesuper, usecreatedb, useconnlimit FROM pg_user WHERE usename = 'your-username';
Remarque : remplacez your-username par le nom d'utilisateur de l'utilisateur dont vous souhaitez vérifier les autorisations.
Pour répertorier les bases de données et leurs propriétaires, exécutez la commande suivante :
SELECT datname, datowner, datacl FROM pg_database WHERE datname NOT IN ('template0', 'template1');
Créer ou modifier des autorisations utilisateur
Si l'utilisateur n'existe pas ou ne dispose pas des autorisations suffisantes, exécutez les commandes suivantes.
Pour créer un nouvel utilisateur, exécutez la commande suivante :
CREATE USER your_username WITH PASSWORD 'your_password';
Remarque : remplacez your_username par le nom d'utilisateur de l'utilisateur que vous créez et your_password par un mot de passe sécurisé.
Pour autoriser l'utilisateur à se connecter à une base de données, exécutez la commande suivante :
GRANT CONNECT ON DATABASE your_database_name TO your_username;
Remarque : remplacez your_database_name par le nom de votre base de données et your_username par le nom d'utilisateur auquel vous accordez l'autorisation.
Pour autoriser l'utilisateur à utiliser un schéma, exécutez la commande suivante :
GRANT USAGE ON SCHEMA public TO your_username;
Remarque : remplacez your_username par le nom d'utilisateur de l'utilisateur auquel vous accordez l'autorisation.
Pour accorder à l'utilisateur l'autorisation d'accéder à une table, exécutez la commande suivante :
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO your_username;
Remarque : remplacez your_username par le nom d'utilisateur de l'utilisateur auquel vous accordez l'autorisation.
Surveiller les quotas de connexion
Vérifiez si votre cluster de bases de données a atteint son quota de connexion maximal.
Vérifiez les connexions actuelles
Connectez-vous à votre cluster de bases de données, puis exécutez les requêtes SQL suivantes.
Pour vérifier le nombre actuel de connexions, exécutez la commande suivante :
SELECT count(*) as current_connections FROM pg_stat_activity WHERE state = 'active';
Pour vérifier le paramètre de connexions maximum, exécutez la commande suivante :
SHOW max_connections;
Pour afficher les connexions actives par utilisateur, exécutez la commande suivante :
SELECT usename, count(*) as connection_count FROM pg_stat_activity GROUP BY usename ORDER BY connection_count DESC;
Modifier le paramètre max_connections
Pour modifier le paramètre max_connections, consultez la section Modification des paramètres d'un groupe de paramètres de cluster de bases de données dans Amazon Aurora.
Tester les connexions SSL/TLS
Aurora compatible avec PostgreSQL prend en charge les connexions chiffrées. Testez les connexions chiffrées et non chiffrées.
Testez sans SSL
Pour tester votre connexion sans SSL, exécutez la commande psql suivante :
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-username sslmode=disable"
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster, your-database par le nom de votre base de données et your-username par votre nom d'utilisateur.
Tester avec SSL
Pour tester votre connexion avec SSL, exécutez la commande psql suivante :
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-username sslmode=require"
Remarque : remplacez your-cluster-endpoint.cluster par le point de terminaison de votre cluster, your-database par le nom de votre base de données et your-username par votre nom d'utilisateur.
Télécharger et utiliser le certificat CA RDS
Pour télécharger le certificat d'autorité de certification (CA) RDS, exécutez la commande wget suivante :
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
Pour utiliser le certificat, exécutez la commande psql suivante :
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-username sslmode=verify-full sslrootcert=global-bundle.pem"
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster, your-database par le nom de votre base de données et your-username par votre nom d'utilisateur.
Résoudre les problèmes d'authentification de la base de données IAM
Si vous utilisez l'authentification de base de données Gestion des identités et des accès AWS (AWS IAM), procédez comme suit.
Générer un jeton d'authentification
Pour générer un jeton d'authentification, exécutez la commande generate-db-auth-token de l'AWS CLI suivante :
aws rds generate-db-auth-token \ --hostname your-cluster-endpoint \ --port 5432 \ --region your-region \ --username your-iam-username
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster, your-region par votre région et your-iam-username par le nom d'utilisateur de votre base de données IAM.
Utiliser l'authentification IAM pour se connecter
Exécutez la commande psql suivante :
psql "host=your-cluster-endpoint port=5432 dbname=your-database user=your-iam-username password=your-generated-token"
Remarque : remplacez your-cluster-endpoint par le point de terminaison de votre cluster, your-database par le nom de votre base de données et your-iam-username par votre nom d'utilisateur compatible IAM. Remplacez également your-generated-token par le jeton que vous avez généré.
Vérifier les autorisations relatives à la politique IAM
Assurez-vous d'avoir associé la politique suivante à l'utilisateur ou au rôle IAM :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:region:account-id:dbuser:cluster-resource-id/your-iam-username" ] } ] }
Remarque : remplacez region par votre région, account-id par votre identifiant de compte AWS, cluster-resource-id par l'ID de ressource de votre cluster de base de données et your-iam-username par le nom d'utilisateur de votre base de données IAM.
Pour résoudre plus en détail votre connexion, consultez la section Résolution des problèmes de connexion à votre instance RDS pour PostgreSQL.
Informations connexes
Contrôler le trafic vers vos ressources AWS à l’aide de groupes de sécurité
Contrôler le trafic des sous-réseaux à l'aide de listes de contrôle d'accès au réseau
- Sujets
- Database
- Balises
- Aurora PostgreSQL
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 10 mois
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 8 mois
AWS OFFICIELA mis à jour il y a 5 mois