Generieren von Datenbankanmeldedaten für eine IAM Identität mithilfe von Amazon Redshift oder CLI API - Amazon Redshift

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.

Generieren von Datenbankanmeldedaten für eine IAM Identität mithilfe von Amazon Redshift oder CLI API

Um programmgesteuert temporäre Datenbank-Benutzeranmeldedaten zu generieren, stellt Amazon Redshift den get-cluster-credentialsBefehl für die AWS Command Line Interface (AWS CLI) und die Operation bereit. GetClusterCredentialsAPI Oder Sie können Ihren SQL Client mit Amazon Redshift JDBC oder ODBC Treibern konfigurieren, die den Vorgang des Aufrufs des GetClusterCredentials Vorgangs, das Abrufen der Datenbank-Benutzeranmeldedaten und das Herstellen einer Verbindung zwischen Ihrem SQL Client und Ihrer Amazon Redshift Redshift-Datenbank verwalten. Weitere Informationen finden Sie unter JDBCund ODBC Optionen für die Erstellung von Datenbank-Benutzeranmeldeinformationen.

Anmerkung

Wir empfehlen die Verwendung von Amazon Redshift JDBC oder ODBC Treibern, um Datenbank-Benutzeranmeldeinformationen zu generieren.

In diesem Abschnitt finden Sie Schritte zum programmgesteuerten Aufrufen des GetClusterCredentials Vorgangs oder get-cluster-credentials Befehls, zum Abrufen der Anmeldeinformationen von Datenbankbenutzern und zum Herstellen einer Verbindung mit der Datenbank.

Erstellen und verwenden Sie temporäre Datenbankanmeldeinformationen wie folgt:
  1. Erstellen oder bearbeiten Sie einen Benutzer oder eine Rolle mit den erforderlichen Berechtigungen. Weitere Hinweise zu IAM Berechtigungen finden Sie unter. Schritt 3: Erstellen Sie eine IAM Rolle mit Anrufberechtigungen GetClusterCredentials

  2. Führen Sie als Benutzer oder Rolle, die Sie im vorherigen Schritt autorisiert haben, den get-cluster-credentials CLI Befehl aus oder rufen Sie den GetClusterCredentials API Vorgang auf und geben Sie die folgenden Werte an:

    • Cluster identifier (Cluster-ID) – der Name des Clusters, der die Datenbank enthält.

    • Database user name (Datenbankbenutzername) – der Name eines bestehenden oder neuen Datenbankbenutzers.

      • Wenn der Benutzer nicht in der Datenbank vorhanden AutoCreate ist und den Wert true hat, wird ein neuer Benutzer mit PASSWORD deaktivierter Option erstellt.

      • Wenn der Benutzer nicht existiert und AutoCreate den Wert False hat, schlägt die Anfrage fehl.

      • In diesem Beispiel lautet der Datenbankbenutzername temp_creds_user.

    • Autocreate (Automatisch erstellen) – (Optional) Erstellt einen neuen Benutzer, wenn der Datenbankbenutzername nicht vorhanden ist.

    • Database name (Datenbankname) – (Optional) Der Name der Datenbank, bei der der Benutzer zur Anmeldung autorisiert ist. Wenn kein Datenbankname angegeben ist, kann sich der Benutzer bei jeder Datenbank des Clusters anmelden.

    • Database groups (Datenbankgruppen) – (Optional) Eine Liste der vorhandenen Datenbankbenutzergruppen. Bei erfolgreicher Anmeldung wird der Datenbankbenutzer den angegebenen Benutzergruppen hinzugefügt. Wenn keine Gruppe angegeben ist, hat der Benutzer nur PUBLIC Berechtigungen. Die Namen der Benutzergruppen müssen mit den DBgroup-Ressourcen übereinstimmen, die in der dem Benutzer oder der Rolle zugewiesenen IAM Richtlinie ARNs angegeben sind.

    • Expiration time (Ablaufzeit) – (Optional) Die Ablaufzeit der temporären Anmeldeinformationen in Sekunden. Sie können einen Wert zwischen 900 Sekunden (15 Minuten) und 3600 Sekunden (60 Minuten) auswählen. Standardmäßig ist ein Zeitraum von 900 Sekunden festgelegt.

  3. Amazon Redshift verifiziert, dass der Benutzer zum Aufrufen der Operation GetClusterCredentials mit den angegebenen Ressourcen berechtigt ist.

  4. Amazon Redshift gibt ein temporäres Passwort und den Datenbankbenutzernamen zurück.

    Im folgenden Beispiel wird Amazon Redshift verwendet, CLI um temporäre Datenbankanmeldedaten für einen vorhandenen Benutzer mit dem Namen temp_creds_user zu generieren.

    aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --db-name exampledb --duration-seconds 3600

    Das Ergebnis ist wie folgt.

    {
      "DbUser": "IAM:temp_creds_user", 
      "Expiration": "2016-12-08T21:12:53Z", 
      "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
    }

    Im folgenden Beispiel wird Amazon Redshift CLI mit Autocreate verwendet, um temporäre Datenbankanmeldedaten für einen neuen Benutzer zu generieren und den Benutzer der Gruppe hinzuzufügen. example_group

    aws redshift get-cluster-credentials --cluster-identifier examplecluster --db-user temp_creds_user --auto-create --db-name exampledb --db-groups example_group --duration-seconds 3600

    Das Ergebnis ist wie folgt.

    {
      "DbUser": "IAMA:temp_creds_user:example_group", 
      "Expiration": "2016-12-08T21:12:53Z", 
      "DbPassword": "EXAMPLEjArE3hcnQj8zt4XQj9Xtma8oxYEM8OyxpDHwXVPyJYBDm/gqX2Eeaq6P3DgTzgPg=="
    }
  5. Stellen Sie eine Secure Socket Layer (SSL) -Authentifizierungsverbindung mit dem Amazon Redshift Redshift-Cluster her und senden Sie eine Anmeldeanforderung mit dem Benutzernamen und dem Passwort aus der GetClusterCredentials Antwort. Geben Sie mit dem Benutzernamen das Präfix IAM: oder IAMA: an, zum Beispiel IAM:temp_creds_user oder IAMA:temp_creds_user.

    Wichtig

    Konfigurieren Sie Ihren SQL Client so, dass er erforderlich istSSL. Andernfalls kann Ihr SQL Client, wenn er automatisch versuchtSSL, eine Verbindung herzustellen, auf Non- zurückgreifen, SSL falls ein Fehler auftritt. In diesem Fall schlägt der erste Verbindungsversuch möglicherweise fehl, weil die Anmeldeinformationen abgelaufen oder ungültig sind, und ein zweiter Verbindungsversuch schlägt fehl, weil die Verbindung nicht hergestellt wurdeSSL. Falls dies passiert, wird die erste Fehlermeldung möglicherweise übersehen. Weitere Hinweise zum Herstellen einer Verbindung zu Ihrem Cluster mithilfe von SSL finden Sie unterKonfigurieren von Sicherheitsoptionen für Verbindungen.

  6. Wenn die Verbindung nicht verwendet wirdSSL, schlägt der Verbindungsversuch fehl.

  7. Der Cluster sendet eine authentication Anfrage an den SQL Client.

  8. Der SQL Client sendet dann das temporäre Passwort an den Cluster.

  9. Falls das Passwort gültig und nicht abgelaufen ist, stellt der Cluster die Verbindung her.