Tutorial: configurazione di un dominio con un utente master IAM e autenticazione Amazon Cognito - 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à.

Tutorial: configurazione di un dominio con un utente master IAM e autenticazione Amazon Cognito

Questo tutorial tratta un popolare caso d'uso di Amazon OpenSearch Service per il controllo granulare degli accessi: un utente master IAM con autenticazione Amazon Cognito per dashboard. 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 all'indirizzo https://console.aws.amazon.com/aos/home/ e crea un dominio con le seguenti impostazioni:

  • 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

  • Nessuna crittografia ode-to-node

  • 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.

  1. 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/.

  2. Accedere con le credenziali master-user.

  3. Scegliere Add sample data (Aggiungi dati di esempio) e aggiungere alcuni dati di volo di esempio.

  4. Nel pannello di navigazione a sinistra, seleziona Security (Sicurezza), Roles (Ruoli) e Create role (Crea ruolo).

  5. Denomina il ruolo new-role.

  6. Per Index (Indice), specificare opensearch_dashboards_sample_data_fli* (kibana_sample_data_fli* sui domini Elasticsearch).

  7. Per Index permissions (Autorizzazioni relative all'indice), scegliere read (lettura).

  8. Per Sicurezza a livello di documento, specificare la seguente query:

    { "match": { "FlightDelay": true } }
  9. Per la sicurezza a livello di campo, scegliere Escludi e specificare FlightNum.

  10. Per Anonimizzazione, specificare Dest.

  11. Scegliere Create (Crea) .

  12. Scegliere Utenti mappati, Gestisci mappatura. Aggiungere il nome della risorsa Amazon (ARN) per LimitedUserRole come identità esterna e scegliere Map (Mappa).

  13. 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.

  1. 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.

  2. 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.

  3. 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 di true, un campo Dest anonimizzato e nessun campo FlightNum.

  4. 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.