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 mit Amazon Aurora Postgre SQL
Eine allgemeine Übersicht über die Aurora-Sicherheit finden Sie unter Sicherheit bei Amazon Aurora. Sie können die Sicherheit für Amazon Aurora Postgre SQL auf verschiedenen Ebenen verwalten:
-
Um zu kontrollieren, wer RDS Amazon-Managementaktionen auf Aurora SQL Postgre-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. IAMDie Datenbankauthentifizierung ist eine zusätzliche Authentifizierungsmethode, die Sie wählen können, wenn Sie Ihren Aurora SQL Postgre-DB-Cluster erstellen. Weitere Informationen finden Sie unter Identitäts- und Zugriffsmanagement für Amazon Aurora.
Wenn Sie es IAM mit Ihrem Aurora SQL Postgre-DB-Cluster verwenden, melden Sie sich zuerst AWS Management Console mit Ihren IAM Anmeldeinformationen an, bevor Sie die RDS Amazon-Konsole unter https://console.aws.amazon.com/rds/
öffnen. -
Stellen Sie sicher, dass Sie Aurora-DB-Cluster in einer virtuellen privaten Cloud (VPC) erstellen, die auf dem VPC Amazon-Service basiert. 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 einem 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 zu finden VPCs Sie unterAmazon VPC und Amazon Aurora.
Die unterstützte VPC Tenancy hängt von der DB-Instance-Klasse ab, die von Ihren Aurora SQL Postgre-DB-Clustern verwendet wird. Bei
default
VPC Tenancy läuft der DB-Cluster auf gemeinsam genutzter Hardware. Beidedicated
VPC Tenancy läuft der DB-Cluster auf einer dedizierten Hardware-Instance. Die DB-Instance-Klassen mit hoher Leistung unterstützen nur VPC Standard-Tenancy. Die DB-Instance-Klassen mit Spitzenlastleistung umfassen die DB-Instance-Klassen db.t3 und db.t4g. Alle anderen Aurora SQL Postgre-DB-Instance-Klassen unterstützen sowohl Standard- als auch Dedicated VPC Tenancy.Weitere Informationen zu Instance-Klassen finden Sie unter Amazon Aurora Aurora-DB-Instance-Klassen. Weitere Informationen zu
default
unddedicated
VPC Tenancy finden Sie unter Dedicated Instances im Amazon Elastic Compute Cloud-Benutzerhandbuch. -
Um den SQL Postgre-Datenbanken, die auf Ihrem Amazon Aurora Aurora-DB-Cluster laufen, Berechtigungen zu gewähren, können Sie den gleichen allgemeinen Ansatz wie bei eigenständigen Postgre-Instances verwenden. SQL 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.Postgre SQL verwaltet Rechte mithilfe von Rollen. Die
rds_superuser
Rolle ist die privilegierteste Rolle in einem Aurora SQL Postgre-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 SQLPostgre-Rollen und -Berechtigungen verstehen.
Alle verfügbaren Aurora SQL Postgre-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 Ihnen, ihn zu verwendenSCRAM, weil er sicherer ist als. MD5 Weitere Informationen, einschließlich der Migration von Datenbankbenutzerkennwörtern von MD5 zuSCRAM, finden Sie unterSCRAMFür die SQL Postgre-Passwortverschlüsselung verwenden.
Sicherung von Aurora SQL Postgre-Daten mit/ SSL TLS
Amazon RDS unterstützt Secure Socket Layer (SSL) und Transport Layer Security (TLS) Verschlüsselung für Aurora SQL Postgre-DB-Cluster. MitSSL/TLSkönnen Sie eine Verbindung zwischen Ihren Anwendungen und Ihren Aurora SQL Postgre-DB-Clustern verschlüsseln. Sie können auch erzwingen, dass alle Verbindungen zu Ihrem Aurora SQL Postgre-DB-ClusterSSL/TLSverwenden. Amazon Aurora Postgre SQL unterstützt die Transport Layer Security (TLS) 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 1.3 aus den folgenden Versionen von Aurora Postgre SQL 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 zur TLS Unterstützung vonSSL//und zu SQL Postgre-Datenbanken finden Sie in der SQL Postgre-Dokumentation unter SSLSupport
Themen
SSL/TLSSupport ist in allen AWS Regionen für Aurora Postgre SQL verfügbar. Amazon RDS erstellt ein SSL TLS /-Zertifikat für Ihren Aurora SQL Postgre-DB-Cluster, wenn der DB-Cluster erstellt wird. Wenn Sie die TLS Zertifikatsüberprüfung vonSSL/aktivieren, enthält das TLS ZertifikatSSL/den DB-Cluster-Endpunkt als Common Name (CN) für das TLS ZertifikatSSL/, um vor Spoofing-Angriffen zu schützen.
Um eine Verbindung zu einem Aurora SQL Postgre-DB-Cluster überSSL/herzustellen TLS
-
Laden Sie das Zertifikat herunter.
Informationen zum Herunterladen von Zertifikaten finden Sie unter Verwenden vonSSL/TLSzum Verschlüsseln einer Verbindung zu einer .
-
Importieren Sie das Zertifikat in Ihr Betriebssystem.
-
Stellen Sie überSSL/TLSConnect zu Ihrem Aurora SQL Postgre-DB-Cluster her.
Wenn Sie mitSSL/eine Verbindung herstellenTLS, kann Ihr Kunde wählen, ob er die Zertifikatskette verifizieren möchte oder nicht. 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, wie psql oderJDBC, mit SSL TLS /support konfiguriert ist, versucht der Client TLS standardmäßig zuerst, mitSSL/eine Verbindung zur Datenbank herzustellen. Wenn der Client keine Verbindung mitSSL/herstellen kannTLS, kehrt er zu einer Verbindung ohneSSL/zurück. TLS Standardmäßig ist die
sslmode
Option für JDBC und libpq-basierte Clients auf gesetzt.prefer
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 Verwendung von psql, um eine Verbindung zu einem Aurora SQL Postgre-DB-Cluster herzustellen.
$ 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"
Eine SSL TLS /-Verbindung zu einem Aurora SQL Postgre-DB-Cluster ist erforderlich
Mithilfe des rds.force_ssl
Parameters können Sie verlangen, dass Verbindungen zu Ihrem Aurora SQL Postgre-DB-ClusterSSL/TLSverwenden. Standardmäßig ist der Parameter rds.force_ssl
auf 0 (aus) festgelegt. Sie können den rds.force_ssl
Parameter auf 1 (on) setzen, umSSL/TLSfür Verbindungen zu Ihrem DB-Cluster zu benötigen. Durch die Aktualisierung des rds.force_ssl
Parameters wird auch der SQL ssl
Postgre-Parameter auf 1 (aktiviert) gesetzt und die pg_hba.conf
Datei Ihres DB-Clusters so geändert, dass sie die neue SSL TLS /-Konfiguration unterstützt.
Sie können den Parameterwert rds.force_ssl
festlegen, indem Sie die Parametergruppe für Ihren DB-Cluster aktualisieren. Wenn es sich bei der Parametergruppe für Ihren DB-Cluster nicht um die Standardparametergruppe handelt und der Parameter ssl
bereits auf 1 gesetzt ist, müssen Sie Ihren DB-Cluster nicht neu starten, wenn Sie den Parameter rds.force_ssl
auf 1 setzen. Andernfalls müssen Sie Ihren DB-Cluster neu starten, damit die Änderungen übernommen werden. Weitere Informationen zu Parametergruppen finden Sie unter Parametergruppen für Amazon Aurora.
Wenn der rds.force_ssl
Parameter für einen DB-Cluster auf 1 gesetzt ist, erhalten Sie beim Herstellen der Verbindung eine Ausgabe, die der folgenden ähnelt, was darauf hinweist, dassSSL/jetzt TLS 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 TLS Verbindungsstatus „SSL/“
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 sslinfo
Erweiterung laden und dann die ssl_is_used()
Funktion aufrufen, um festzustellen, obSSL/verwendet TLS wird. Die Funktion gibt zurückt
, ob die VerbindungSSL/verwendetTLS, andernfalls kehrt sie zurückf
.
postgres=> create extension sslinfo; CREATE EXTENSION postgres=> select ssl_is_used(); ssl_is_used --------- t (1 row)
Sie können den select ssl_cipher()
Befehl verwenden, um die TLS ChiffreSSL/zu ermitteln:
postgres=> select ssl_cipher(); ssl_cipher -------------------- DHE-RSA-AES256-SHA (1 row)
Wenn Sie Ihren DB-Cluster aktivieren set rds.force_ssl
und neu starten, werden SSL Nichtverbindungen mit der folgenden Meldung abgelehnt:
$ 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 zu dieser sslmode
Option finden Sie unter Funktionen zur Datenbankverbindungssteuerung
Konfiguration von Cipher Suites für Verbindungen zu Aurora SQL Postgre-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 Cipher Suites angeben, denen Sie die Sicherung von Client- und Verbindungen zu Ihrer Datenbank ermöglichen möchtenSSL. TLS 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 Cipher Suites werden in Aurora SQL Postgre-Versionen 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 auf eine Zeichenfolge von kommagetrennten Chiffrierwerten in einer Cluster-Parametergruppe mit dem, dem oder dem. AWS Management Console AWS CLI RDS API Um Cluster-Parameter festzulegen, siehe Ändern von Parametern in einer DB-Cluster-Parametergruppe in Amazon Aurora.
Die folgende Tabelle zeigt die unterstützten Chiffren für die gültigen Versionen der Aurora Postgre-Engine. SQL
Versionen der Aurora SQL Postgre-Engine | Unterstützte Verschlüsselungen | TLS1.1 | TLS1.2 | TLS1.3 |
---|---|---|---|---|
9.6, 10.20 und niedriger, 11.15 und niedriger, 12.10 und niedriger, 13.6 und niedriger | 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-ECDSA-AES256-SHA ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES128-SHA ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES256-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 - SHATLS _ _ ECDHE _ RSA _ WITH AES CBC _128_ _ SHA TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES GCM SHA256 TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ ECDHE _ RSA _128_ WITH _ AES CBC SHA TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES GCM SHA256 TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ RSA _128_ WITH _ AES GCM SHA256 TLS_ _ RSA _ WITH _128_ AES CBC SHA TLS_ _ _ ECDHE _ RSA 0_ WITH 05_ CHACHA2 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_ _ _ _ _128_ _ ECDHE RSA WITH AES CBC SHA TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES CBC SHA256 TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES GCM SHA256 TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ ECDHE _ RSA _128_ WITH _ AES CBC SHA TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES CBC SHA256 TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES GCM SHA256 TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ RSA _128_ WITH _ AES GCM SHA256 TLS_ _ RSA _ WITH _128_ AES CBC SHA256 TLS_ _ RSA _ WITH _128_ AES CBC SHA TLS_ _ _ ECDHE _ RSA 0_ WITH 05_ CHACHA2 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_ _ _ _ _128_ _ ECDHE RSA WITH AES CBC SHA TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES CBC SHA256 TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES GCM SHA256 TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ ECDHE _ RSA _128_ WITH _ AES CBC SHA TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES CBC SHA256 TLS_ _ ECDHE _ _ RSA 128_ WITH _ AES GCM SHA256 TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ ECDHE _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ RSA _256_ WITH _ AES GCM SHA384 TLS_ _ _ RSA _256_ WITH _ AES CBC SHA TLS_ _ _ RSA _128_ WITH _ AES GCM SHA256 TLS_ _ RSA _ WITH _128_ AES CBC SHA256 TLS_ _ RSA _ WITH _128_ AES CBC SHA TLS_ _ _ ECDHE _ RSA 0_ WITH 05_ CHACHA2 POLY13 SHA256 TLS_ _128_ _ AES GCM SHA256 TLS_ _256_ _ AES 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. Das folgende Beispiel zeigt, wie die zulässigen Werte für den ssl_cipher
Cluster-Parameter für Aurora Postgre SQL 11 abgerufen werden.
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 Variablen ssl_ciphers