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à.
Tutorial: configurazione di un dominio con un utente master IAM e autenticazione Amazon Cognito
Questo tutorial illustra un popolare caso d'uso di Amazon OpenSearch Service per il controllo granulare degli accessi: un utente master IAM con autenticazione Amazon Cognito for Dashboards. OpenSearch
Nel tutorial configureremo un ruolo IAM master e un ruolo IAM limitato, che poi assoceremo agli utenti in Amazon Cognito. L'utente master può quindi accedere a OpenSearch Dashboards, mappare l'utente limitato a un ruolo e utilizzare un controllo granulare degli accessi per limitare le autorizzazioni dell'utente.

Sebbene questi passaggi utilizzino il bacino d'utenza di Amazon Cognito per l'autenticazione, questo stesso processo di base funziona per qualsiasi provider di autenticazione Cognito che consente di assegnare ruoli IAM differenti a utenti diversi.
In questo tutorial completerai le seguenti fasi:
Fase1: Creazione di ruoli IAM master e limitati
Passa alla console AWS Identity and Access Management (IAM) e crea due ruoli separati:
-
MasterUserRole
- L'utente master, che disporrà di autorizzazioni complete per il cluster e gestirà ruoli e mappature dei ruoli. -
LimitedUserRole
- Un ruolo più limitato, a cui come utente master concederai un accesso limitato.
Per istruzioni sulla creazione dei ruoli, consulta la pagina Creazione di un ruolo utilizzando policy di attendibilità personalizzate.
Entrambi i ruoli devono disporre della seguente policy di attendibilità che consente al pool di identità Cognito di assumere i ruoli:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "
{identity-pool-id}
" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } }] }
Nota
Sostituzione di identity-pool-id
con l'identificatore univoco del pool di identità Amazon Cognito. Ad esempio us-east-1:0c6cdba7-3c3c-443b-a958-fb9feb207aa6
.
Fase 2: Creazione di un dominio con l'autenticazione Cognito
Accedi alla console di Amazon OpenSearch Service a https://console.aws.amazon.com/aos/casa/
-
OpenSearch 1.0 o versione successiva oppure Elasticsearch 7.8 o versione successiva
-
Accesso pubblico
-
Controllo granulare degli accessi abilitato con
MasterUserRole
come utente master (creato nella fase precedente) -
Autenticazione Amazon Cognito abilitata per le OpenSearch dashboard. Per le istruzioni sull'abilitazione dell'autenticazione Cognito e la selezione di un pool di utenti e identità, consulta Configurazione di un dominio per l'uso dell'autenticazione Amazon Cognito.
-
La seguente policy di accesso al dominio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
{account-id}
:root" }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:{region}
:{account-id}
:domain/{domain-name}
/*" } ] } -
HTTPS richiesto per tutto il traffico verso il dominio
-
Node-to-node crittografia
-
Crittografia dei dati a riposo
Fase 3: Configurazione degli utenti di Cognito
Durante la creazione del dominio, configura gli utenti master e limitati all'interno di Amazon Cognito seguendo la procedura Crea un pool di utenti nella Amazon Cognito Developer Guide. Infine, configura il tuo pool di identità seguendo i passaggi descritti in Creare un pool di identità in Amazon Cognito. Il bacino d'utenza e il pool di identità devono trovarsi nella stessa Regione AWS.
Fase 4: Mappa i ruoli nelle dashboard OpenSearch
Ora che gli utenti sono configurati, puoi accedere a OpenSearch Dashboards come utente principale e mappare gli utenti ai ruoli.
-
Torna alla console di OpenSearch servizio e vai all'URL delle OpenSearch dashboard per il dominio che hai creato. L'URL segue il seguente formato:
.domain-endpoint
/_dashboards/ -
Accedere con le credenziali
master-user
. -
Scegliere Add sample data (Aggiungi dati di esempio) e aggiungere alcuni dati di volo di esempio.
-
Nel pannello di navigazione a sinistra, seleziona Security (Sicurezza), Roles (Ruoli) e Create role (Crea ruolo).
-
Denomina il ruolo
new-role
. -
Per Index (Indice), specificare
opensearch_dashboards_sample_data_fli*
(kibana_sample_data_fli*
sui domini Elasticsearch). -
Per Index permissions (Autorizzazioni relative all'indice), scegliere read (lettura).
-
Per Sicurezza a livello di documento, specificare la seguente query:
{ "match": { "FlightDelay": true } }
-
Per la sicurezza a livello di campo, scegliere Escludi e specificare
FlightNum
. -
Per Anonimizzazione, specificare
Dest
. -
Scegliere Create (Crea) .
-
Scegliere Utenti mappati, Gestisci mappatura. Aggiungere il nome della risorsa Amazon (ARN) per
LimitedUserRole
come identità esterna e scegliere Map (Mappa). -
Torna all'elenco di ruoli e scegli opensearch_dashboards_user. Scegliere Utenti mappati, Gestisci mappatura. Aggiungere l'ARN per
LimitedUserRole
come ruolo di back-end e scegliere Mappa.
Fase 5: Test delle autorizzazioni
Quando i ruoli sono mappati correttamente, puoi accedere come utente limitato e testare le autorizzazioni.
-
In una nuova finestra privata del browser, vai all'URL della OpenSearch dashboard per il dominio, accedi utilizzando le
limited-user
credenziali e scegli Esplora da solo. -
Scegliere Strumenti di sviluppo ed eseguire la ricerca predefinita:
GET _search { "query": { "match_all": {} } }
Notare l'errore di autorizzazioni.
limited-user
non dispone delle autorizzazioni per eseguire ricerche a livello di cluster. -
Esegui un'altra ricerca:
GET opensearch_dashboards_sample_data_flights/_search { "query": { "match_all": {} } }
Si noti che tutti i documenti corrispondenti hanno un campo
FlightDelay
ditrue
, un campoDest
anonimizzato e nessun campoFlightNum
. -
Nella finestra del browser originale, accedere come
master-user
, scegliere Strumenti di sviluppo, e quindi eseguire le stesse ricerche. Nota la differenza tra autorizzazioni, numero di hit, documenti corrispondenti e campi inclusi.