Verwendung der Amazon Redshift Redshift-Verwaltungsschnittstellen für bereitgestellte Cluster - 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.

Verwendung der Amazon Redshift Redshift-Verwaltungsschnittstellen für bereitgestellte Cluster

Anmerkung

Dieses Thema konzentriert sich auf Amazon Redshift Redshift-Verwaltungsschnittstellen für bereitgestellte Cluster. Es gibt ähnliche Verwaltungsschnittstellen für Amazon Redshift Serverless und Amazon Redshift Data API.

Amazon Redshift unterstützt mehrere Verwaltungsschnittstellen, mit denen Sie Amazon Redshift Redshift-Cluster erstellen, verwalten und löschen können: die AWS SDKs, die AWS Command Line Interface (AWS CLI) und die Amazon Redshift Redshift-Management-API.

Amazon Redshift API – Sie können diese Amazon Redshift Management API aufrufen, indem Sie eine Anforderung senden. Die Anforderungen sind HTTP- oder HTTPS-Anforderungen, die die HTTP-Verben GET oder POST mit einem Parameter namens Action verwenden. Das Aufrufen der Amazon Redshift API ist der direkteste Weg, auf den Amazon-Redshift-Service zuzugreifen. Es ist jedoch erforderlich, dass Ihre Anwendung Details auf unterer Ebene verarbeitet, wie beispielsweise die Fehlerbehandlung und das Erstellen eines Hash-Zeichens zum Signieren der Anforderung.

AWS SDKs — Sie können die AWS SDKs verwenden, um Amazon Redshift Redshift-Cluster-bezogene Operationen durchzuführen. Mehrere der SDK-Bibliotheken kapseln die zugrunde liegende Amazon Redshift API. Sie integrieren die API-Funktionalität in die spezifische Programmiersprache und verarbeiten viele der Details auf unterer Ebene wie beispielsweise die Berechnung der Signaturen, die Verarbeitung des erneuten Absendens von Anforderungen und die Fehlerbehandlung. Durch Aufrufen der Wrapper-Funktionen in den SDK-Bibliotheken kann der Prozess des Schreibens einer Anwendung zum Verwalten eines Amazon-Redshift-Clusters erheblich vereinfacht werden.

  • Amazon Redshift wird von den AWS SDKs für Java, .NET, PHP, Python, Ruby und Node.js unterstützt. Die Wrapper-Funktionen für Amazon Redshift sind in den Referenzhandbüchern zu den einzelnen SDKs dokumentiert. Eine Liste der AWS SDKs und Links zu deren Dokumentation finden Sie unter Tools for Amazon Web Services.

  • Dieses Handbuch bietet Beispiele für die Verwendung von Amazon Redshift mit dem Java-SDK. Allgemeinere AWS SDK-Codebeispiele finden Sie unterCodebeispiele für Amazon Redshift mit SDKs AWS.

AWS CLI— Die CLI bietet eine Reihe von Befehlszeilentools, mit denen Sie AWS Dienste von Windows-, Mac- und Linux-Computern aus verwalten können. Die AWS CLI enthält Befehle, die auf den Amazon Redshift API-Aktionen basieren.

Signieren von HTTP-Anforderungen

In Amazon Redshift müssen alle Anforderungen, die Sie an die Verwaltungs-API senden, durch eine Signatur authentifiziert werden. In diesem Thema wird beschrieben, wie Sie Ihre HTTP-Anforderungen signieren.

Wenn Sie eines der AWS Software Development Kits (SDKs) oder das verwenden AWS Command Line Interface, erfolgt das Signieren von Anfragen automatisch, und Sie können diesen Abschnitt überspringen. Weitere Informationen zur Verwendung von AWS SDKs finden Sie unter. Verwendung der Amazon Redshift Redshift-Verwaltungsschnittstellen für bereitgestellte Cluster Weitere Informationen zur Verwendung der Amazon-Redshift-Befehlszeilenschnittstelle finden Sie in der Amazon-Redshift-Befehlszeilenreferenz.

Zum Signieren einer Anforderung berechnen Sie mit einer kryptografischen Hash-Funktion eine digitale Signatur. Ein kryptografischer Hash ist eine Funktion, die einen einzigartigen, auf Grundlage der Eingabe berechneten Hash-Wert zurückgibt. Die Eingabe in die Hash-Funktion besteht aus dem Text Ihrer Anforderung und Ihrem geheimen Zugriffsschlüssel, den Sie aus den temporären Anmeldeinformationen ableiten können. Die Hash-Funktion gibt einen Hash-Wert zurück, den Sie in die Anforderung als Ihre Signatur einfügen. Die Signatur ist Teil des Headers Authorization in der Anforderung.

Anmerkung

Benutzer benötigen programmatischen Zugriff, wenn sie mit AWS außerhalb des interagieren möchten. AWS Management Console Die Art und Weise, wie programmatischer Zugriff gewährt wird, hängt vom Benutzertyp ab, der zugreift. AWS

Um Benutzern programmgesteuerten Zugriff zu gewähren, wählen Sie eine der folgenden Optionen.

Welcher Benutzer benötigt programmgesteuerten Zugriff? Bis Von

Mitarbeiteridentität

(Benutzer, die in IAM Identity Center verwaltet werden)

Verwenden Sie temporäre Anmeldeinformationen, um programmatische Anfragen an die AWS CLI, AWS SDKs oder APIs zu signieren. AWS

Befolgen Sie die Anweisungen für die Schnittstelle, die Sie verwenden möchten.

IAM Verwenden Sie temporäre Anmeldeinformationen, um programmatische Anfragen an die AWS CLI, AWS SDKs oder APIs zu signieren. AWS Folgen Sie den Anweisungen unter Verwenden temporärer Anmeldeinformationen mit AWS Ressourcen im IAM-Benutzerhandbuch.
IAM

(Nicht empfohlen)

Verwenden Sie langfristige Anmeldeinformationen, um programmatische Anfragen an die AWS CLI, AWS SDKs oder APIs zu signieren. AWS

Befolgen Sie die Anweisungen für die Schnittstelle, die Sie verwenden möchten.

Nachdem Amazon Redshift Ihre Anforderung erhalten hat, berechnet der Service die Signatur erneut unter Verwendung derselben Hash-Funktion und Eingaben, die Sie zum Signieren der Anforderung verwendet haben. Wenn die resultierende Signatur mit der Signatur in der Anforderung übereinstimmt, verarbeitet Amazon Redshift die Anforderung; ansonsten wird die Anforderung zurückgewiesen.

Amazon Redshift unterstützt die Authentifizierung mit AWS Signature Version 4. Der Prozess zum Berechnen einer Signatur lässt sich in drei Aufgaben untergliedern: Diese Aufgaben werden in dem folgenden Beispiel illustriert.

  • Aufgabe 1: Erstellen einer kanonischen Anforderung

    Ordnen Sie Ihre HTTP-Anforderung in einer kanonischen Form an. Die Verwendung einer kanonischen Form ist erforderlich, weil Amazon Redshift bei der Berechnung der Signatur zum Vergleich mit der von Ihnen gesendeten Signatur dieselbe kanonische Form verwendet.

  • Aufgabe 2: Erstellen einer zu signierenden Zeichenfolge

    Erstellen Sie eine Zeichenfolge, die Sie als einen der Eingabewerte für die kryptografische Hash-Funktion nutzen. Die als zu signierende Zeichenfolge bezeichnete Zeichenfolge ist eine Kombination aus dem Namen des Hash-Algorithmus, dem Anforderungsdatum, einer Zeichenfolge mit dem Umfang der Anmeldeinformationen und der kanonischen Anforderung aus der vorherigen Aufgabe. Die Zeichenfolge mit dem Umfang der Anmeldeinformationen selbst ist eine Kombination aus Datum, Region und Serviceinformationen.

  • Aufgabe 3: Berechnen einer Signatur

    Berechnen Sie eine Signatur für Ihre Anforderung. Verwenden Sie dazu eine kryptografische Hash-Funktion, die zwei Eingabezeichenfolgen akzeptiert: die zu signierende Zeichenfolge und einen abgeleiteten Schlüssel. Der abgeleitete Schlüssel wird unter Nutzung des geheimen Zugriffsschlüssels und der Zeichenfolge mit dem Umfang der Anmeldeinformationen berechnet, um eine Reihe von Hash-Nachrichtenauthentifizierungscodes (HMAC-SHA256) zu erstellen.

Beispiel für eine Signatur-Berechnung

Das folgende Beispiel führt Sie durch die Einzelheiten der Erstellung einer Signatur für CreateClustereine Anfrage. Sie können dieses Beispiel als Referenz verwendet, um Ihre eigene Signaturberechnungsmethode zu überprüfen. Weitere Referenzberechnungen sind im Abschnitt Anfordern von Signaturbeispielen des IAM-Benutzerhandbuchs enthalten.

Sie können zum Senden von Anforderungen an Amazon Redshift wahlweise GET- oder POST-Anforderungen verwenden. Der Unterschied zwischen den beiden Anforderungen ist, dass bei GET die Abfrageparameter als Parameter in der Abfragezeichenfolge übermittelt werden. Bei POST werden die Abfrageparameter im Text der Anforderung übermittelt. In dem folgenden Beispiel ist eine POST-Anforderung dargestellt.

In diesem Beispiel wird Folgendes angenommen:

  • Der Zeitstempel der Anforderung ist Fri, 07 Dec 2012 00:00:00 GMT.

  • Der Endpunkt ist die Region USA Ost (Nord-Virginia), us-east-1.

Das allgemeine Format für Anforderungen lautet wie folgt:

https://redshift.us-east-1.amazonaws.com/ ?Action=CreateCluster &ClusterIdentifier=examplecluster &MasterUsername=masteruser &MasterUserPassword=12345678Aa &NumberOfNode=2 &NodeType=ds2.xlarge &Version=2012-12-01 &x-amz-algorithm=AWS4-HMAC-SHA256 &x-amz-credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request &x-amz-date=20121207T000000Z &x-amz-signedheaders=content-type;host;x-amz-date

Die kanonische Form der für Aufgabe 1: Erstellen einer kanonischen Anforderung berechneten Anforderung ist:

POST / content-type:application/x-www-form-urlencoded; charset=utf-8 host:redshift.us-east-1.amazonaws.com x-amz-date:20121207T000000Z content-type;host;x-amz-date 55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d

Die letzte Zeile der kanonischen Anforderungen ist der Hash des Anforderungstextes. Die dritte Zeile in der kanonischen Anforderung ist leer, weil dieser API-Aufruf keine Abfrageparameter hat.

Die zu signierende Zeichenfolge für Aufgabe 2: Erstellen einer zu signierenden Zeichenfolge ist:

AWS4-HMAC-SHA256 20121207T000000Z 20121207/us-east-1/redshift/aws4_request 06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714

Die erste Zeile der zu signierenden Zeichenfolge ist der Name des Algorithmus, die zweite Zeile der Zeitstempel, die dritte Zeile der Geltungsbereich der Anmeldeinformationen und die letzte Zeile ein Hash der kanonischen Anforderung aus Aufgabe 1: Erstellen einer kanonischen Anforderung. In dem Geltungsbereich für die Anmeldeinformationen ist auch u.a. der Name des zu verwenden Service angegeben, redshift.

Für Aufgabe 3: Berechnen einer Signatur kann der abgeleitete Schlüssel wie folgt dargestellt werden:

derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20121207"),"us-east-1"),"redshift"),"aws4_request")

Der abgeleitete Schlüssel wird durch eine Abfolge von Hash-Funktionen berechnet. In der am tiefsten verschachtelten HMAC-Anweisung in der Formel oben wird an die Zeichenfolge AWS4 Ihr geheimer Zugriffsschlüssel angehängt und die so verkettete Zeichenfolge wird als Schlüssel zur Berechnung der Hashes für die Daten „us-east-1“ verwendet. Das Ergebnis dieses Hashes wird als Schlüssel für die nächste Hash-Funktion verwendet.

Sie verwenden diesen abgeleiteten Schlüssel in einer Hash-Funktion, die zwei Zeichenfolgen als Eingabeparameter entgegennimmt, nämlich die zu signierende Zeichenfolge und den abgeleiteten Schlüssel. Beispiel: Wenn Sie den geheimen Zugriffsschlüssel wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY und die zu signierende Zeichenfolge oben verwenden, sieht die berechnete Signatur wie folgt aus:

9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920

Der letzte Schritt besteht im Erstellen des Authorization-Headers. Für den Demo-Zugriffsschlüssel AKIAIOSFODNN7EXAMPLE (mit hinzugefügten Zeilenumbrüchen zur besseren Lesbarkeit) lautet der Header:

Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920

Einrichten der Amazon-Redshift-CLI

In diesem Abschnitt wird erklärt, wie Sie die AWS CLI Befehlszeilentools für die Verwaltung von Amazon Redshift einrichten und ausführen. Die Befehlszeilentools von Amazon Redshift werden auf der AWS Command Line Interface (AWS CLI) ausgeführt, die wiederum Python verwendet (https://www.python.org/). Das AWS CLI kann auf jedem Betriebssystem ausgeführt werden, das Python unterstützt.

Installationsanleitungen

Um mit der Verwendung der Amazon Redshift Redshift-Befehlszeilentools zu beginnen, richten Sie zunächst die Konfigurationsdateien ein und fügen dann die Konfigurationsdateien hinzu AWS CLI, die die Amazon Redshift Redshift-CLI-Optionen definieren.

Wenn Sie den bereits AWS CLI für einen anderen AWS Service installiert und konfiguriert haben, können Sie dieses Verfahren überspringen.

Um den zu installieren AWS Command Line Interface
  1. Gehen Sie zu Installieren oder auf die neueste Version von aktualisieren AWS CLI, und folgen Sie dann den Anweisungen zur Installation von AWS CLI.

    Für CLI-Zugriff benötigen Sie eine Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel. Verwenden Sie möglichst temporäre Anmeldeinformationen anstelle langfristiger Zugriffsschlüssel. Temporäre Anmeldeinformationen bestehen aus einer Zugriffsschlüssel-ID, einem geheimen Zugriffsschlüssel und einem Sicherheits-Token, das angibt, wann die Anmeldeinformationen ablaufen. Weitere Informationen finden Sie unter Verwenden temporärer Anmeldeinformationen mit AWS Ressourcen im IAM-Benutzerhandbuch.

  2. Erstellen Sie eine Datei mit den Konfigurationsinformationen wie beispielsweise Ihren Zugriffsschlüsseln, der Standardregion und dem Format der Befehlsausgabe. Legen Sie anschließend die AWS_CONFIG_FILE-Umgebungsvariable fest, um auf diese Datei zu verweisen. Ausführliche Anweisungen finden Sie im AWS Command Line Interface Benutzerhandbuch unter Konfiguration der AWS Befehlszeilenschnittstelle.

  3. Führen Sie einen Testbefehl aus, um zu überprüfen, ob die AWS CLI Schnittstelle funktioniert. Beispielsweise sollte der folgende Befehl Hilfsinformationen für die anzeigen AWS CLI:

    aws help

    Über den folgenden Befehl sollten Hilfeinformationen für Amazon Redshift angezeigt werden:

    aws redshift help

Referenzmaterial zu den Amazon Redshift-CLI-Befehlen finden Sie unter Amazon Redshift in der AWS CLI Referenz.