

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

# Abilitazione della federazione SAML con AWS Identity and Access Management
Abilitazione della federazione SAML con IAM

OpenSearch L'interfaccia utente supporta Security Assertion Markup Language 2.0 (SAML), uno standard aperto utilizzato da molti provider di identità. Ciò consente la federazione delle identità con AWS Identity and Access Management (IAM). Con questo supporto, gli utenti del tuo account o della tua organizzazione possono accedere direttamente all' OpenSearch interfaccia utente assumendo ruoli IAM. Puoi creare un'esperienza Single Sign-On avviata dal provider di identità (IdP) per gli utenti finali, in cui possono autenticarsi nel provider di identità esterno ed essere indirizzati direttamente alla pagina definita nell'interfaccia utente. OpenSearch Puoi anche implementare un controllo granulare degli accessi configurando gli utenti finali o i gruppi in modo che assumano ruoli IAM diversi con autorizzazioni diverse per l'accesso all'interfaccia utente e alle fonti di dati associate. OpenSearch 

Questo argomento presenta le step-by-step istruzioni per configurare l'uso di SAML con l'interfaccia utente. OpenSearch In queste procedure, utilizziamo come esempio i passaggi per configurare l'applicazione Okta per la gestione delle identità e degli accessi. I passaggi di configurazione per altri provider di identità, come Azure Active Directory e Ping, sono simili. 

**Topics**
+ [

## Passaggio 1: configurare l'applicazione del provider di identità (Okta)
](#SAML-identity-federation-step-1)
+ [

## Passaggio 2: configura la configurazione per Okta AWS
](#SAML-identity-federation-step-2)
+ [

## Fase 3: Creare la policy di accesso ad Amazon OpenSearch Service in IAM
](#SAML-identity-federation-step-3)
+ [

## Passaggio 4: verifica l'esperienza Single Sign-On avviata dal provider di identità con SAML
](#SAML-identity-federation-step-4)
+ [

## Passaggio 5: configura il controllo granulare degli accessi basato sugli attributi SAML
](#SAML-identity-federation-step-5)

## Passaggio 1: configurare l'applicazione del provider di identità (Okta)


Per utilizzare SAML con l' OpenSearch interfaccia utente, il primo passaggio consiste nel configurare il provider di identità. 

**Attività 1: creare utenti Okta**

1. Accedi alla tua organizzazione Okta all'indirizzo [https://login.okta.com/come](https://login.okta.com/) utente con privilegi amministrativi.

1. **Nella console di amministrazione, in **Directory** nel pannello di navigazione, scegli Persone.** 

1. Scegli **Add person** (Aggiungi persona). 

1. **In First Name**, inserisci il nome dell'utente. 

1. Per **Cognome**, inserisci il cognome dell'utente. 

1. Per **Nome utente**, inserisci il nome utente dell'utente in formato e-mail. 

1. Scegli **Imposterò la password** e inserisci una password 

1. (Facoltativo) Deseleziona la casella L'**utente deve cambiare la password al primo accesso** se non desideri che l'utente modifichi la password al primo accesso.

1. Scegli **Save** (Salva).

**Attività 2: Creare e assegnare gruppi**

1. Accedi alla tua organizzazione Okta all'indirizzo [https://login.okta.com/come](https://login.okta.com/) utente con privilegi amministrativi.

1. **Nella console di amministrazione, in **Directory** nel pannello di navigazione, scegli Gruppi.** 

1. Scegliere **Add Group (Aggiungi gruppo)**. 

1. Inserisci il nome di un gruppo e scegli **Salva**. 

1. Scegli il gruppo appena creato, quindi scegli **Assegna persone**. 

1. Scegli il segno più (**\$1**), quindi scegli **Fine.** 

1. (Facoltativo) Ripeti i passaggi da 1 a 6 per aggiungere altri gruppi.

**Attività 3: Creare applicazioni Okta**

1. Accedi alla tua organizzazione Okta all'indirizzo [https://login.okta.com/come](https://login.okta.com/) utente con privilegi amministrativi.

1. **Nella console di amministrazione, in **Applicazioni** nel pannello di navigazione, scegli Applicazioni.** 

1.  Scegli **Create App Integration** (Crea integrazione app). 

1. **Scegli SAML 2.0 come metodo di accesso, quindi scegli Avanti.** 

1.  **Inserisci un nome per l'integrazione dell'app (ad esempio,**OpenSearch\$1UI**), quindi scegli Avanti.** 

1. Inserisci i seguenti valori nell'app; non è necessario modificare altri valori:

   1.  1. Per **l'URL Single Sign On**, inserisci **https://signin.aws.amazon.com/saml** AWS le aree commerciali o l'URL specifico della tua regione. 

   1. 2. Per **Audience URI (SP Entity ID)**, inserisci**urn:amazon:webservices**. 

   1. 3. Per **il formato Name ID**, immettete**EmailAddress**. 

1. Scegli **Next (Successivo)**. 

1. Scegli **Sono un cliente Okta e aggiungo un'app interna**, quindi scegli **Questa è un'app interna che abbiamo creato**. 

1. Scegli **Fine**. 

1. **Scegli **Assegnazioni**, quindi scegli Assegna.** 

1. Scegli **Assegna ai gruppi**, quindi seleziona **Assegna** accanto ai gruppi che desideri aggiungere.

1. Seleziona **Fatto**.

**Attività 4: configurare la configurazione avanzata di Okta**

Dopo aver creato l'applicazione SAML personalizzata, completa i seguenti passaggi:

1. Accedi alla tua organizzazione Okta all'indirizzo [https://login.okta.com/come](https://login.okta.com/) utente con privilegi amministrativi.

   Nella console dell'amministratore, nell'area **Generale**, scegli **Modifica** nelle impostazioni **SAML**. 

1. Scegli **Next (Successivo)**. 

1. Imposta **lo stato di inoltro predefinito** sull'endpoint dell' OpenSearch interfaccia utente, utilizzando il formato:

   `https://region.console.aws.amazon.com/aos/home?region=region#opensearch/applications/application-id/redirectToDashboardURL`. 

   Di seguito è riportato un esempio:

   `https://us-east-2.console.aws.amazon.com/aos/home?region=us-east-2#opensearch/applications/abc123def4567EXAMPLE/redirectToDashboardURL` 

1. In **Attribute Statements (opzionale)**, aggiungi le seguenti proprietà: 

   1. **Fornisci il ruolo IAM e il provider di identità in formato separato da virgole utilizzando l'attributo Role.** Utilizzerai lo stesso ruolo IAM e provider di identità in una fase successiva durante la configurazione. AWS 

   1. Imposta **user.login** per. **RoleSessionName** Viene utilizzato come identificatore per le credenziali temporanee emesse quando si assume il ruolo.

   Per riferimento:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/opensearch-service/latest/developerguide/application-enable-SAML-identity-federation.html)

1. Dopo aver aggiunto le proprietà dell'attributo, scegliete **Avanti**, quindi **Fine.**

Gli attributi devono avere un formato simile a quelli mostrati nell'immagine seguente. Il valore **Default Relay State** è l'URL per definire la pagina di destinazione per gli utenti finali dell'account o dell'organizzazione dopo aver completato la convalida del Single Sign-On di Okta. Puoi impostarlo su qualsiasi pagina dell' OpenSearch interfaccia utente e quindi fornire quell'URL agli utenti finali previsti.

![\[L'area «SAML 2.0" riporta l'URL dello stato di inoltro e l'URL dei metadati predefiniti per un'applicazione.\]](http://docs.aws.amazon.com/it_it/opensearch-service/latest/developerguide/images/ui-saml-2.0-area-okta.png)


## Passaggio 2: configura la configurazione per Okta AWS


Completa le seguenti attività per configurare la AWS configurazione per Okta.

**Attività 1: raccogliere informazioni su Okta**

Per questo passaggio, dovrai raccogliere le tue informazioni su Okta in modo da poterle configurare in seguito. AWS

1. Accedi alla tua organizzazione Okta all'indirizzo [https://login.okta.com/come](https://login.okta.com/) utente con privilegi amministrativi.

1. **Nella scheda Accedi**, nell'angolo in basso a destra della pagina, scegli **Visualizza le istruzioni di configurazione SAML.** 

1. Prendi nota del valore dell'URL **Single Sign-on di Identity Provider**. È possibile utilizzare questo URL per la connessione a qualsiasi client SQL di terze parti come [SQL](https://www.sql-workbench.eu/) Workbench/J. 

1. Utilizza i metadati del provider di identità nel blocco 4, quindi salva il file di metadati in formato.xml (ad esempio,). `metadata.xml`

**Attività 2: creare il provider IAM**

Per creare il tuo provider IAM, completa i seguenti passaggi:

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, in **Gestione degli accessi**, scegli **Provider di identità**. 

1. Scegli **Aggiungi provider**. 

1. Per il **tipo di provider**, seleziona **SAML.** 

1. Per **Nome del provider**, inserisci un nome. 

1. Per il **documento di metadati**, scegli **Scegli file** e carica il file di metadati (.xml) che hai scaricato in precedenza. 

1. Scegli **Aggiungi provider**.

**Attività 3: creare un ruolo IAM**

Per creare il tuo AWS Identity and Access Management ruolo, completa i seguenti passaggi:

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione, in **Gestione degli accessi**, scegli **Ruoli**. 

1. Scegli **Crea ruolo**. 

1. Per il **tipo di entità affidabile**, seleziona la **federazione SAML 2.0**. 

1. Per un **provider basato su SAML 2.0, scegli il provider** di identità che hai creato in precedenza. 

1. Seleziona **Consenti accesso programmatico** e. Console di gestione AWS 

1. Scegli **Next (Successivo)**. 

1. Nell'elenco delle **politiche di autorizzazione**, seleziona le caselle di controllo relative alle politiche che concedono le autorizzazioni OpenSearch del servizio, AWS ad esempio le politiche gestite. **AmazonOpenSearchServiceFullAccess**

1. Scegli **Next (Successivo)**. 

1. Nell'area **Revisione**, per **Nome ruolo**, inserisci il nome del tuo ruolo, ad esempio. **oktarole** 

1. (Facoltativo) In **Descrizione**, inserisci una breve descrizione dello scopo del ruolo. 

1. Scegli **Crea ruolo**.

1. Passa al ruolo che hai appena creato, scegli la scheda **Relazioni di fiducia**, quindi scegli **Modifica politica di fiducia**.

1. Nel riquadro **Modifica dichiarazione**, in **Aggiungi azioni per STS**, seleziona la casella per **TagSession**.

1. Scegli **Aggiorna policy**.

## Fase 3: Creare la policy di accesso ad Amazon OpenSearch Service in IAM


Scopri come configurare i tuoi ruoli IAM per il controllo degli OpenSearch accessi. Con i ruoli IAM, puoi implementare un controllo granulare degli accessi per consentire ai gruppi di utenti Okta di accedere alle risorse. OpenSearch Questo argomento illustra la configurazione basata sui ruoli IAM utilizzando due gruppi di esempio.

------
#### [ Sample group: Alice ]

Richiesta:

```
GET _plugins/_security/api/roles/alice-group
```

Risultato:

```
{
  "alice-group": {
    "reserved": false,
    "hidden": false,
    "cluster_permissions": [
      "unlimited"
    ],
    "index_permissions": [
      {
        "index_patterns": [
          "alice*"
        ],
        "dls": "",
        "fls": [],
        "masked_fields": [],
        "allowed_actions": [
          "indices_all"
        ]
      }
    ],
    "tenant_permissions": [
      {
        "tenant_patterns": [
          "global_tenant"
        ],
        "allowed_actions": [
          "kibana_all_write"
        ]
      }
    ],
    "static": false
  }
}
```

------
#### [ Sample group: Bob ]

Richiesta:

```
GET _plugins/_security/api/roles/bob-group
```

Risultato:

```
{
  "bob-group": {
    "reserved": false,
    "hidden": false,
    "cluster_permissions": [
      "unlimited"
    ],
    "index_permissions": [
      {
        "index_patterns": [
          "bob*"
        ],
        "dls": "",
        "fls": [],
        "masked_fields": [],
        "allowed_actions": [
          "indices_all"
        ]
      }
    ],
    "tenant_permissions": [
      {
        "tenant_patterns": [
          "global_tenant"
        ],
        "allowed_actions": [
          "kibana_all_write"
        ]
      }
    ],
    "static": false
  }
}
```

------

Puoi mappare i ruoli del dominio Amazon OpenSearch Service ai ruoli IAM utilizzando la mappatura dei ruoli di backend, come dimostrato nell'esempio seguente:

```
{
  "bob-group": {
    "hosts": [],
    "users": [],
    "reserved": false,
    "hidden": false,
    "backend_roles": [
      "arn:aws:iam::111222333444:role/bob-group"
    ],
    "and_backend_roles": []
  },
  "alice-group": {
    "hosts": [],
    "users": [],
    "reserved": false,
    "hidden": false,
    "backend_roles": [
      "arn:aws:iam::111222333444:role/alice-group"
    ],
    "and_backend_roles": []
  }
}
```

## Passaggio 4: verifica l'esperienza Single Sign-On avviata dal provider di identità con SAML


Apri l'URL per **Default Relay** State per aprire la pagina di autenticazione Okta. Inserisci le credenziali di un utente finale. Verrai reindirizzato automaticamente all'interfaccia utente. OpenSearch 

Puoi verificare le tue credenziali correnti scegliendo l'icona utente nella parte inferiore del pannello di navigazione, come illustrato nell'immagine seguente:

![\[Scegliendo l'icona utente nella pagina «Impostazioni e configurazione» di Okta vengono visualizzate le credenziali dell'utente corrente.\]](http://docs.aws.amazon.com/it_it/opensearch-service/latest/developerguide/images/ui-okta-user-icon.png)


Puoi anche verificare le autorizzazioni di controllo degli accessi dettagliate per l'utente accedendo agli Strumenti per sviluppatori nella parte inferiore del pannello di navigazione ed eseguendo query nella console. Di seguito sono riportati alcuni esempi di interrogazioni.

------
#### [ Example 1: Displays information about the current user ]

Richiesta:

```
GET _plugins/_security/api/account
```

Risultato:

```
{
  "user_name": "arn:aws:iam::XXXXXXXXXXXX:role/bob-group",
  "is_reserved": false,
  "is_hidden": false,
  "is_internal_user": false,
  "user_requested_tenant": null,
  "backend_roles": [
    "arn:aws:iam::XXXXXXXXXXXX:role/bob-group"
  ],
  "custom_attribute_names": [],
  "tenants": {
    "global_tenant": true,
    "arn:aws:iam::XXXXXXXXXXXX:role/bob-group": true
  },
  "roles": [
    "bob-group"
  ]
}
```

------
#### [ Example 2: Displays actions permitted for a user ]

Richiesta:

```
GET bob-test/_search
```

Risultato:

```
{
  "took": 390,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "bob-test",
        "_id": "ui01N5UBCIHpjO8Jlvfy",
        "_score": 1,
        "_source": {
          "title": "Your Name",
          "year": "2016"
        }
      }
    ]
  }
}
```

------
#### [ Example 3: Displays actions not permitted for a user ]

Richiesta:

```
GET alice-test
```

Risultato:

```
{
  "error": {
    "root_cause": [
      {
        "type": "security_exception",
        "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]"
      }
    ],
    "type": "security_exception",
    "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]"
  },
  "status": 403
}
```

------

## Passaggio 5: configura il controllo granulare degli accessi basato sugli attributi SAML


Con Amazon OpenSearch Service, puoi utilizzare il controllo granulare degli accessi con SAML per mappare utenti e gruppi dal tuo provider di identità a utenti e ruoli di controllo degli accessi OpenSearch granulari in modo dinamico. Puoi assegnare questi ruoli a OpenSearch domini specifici e raccolte serverless e definire autorizzazioni a livello di indice e sicurezza a livello di documento.

**Nota**  
Per ulteriori informazioni sul controllo granulare degli accessi, consulta. [Controllo granulare degli accessi in Amazon Service OpenSearch](fgac.md)

**Topics**
+ [

### Attributi SAML per un controllo granulare degli accessi
](#saml-fgac-key-attributes)
+ [

### Attività 1: configura Okta per un controllo granulare degli accessi
](#configure-okta-fgac)
+ [

### Attività 2: configurare SAML nel dominio OpenSearch
](#configure-opensearch-domain-fgac)
+ [

### Attività 3: configurare SAML nelle raccolte OpenSearch Serverless
](#saml-configure-collections)

### Attributi SAML per un controllo granulare degli accessi


**Soggetto chiave**  
Si associa a un attributo utente univoco, ad esempio e-mail o nome utente, che identifica l'utente per l'autenticazione.

**RuolesKey**  
Si associa agli attributi di gruppo o ruolo nel tuo IdP che determinano i ruoli o le autorizzazioni per l'autorizzazione.

### Attività 1: configura Okta per un controllo granulare degli accessi


**Per configurare Okta per un controllo granulare degli accessi**

1. **Aggiungi un nuovo attributo per l' OpenSearch utente principale nella sezione Attribute Statements:**
   + Valore: `UserName`
   + Valore: `${user-email}`

   Questo attributo viene utilizzato come **chiave Subject** nella configurazione OpenSearch granulare del controllo degli accessi per l'autenticazione.

1. Aggiungi un attributo di gruppo per i ruoli nella sezione **Group Attribute Statement**:
   + Valore: `groups`
   + Filtro: `OpenSearch_xxx`

   Questo attributo viene utilizzato come **chiave Role per mappare i gruppi a ruoli** di controllo degli accessi OpenSearch dettagliati per l'autorizzazione.

### Attività 2: configurare SAML nel dominio OpenSearch


**Per configurare SAML nel dominio OpenSearch**

1. Nella console di AWS gestione, identifica il dominio di OpenSearch servizio per il quale desideri abilitare il controllo di accesso granulare per gli utenti dell'interfaccia utente. OpenSearch 

1. Vai alla pagina dei dettagli del dominio specifico.

1. Seleziona la scheda **Configurazione di sicurezza** e fai clic su **Modifica**.

1. Espandi **SAML tramite IAM Federate**.

1. Inserisci `subjectKey` e `roleKey` che hai definito in Okta.

1. Seleziona **Salva modifiche**.

Puoi anche configurare un controllo granulare degli accessi utilizzando. AWS CLI

```
aws opensearch create-domain \
--domain-name testDomain \
--engine-version OpenSearch_1.3 \
--cluster-config InstanceType=r5.xlarge.search,InstanceCount=1,DedicatedMasterEnabled=false,ZoneAwarenessEnabled=false,WarmEnabled=false \
--access-policies '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:*","Resource":"arn:aws:es:us-east-1:12345678901:domain/neosaml10/*"}]}' \
--domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \
--node-to-node-encryption-options '{"Enabled":true}' \
--encryption-at-rest-options '{"Enabled":true}' \
--advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \
--ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \
--no-verify-ssl \
--endpoint-url https://es.us-east-1.amazonaws.com \
--region us-east-1
```

Per aggiornare un dominio esistente:

```
aws opensearch update-domain-config \
--domain-name testDomain \
--advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \
--ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \
--no-verify-ssl \
--endpoint-url https://es.us-east-1.amazonaws.com \
--region us-east-1
```

### Attività 3: configurare SAML nelle raccolte OpenSearch Serverless


**Per configurare il controllo granulare degli accessi basato su SAML in Serverless OpenSearch**

1. Apri Console di gestione AWS e accedi al OpenSearch servizio Amazon.

1. Nel pannello di navigazione, in **Serverless**, scegli **Sicurezza**, quindi scegli **Autenticazione**.

1. Nella sezione **IAM Federation**, seleziona **Modifica**.

   Puoi controllare il controllo granulare degli accessi basato sugli attributi SAML utilizzando questa configurazione. IAM Federation è disabilitata per impostazione predefinita.

1. Seleziona **Abilita IAM Federation**.

1. Inserisci i `roleKey` valori `subjectKey` and che hai definito in Okta.

   Per ulteriori informazioni, consulta [Attributi SAML per un controllo granulare degli accessi](#saml-fgac-key-attributes).

1. Seleziona **Salva**.

1. Nel riquadro di navigazione sotto **Serverless**, scegli Politica di **accesso ai dati**.

1. Aggiorna una politica esistente o creane una nuova.

1. Espandi una regola, scegli **Aggiungi principi**, quindi seleziona **Utenti e gruppi della Federazione IAM**.

1. **Aggiungi i principali richiesti e scegli Salva.**

1. Scegliere **Concedi**.

1. In base a questa regola, procedi come segue:
   + Seleziona le autorizzazioni che desideri definire per i principali selezionati.
   + Specificate le raccolte a cui desiderate applicare le autorizzazioni.
   + Facoltativamente, definisci le autorizzazioni a livello di indice.
**Nota**  
È possibile creare più regole per assegnare autorizzazioni diverse a diversi gruppi di responsabili.

1. Al termine, scegli **Save** (Salva).

1. Scegli **Create** (Crea).

In alternativa, puoi utilizzare la CLI per creare le configurazioni di sicurezza per le raccolte, come indicato di seguito:

```
aws opensearchserverless create-security-config --region "region"  --type iamfederation --name "configuration_name" --description "description" --iam-federation-options '{"groupAttribute":"GroupKey","userAttribute":"UserKey"}'
```