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

Abilitazione della 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 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.

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 utente con privilegi amministrativi.

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

  3. Scegli Add person (Aggiungi persona).

  4. In First Name, 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 e-mail.

  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 modifichi la password al primo accesso.

  9. Scegli Save (Salva).

Attività 2: Creare e assegnare gruppi
  1. Accedi alla tua organizzazione Okta all'indirizzo 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 il nome di un 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 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 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 esempio,OpenSearch_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, immetteteEmailAddress.

  7. Scegli Next (Successivo).

  8. Scegli Sono un cliente Okta e aggiungo 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 all'indirizzo https://login.okta.com/come utente con privilegi amministrativi.

    Nella console dell'amministratore, 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 IAM e provider di identità in una fase successiva durante la configurazione. AWS

    2. Imposta user.login per. RoleSessionName Viene utilizzato come identificatore per le credenziali temporanee emesse quando si assume 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à 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.

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 utente con privilegi amministrativi.

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

  3. 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 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 AWS Management Console e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

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

  3. Scegli Aggiungi provider.

  4. Per il tipo di provider, seleziona SAML.

  5. Per Nome del provider, inserisci un nome.

  6. Per il documento di metadati, scegli Scegli file e carica il file di metadati (.xml) che hai 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 AWS Management Console 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. Scegliere Crea ruolo.

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

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

  6. Seleziona Consenti accesso programmatico e. AWS Management Console

  7. Scegli Next (Successivo).

  8. Nell'elenco delle politiche di autorizzazione, seleziona le caselle di controllo relative alla politica creata in precedenza e per. OpenSearchFullAccess

  9. Scegli Next (Successivo).

  10. Nell'area Revisione, in Nome ruolo, inserisci il nome del tuo ruolo, oktarole ad esempio.

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

  12. Scegliere Crea ruolo.

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

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

  15. Scegli Aggiorna policy.

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

Scopri come configurare i 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.

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

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.

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

  2. Vai alla pagina dei dettagli del dominio specifico.

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

  4. Espandi SAML tramite IAM Federate.

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

  6. 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 AWS Management Console e accedi al OpenSearch servizio Amazon.

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

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

  4. Seleziona Abilita IAM Federation.

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

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

  6. Seleziona Salva.

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

  8. Aggiorna una politica esistente o creane una nuova.

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

  10. Aggiungi i principali richiesti e scegli Salva.

  11. Scegli Concessione.

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

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