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.
Utilisation SSL avec une instance de SQL base de données Postgre
Amazon RDS prend en charge le chiffrement Secure Socket Layer (SSL) pour les SQL instances de base de données Postgre. À l'aide deSSL, vous pouvez chiffrer une SQL connexion Postgre entre vos applications et vos instances de base de données PostgreSQL. Par défaut, RDS Postgre SQL utilise et attend de tous les clients qu'ils se connectent en utilisantSSL/TLS, mais vous pouvez également l'exiger. RDScar Postgre SQL prend en charge les versions 1.1, 1.2 et 1.3 de Transport Layer Security (TLS).
Pour des informations générales sur le SSL support et les SQL bases de données Postgre, consultez le SSLsupport
SSLle support est disponible dans toutes les AWS régions pour PostgreSQL. Amazon RDS crée un SSL certificat pour votre SQL instance de base de données Postgre lors de sa création. Si vous activez la vérification du SSL certificat, le SSL certificat inclut le point de terminaison de l'instance de base de données en tant que nom commun (CN) du SSL certificat afin de se protéger contre les attaques par usurpation d'identité.
Rubriques
Connexion à une SQL instance de base de données Postgre via SSL
Pour vous connecter à une SQL instance de base de données Postgre via SSL
-
Téléchargez le certificat.
Pour plus d'informations sur le téléchargement de certificats, veuillez consulter .
-
Connectez-vous à votre SQL instance de base de données Postgre via. SSL
Lorsque vous vous connectez en utilisantSSL, votre client peut choisir de vérifier ou non la chaîne de certificats. Si vos paramètres de connexion spécifient
sslmode=verify-ca
ousslmode=verify-full
, votre client a besoin que les certificats RDS CA figurent dans son magasin de confiance ou soient référencés dans la connexionURL. L'exigence nécessite de vérifier la chaîne du certificat qui signe le certificat de votre base de données.Lorsqu'un client, tel que psql ouJDBC, est configuré avec le SSL support, le client essaie d'abord de se connecter à la base de données SSL par défaut. Si le client ne parvient pas à se connecter avecSSL, il revient à se connecter sansSSL. Le
sslmode
mode par défaut utilisé est différent entre les clients basés sur libpq (tels que psql) et. JDBC Les clients basés sur libpq sont par défaut etprefer
les JDBC clients par défaut sur.verify-full
Utilisez le paramètre
sslrootcert
pour référencer le certificat, par exemple,sslrootcert=rds-ssl-ca-cert.pem
.
Voici un exemple d'utilisation psql
pour se connecter à une SQL instance de base de données Postgre à l'aide de la vérification SSL des certificats.
$
psql "host=db-name.555555555555.ap-southeast-1.rds.amazonaws.com
port=5432 dbname=testDB
user=testuser
sslrootcert=rds-ca-rsa2048-g1.pem
sslmode=verify-full"
Exiger une SSL connexion à une instance de SQL base de données Postgre
Vous pouvez exiger que les connexions à votre SQL instance de base de données Postgre soient utilisées SSL en utilisant le rds.force_ssl
paramètre. La valeur par défaut du rds.force_ssl
paramètre est 1 (activé) RDS pour les SQL versions 15 et ultérieures de Postgre. Pour toutes les autres RDS versions SQL majeures de Postgre 14 et antérieures, la valeur par défaut de ce paramètre est 0 (off). Vous pouvez définir le rds.force_ssl
paramètre sur 1 (activé) pour requérirSSL/TLSpour les connexions à votre cluster de bases de données. Vous pouvez définir le rds.force_ssl
paramètre sur 1 (activé) SSL pour exiger les connexions à votre instance de base de données.
Pour modifier la valeur de ce paramètre, vous devez créer un groupe de paramètres de base de données personnalisé. Vous modifiez ensuite la valeur de rds.force_ssl
dans votre groupe de paramètres de base de données personnalisé sur 1
pour activer cette fonction. Si vous préparez le groupe de paramètres de base de données personnalisé avant de créer votre SQL instance de base de données RDS pour Postgre, vous pouvez le choisir (au lieu d'un groupe de paramètres par défaut) lors du processus de création. Si vous effectuez cette opération alors que votre SQL instance de base de données RDS for Postgre est déjà en cours d'exécution, vous devez redémarrer l'instance afin qu'elle utilise le groupe de paramètres personnalisé. Pour de plus amples informations, veuillez consulter Groupes de paramètres pour Amazon RDS.
Lorsque la rds.force_ssl
fonctionnalité est active sur votre instance de base de données, les tentatives de connexion non utilisées SSL sont rejetées avec le message suivant :
$
psql -h db-name.555555555555.ap-southeast-1.rds.amazonaws.com port=5432 dbname=testDB user=testuser
psql: error: FATAL: no pg_hba.conf entry for host "w.x.y.z", user "testuser", database "testDB", SSL off
Déterminer l'état de la SSL connexion
Le statut chiffré de votre connexion est affiché dans la page d'accueil d'ouverture de session lorsque vous vous connectez à l'instance de base de données :
Password for user master:
psql (10.3)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.
postgres=>
Vous pouvez également charger l'sslinfo
extension, puis appeler la ssl_is_used()
fonction pour déterminer si elle SSL est utilisée. La fonction renvoie t
si la connexion est utiliséeSSL, sinon elle revientf
.
postgres=>
CREATE EXTENSION sslinfo;
CREATE EXTENSION
postgres=>
SELECT ssl_is_used();
ssl_is_used --------- t (1 row)
Pour obtenir des informations plus détaillées, vous pouvez utiliser la requête suivante pour obtenir des informations via pg_settings
:
SELECT name as "Parameter name", setting as value, short_desc FROM pg_settings WHERE name LIKE '%ssl%';
Parameter name | value | short_desc ----------------------------------------+-----------------------------------------+------------------------------------------------------- ssl | on | Enables SSL connections. ssl_ca_file | /rdsdbdata/rds-metadata/ca-cert.pem | Location of the SSL certificate authority file. ssl_cert_file | /rdsdbdata/rds-metadata/server-cert.pem | Location of the SSL server certificate file. ssl_ciphers | HIGH:!aNULL:!3DES | Sets the list of allowed SSL ciphers. ssl_crl_file | | Location of the SSL certificate revocation list file. ssl_dh_params_file | | Location of the SSL DH parameters file. ssl_ecdh_curve | prime256v1 | Sets the curve to use for ECDH. ssl_key_file | /rdsdbdata/rds-metadata/server-key.pem | Location of the SSL server private key file. ssl_library | OpenSSL | Name of the SSL library. ssl_max_protocol_version | | Sets the maximum SSL/TLS protocol version to use. ssl_min_protocol_version | TLSv1.2 | Sets the minimum SSL/TLS protocol version to use. ssl_passphrase_command | | Command to obtain passphrases for SSL. ssl_passphrase_command_supports_reload | off | Also use ssl_passphrase_command during server reload. ssl_prefer_server_ciphers | on | Give priority to server ciphersuite order. (14 rows)
Vous pouvez également collecter toutes les informations concernant l'SSLutilisation RDS de votre SQL instance de base de données Postgre par processus, client et application à l'aide de la requête suivante :
SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type FROM pg_stat_ssl JOIN pg_stat_activity ON pg_stat_ssl.pid = pg_stat_activity.pid ORDER BY ssl;
Database name | User name | ssl | client_addr | application_name | backend_type ---------------+-----------+-----+----------------+------------------------+------------------------------ | | f | | | autovacuum launcher | rdsadmin | f | | | logical replication launcher | | f | | | background writer | | f | | | checkpointer | | f | | | walwriter rdsadmin | rdsadmin | t | 127.0.0.1 | | client backend rdsadmin | rdsadmin | t | 127.0.0.1 | PostgreSQL JDBC Driver | client backend postgres | postgres | t | 204.246.162.36 | psql | client backend (8 rows)
Pour identifier le code utilisé pour votre SSL connexion, vous pouvez effectuer une requête comme suit :
postgres=>
SELECT ssl_cipher();
ssl_cipher -------------------- DHE-RSA-AES256-SHA (1 row)
Pour en savoir plus sur sslmode
cette option, consultez la section Fonctions de contrôle de connexion à la base
SSLsuites de chiffrement dans RDS Postgre SQL
Le paramètre de SQL configuration Postgre ssl_ciphers spécifie les
Version du SQL moteur Postgre | Suites de chiffrement |
---|---|
16 | HIGH:!aNULL:!3DES |
15 | HIGH:!aNULL:!3DES |
14 | HIGH:!aNULL:!3DES |
13 | HIGH:!aNULL:!3DES |
12 | HIGH:!aNULL:!3DES |
11.4 et versions mineures ultérieures | HIGH:MEDIUM:+3DES:!aNULL:!RC4 |
11.1, 11.2 | HIGH:MEDIUM:+3DES:!aNULL |
10.9 et versions mineures ultérieures | HIGH:MEDIUM:+3DES:!aNULL:!RC4 |
10.7 et versions mineures inférieures | HIGH:MEDIUM:+3DES:!aNULL |