Sicherheit mit Amazon Aurora Postgre SQL - Amazon Aurora

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. Bei dedicated 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 und dedicated 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 und REVOKE 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äßig postgres). 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. Informationen zur Verwendung einer SSL TLS /-Verbindung finden Sie in der SQL Postgre-Dokumentation unter Konfiguration des Clients. JDBC

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
  1. Laden Sie das Zertifikat herunter.

    Informationen zum Herunterladen von Zertifikaten finden Sie unter Verwenden vonSSL/TLSzum Verschlüsseln einer Verbindung zu einer .

  2. Importieren Sie das Zertifikat in Ihr Betriebssystem.

  3. 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, beispielsweise sslrootcert=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 in der SQL Postgre-Dokumentation.

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 in der Postgre-Dokumentation. SQL