View a markdown version of this page

Abilitare la federazione SAML con AWS Identity and Access Management - 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à.

Abilitare la federazione SAML con AWS Identity and Access Management

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 da un provider di identità (IdP) per i tuoi 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 origini dati associate. OpenSearch

Questo argomento presenta istruzioni dettagliate 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.

Nota

Se si utilizza AWS IAM Identity Center, non è necessario configurare la federazione SAML come descritto in questo argomento. OpenSearch L'interfaccia utente supporta IAM Identity Center in modo nativo, che fornisce l'accesso SSO senza configurazione SAML aggiuntiva. IAM Identity Center supporta anche la gestione di utenti e gruppi a livello di organizzazione. L'integrazione SAML qui descritta è destinata a provider di identità di terze parti (come Okta, Azure Active Directory e Ping) che non sono IAM Identity Center.

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

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

Attività 1: Creare utenti Okta
  1. Accedi alla tua organizzazione Okta https://login.okta.com/ come utente con privilegi amministrativi.

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

  3. Scegli Add person (Aggiungi persona).

  4. Per Nome, inserisci il nome dell'utente.

  5. Per Cognome, inserisci il cognome dell'utente.

  6. Per Nome utente, inserisci il nome utente dell'utente in formato email.

  7. Scegli Imposterò la password e inserisci una password

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

  9. Scegli Save (Salva).

Attività 2: Creare e assegnare gruppi
  1. Accedi alla tua organizzazione Okta https://login.okta.com/ come utente con privilegi amministrativi.

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

  3. Scegliere Add Group (Aggiungi gruppo).

  4. Inserisci un nome per il gruppo e scegli Salva.

  5. Scegli il gruppo appena creato, quindi scegli Assegna persone.

  6. Scegli il segno più (+), quindi scegli Fine.

  7. (Facoltativo) Ripeti i passaggi 1—6 per aggiungere altri gruppi.

Attività 3: Creare applicazioni Okta
  1. Accedi alla tua organizzazione Okta https://login.okta.com/ come utente con privilegi amministrativi.

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

  3. Scegli Create App Integration (Crea integrazione app).

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

  5. Inserisci un nome per l'integrazione dell'app (ad esempioOpenSearch_UI), quindi scegli Avanti.

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

    2. 2. Per Audience URI (SP Entity ID), inserisciurn:amazon:webservices.

    3. 3. Per il formato Name ID, immettereEmailAddress.

  7. Scegli Next (Successivo).

  8. Scegli Sono un cliente Okta che aggiunge un'app interna, quindi scegli Questa è un'app interna che abbiamo creato.

  9. Scegli Fine.

  10. Scegli Assegnazioni, quindi scegli Assegna.

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

  12. 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 https://login.okta.com/ come utente con privilegi amministrativi.

    Nella console di amministrazione, nell'area Generale, scegli Modifica nelle impostazioni SAML.

  2. Scegli Next (Successivo).

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

  4. 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 e provider di identità IAM in una fase successiva durante la configurazione. AWS

    2. Imposta user.login per. RoleSessionName Viene utilizzato come identificatore per le credenziali temporanee emesse quando viene assunto il ruolo.

    Per riferimento:

    Nome Formato del nome Formato Esempio

    https://aws.amazon.com/SAML/Attributes/Role

    Imprecisata

    arn:aws:iam::aws-account-id:role/role-name,arn:aws:iam::aws-account-id:saml-provider/provider-name

    arn:aws:iam::111222333444:role/oktarole,arn:aws:iam::111222333444:saml-provider/oktaidp

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    Imprecisata

    user.login

    user.login

  5. Dopo aver aggiunto le proprietà degli attributi, scegliete Avanti, quindi Fine.

Il formato degli attributi deve essere simile a quello mostrato nell'immagine seguente. Il valore Default Relay State è l'URL per definire la pagina di destinazione per gli utenti finali del tuo account o della tua organizzazione dopo aver completato la convalida 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.

Fase 2: Configurazione AWS configurazione per Okta

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 https://login.okta.com/ come utente con privilegi amministrativi.

  2. Nella scheda Accedi, nell'angolo inferiore destro della pagina, scegli Visualizza le istruzioni di configurazione SAML.

  3. Prendi nota del valore di Identity Provider Single Sign-on URL. Puoi utilizzare questo URL quando ti connetti a qualsiasi client SQL di terze parti come SQL Workbench/J.

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

  2. Nel pannello di navigazione, in Gestione degli accessi, scegli Identity provider.

  3. Scegli Aggiungi provider.

  4. Per Tipo di provider, seleziona SAML.

  5. Per Nome del fornitore, inserisci un nome.

  6. Per il documento Metadati, scegli Scegli file e carica il file di metadati (.xml) scaricato in precedenza.

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

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

  3. Scegli Crea ruolo.

  4. Per il tipo di entità attendibile, seleziona Federazione SAML 2.0.

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

  6. Seleziona Consenti accesso programmatico e programmatico. Console di gestione AWS

  7. Nota

    In Sign-in endpoint, seleziona senza identificatori univoci. Se si seleziona con identificatori univoci, la SAML:aud condizione nella policy di fiducia non corrisponderà al pubblico delle asserzioni SAML, generando un AccessDenied errore quando gli utenti tentano di accedere.

  8. Scegli Next (Successivo).

  9. Nell'elenco dei criteri di autorizzazione, selezionare le caselle di controllo per i criteri che concedono le autorizzazioni del OpenSearch servizio, ad esempio i criteri AWS gestiti. AmazonOpenSearchServiceFullAccess

  10. Scegli Next (Successivo).

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

  12. (Facoltativo) Per Descrizione, inserisci una breve descrizione dello scopo del ruolo.

  13. Scegli Crea ruolo.

  14. Vai al ruolo che hai appena creato, scegli la scheda Relazioni di fiducia, quindi scegli Modifica politica di fiducia.

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

  16. 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 degli accessi granulare per consentire ai tuoi 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 di 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": [] } }

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

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 attuali scegliendo l'icona utente nella parte inferiore del pannello di navigazione, come illustrato nell'immagine seguente:

Se si sceglie l'icona utente nella pagina «Impostazioni e configurazione» di Okta, vengono visualizzate le credenziali dell'utente corrente.

Puoi anche verificare le autorizzazioni granulari di controllo degli accessi per l'utente accedendo agli Strumenti per sviluppatori nella parte inferiore del pannello di navigazione ed eseguendo le query nella console. Di seguito sono riportate alcune domande di esempio.

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 }

Fase 5: Configurare il controllo granulare degli accessi SAML basato sugli attributi

Con Amazon OpenSearch Service, puoi utilizzare il controllo granulare degli accessi con SAML per mappare dinamicamente utenti e gruppi dal tuo provider di identità a utenti e ruoli di controllo degli accessi granulari. OpenSearch Puoi estendere 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, vedere. Fine-grained controllo degli accessi in Amazon OpenSearch Service

Attributi SAML per il controllo granulare degli accessi

Chiave del soggetto

È associato a un attributo utente univoco, ad esempio email o nome utente, che identifica l'utente per l'autenticazione.

RolesKey

Associa gli 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 di accesso per l'autenticazione.

  2. 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 granulari 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 del OpenSearch servizio per il quale desideri abilitare il controllo degli accessi granulari per gli utenti dell'interfaccia utente. OpenSearch

  2. Vai alla pagina dei dettagli del dominio specifico.

  3. Seleziona la scheda Configurazione della sicurezza e fai clic su Modifica.

  4. Espandi SAML tramite IAM Federate.

  5. Inserisci la stringa subjectKey roleKey che hai definito in Okta.

  6. Seleziona Salva modifiche.

È inoltre possibile configurare un controllo di accesso granulare 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 un controllo SAML-based granulare degli accessi in Serverless OpenSearch
  1. Apri Console di gestione AWS e accedi ad Amazon Service. OpenSearch

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

  3. Nella sezione Federazione IAM, seleziona Modifica.

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

  4. Seleziona Abilita IAM Federation.

  5. Inserisci i roleKey valori subjectKey e che hai definito in Okta.

    Per ulteriori informazioni, consulta Attributi SAML per il controllo granulare degli accessi.

  6. Seleziona Salva.

  7. Nel pannello di navigazione sotto Serverless, scegli Politica di accesso ai dati.

  8. Aggiorna una policy esistente o creane una nuova.

  9. Espandi una regola, scegli Aggiungi principali, quindi seleziona Utenti e gruppi della Federazione IAM.

  10. Aggiungi i principali richiesti e scegli Salva.

  11. Scegliere Concedi.

  12. In base a questa regola, procedi come segue:

    • Seleziona le autorizzazioni che desideri definire per i principali selezionati.

    • Specifica le raccolte a cui desideri applicare le autorizzazioni.

    • Facoltativamente, definisci le autorizzazioni a livello di indice.

    Nota

    È possibile creare più regole per assegnare autorizzazioni diverse a diversi gruppi di committenti.

  13. Al termine, scegli Save (Salva).

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