Sicherheit in Amazon Aurora MySQL - 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 in Amazon Aurora MySQL

Die Sicherheit für Amazon Aurora MySQL wird auf drei Ebenen verwaltet:

  • Um zu kontrollieren, wer Amazon RDS-Managementaktionen auf Aurora MySQL-DB-Clustern und DB-Instances ausführen kann, verwenden Sie AWS Identity and Access Management (IAM). Wenn Sie AWS mithilfe von IAM-Anmeldeinformationen eine Verbindung herstellen, muss Ihr AWS Konto über IAM-Richtlinien verfügen, die die für die Durchführung von Amazon RDS-Verwaltungsvorgängen erforderlichen Berechtigungen gewähren. Weitere Informationen finden Sie unter Identity and Access Management für Amazon Aurora.

    Wenn Sie IAM für den Zugriff auf die Amazon RDS-Konsole verwenden, stellen Sie sicher, dass Sie sich zuerst AWS Management Console mit Ihren IAM-Benutzeranmeldedaten bei der anmelden. Öffnen Sie dann die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  • Stellen Sie sicher, dass Sie Aurora-MySQL-DB-Cluster in einer Virtual Public Cloud (VPC) basierend auf dem Amazon-VPC-Service erstellen. Mithilfe einer VPC-Sicherheitsgruppe können Sie steuern, welche Geräte und Amazon-EC2-Instances Verbindungen zum Endpunkt und Port der DB-Instance für Aurora MySQL-DB-Cluster in einer VPC herstellen können. Diese Endpunkt- und Portverbindungen können mithilfe von Transport Layer Security (TLS) erstellt werden. 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 VPCs finden Sie unter Amazon VPCs und Amazon Aurora.

    Die unterstützte VPC-Tenancy hängt von der DB-Instance-Klasse ab, die von Ihren Aurora MySQL DB-Clustern verwendet wird. Mit default-VPC-Tenancy, the VPC läuft der VPC auf gemeinsam genutzter Hardware. Mit der dedicated-VPC-Tenancy läuft die VPC auf einer dedizierten Hardware-Instance. Die DB-Instance-Klassen mit Spitzenlastleistung unterstützen nur die Standard-VPC-Tenancy. Die Burstable-Performance-DB-Instance-Klassen umfassen die DB-Instanzklassen db.t2, db.t3 und db.t4g. Alle anderen Aurora MySQL DB-Instance-Klassen unterstützen sowohl die Standard- als auch die dedizierte VPC-Mieterschaft.

    Anmerkung

    Wir empfehlen, die T-DB-Instance-Klassen nur für Entwicklungs- und Testserver oder andere Nicht-Produktionsserver zu verwenden. Weitere Einzelheiten zu den T-Instance-Klassen finden Sie unter Verwendung von T-Instance-Klassen für Entwicklung und Tests.

    Weitere Informationen zu Instance-Klassen finden Sie unter Aurora DB-Instance-Klassen. Weitere Informationen über die default- und dedicated-VPC-Tenancy finden Sie unter Dedicated Instances im Amazon Elastic Compute Cloud-Benutzerhandbuch.

  • Sie können eine der folgenden Anweisungen, oder eine Kombination davon, befolgen, um die Anmeldung und die Berechtigungen für ein Amazon Aurora MySQL-DB-Cluster zu bestätigen:

    • Sie können denselben Ansatz wie mit einer Stand-Alone Instance in MySQL wählen.

      Befehle wie CREATE USER, RENAME USER, GRANT, REVOKE und SET PASSWORD funktionieren genau wie auf lokalen Datenbanken, so wie auch das direkte Ändern von Datenbank-Schema-Tabellen. Weitere Informationen finden Sie unter Access Control and Account Management in der MySQL-Dokumentation.

    • Sie können auch die IAM-Datenbank-Authentifizierung verwenden.

      Mit der IAM-Datenbank-Authentifizierung können Sie mithilfe eines IAM-Benutzers, einer IAM-Rolle oder eines Authentifizierungstokens Ihr DB-Cluster bestätigen. Ein Authentifizierungstoken ist ein eindeutiger Wert, der mithilfe des Signatur-Version 4-Signiervorgangs erstellt wird. Mithilfe der IAM-Datenbankauthentifizierung können Sie dieselben Anmeldeinformationen verwenden, um den Zugriff auf Ihre AWS Ressourcen und Datenbanken zu kontrollieren. Weitere Informationen finden Sie unter IAM-Datenbankauthentifizierung.

Anmerkung

Weitere Informationen finden Sie unter Sicherheit in Amazon Aurora.

Berechtigungen von Masterbenutzerkonten mit Amazon Aurora MySQL.

Wenn Sie eine DB-Instance von Amazon Aurora MySQL erstellen, verfügt der Hauptbenutzer standardmäßig über die Berechtigungen, die unter Berechtigungen von Hauptbenutzerkonten aufgeführt sind.

Um Verwaltungsservices für jeden DB-Cluster bereitzustellen, werden die admin- und rdsadmin-Benutzer erstellt, wenn der DB-Cluster erstellt wird. Ein Versuch, das Passwort auszulassen oder umzubenennen, oder Berechtigungen für das rdsadmin Konto zu ändern, führt zu einem Fehler.

In Aurora-MySQL-Version 2-DB-Clustern werden die admin- und rdsadmin-Benutzer erstellt, wenn der DB-Cluster erstellt wird. In Aurora-MySQL-Version 3-Clustern werden die admin-, rdsadmin und rds_superuser_role-Benutzer erstellt.

Wichtig

Wir empfehlen Ihnen, den Hauptbenutzer nicht direkt in Ihren Anwendungen zu verwenden. Bleiben Sie stattdessen bei der bewährten Methode, einen Datenbankbenutzer zu verwenden, der mit den Mindestberechtigungen erstellt wurde, die für Ihre Anwendung erforderlich sind.

Für die Verwaltung des Aurora MySQL-DB-Clusters wurden die Standardbefehle kill und kill_query eingeschränkt. Verwenden Sie stattdessen die Amazon RDS-Befehle rds_kill und rds_kill_query, um Benutzersitzungen oder Abfragen in Ihren Aurora MySQL-DB-Instances zu beenden.

Anmerkung

Die Verschlüsselung einer Datenbank-Instance und von Snapshots wird für die Region China (Ningxia) nicht unterstützt.

Verwenden von TLS mit DB-Clustern von Aurora MySQL

DB-Cluster von Amazon Aurora MySQL unterstützen Transport Layer Security (TLS)-Verbindungen von Anwendungen mithilfe des gleichen Prozesses und öffentlichen Aktivierungsschlüssels wie DB-Instances von RDS für MySQL.

Amazon RDS erstellt ein TLS-Zertifikat und installiert das Zertifikat auf der DB-Instance, wenn Amazon RDS die Instance bereitstellt. Diese Zertifikate werden von einer Zertifizierungsstelle signiert. Das TLS-Zertifikat enthält den DB-Instance-Endpunkt als allgemeinen Namen (Common Name, CN) für das TLS-Zertifikat, um gegen Spoofing-Angriffe zu schützen. Dadurch können Sie nur den DB-Cluster-Endpunkt verwenden, um sich mit einem DB-Cluster mithilfe von TLS zu verbinden, wenn Ihr Client SAN (Subject Alternative Names) unterstützt. Andernfalls müssen Sie den Instance-Endpunkt einer Writer-Instance verwenden.

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

Wir empfehlen den AWS JDBC-Treiber als Client, der SAN mit TLS unterstützt. Weitere Informationen zum AWS JDBC-Treiber und vollständige Anweisungen zu seiner Verwendung finden Sie im Amazon Web Services (AWS) JDBC-Treiber-Repository. GitHub

Anfordern einer TLS-Verbindung mit einem DB-Cluster von Aurora MySQL

Mit dem DB-Clusterparameter require_secure_transport können Sie es erforderlich machen, dass Benutzerverbindungen mit Ihrem DB-Cluster von Aurora MySQL TLS verwenden. Standardmäßig ist der require_secure_transport-Parameter auf OFF festgelegt. Sie können den Parameter require_secure_transport auf ON festlegen und damit erforderlich machen, dass Verbindungen mit Ihrem DB-Cluster TLS verwenden.

Sie können den Parameterwert require_secure_transport festlegen, indem Sie die Parametergruppe für Ihren DB-Cluster aktualisieren. Sie müssen Ihren DB-Cluster nicht neu starten, damit die Änderung wirksam wird. Weitere Informationen zu Parametergruppen finden Sie unter Arbeiten mit Parametergruppen.

Anmerkung

Der Parameter require_secure_transport ist nur für Aurora-MySQL-Version 2 und 3 verfügbar. Sie können diesen Parameter in einer benutzerdefinierten DB-Cluster-Parametergruppe festlegen. Der Parameter ist in DB-Instance-Parametergruppen nicht verfügbar.

Wenn der Parameter require_secure_transport für einen DB-Cluster auf ON festgelegt ist, kann ein Datenbankclient eine Verbindung zu ihm herstellen, wenn er eine verschlüsselte Verbindung herstellen kann. Andernfalls wird eine Fehlermeldung ähnlich der folgenden an den Client zurückgegeben:

MySQL Error 3159 (HY000): Connections using insecure transport are prohibited while --require_secure_transport=ON.

TLS-Versionen für Aurora MySQL

Aurora MySQL unterstützt die Transport Layer Security (TLS)-Versionen 1.0, 1.1, 1.2 und 1.3. Ab Aurora-MySQL-Version 3.04.0 und höher können Sie das TLS-1.3-Protokoll verwenden, um Ihre Verbindungen zu schützen. In der folgenden Tabelle wird die TLS-Unterstützung für Aurora MySQL-Versionen gezeigt.

Aurora MySQL Version TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3 Standard

Aurora-MySQL-Version 2

Unterstützt Unterstützt

Unterstützt

Nicht unterstützt Alle unterstützten TLS-Versionen

Aurora MySQL Version 3 (unter 3.04.0)

Unterstützt Unterstützt Unterstützt Nicht unterstützt Alle unterstützten TLS-Versionen

Aurora MySQL Version 3 (3.04.0 und höher)

Nicht unterstützt Nicht unterstützt Unterstützt Unterstützt Alle unterstützten TLS-Versionen
Wichtig

Wenn Sie benutzerdefinierte Parametergruppen für Ihre Aurora-MySQL-Cluster mit Version 2 und Versionen vor 3.04.0 verwenden, empfehlen wir die Verwendung von TLS 1.2, da TLS 1.0 und 1.1 weniger sicher sind. In der Community-Edition von MySQL 8.0.26 und Aurora MySQL 3.03 und ihren Unterversionen wurde die Unterstützung für die TLS-Versionen 1.1 und 1.0 eingestellt.

Die Community-Edition von MySQL 8.0.28 und die kompatiblen Aurora-MySQL-Versionen 3.04.0 und höher unterstützen TLS 1.1 und TLS 1.0 nicht. Wenn Sie Aurora-MySQL-Versionen 3.04.0 und höher verwenden, legen Sie das TLS-Protokoll in Ihrer benutzerdefinierten Parametergruppe nicht auf 1.0 oder 1.1 fest.

Für Aurora-MySQL-Versionen 3.04.0 und höher ist die Standardeinstellung TLS 1.3 und TLS 1.2.

Sie können den DB-Cluster-Parameter tls_version zur Angabe der zulässigen Protokollversionen verwenden. Vergleichbare Clientparameter sind für die meisten Client-Tools oder Datenbanktreiber verfügbar. Einige ältere Clients unterstützen möglicherweise keine neueren TLS-Versionen. Standardmäßig versucht der DB-Cluster, die höchste TLS-Protokollversion zu verwenden, die sowohl von der Server- als auch von der Clientkonfiguration zugelassen wird.

Legen Sie den tls_version-DB-Cluster-Parameter auf einen der folgenden Werte fest:

  • TLSv1.3

  • TLSv1.2

  • TLSv1.1

  • TLSv1

Sie können auch den Parameter tls_version auch als Zeichenfolge einer durch Kommas getrennten Liste einstellen. Wenn Sie sowohl die Protokolle TLS 1.2 als auch TLS 1.0 verwenden möchten, muss der Parameer tls_version alle Protokolle vom niedrigsten bis zum höchsten enthalten. In diesem Fall ist tls_version eingestellt als:

tls_version=TLSv1,TLSv1.1,TLSv1.2

Weitere Informationen zum Ändern von Parametern in einer DB-Cluster-Parametergruppe finden Sie unter Ändern von Parametern in einer DB-Cluster-Parametergruppe. Wenn Sie AWS CLI den tls_version DB-Cluster-Parameter ändern, ApplyMethod muss der auf gesetzt seinpending-reboot. Wenn die Anwendungsmethode pending-reboot ist, werden Änderungen an Parametern angewendet, nachdem Sie die der Parametergruppe zugeordneten DB-Cluster gestoppt und neu gestartet haben.

Konfigurieren von Cipher-Suites für Verbindungen mit Aurora-MySQL-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 Verschlüsselungssammlungen angeben, die Sie zum Sichern von TLS-Verbindungen mit Ihrer Datenbank des Clients zulassen möchten. Mit konfigurierbaren Chiffrier-Suiten können Sie die Verbindungsverschlüsselung steuern, die Ihr Datenbankserver akzeptiert. Dadurch wird verhindert, dass unsichere oder veraltete Chiffren verwendet werden.

Konfigurierbare Verschlüsselungssuites werden in Aurora-MySQL-Version 3 und Aurora-MySQL-Version 2 unterstützt. Um die Liste der zulässigen Verschlüsselungsverfahren TLS 1.2, TLS 1.1, TLS 1.0 für die Verschlüsselung von Verbindungen anzugeben, ändern Sie den Cluster-Parameter ssl_cipher. Legen Sie den Wert für ssl_cipher-Parameter in einer Cluster-Parametergruppe mithilfe der AWS Management Console, der AWS CLI oder der RDS-API fest.

Legen Sie den Parameter ssl_cipher auf eine Zeichenfolge von kommagetrennten Verschlüsselungswerten für Ihre TLS-Version fest. Für die Clientanwendung können Sie die Chiffren angeben, die für verschlüsselte Verbindungen verwendet werden sollen, indem Sie beim Herstellen der Verbindung mit einer Datenbank die Option --ssl-cipher verwenden. Weitere Information zur Herstellung einer Verbindung mit Ihrer Datenbank finden Sie unter Herstellen einer Verbindung mit einem Amazon Aurora MySQL-DB-Cluster.

Ab Aurora-MySQL-Version 3.04.0 und höher können Sie TLS-1.3-Verschlüsselungssuiten angeben. Um die zulässigen TLS-1.3-Verschlüsselungssuites zu spezifizieren, ändern Sie den Parameter tls_ciphersuites in Ihrer Parametergruppe. TLS 1.3 hat die Anzahl der verfügbaren Verschlüsselungssuites reduziert, da die Benennungskonvention geändert wurde, wodurch der Schlüsselaustauschmechanismus und das verwendete Zertifikat entfernt werden. Legen Sie den Wert für tls_ciphersuites auf eine Zeichenfolge von kommagetrennten Verschlüsselungswerten für TLS 1.3 fest.

Die folgende Tabelle zeigt die unterstützten Chiffren zusammen mit dem TLS-Verschlüsselungsprotokoll und gültigen Aurora-MySQL-Engine-Versionen für jede Chiffre.

VerschlüsselungsverfahrenVerschlüsselungsprotokollUnterstützte Aurora-MySQL-Versionen

DHE-RSA-AES128-SHA

TLS 1.03.01.0 und höher, alle unter 2.11.0

DHE-RSA-AES128-SHA256

TLS 1.23.01.0 und höher, alle unter 2.11.0

DHE-RSA-AES128-GCM-SHA256

TLS 1.23.01.0 und höher, alle unter 2.11.0

DHE-RSA-AES256-SHA

TLS 1.03.03.0 und niedriger, alle unter 2.11.0

DHE-RSA-AES256-SHA256

TLS 1.23.01.0 und höher, alle unter 2.11.0

DHE-RSA-AES256-GCM-SHA384

TLS 1.23.01.0 und höher, alle unter 2.11.0

ECDHE-RSA-AES128-SHA

TLS 1.03.01.0 und höher, 2.09.3 und höher, 2.10.2 und höher

ECDHE-RSA-AES128-SHA256

TLS 1.23.01.0 und höher, 2.09.3 und höher, 2.10.2 und höher

ECDHE-RSA-AES128-GCM-SHA256

TLS 1.23.01.0 und höher, 2.09.3 und höher, 2.10.2 und höher

ECDHE-RSA-AES256-SHA

TLS 1.03.01.0 und höher, 2.09.3 und höher, 2.10.2 und höher

ECDHE-RSA-AES256-SHA384

TLS 1.23.01.0 und höher, 2.09.3 und höher, 2.10.2 und höher

ECDHE-RSA-AES256-GCM-SHA384

TLS 1.23.01.0 und höher, 2.09.3 und höher, 2.10.2 und höher

TLS_AES_128_GCM_SHA256

TLS 1.33.04.0 und höher

TLS_AES_256_GCM_SHA384

TLS 1.33.04.0 und höher

TLS_CHACHA20_POLY1305_SHA256

TLS 1.33.04.0 und höher
Anmerkung

DHE-RSA-Verschlüsselungen werden nur von Aurora-MySQL-Versionen vor 2.11.0 unterstützt. Versionen 2.11.0 und höher unterstützen nur ECDHE-Verschlüsselungen.

Weitere Informationen zum Ändern von Parametern in einer DB-Cluster-Parametergruppe finden Sie unter Ändern von Parametern in einer DB-Cluster-Parametergruppe. Wenn Sie die CLI verwenden, um den DB-Cluster-Parameter ssl_cipher zu ändern, stellen Sie sicher, dass Sie die ApplyMethod auf pending-reboot festlegen. Wenn die Anwendungsmethode pending-reboot ist, werden Änderungen an Parametern angewendet, nachdem Sie die der Parametergruppe zugeordneten DB-Cluster gestoppt und neu gestartet haben.

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-MySQL-Version 2 abrufen.

aws rds describe-engine-default-cluster-parameters --db-parameter-group-family aurora-mysql5.7 ...some output truncated... { "ParameterName": "ssl_cipher", "ParameterValue": "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", "Description": "The list of permissible ciphers for connection encryption.", "Source": "system", "ApplyType": "static", "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", "IsModifiable": true, "SupportedEngineModes": [ "provisioned" ] }, ...some output truncated...

Weitere Informationen zu Chiffren finden Sie in der ssl_cipher-Variablen in der MySQL-Dokumentation. Weitere Informationen zu Chiffrier-Suite-Formaten finden Sie unter openssl-ciphers list format und openssl-ciphers string format-Dokumentation auf der OpenSSL-Website.

Verschlüsseln von Verbindungen zu einem Aurora MySQL-DB-Cluster

Um die vom Standard-mysql-Client verwendeten Verbindungen zu verschlüsseln, starten Sie den mysql-Client mithilfe des Parameters --ssl-ca, um auf den öffentlichen Schlüssel zu verweisen, beispielsweise:

Für MySQL 5.7 und 8.0:

mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=full_path_to_CA_certificate --ssl-mode=VERIFY_IDENTITY

Für MySQL 5.6:

mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=full_path_to_CA_certificate --ssl-verify-server-cert

Ersetzen Sie full_path_to_CA_certificate mit dem vollständigen Pfad zum Zertifikat Ihrer Zertifizierungsstelle (CA). Informationen zum Herunterladen von Zertifikaten finden Sie unter Verwenden von SSL/TLS zum Verschlüsseln einer Verbindung zu einer .

Sie können TLS-Verbindungen für bestimmte Benutzerkonten anfordern. Verwenden Sie beispielsweise eine der folgenden Anweisungen – abhängig von Ihrer MySQL-Version – um /TLS-Verbindungen für das Benutzerkonto encrypted_user erforderlich zu machen.

Für MySQL 5.7 und 8.0:

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

Für MySQL 5.6:

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

Wenn Sie einen RDS-Proxy verwenden, stellen Sie eine Verbindung mit dem Proxyendpunkt anstelle des üblichen Cluster-Endpunkts her. Sie können SSL/TLS für Verbindungen mit dem Proxy auf die gleiche Weise wie für Verbindungen direkt mit dem Aurora-DB-Cluster als erforderlich oder optional festlegen. Informationen zur Verwendung von RDS Proxy finden Sie unter Verwenden von Amazon RDS Proxy für Aurora.

Anmerkung

Weitere Informationen zu TLS-Verbindungen mit MySQL finden Sie in der MySQL-Dokumentation.