Mise à jour des applications pour se connecter aux clusters de bases de données Aurora PostgreSQL à l'aide des nouveaux certificats SSL/TLS - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mise à jour des applications pour se connecter aux clusters de bases de données Aurora PostgreSQL à l'aide des nouveaux certificats SSL/TLS

Le 13 janvier 2023, Amazon RDS a publié de nouveaux certificats d'autorité de certification (CA) pour la connexion à vos clusters de bases de données Aurora à l'aide du protocole Secure Socket Layer ou Transport Layer Security (SSL/TLS). Vous trouverez ci-après des informations sur la mise à jour de vos applications afin d'utiliser les nouveaux certificats.

Cette rubrique peut vous aider à déterminer si des applications clientes utilisent le protocole SSL ou TLS pour se connecter à vos clusters de bases de données. Si tel est le cas, il vous est alors possible de vérifier si ces applications nécessitent une vérification du certificat pour se connecter.

Note

Certaines applications sont configurées pour se connecter aux clusters de bases de données Aurora PostgreSQL uniquement si la vérification du certificat sur le serveur s'effectue avec succès.

Pour ces applications, vous devez mettre à jour les magasins d'approbations des applications clientes afin d'inclure les nouveaux certificats de l'autorité de certification.

Une fois que vous avez mis à jour les certificats de l'autorité de certification dans les magasins d'approbations des applications clientes, vous pouvez soumettre les certificats de vos clusters de bases de données à une rotation. Nous vous recommandons vivement de tester ces procédures dans un environnement de développement ou intermédiaire avant de les implémenter dans vos environnements de production.

Pour de plus amples informations sur la rotation de certificats, veuillez consulter Rotation de votre certificat SSL/TLS. Pour en savoir plus sur le téléchargement de certificats, consultez . Pour de plus amples informations sur l'utilisation des protocoles SSL et TLS avec les clusters de bases de données PostgreSQL, veuillez consulter Sécurisation des données Aurora PostgreSQL avec SSL/TLS.

Contrôle de la connexion des applications aux clusters de bases de données Aurora PostgreSQL avec le protocole SSL

Dans la configuration du cluster de bases de données, vérifiez la valeur du paramètre rds.force_ssl. Par défaut, le paramètre rds.force_ssl est défini sur 0 (désactivé). Si le paramètre rds.force_ssl est défini sur 1 (activé), les clients doivent utiliser le protocole SSL/TLS pour se connecter. Pour plus d'informations sur les groupes de paramètres, consultez Utilisation des groupes de paramètres.

Si rds.force_ssl n'a pas la valeur 1 (activé), interrogez la vue pg_stat_ssl pour vérifier les connexions établies avec le protocole SSL. Par exemple, la requête suivante retourne uniquement les connexions SSL et les informations sur les clients utilisant un protocole SSL.

select datname, usename, ssl, client_addr from pg_stat_ssl inner join pg_stat_activity on pg_stat_ssl.pid = pg_stat_activity.pid where ssl is true and usename<>'rdsadmin';

Seules les lignes utilisant des connexions SSL/TLS s'affichent avec les informations sur la connexion. Voici un exemple de sortie.

datname | usename | ssl | client_addr ----------+---------+-----+------------- benchdb | pgadmin | t | 53.95.6.13 postgres | pgadmin | t | 53.95.6.13 (2 rows)

La requête précédente n'affiche que les connexions actives au moment de la requête elle-même. L'absence de résultats n'implique pas forcément qu'aucune application n'utilise de connexions SSL. D'autres connexions SSL peuvent avoir été établies à un moment différent.

Contrôle de la nécessité d'une vérification du certificat du client pour qu'il puisse se connecter

Quand un client, tel que psql ou JDBC, est configuré avec la prise en charge du protocole SSL, le comportement par défaut est le suivant : le client essaie d'abord de se connecter à la base de données avec le protocole SSL. En cas d'impossibilité, le client revient à la connexion sans protocole SSL. Le mode sslmode utilisé par défaut diffère selon qu'il s'agit de clients libpq (comme psql) ou de clients JDBC. Pour les clients libpq, la valeur par défaut est prefer, alors qu'elle est verify-full pour les clients JDBC. Le certificat sur le serveur n'est vérifié que s'il sslrootcert est doté de la sslmode valeur set to verify-ca ouverify-full. En cas de non-validité du certificat, une erreur est déclenchée.

PGSSLROOTCERTÀ utiliser pour vérifier le certificat à l'aide de la variable d'PGSSLMODEenvironnement, avec la valeur PGSSLMODE définie sur verify-ca ouverify-full.

PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/ssl-cert.pem psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U primaryuser -d postgres

Utilisez l'sslrootcertargument pour vérifier le certificat sslmode au format chaîne de connexion, avec sslmode défini sur verify-ca ouverify-full.

psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/ssl-cert.pem user=primaryuser dbname=postgres"

Par exemple, dans le cas précédent, si vous utilisez un certificat racine non valide, une erreur similaire à celle qui suit s'affiche sur votre client.

psql: SSL error: certificate verify failed

Mise à jour du magasin d'approbations de votre application

Pour plus d'informations sur la mise à jour du magasin d'approbations pour les applications PostgreSQL, veuillez consulter Secure TCP/IP Connections with SSL dans la documentation PostgreSQL.

Note

Lors de la mise à jour du magasin d'approbations, vous pouvez conserver les certificats plus anciens en complément de l'ajout des nouveaux certificats.

Mise à jour du magasin d'approbations de votre application pour JDBC

Vous pouvez mettre à jour le magasin d'approbations pour les applications qui utilisent JDBC dans le cadre de connexions SSL/TLS.

Pour plus d'informations sur le téléchargement du certificat racine, consultez .

Pour obtenir des exemples de scripts qui importent des certificats, consultez Exemple de script pour importer les certificats dans votre magasin d'approbations.

Utilisation des connexions SSL/TLS pour différents types d'application

Les informations suivantes se rapportent à l'utilisation de connexions SSL/TLS pour différents types d'application.

  • psql

    Le client est appelé depuis la ligne de commande en spécifiant des options comme chaîne de connexion ou comme variables d'environnement. Pour les connexions SSL/TLS, les options pertinentes sont sslmode (variable d'environnement PGSSLMODE) et sslrootcert (variable d'environnement PGSSLROOTCERT).

    Pour obtenir la liste complète des options, veuillez consulter Parameter Key Words dans la documentation PostgreSQL. Pour obtenir la liste complète des variables d'environnement, veuillez consulter Environment Variables dans la documentation PostgreSQL.

  • pgAdmin

    Ce client basé sur un navigateur est une interface plus conviviale pour se connecter à une base de données PostgreSQL.

    Pour plus d'informations sur la configuration des connexions, veuillez consulter la documentation pgAdmin.

  • JDBC

    JDBC permet de se connecter à la base de données avec des applications Java.

    Pour obtenir des informations générales sur la connexion à une base de données PostgreSQL avec JDBC, veuillez consulter Connecting to the Database dans la documentation PostgreSQL. Pour plus d'informations sur la connexion avec un protocole SSL/TLS, veuillez consulter Configuring the Client dans la documentation PostgreSQL.

  • Python

    est une bibliothèque Python bien connue pour se connecter aux bases de données PostgreSQ psycopg2.

    Pour plus d'informations sur l'utilisation de psycopg2, veuillez consulter la documentation psycopg2. Pour obtenir un bref didacticiel sur la connexion à une base de données PostgreSQL, veuillez consulter Psycopg2 Tutorial. Vous trouverez des informations sur les options acceptées par la commande de connexion dans The psycopg2 module content.

Important

Une fois que vous avez déterminé que vos connexions à la base de données utilisent le protocole SSL/TLS et que vous avez mis à jour le magasin de confiance des applications, vous pouvez mettre à jour votre base de données pour utiliser les rds-ca-rsa certificats 2048-g1. Pour obtenir des instructions, veuillez consulter l'étape 3 dans Mettre à jour votre certificat CA en modifiant votre instance de base de données.