Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwendung SSL mit einer SQL Postgre-DB-Instance
Amazon RDS unterstützt die Secure Socket Layer (SSL) -Verschlüsselung für SQL Postgre-DB-Instances. Mithilfe SSL können Sie eine SQL Postgre-Verbindung zwischen Ihren Anwendungen und Ihren SQL Postgre-DB-Instances verschlüsseln. Standardmäßig SQL verwendet Postgre und erwartet, RDS dass alle Clients überSSL/eine Verbindung herstellenTLS, aber Sie können es auch vorschreiben. RDSfor Postgre SQL unterstützt die Transport Layer Security (TLS) Versionen 1.1, 1.2 und 1.3.
Allgemeine Informationen zur SSL Unterstützung und zu SQL Postgre-Datenbanken finden Sie in der SQL Postgre-Dokumentation unter SSLSupport
SSLSupport ist in allen AWS Regionen für SQL Postgre verfügbar. Amazon RDS erstellt ein SSL Zertifikat für Ihre SQL Postgre-DB-Instance, wenn die Instance erstellt wird. Wenn Sie die SSL Zertifikatsüberprüfung aktivieren, enthält das SSL Zertifikat den DB-Instance-Endpunkt als Common Name (CN) für das SSL Zertifikat, um vor Spoofing-Angriffen zu schützen.
Themen
Eine Verbindung zu einer Postgre-DB-Instance herstellen über SQL SSL
Um eine Verbindung zu einer SQL Postgre-DB-Instance herzustellen über SSL
-
Laden Sie das Zertifikat herunter.
Informationen zum Herunterladen von Zertifikaten finden Sie unter .
-
Connect zu Ihrer SQL Postgre-DB-Instance herSSL.
Wenn Sie eine Verbindung herstellenSSL, kann Ihr Kunde wählen, ob die Zertifikatskette verifiziert werden soll. Wenn in Ihren Verbindungsparametern
sslmode=verify-ca
oder angegeben istsslmode=verify-full
, verlangt Ihr Client, dass sich die RDS CA-Zertifikate in seinem Vertrauensspeicher befinden oder in der Verbindung referenziert werdenURL. Diese Anforderung dient zur Prüfung der Zertifikatskette, die Ihr Datenbankzertifikat signiert.Wenn ein Client, z. B. psql oderJDBC, mit SSL Support konfiguriert ist, versucht der Client SSL standardmäßig zunächst, eine Verbindung mit der Datenbank herzustellen. Wenn der Client keine Verbindung herstellen kannSSL, kehrt er zu einer Verbindung ohne Verbindung zurück. SSL Der verwendete
sslmode
Standardmodus unterscheidet sich zwischen libpq-basierten Clients (wie psql) und. JDBC Die libpq-basierten Clients verwenden standardmäßig undprefer
die JDBC Clients verwenden standardmäßig.verify-full
Verwenden Sie den Parameter
sslrootcert
, um auf das Zertifikat zu verweisen, beispielsweisesslrootcert=rds-ssl-ca-cert.pem
.
Im Folgenden finden Sie ein Beispiel für die Verbindung mit psql
einer SQL Postgre-DB-Instance SSL mithilfe der Zertifikatsüberprüfung.
$
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"
Eine SSL Verbindung zu einer SQL Postgre-DB-Instance ist erforderlich
Mithilfe des Parameters können Sie festlegen, dass Verbindungen zu Ihrer SQL Postgre-DB-Instance verwendet SSL werden. rds.force_ssl
Der Standardwert des rds.force_ssl
Parameters ist 1 (ein) RDS für SQL Postgre-Version 15 und höher. Für alle anderen RDS SQL Postgre-Hauptversionen 14 und älter ist der Standardwert dieses Parameters 0 (aus). Sie können den rds.force_ssl
Parameter auf 1 (ein) setzen, umSSL/TLSfür Verbindungen zu Ihrem DB-Cluster zu benötigen. Sie können den rds.force_ssl
Parameter auf 1 (on) setzen, wenn er SSL für Verbindungen zu Ihrer DB-Instance erforderlich ist.
Wenn Sie den Wert dieses Parameters ändern möchten, müssen Sie eine benutzerdefinierte DB-Parametergruppe erstellen. Anschließend ändern Sie den Wert für rds.force_ssl
in Ihrer benutzerdefinierten DB-Parametergruppe in 1
, um diese Funktion zu aktivieren. Wenn Sie die benutzerdefinierte DB-Parametergruppe vorbereiten, bevor Sie Ihre RDS für SQL Postgre-DB-Instance erstellen, können Sie sie (anstelle einer Standardparametergruppe) während des Erstellungsprozesses auswählen. Wenn Sie dies tun, nachdem Ihre RDS for SQL Postgre-DB-Instance bereits läuft, müssen Sie die Instance neu starten, damit Ihre Instance die benutzerdefinierte Parametergruppe verwendet. Weitere Informationen finden Sie unter Parametergruppen für Amazon RDS.
Wenn die rds.force_ssl
Funktion auf Ihrer DB-Instance aktiv ist, werden Verbindungsversuche, die nicht verwendet SSL werden, mit der folgenden Meldung abgewiesen:
$
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
Ermitteln des SSL Verbindungsstatus
Der verschlüsselte Status Ihrer Verbindung wird auf dem Anmelde-Banner angezeigt, wenn Sie sich mit der DB-Instance verbinden:
Password for user master:
psql (10.3)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.
postgres=>
Sie können die sslinfo
Erweiterung auch laden und dann die ssl_is_used()
Funktion aufrufen, um festzustellen, ob sie verwendet SSL wird. Die Funktion gibt zurückt
, ob die Verbindung verwendet wirdSSL, andernfalls kehrt sie zurückf
.
postgres=>
CREATE EXTENSION sslinfo;
CREATE EXTENSION
postgres=>
SELECT ssl_is_used();
ssl_is_used --------- t (1 row)
Wenn Sie detailliertere Informationen erhalten möchten, können Sie die folgende Abfrage verwenden, um Informationen von pg_settings
abzurufen:
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)
Sie können auch alle Informationen über die SSL Nutzung Ihrer RDS for SQL Postgre-DB-Instance nach Prozess, Client und Anwendung sammeln, indem Sie die folgende Abfrage verwenden:
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)
Um die für Ihre SSL Verbindung verwendete Chiffre zu identifizieren, können Sie wie folgt abfragen:
postgres=>
SELECT ssl_cipher();
ssl_cipher -------------------- DHE-RSA-AES256-SHA (1 row)
Weitere Informationen zu dieser sslmode
Option finden Sie unter Funktionen zur Datenbankverbindungssteuerung
SSLCipher Suites für Postgre RDS SQL
Der SQL Postgre-Konfigurationsparameter ssl_ciphers gibt die Kategorien von Cipher Suites
Version der Postgre-Engine SQL | Cipher Suites |
---|---|
16 | HIGH:!aNULL:!3DES |
15 | HIGH:!aNULL:!3DES |
14 | HIGH:!aNULL:!3DES |
13 | HIGH:!aNULL:!3DES |
12 | HIGH:!aNULL:!3DES |
11.4 und höhere Nebenversionen | HIGH:MEDIUM:+3DES:!aNULL:!RC4 |
11,1, 11,2 | HIGH:MEDIUM:+3DES:!aNULL |
10.9 und höhere Nebenversionen | HIGH:MEDIUM:+3DES:!aNULL:!RC4 |
10.7 und niedrigere Nebenversionen | HIGH:MEDIUM:+3DES:!aNULL |