

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
<a name="fgac-iam"></a>

Questo tutorial illustra un popolare caso d'uso di Amazon OpenSearch Service per il [controllo granulare degli accessi](fgac.md): 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.

![IAM i ruoli passano alle dashboard per il controllo degli Amazon Cognito accessi. OpenSearch](http://docs.aws.amazon.com/it_it/opensearch-service/latest/developerguide/images/fgac-cognito.png)


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:

1. [Creazione di ruoli IAM master e limitati](#fgac-iam-roles)

1. [Creazione di un dominio con l'autenticazione Cognito](#fgac-iam-domain)

1. [Configurare un pool di utenti e un pool di identità di Cognito](#fgac-iam-cognito)

1. [Mappa i ruoli nelle dashboard OpenSearch ](#fgac-iam-dashboards)

1. [Test delle autorizzazioni](#fgac-iam-test)

## Fase1: Creazione di ruoli IAM master e limitati
<a name="fgac-iam-roles"></a>

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 su come creare i ruoli, consulta [Creazione di un ruolo utilizzando policy di fiducia personalizzate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) nella *Guida per l'utente IAM*.

Entrambi i ruoli devono disporre della seguente policy di attendibilità che consente al pool di identità Cognito di assumere i ruoli:

------
#### [ JSON ]

****  

```
{
  "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
<a name="fgac-iam-domain"></a>

Accedi alla console di Amazon OpenSearch Service a [https://console.aws.amazon.com/aos/casa/](https://console.aws.amazon.com/aos/home/) e [crea un dominio](createupdatedomains.md) 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](cognito-auth.md#cognito-auth-config).
+ La seguente policy di accesso al dominio:

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "AWS": "arn:aws:iam::{{111122223333}}:root"
        },
        "Action": [
          "es:ESHttp*"
        ],
        "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}: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
<a name="fgac-iam-cognito"></a>

Durante la creazione del dominio, configura gli utenti master e limitati all'interno di Amazon Cognito seguendo la procedura [Crea un pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html) nella *Amazon Cognito* Developer Guide. Infine, configura il tuo pool di identità seguendo i passaggi descritti in [Creare un pool di identità in Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html#create-identity-pool) Cognito. Il bacino d'utenza e il pool di identità devono trovarsi nella stessa Regione AWS.

## Fase 4: Mappa i ruoli nelle dashboard OpenSearch
<a name="fgac-iam-dashboards"></a>

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

1. Accedere con le credenziali `master-user`.

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

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

1. Denomina il ruolo `new-role`.

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

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

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

   ```
   {
     "match": {
       "FlightDelay": true
     }
   }
   ```

1. Per la sicurezza a livello di campo, scegliere **Escludi** e specificare `FlightNum`.

1. Per **Anonimizzazione**, specificare `Dest`.

1. Scegliere **Create (Crea) **.

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

1. 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
<a name="fgac-iam-test"></a>

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.

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

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

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