Wie erlaube ich Benutzern, sich mit ihren IAM-Anmeldeinformationen bei einer DB-Instance bei Amazon RDS für MySQL zu authentifizieren?
Ich möchte eine Verbindung zu einer DB-Instance bei Amazon Relational Database Service (Amazon RDS) für MySQL herstellen. Ich möchte Anmeldeinformationen von AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement) anstelle nativer Authentifizierungsmethoden verwenden.
Behebung
**Anmerkung:**Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhältst, findest du weitere Informationen unter Beheben von AWS-CLI-Fehlern. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Verwende Anmeldeinformationen von IAM-Benutzern oder -Rollen und ein Authentifizierungstoken](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.Connect.html), um eine [Verbindung zu einer Amazon RDS-DB-Instance oder einem Cluster herzustellen.
Hinweis: Verwende eine unverschlüsselte MySQL-Verbindung nur, wenn sich der Client und der Server in derselben Virtual Private Cloud (VPC) befinden und das Netzwerk vertrauenswürdig ist.
Voraussetzung
Du musst eine DB-Instance, die die IAM-Datenbankauthentifizierung unterstützt, und eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance starten, um eine Verbindung zur Datenbank herzustellen.
Um die für die IAM-Authentifizierung erforderliche Konfiguration zu überprüfen, verwende das AWS Systems Manager Automation-Runbook AWSSupport-TroubleshootRDSIAMAuthentication. Du kannst das Runbook auch verwenden, um Verbindungsprobleme mit der Amazon RDS-Instance oder dem Aurora-Cluster zu beheben.
Aktivieren der IAM-DB-Authentifizierung auf der RDS-DB-Instance
Du kannst die Amazon RDS-Konsole, die AWS Command Line Interface (AWS CLI) oder die Amazon RDS-API verwenden, um die IAM-Datenbankauthentifizierung zu aktivieren. Wenn du die Amazon RDS-Konsole verwendest, um die DB-Instance zu ändern, wähle Sofort anwenden, um die IAM-Datenbankauthentifizierung zu aktivieren. Weitere Informationen findest du unter Amazon RDS-DB-Instances.
Hinweis: Wenn du Sofort anwenden wählst, werden alle ausstehenden Änderungen ebenfalls sofort übernommen. Weitere Informationen findest du unter Schedule modifications setting (Einstellung für Zeitplanänderungen).
Erstellen eines Datenbankbenutzerkontos, das ein AWS-Authentifizierungstoken verwendet
Führe den folgenden Befehl aus, um eine Verbindung zur DB-Instance oder zum Cluster-Endpunkt herzustellen.
$ mysql -h {database or cluster endpoint} -P {port number database is listening on} -u {master db username} -p
Hinweis: Verwende dein primäres Passwort, um dich anzumelden.
Führe den folgenden Befehl aus, um ein Datenbankbenutzerkonto zu erstellen, das ein AWS-Authentifizierungstoken anstelle eines Passworts verwendet:
CREATE USER {dbusername} IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS';
Standardmäßig hat der Datenbankbenutzer keine Rechte. Der Datenbankbenutzer wird als GRANT USAGE angezeigt, wenn du SHOW GRANTS FOR {dbusername} ausführst. Führe den folgenden Befehl aus, um ein Benutzerkonto für die Verbindung über SSL anzufordern:
ALTER USER {dbusername} REQUIRE SSL;
Führe den Befehl exit aus, um MySQL zu schließen. Melde dich dann von der DB-Instance ab.
Hinzufügen einer IAM-Richtlinie, die den Datenbankbenutzer der IAM-Rolle zuordnet
Führe die folgenden Schritte aus:
- Öffne die IAM-Konsole.
- Wähle im Navigationsbereich Richtlinien aus.
- Wähle Richtlinie erstellen.
- Gib eine Richtlinie ein, die dem gewünschten Benutzer die Aktion rds-db:connect erlaubt. Weitere Informationen zum Erstellen dieser Richtlinie findest du unter Erstellen und Verwenden einer IAM-Richtlinie für den IAM-Datenbankzugriff.
Hinweis: Stelle sicher, dass du die Details deiner Datenbankressourcen in den Abschnitt Ressourcen eingibst. - Wähle Weiter aus.
- Wähle Weiter aus.
- Gib als Name einen Richtliniennamen ein.
- Wähle Richtlinie erstellen.
Erstellen einer IAM-Rolle, die Zugriff auf Amazon RDS erlaubt
Führe die folgenden Schritte aus:
- Öffne die IAM-Konsole.
- Wähle im Navigationsbereich Rollen aus.
- Wähle im Abschnitt „Typ der Vertrauenswürdigen Entität“ die Option Rolle erstellen aus.
- Wähle AWS-Service.
- Wähle im Abschnitt Anwendungsfall für Service or user case (Service- oder Anwendungsfall) die Option EC2 aus.
- Wähle für Anwendungsfall EC2 aus, und wähle dann Weiter.
- Suche mittels der Suchleiste nach der IAM-Richtlinie, die du zuvor im Abschnitt Hinzufügen einer IAM-Richtlinie, die den Datenbankbenutzer der IAM-Rolle zuordnet erstellt hast.
- Wähle Weiter aus.
- Gib unter Rollenname einen Namen für diese IAM-Rolle ein.
- Wähle Rolle erstellen.
Anfügen der IAM-Rolle an die Amazon-EC2-Instance
Führe die folgenden Schritte aus:
- Öffne die Amazon-EC2-Konsole.
- Wähle die EC2-Instance aus, die du für die Verbindung mit Amazon RDS verwendest.
- Füge deine neu erstellte IAM-Rolle an die EC2-Instance an.
- Stelle über SSH eine Verbindung zur EC2-Instance her.
Generieren eines AWS-Authentifizierungstokens, um die IAM-Rolle zu identifizieren
Nachdem du eine Verbindung zur Amazon EC2-Instance hergestellt hast, führe den folgenden AWS CLI-Befehl generate-db-auth-token aus, um ein Authentifizierungstoken zu generieren:
$ aws rds generate-db-auth-token --hostname {db or cluster endpoint} --port 3306 --username {db username}
Hinweis: Wenn du beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhältst, findest du weitere Informationen unter Beheben von AWS CLI-Fehlern. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Kopiere und speichere dieses Authentifizierungstoken zur späteren Verwendung. Oder verwende ein AWS-SDK für .NET, um ein Token zu generieren.
Die Paketdatei für das SSL-Stammzertifikat herunterladen
Informationen zum Herunterladen eines Zertifikatspakets für alle AWS-Regionen findest du unter Zertifikatspakete für alle AWS-Regionen.
Verwendung der IAM-Rollenanmeldeinformationen und des Authentifizierungstokens, um eine Verbindung zur RDS-DB-Instance herzustellen
Nachdem du die Zertifikatsdatei heruntergeladen hast, führe den folgenden Befehl aus, um über SSL eine Verbindung zur DB-Instance herzustellen:
RDSHOST="rdsmysql.abcdefghijk.us-west-2.rds.amazonaws.com" TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username {db username})" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN
Hinweis: Wenn du einen MariaDB-Client verwendest, gib die Option --enable-cleartext-plugin nicht an.
Verwende IAM-Rollenanmeldeinformationen und SSL-Zertifikate, um eine Verbindung zur RDS-DB-Instance herzustellen
Nachdem du die Zertifikatsdatei heruntergeladen hast, stelle über SSL eine Verbindung zur DB-Instance her.
Ähnliche Informationen
IAM-Datenbankauthentifizierung für MariaDB, MySQL und PostgreSQL
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren