Wie erlaube ich Benutzern, sich mit ihren IAM-Anmeldeinformationen bei einer DB-Instance bei Amazon RDS für MySQL zu authentifizieren?

Lesedauer: 5 Minute
0

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:

  1. Öffne die IAM-Konsole.
  2. Wähle im Navigationsbereich Richtlinien aus.
  3. Wähle Richtlinie erstellen.
  4. 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.
  5. Wähle Weiter aus.
  6. Wähle Weiter aus.
  7. Gib als Name einen Richtliniennamen ein.
  8. Wähle Richtlinie erstellen.

Erstellen einer IAM-Rolle, die Zugriff auf Amazon RDS erlaubt

Führe die folgenden Schritte aus:

  1. Öffne die IAM-Konsole.
  2. Wähle im Navigationsbereich Rollen aus.
  3. Wähle im Abschnitt „Typ der Vertrauenswürdigen Entität“ die Option Rolle erstellen aus.
  4. Wähle AWS-Service.
  5. Wähle im Abschnitt Anwendungsfall für Service or user case (Service- oder Anwendungsfall) die Option EC2 aus.
  6. Wähle für Anwendungsfall EC2 aus, und wähle dann Weiter.
  7. 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.
  8. Wähle Weiter aus.
  9. Gib unter Rollenname einen Namen für diese IAM-Rolle ein.
  10. Wähle Rolle erstellen.

Anfügen der IAM-Rolle an die Amazon-EC2-Instance

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-EC2-Konsole.
  2. Wähle die EC2-Instance aus, die du für die Verbindung mit Amazon RDS verwendest.
  3. Füge deine neu erstellte IAM-Rolle an die EC2-Instance an.
  4. 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

Was sind die geringsten Rechte, die ein Benutzer benötigt, um eine Amazon RDS-DB-Instance zu erstellen, zu löschen, zu ändern, zu sichern und wiederherzustellen?