Autenticazione e autorizzazione JWT per Amazon Service OpenSearch - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autenticazione e autorizzazione JWT per Amazon Service OpenSearch

Amazon OpenSearch Service ora ti consente di utilizzare JSON Web Tokens (JWT) per l'autenticazione e l'autorizzazione. I JWT sono token di accesso basati su JSON utilizzati per concedere l'accesso Single Sign-On (SSO). Puoi utilizzare JWTS in OpenSearch Service per creare token Single Sign-on per convalidare le richieste al tuo dominio di servizio. OpenSearch Per utilizzare JWT, devi avere abilitato il controllo degli accessi a grana fine e devi fornire una chiave pubblica valida in formato RSA o ECDSA PEM. Per ulteriori informazioni sul controllo granulare degli accessi, consulta Controllo granulare degli accessi in Amazon Service. OpenSearch

Puoi configurare i token Web JSON utilizzando la console di OpenSearch servizio, il () o gli SDK. AWS Command Line Interface AWS CLI AWS

Considerazioni

Prima di utilizzare JWTS con Amazon OpenSearch Service, devi considerare quanto segue:

  • A causa delle dimensioni delle chiavi pubbliche RSA in formato PEM, consigliamo di utilizzare la AWS console per configurare l'autenticazione e l'autorizzazione JWT.

  • È necessario fornire utenti e ruoli validi quando si specificano i campi soggetti e ruoli per i JWT, altrimenti le richieste verranno rifiutate.

Modifica della policy di accesso al dominio

Prima di poter configurare il dominio per utilizzare l'autenticazione e l'autorizzazione JWT, è necessario aggiornare la politica di accesso al dominio per consentire agli utenti JWT di accedere al dominio. In caso contrario, tutte le richieste autorizzate JWT in entrata vengono rifiutate. La politica di accesso al dominio consigliata per fornire l'accesso completo alle risorse secondarie (/*) è:

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

Configurazione dell'autenticazione e dell'autorizzazione JWT

È possibile abilitare l'autenticazione e l'autorizzazione JWT durante il processo di creazione del dominio o aggiornando un dominio esistente. I passaggi di configurazione variano leggermente a seconda dell'opzione scelta.

I passaggi seguenti spiegano come configurare un dominio esistente per l'autenticazione e l'autorizzazione JWT nella console di OpenSearch servizio:

  1. In Configurazione del dominio, vai su Autenticazione e autorizzazione JWT per OpenSearch, seleziona Abilita autenticazione e autorizzazione JWT.

  2. Configura la chiave pubblica da utilizzare per il tuo dominio. Per fare ciò, puoi caricare un file PEM contenente una chiave pubblica o inserirlo manualmente.

    Nota

    Se la chiave caricata o inserita non è valida, verrà visualizzato un avviso sopra la casella di testo che specifica il problema.

  3. (Facoltativo) In Impostazioni aggiuntive, puoi configurare i seguenti campi opzionali

    • Chiave dell'oggetto: puoi lasciare vuoto questo campo per utilizzare la sub chiave predefinita per i tuoi JWT.

    • Chiave dei ruoli: puoi lasciare vuoto questo campo per utilizzare la roles chiave predefinita per i tuoi JWT.

    Dopo aver apportato le modifiche, salva il dominio.

Utilizzo di un JWT per inviare una richiesta di test

Dopo aver creato un nuovo JWT con una coppia di soggetto e ruolo specificata, puoi inviare una richiesta di test. Per fare ciò, usa la chiave privata per firmare la tua richiesta tramite lo strumento che ha creato il JWT. OpenSearch Il servizio è in grado di convalidare la richiesta in arrivo verificando questa firma.

Nota

Se hai specificato una chiave dell'oggetto o una chiave di ruolo personalizzata per il tuo JWT, devi utilizzare i nomi di claim corretti per il tuo JWT.

Di seguito è riportato un esempio di come utilizzare un token JWT per accedere al OpenSearch servizio tramite l'endpoint di ricerca del dominio:

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

Il AWS CLI comando seguente abilita l'autenticazione e l'autorizzazione JWT a OpenSearch condizione che il dominio esista:

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>"}}'

Configurazione dell'autenticazione e dell'autorizzazione JWT (configurazione tramite API)

La seguente richiesta all'API di configurazione abilita l'autenticazione e l'autorizzazione JWT OpenSearch su un dominio esistente:

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" } } }
Generazione di una key pair

Per configurare JWT per il tuo OpenSearch dominio, dovrai fornire una chiave pubblica in formato Privacy-Enhanced Mail (PEM). Amazon OpenSearch Service attualmente supporta due algoritmi di crittografia asimmetrica quando si utilizzano JWT: RSA ed ECDSA.

Per creare una coppia di key pair RSA utilizzando la libreria openssl comune, segui questi passaggi:

  1. openssl genrsa -out privatekey.pem 2048

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

In questo esempio, il publickey.pem file contiene la chiave pubblica da utilizzare con Amazon OpenSearch Service, mentre privatekey.pem contiene quella privata per la firma dei JWT inviati al servizio. Inoltre, hai la possibilità di convertire la chiave privata nel pkcs8 formato comunemente usato se ne hai bisogno per generare i tuoi JWT.

Se utilizzi il pulsante di caricamento per aggiungere un file PEM direttamente alla console, il file deve avere un'.pemestensione o altre estensioni di file come .crt.cert, o non .key sono attualmente supportate.