JWT-Authentifizierung und Autorisierung für Amazon Service OpenSearch - OpenSearch Amazon-Dienst

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.

JWT-Authentifizierung und Autorisierung für Amazon Service OpenSearch

Amazon OpenSearch Service ermöglicht es Ihnen jetzt, JSON Web Tokens (JWTs) für die Authentifizierung und Autorisierung zu verwenden. JWTs sind JSON-basierte Zugriffstoken, die verwendet werden, um Single Sign-On (SSO) -Zugriff zu gewähren. Sie können JWTs in OpenSearch Service verwenden, um Single Sign-On-Token zu erstellen, um Anfragen an Ihre Service-Domain zu validieren. OpenSearch Um JWTs verwenden zu können, müssen Sie eine detaillierte Zugriffskontrolle aktiviert haben und Sie müssen einen gültigen öffentlichen Schlüssel im RSA- oder ECDSA-PEM-Format angeben. Weitere Informationen zur feinkörnigen Zugriffskontrolle finden Sie unter Feinkörnige Zugriffskontrolle in Amazon Service. OpenSearch

Sie können JSON-Web-Tokens mithilfe der OpenSearch Service-Konsole, der AWS Command Line Interface (AWS CLI) oder der SDKs konfigurieren. AWS

Überlegungen

Bevor Sie JWTs mit Amazon OpenSearch Service verwenden, müssen Sie Folgendes berücksichtigen:

  • Aufgrund der Größe der öffentlichen RSA-Schlüssel in der PEM-Formatierung empfehlen wir, die JWT-Authentifizierung und -Autorisierung über die AWS Konsole zu konfigurieren.

  • Sie müssen gültige Benutzer und Rollen angeben, wenn Sie die Fächer- und Rollenfelder für Ihre JWTs angeben. Andernfalls werden Anfragen abgelehnt.

Ändern der Domainzugriffsrichtlinie

Bevor Sie Ihre Domain für die Verwendung der JWT-Authentifizierung und -Autorisierung konfigurieren können, müssen Sie Ihre Domänenzugriffsrichtlinie aktualisieren, damit JWT-Benutzer auf die Domain zugreifen können. Andernfalls werden alle eingehenden autorisierten JWT-Anfragen abgelehnt. Die empfohlene Domänenzugriffsrichtlinie für den vollständigen Zugriff auf die Unterressourcen (/*) lautet:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/*" } ] }

Konfiguration der JWT-Authentifizierung und -Autorisierung

Sie können die JWT-Authentifizierung und -Autorisierung während der Domainerstellung oder durch Aktualisierung einer vorhandenen Domain aktivieren. Die Einrichtungsschritte variieren geringfügig, je nachdem, welche Option Sie wählen.

In den folgenden Schritten wird erklärt, wie Sie eine vorhandene Domäne für die JWT-Authentifizierung und -Autorisierung in der OpenSearch Servicekonsole konfigurieren:

  1. Navigieren Sie unter Domänenkonfiguration zu JWT-Authentifizierung und Autorisierung für OpenSearch und wählen Sie JWT-Authentifizierung und Autorisierung aktivieren aus.

  2. Konfigurieren Sie den öffentlichen Schlüssel, der für Ihre Domain verwendet werden soll. Dazu können Sie entweder eine PEM-Datei hochladen, die einen öffentlichen Schlüssel enthält, oder ihn manuell eingeben.

    Anmerkung

    Wenn der hochgeladene oder eingegebene Schlüssel nicht gültig ist, erscheint über dem Textfeld eine Warnung, die das Problem angibt.

  3. (Optional) Unter Zusätzliche Einstellungen können Sie die folgenden optionalen Felder konfigurieren

    • Betreffschlüssel — Sie können dieses Feld leer lassen, um den sub Standardschlüssel für Ihre JWTs zu verwenden.

    • Rollenschlüssel — Sie können dieses Feld leer lassen, um den roles Standardschlüssel für Ihre JWTs zu verwenden.

    Nachdem Sie Ihre Änderungen vorgenommen haben, speichern Sie Ihre Domain.

Verwenden eines JWT zum Senden einer Testanfrage

Nachdem Sie ein neues JWT mit einem bestimmten Betreff- und Rollenpaar erstellt haben, können Sie eine Testanfrage senden. Verwenden Sie dazu den privaten Schlüssel, um Ihre Anfrage über das Tool zu signieren, mit dem das JWT erstellt wurde. OpenSearch Der Service ist in der Lage, die eingehende Anfrage zu validieren, indem er diese Signatur überprüft.

Anmerkung

Wenn Sie einen benutzerdefinierten Betreff- oder Rollenschlüssel für Ihr JWT angegeben haben, müssen Sie die richtigen Anspruchsnamen für Ihr JWT verwenden.

Im Folgenden finden Sie ein Beispiel dafür, wie Sie ein JWT-Token verwenden, um über den Suchendpunkt Ihrer Domain auf den OpenSearch Service zuzugreifen:

curl -XGET "$search_endpoint" -H "Authorization: Bearer <JWT>"

Der folgende AWS CLI Befehl aktiviert die JWT-Authentifizierung und -Autorisierung, OpenSearch sofern die Domäne vorhanden ist:

aws opensearch update-domain-config --domain-name <your_domain_name> --advanced-security-options '{"JWTOptions":{"Enabled":true, "PublicKey": "<your_public_key>", "SubjectKey": "<your_subject_key>", "RolesKey": "<your_roles_key>"}}'

Konfiguration der JWT-Authentifizierung und -Autorisierung (Konfiguration über API)

Die folgende Anfrage an die Konfigurations-API aktiviert die JWT-Authentifizierung und -Autorisierung für OpenSearch eine bestehende Domain:

POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/my-domain/config { "AdvancedSecurityOptions": { "JWTOptions": { "Enabled": true, "PublicKey": "public-key", "RolesKey": "optional-roles-key", "SubjectKey": "optional-subject-key" } } }
Generieren eines key pair

Um JWTs für Ihre OpenSearch Domain zu konfigurieren, müssen Sie einen öffentlichen Schlüssel im PEM-Format (Privacy-Enhanced Mail) bereitstellen. Amazon OpenSearch Service unterstützt derzeit zwei asymetrische Verschlüsselungsalgorithmen bei der Verwendung von JWTs: RSA und ECDSA.

Gehen Sie wie folgt vor, um ein RSA-Schlüsselpaar mit der gemeinsamen OpenSSL-Bibliothek zu erstellen:

  1. openssl genrsa -out privatekey.pem 2048

  2. openssl rsa -in privatekey.pem -pubout -out publickey.pem

In diesem Beispiel enthält die publickey.pem Datei den öffentlichen Schlüssel für die Verwendung mit Amazon OpenSearch Service und den privaten Schlüssel zum Signieren der an den Service gesendeten JWTs. privatekey.pem Darüber hinaus haben Sie die Möglichkeit, den privaten Schlüssel in das häufig verwendete pkcs8 Format zu konvertieren, falls Sie dieses für die Generierung Ihrer JWTs benötigen.

Wenn Sie die Upload-Schaltfläche verwenden, um eine PEM-Datei direkt zur Konsole hinzuzufügen, muss die Datei eine .pem Erweiterung haben. Andere Dateierweiterungen wie .crt.cert, oder .key werden derzeit nicht unterstützt.