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.
Sicherheit in Amazon Aurora PostgreSQL
Eine allgemeine Übersicht über die Aurora-Sicherheit finden Sie unter Sicherheit in Amazon Aurora. Sie können die Sicherheit für Amazon Aurora PostgreSQL auf mehreren Ebenen verwalten:
-
Um zu kontrollieren, wer Amazon RDS-Managementaktionen auf Aurora PostgreSQL-DB-Clustern und DB-Instances ausführen kann, verwenden Sie AWS Identity and Access Management (IAM). IAM übernimmt die Authentifizierung der Benutzeridentität, bevor der Benutzer auf den Service zugreifen kann. Außerdem übernimmt IAM auch die Autorisierung, d. h., ob der Benutzer für die Vorgänge berechtigt ist, die er versucht auszuführen. Die IAM-Datenbankauthentifizierung ist eine zusätzliche Authentifizierungsmethode, die Sie beim Erstellen Ihres Aurora-PostgreSQL-DB-Clusters auswählen können. Weitere Informationen finden Sie unter Identitäts- und Zugriffsmanagement für Amazon Aurora.
Wenn Sie IAM mit Ihrem Aurora PostgreSQL-DB-Cluster verwenden, melden Sie sich zuerst AWS Management Console mit Ihren IAM-Anmeldeinformationen an, bevor Sie die Amazon RDS-Konsole unter öffnen. https://console.aws.amazon.com/rds/
-
Stellen Sie sicher, dass Sie Aurora-DB-Cluster in einer Virtual Private Cloud (VPC) basierend auf dem Amazon-VPC-Service erstellen. Verwenden Sie eine VPC-Sicherheitsgruppe, um zu steuern, welche Geräte und EC2 Amazon-Instances Verbindungen zum Endpunkt und Port der DB-Instance für Aurora-DB-Cluster in einer VPC öffnen können. Sie können diese Endpunkt- und Portverbindungen mithilfe von Secure Sockets Layer (SSL) herstellen. Zusätzlich können Firewall-Regeln in Ihrem Unternehmen steuern, ob in Ihrem Unternehmen verwendete Geräte Verbindungen mit einer DB-Instance herstellen dürfen. Weitere Informationen dazu finden Sie unter VPCs. Amazon VPC und Amazon Aurora
Die unterstützte VPC-Tenancy hängt von der DB-Instance-Klasse ab, die von Ihren Aurora-PostgreSQL-DB-Clustern verwendet wird. Mit
default
-VPC-Tenancy, läuft der DB-Cluster auf gemeinsam genutzter Hardware. Mitdedicated
-VPC-Tenancy läuft der DB-Cluster auf einer dedizierten Hardware-Instance. Die DB-Instance-Klassen mit Spitzenlastleistung unterstützen nur die Standard-VPC-Tenancy. Die DB-Instance-Klassen mit Spitzenlastleistung umfassen die DB-Instance-Klassen db.t3 und db.t4g. Alle anderen Aurora-PostgreSQL-DB-Instance-Klassen unterstützen sowohl die Standard- als auch die dedizierte VPC-Tenancy.Weitere Informationen zu Instance-Klassen finden Sie unter Amazon Aurora Aurora-DB-Instance-Klassen. Weitere Informationen über die
default
- unddedicated
-VPC-Tenancy finden Sie unter Dedicated Instances im Amazon Elastic Compute Cloud-Benutzerhandbuch. -
Wenn Sie den PostgreSQL-Datenbanken, die auf Ihrem Amazon-Aurora-DB-Cluster ausgeführt werden, Berechtigungen erteilen möchten, können Sie den gleichen allgemeinen Ansatz wie bei eigenständigen Instances von PostgreSQL verwenden. Befehle wie
CREATE ROLE
,ALTER ROLE
,GRANT
undREVOKE
funktionieren genau wie auf On-Premises-Datenbanken. Gleiches gilt für das direkte Ändern von Datenbanken, Schemas und Tabellen.PostgreSQL verwaltet Berechtigungen mithilfe von Rollen. Die Rolle
rds_superuser
ist die Rolle mit den meisten Berechtigungen in einem Aurora-PostgreSQL-DB-Cluster. Diese Rolle wird automatisch erstellt und dem Benutzer gewährt, der den DB-Cluster erstellt (das Hauptbenutzerkonto, standardmäßigpostgres
). Weitere Informationen hierzu finden Sie unter Grundlegendes zu PostgreSQL-Rollen und -Berechtigungen.
Alle verfügbaren Aurora PostgreSQL-Versionen, einschließlich der Versionen 10, 11, 12, 13, 14 und höher, unterstützen den Salted Challenge Response Authentication Mechanism (SCRAM) für Passwörter als Alternative zu Message Digest (). MD5 Wir empfehlen die Verwendung von SCRAM, da es sicherer ist als. MD5 Weitere Informationen, einschließlich der Migration von Datenbankbenutzerkennwörtern von MD5 zu SCRAM, finden Sie unter. Verwenden von SCRAM für die PostgreSQL-Passwortverschlüsselung
Sicherung von Aurora-PostgreSQL-Daten mit SSL/TLS
Amazon RDS unterstützt Secure Socket Layer (SSL) und Transport Layer Security (TLS) Verschlüsselung für Aurora PostgreSQL DB-Cluster. Verwenden von SSL/TLS, you can encrypt a connection between your applications and your Aurora PostgreSQL DB clusters. You can also force all connections to your Aurora PostgreSQL DB cluster to use SSL/TLS Amazon Aurora PostgreSQL unterstützt jetzt Transport Layer Security (TLS) in den Versionen 1.1 und 1.2. Wir empfehlen die Verwendung von TLS 1.2 für verschlüsselte Verbindungen. Wir haben Unterstützung für TLSv1 .3 aus den folgenden Versionen von Aurora PostgreSQL hinzugefügt:
-
15.3 und alle höheren Versionen
-
14.8 und höhere 14-Versionen
-
13.11 und höhere 13-Versionen
-
12.15 und höhere 12-Versionen
-
11.20 und höhere 11-Versionen
Allgemeine Informationen über SSL/TLS-Unterstützung und PostgreSQL-Datenbanken finden Sie unter SSL-Unterstützung
Themen
SSL/TLS-Unterstützung ist in allen AWS Regionen für Aurora PostgreSQL verfügbar. Amazon RDS erstellt ein SSL/TLS certificate for your Aurora PostgreSQL DB cluster when the DB cluster is created. If you enable SSL/TLS certificate verification, then the SSL/TLS certificate includes the DB cluster endpoint as the Common Name (CN) for the SSL/TLS Zertifikat zum Schutz vor Spoofing-Angriffen.
Um sich mit einem Aurora PostgreSQL DB-Cluster über SSL/TLS zu verbinden
-
Laden Sie das Zertifikat herunter.
Informationen zum Herunterladen von Zertifikaten finden Sie unter Verwenden von SSL/TLS zum Verschlüsseln einer Verbindung zu einer .
-
Importieren Sie das Zertifikat in Ihr Betriebssystem.
-
Verbinden Sie sich mit Ihrem Aurora PostgreSQL DB-Cluster über SSL/TLS.
Wenn Sie eine Verbindung über SSL/TLS herstellen, kann Ihr Client wählen, ob er die Zertifikatskette überprüfen möchte oder nicht. Wenn Ihre Verbindungsparameter
sslmode=verify-ca
odersslmode=verify-full
angeben, verlangt Ihr Client, dass sich die RDS CA-Zertifikate im Trust Store befinden oder von der Verbindungs-URL referenziert werden. Diese Anforderung dient zur Prüfung der Zertifikatskette, die Ihr Datenbankzertifikat signiert.Wenn ein Client, wie psql oder JDBC, mit konfiguriert ist. SSL/TLS support, the client first tries to connect to the database with SSL/TLS by default. If the client can't connect with SSL/TLS, it reverts to connecting without SSL/TLS Standardmäßig ist die
sslmode
-Option für JDBC- und libpq-basierte Clients aufprefer
festgelegt.Verwenden Sie den Parameter
sslrootcert
, um auf das Zertifikat zu verweisen, beispielsweisesslrootcert=rds-ssl-ca-cert.pem
.
Das folgende Beispiel zeigt psql zur Herstellung einer Verbindung mit einem Aurora-PostgreSQL-DB-Cluster:
$ psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 \ "dbname=testpg user=testuser sslrootcert=rds-ca-2015-root.pem sslmode=verify-full"
Erfordernis einer SSL/TLS-Verbindung zu einem Aurora PostgreSQL DB-Cluster
Verwenden Sie Parameter, um SSL/TLS-Verbindungen zu Ihrem Aurora PostgreSQL-DB-Cluster zu benötigen. rds.force_ssl
-
Um SSL/TLS-Verbindungen zu benötigen, setzen Sie den
rds.force_ssl
Parameterwert auf 1 (ein). -
Um die erforderlichen SSL/TLS-Verbindungen auszuschalten, setzen Sie den
rds.force_ssl
Parameterwert auf 0 (aus).
Der Standardwert dieses Parameters hängt von der Aurora PostgreSQL-Version ab:
-
Für Aurora PostgreSQL Versionen 17 und höher: Der Standardwert ist 1 (ein).
-
Für Aurora PostgreSQL Versionen 16 und älter: Der Standardwert ist 0 (aus).
Anmerkung
Wenn Sie ein Hauptversions-Upgrade von Aurora PostgreSQL Version 16 oder früher auf Version 17 oder höher durchführen, ändert sich der Standardwert des Parameters von 0 (aus) auf 1 (an). Diese Änderung kann zu Verbindungsfehlern bei Anwendungen führen, die nicht für SSL konfiguriert sind. Sie können zum vorherigen Standardverhalten zurückkehren, indem Sie diesen Parameter auf 0 (aus) setzen.
Weitere Informationen zum Umgang mit Parametern finden Sie unterParametergruppen für Amazon Aurora.
Die Aktualisierung des Parameters rds.force_ssl
setzt auch den PostgreSQL-Parameter ssl
auf 1 (on) und modifiziert die Datei Ihres DB-Clusters pg_hba.conf
, um die neue SSL/TLS-Konfiguration zu unterstützen.
Wenn der Parameter rds.force_ssl
für einen DB-Cluster auf 1 gesetzt ist, wird beim Verbindungsaufbau eine Ausgabe ähnlich der folgenden angezeigt, die darauf hinweist, dass SSL/TLS jetzt erforderlich ist:
$ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser psql (9.3.12, server 9.4.4) WARNING: psql major version 9.3, server major version 9.4. Some psql features might not work. SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. postgres=>
Ermitteln des SSL/TLS-Verbindungsstatus
Der Verschlüsselungsstatus Ihrer Verbindung wird auf dem Anmelde-Banner angezeigt, wenn Sie sich mit dem DB-Cluster verbinden:
Password for user master: psql (9.3.12) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. postgres=>
Sie können auch die Erweiterung sslinfo
laden und dann die Funktion ssl_is_used()
aufrufen, um festzustellen, ob SSL/TLS verwendet wird. Die Funktion gibt t
zurück, wenn die Verbindung SSL/TLS verwendet, andernfalls gibt sie f
zurück.
postgres=> create extension sslinfo; CREATE EXTENSION postgres=> select ssl_is_used(); ssl_is_used --------- t (1 row)
Sie können den Befehl select ssl_cipher()
verwenden, um die SSL/TLS-Verschlüsselung zu bestimmen:
postgres=> select ssl_cipher(); ssl_cipher -------------------- DHE-RSA-AES256-SHA (1 row)
Wenn Sie set rds.force_ssl
aktivieren und Ihren DB-Cluster neu starten, werden Nicht-SSL-Verbindungen abgelehnt, und die folgende Mitteilung wird angezeigt:
$ export PGSSLMODE=disable $ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser psql: FATAL: no pg_hba.conf entry for host "host.ip", user "someuser", database "postgres", SSL off $
Informationen zur Option sslmode
finden Sie unter Datenbankverbindung-Steuerungsfunktionen
Konfigurieren von Chiffrier-Suiten für Verbindungen mit Aurora-PostgreSQL-DB-Clustern
Durch die Verwendung von konfigurierbaren Chiffrier-Suiten können Sie mehr Kontrolle über die Sicherheit Ihrer Datenbankverbindungen haben. Sie können eine Liste von Chiffrier-Suiten angeben, die Sie zum Sichern von SSL/TLS-Verbindungen zu Ihrer Datenbank des Clients zulassen möchten. Mit konfigurierbaren Chiffrier-Suiten können Sie die Verbindungsverschlüsselung steuern, die Ihr Datenbankserver akzeptiert. Dies hilft, die Verwendung von unsicheren oder veralteten Chiffren zu verhindern.
Konfigurierbare Chiffrier-Suiten werden in Aurora PostgreSQL Version 11.8 und höher unterstützt.
Um die Liste der zulässigen Chiffren für die Verschlüsselung von Verbindungen anzugeben, ändern Sie die ssl_ciphers
-Cluster-Parameter. Setzen Sie den ssl_ciphers
Parameter mithilfe der, der oder der RDS-API auf eine Zeichenfolge mit kommagetrennten Chiffrierwerten in einer Cluster-Parametergruppe. AWS Management Console AWS CLI Um Cluster-Parameter festzulegen, siehe Ändern von Parametern in einer DB-Cluster-Parametergruppe in Amazon Aurora.
Die folgende Tabelle zeigt die unterstützten Verschlüsselungen für die gültigen Versionen der Aurora-PostgreSQL-Engine.
Engine-Versionen für Aurora PostgreSQL | Unterstützte Verschlüsselungen | TLS 1.1 | TLS 1.2 | TLS 1.3 |
---|---|---|---|---|
9.6, 10.20 und niedriger, 11.15 und niedriger, 12.10 und niedriger, 13.6 und niedriger | DHE-RSA- -SHA AES128 DHE-RSA- AES128 - SHA256 DHE-RSA- -GCM- AES128 SHA256 AES256DHE-RSA-SHA DHE-RSA- AES256 - SHA256 DHE-RSA- -GCM- AES256 SHA384 AES256ECDHE-ECDSA-SHA ECDHE-ECDSA- -GCM- AES256 SHA384 ECDHE-RSA- - AES256 SHA384 ECDHE-RSA-SHA AES128 ECDHE-RSA- - AES128 SHA256 ECDHE-RSA- -GCM AES128 - SHA256 AES256ECDHE-RSA-SHA ECDHE-RSA- AES256 -GCM- SHA384 |
Ja Nein Nein Nein Nein Nein Ja Nein Nein Ja Nein Nein Ja Nein |
Nein Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja |
Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein |
10.21, 11.16, 12.11, 13.7, 14.3 und 14.4 |
ECDHE-RSA- AES128 -SCHÄDELS_ECDHE-RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_GCM_ SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_ SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_GCM_ SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_ SHA384 TLS_RSA_MIT_AES_256_GCM_ SHA384 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_MIT_AES_128_GCM_ SHA256 TLS_RSA_WITH_AES_128_CBC_SHA CHACHA2TLS_ECDHE_RSA_MIT_ 0_ 05_ POLY13 SHA256 |
Ja Nein Ja Nein Ja Nein Ja Nein Nein Ja Nein Ja Nein |
Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja |
Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein |
10.22, 11.17, 12.12, 13.8, 14,5 und 15.2 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_ SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_ SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_ SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_ SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_ SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_ SHA384 TLS_RSA_MIT_AES_256_GCM_ SHA384 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_MIT_AES_128_GCM_ SHA256 TLS_RSA_MIT_AES_128_CBC_ SHA256 TLS_RSA_WITH_AES_128_CBC_SHA CHACHA2TLS_ECDHE_RSA_MIT_ 0_ 05_ POLY13 SHA256 |
Ja Nein Nein Ja Nein Ja Nein Nein Ja Nein Nein Ja Nein Ja Ja Nein |
Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja |
Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein |
11.20, 12.15, 13.11, 14.8, 15.3, 16.1 und höher | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_ SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_ SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_ SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_ SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_ SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_ SHA384 TLS_RSA_MIT_AES_256_GCM_ SHA384 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_MIT_AES_128_GCM_ SHA256 TLS_RSA_MIT_AES_128_CBC_ SHA256 TLS_RSA_WITH_AES_128_CBC_SHA CHACHA2TLS_ECDHE_RSA_MIT_ 0_ 05_ POLY13 SHA256 TLS_AES_128_GCM_ SHA256 TLS AES 256 GCM SHA384 |
Ja Nein Nein Ja Nein Ja Nein Nein Ja Nein Nein Ja Nein Ja Ja Nein Nein Nein |
Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Nein Nein |
Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Ja Ja |
Sie können auch den CLI-Befehl describe-engine-default-cluster-parameters verwenden, um zu ermitteln, welche Cipher Suites derzeit für eine bestimmte Parametergruppenfamilie unterstützt werden. Im folgenden Beispiel wird veranschaulicht, wie Sie die zulässigen Werte für ssl_cipher
-Cluster-Parameter für Aurora PostgreSQL 11 abrufen.
aws rds describe-engine-default-cluster-parameters --db-parameter-group-family aurora-postgresql11 ...some output truncated... { "ParameterName": "ssl_ciphers", "Description": "Sets the list of allowed TLS ciphers to be used on secure connections.", "Source": "engine-default", "ApplyType": "dynamic", "DataType": "list", "AllowedValues": "DHE-RSA-AES128-SHA,DHE-RSA-AES128-SHA256,DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-SHA,DHE-RSA-AES256-SHA256,DHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-SHA,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES256-GCM-SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "IsModifiable": true, "MinimumEngineVersion": "11.8", "SupportedEngineModes": [ "provisioned" ] }, ...some output truncated...
Der Parameter ssl_ciphers
ist standardmäßig auf alle zulässigen Verschlüsselungssuites eingestellt. Weitere Informationen zu Chiffren finden Sie in der ssl_ciphers