Verwenden eines Authentifizierungsprofils zur Verbindung mit Amazon Redshift - Amazon Redshift

Verwenden eines Authentifizierungsprofils zur Verbindung mit Amazon Redshift

Wenn Sie viele Verbindungen zu Amazon Redshift haben, kann es schwierig sein, Einstellungen für alle zu verwalten. Oft verwendet jede JDBC- oder ODBC-Verbindung bestimmte Konfigurationsoptionen. Mithilfe eines Authentifizierungsprofils können Sie Verbindungsoptionen zusammen speichern. Auf diese Weise können Ihre Benutzer ein Profil auswählen, mit dem Sie sich verbinden, und die Verwaltung von Einstellungen für einzelne Optionen vermeiden. Profile können für verschiedene Szenarien und Benutzertypen gelten.

Nachdem Sie ein Authentifizierungsprofil erstellt haben, können Benutzer das einsatzbereite Profil einer Verbindungszeichenfolge hinzufügen. So können sie eine Verbindung zu Amazon Redshift mit den richtigen Einstellungen für jede Rolle und jeden Anwendungsfall herstellen.

Informationen zur Amazon-Redshift-API finden Sie unter CreateAuthenticationProfile (Erstellen eines Authentifizierungsprofils).

Erstellen eines Authentifizierungsprofils

Verwenden Sie AWS CLI, um ein Authentifizierungsprofil mit dem create-authentication-profile-Befehl zu erstellen. Dies setzt voraus, dass Sie einen vorhandenen Amazon-Redshift-Cluster und eine vorhandene Datenbank besitzen. Ihre Anmeldeinformationen müssen über die Berechtigung verfügen, sich mit der Amazon-Redshift-Datenbank zu verbinden, und die Berechtigung zum Abrufen des Authentifizierungsprofils haben. Sie geben die Konfigurationsoptionen als JSON-Zeichenfolge an oder verweisen auf eine Datei, die Ihre JSON-Zeichenfolge enthält.

create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>

Im folgenden Beispiel wird ein Profil namens ExampleProfileName erstellt. Hier können Sie Schlüssel und Werte hinzufügen, die Ihren Clusternamen und andere Optionseinstellungen als JSON-Zeichenfolge definieren.

create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }

Dieser Befehl erstellt das Profil mit den angegebenen JSON-Einstellungen. Folgendes wird zurückgegeben, was darauf hinweist, dass das Profil erstellt wurde.

{"AuthenticationProfileName": "ExampleProfileName", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }

Einschränkungen und Kontingente für das Erstellen eines Authentifizierungsprofils

Jeder Kunde hat ein Kontingent von zehn (10) Authentifizierungsprofilen.

Bei Authentifizierungsprofilen können bestimmte Fehler auftreten. Zum Beispiel wenn Sie ein neues Profil mit einem vorhandenen Namen erstellen oder wenn Sie Ihr Profilkontingent überschreiten. Weitere Informationen finden Sie unter CreateAuthenticationProfile (Erstellen eines Authentifizierungsprofils).

Sie können bestimmte Optionsschlüssel und Werte für JDBC-, ODBC- und Python-Verbindungszeichenfolgen nicht im Authentifizierungsprofilspeicher speichern:

  • AccessKeyID

  • access_key_id

  • SecretAccessKey

  • secret_access_key_id

  • PWD

  • Password

  • password

Sie können den Schlüssel oder den Wert AuthProfile nicht im Profilspeicher für JDBC- oder ODBC-Verbindungszeichenfolgen speichern. Bei Python-Verbindungen können Sie auth_profile nicht speichern.

Authentifizierungsprofile werden in Amazon DynamoDB gespeichert und von AWS verwaltet.

Arbeiten mit Authentifizierungsprofilen

Nachdem Sie ein Authentifizierungsprofil erstellt haben, können Sie den Profilnamen als Verbindungsoption für JDBC-Version 2.0 AuthProfile angeben. Mit dieser Verbindungsoption werden die gespeicherten Einstellungen abgerufen.

jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>

Im Folgenden wird ein Beispiel für eine JDBC-URL-Zeichenfolge gezeigt:

jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"

Geben Sie sowohl AccessKeyID als auch SecretAccessKey in der JDBC-URL zusammen mit dem Namen des Authentifizierungsprofils an.

Sie können die Konfigurationsoptionen auch durch Semikolon-Trennzeichen trennen, wie im folgenden Beispiel mit Optionen für die Protokollierung.

jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
Anmerkung

Fügen Sie dem Authentifizierungsprofil keine vertraulichen Informationen hinzu. Speichern Sie z. B. keine AccessKeyID- oder SecretAccessKey-Werte in einem Authentifizierungsprofil. Der Authentifizierungsprofilspeicher verfügt über Regeln, um das Speichern geheimer Schlüssel zu verbieten. Sie erhalten eine Fehlermeldung, wenn Sie versuchen, einen Schlüssel und einen Wert zu speichern, der mit sensiblen Informationen verknüpft ist.

Authentifizierungsprofile abrufen

Um vorhandene Authentifizierungsprofile aufzulisten, rufen Sie den folgenden Befehl auf.

describe-authentication-profiles --authentication-profile-name <value: String>

Das folgende Beispiel zeigt zwei abgerufene Profile. Alle Profile werden zurückgegeben, wenn Sie keinen Profilnamen angeben.

{ "AuthenticationProfiles": [ { "AuthenticationProfileName": "testProfile1", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }, { "AuthenticationProfileName": "testProfile2", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ] }