Habilitar la federación de SAML con AWS Identity and Access Management - OpenSearch Servicio Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Habilitar la federación de SAML con AWS Identity and Access Management

OpenSearch La interfaz de usuario es compatible con el lenguaje de marcado de aserciones de seguridad 2.0 (SAML), un estándar abierto que utilizan muchos proveedores de identidad. Esto permite la federación de identidades con (IAM) AWS Identity and Access Management . Con este soporte, los usuarios de su cuenta u organización pueden acceder directamente a la OpenSearch interfaz de usuario asumiendo funciones de IAM. Puede crear una experiencia de inicio de sesión único iniciada por el proveedor de identidad (IdP) para sus usuarios finales, en la que puedan autenticarse en el proveedor de identidad externo y ser redirigidos directamente a la página definida en la interfaz de usuario. OpenSearch También puedes implementar un control de acceso detallado configurando tus usuarios finales o grupos para que asuman diferentes funciones de IAM con diferentes permisos para acceder a la interfaz de usuario y a las fuentes de datos asociadas. OpenSearch

En este tema se presentan step-by-step instrucciones para configurar el uso de SAML con la interfaz de usuario. OpenSearch En estos procedimientos, utilizamos como ejemplo los pasos para configurar la aplicación de administración de identidades y accesos de Okta. Los pasos de configuración para otros proveedores de identidad, como Azure Active Directory y Ping, son similares.

Paso 1: Configurar la aplicación de proveedor de identidades (Okta)

Para usar SAML con OpenSearch interfaz de usuario, el primer paso es configurar tu proveedor de identidad.

Tarea 1: creación de usuarios de Okta
  1. Inicia sesión en tu organización de Okta en https://login.okta.com/como usuario con privilegios administrativos.

  2. En la consola de administración, en Directorio, en el panel de navegación, selecciona Personas.

  3. Elija Agregar persona.

  4. En Nombre, introduzca el nombre del usuario.

  5. En Apellido, introduzca el apellido del usuario.

  6. En Usuario, introduzca el nombre de usuario del usuario en formato de correo electrónico.

  7. Elija Estableceré la contraseña e introduzca una contraseña

  8. (Opcional) Desactive la casilla El usuario debe cambiar la contraseña la primera vez que inicie sesión si no desea que el usuario cambie la contraseña la primera vez que inicie sesión.

  9. Seleccione Save.

Tarea 2: crear y asignar grupos
  1. Inicie sesión en su organización de Okta en https://login.okta.com/como usuario con privilegios administrativos.

  2. En el panel de navegación de Okta, seleccione Directorio y, a continuación, Grupos.

  3. Elija Agregar grupo.

  4. Escriba un nombre y elija Crear grupo de registros.

  5. Elija el grupo recién creado y, a continuación, seleccione Asignar personas.

  6. Seleccione el signo más (+) y, a continuación, seleccione Listo.

  7. (Opcional) Repita los pasos 1 a 6 para agregar más grupos.

Tarea 3: Crear aplicaciones de Okta
  1. Inicie sesión en su organización de Okta en https://login.okta.com/como usuario con privilegios administrativos.

  2. En la consola de administración, en Aplicaciones, en el panel de navegación, seleccione Aplicaciones.

  3. Elija Crear integración de aplicaciones.

  4. Elija SAML 2.0 como método de inicio de sesión y, a continuación, seleccione Siguiente.

  5. Escriba un nombre para su grupo (por ejemplo, OpenSearch_UI) y elija Siguiente.

  6. Introduzca los siguientes valores en la aplicación; no es necesario que cambie otros valores:

    1. 1. En la URL de inicio de sesión único, introduce https://signin.aws.amazon.com/saml AWS las regiones comerciales o la URL específica de tu región.

    2. 2. Para URI de audiencia (ID de entidad del SP), introduzca urn:amazon:webservices.

    3. 3. En Formato de nombre, ingrese EmailAddress.

  7. Elija Siguiente.

  8. Seleccione Soy cliente de Okta y agrego una aplicación interna y, a continuación, seleccione Esta es una aplicación interna que hemos creado.

  9. Seleccione Finalizar.

  10. Elija Asignar y, luego, elija Asignar a personas.

  11. Seleccione Asignar a grupos y, a continuación, seleccione Asignar junto a los grupos que desee agregar.

  12. Seleccione Listo.

Tarea 4: Configurar la configuración avanzada de Okta

Después de crear la aplicación SAML personalizada, complete los pasos siguientes:

  1. Inicie sesión en su organización de Okta en https://login.okta.com/como usuario con privilegios administrativos.

    En la consola de administración, en el área General, seleccione Editar en la configuración de SAML.

  2. Elija Siguiente.

  3. Defina el estado de retransmisión predeterminado en el punto final de la OpenSearch interfaz de usuario con el formato:

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

    A continuación, se muestra un ejemplo:

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

  4. En Instrucciones de atributo de grupo (opcional), agregue el siguiente atributo:

    1. Proporcione el rol de IAM y el proveedor de identidad en un formato separado por comas mediante el atributo Role. Utilizará este mismo rol de IAM y proveedor de identidad en un paso posterior al configurar la AWS configuración.

    2. Defina user.login para. RoleSessionName Se utiliza como identificador para las credenciales temporales que se emiten cuando se asume el rol.

    De referencia:

    Name Formatos de nombre Formato Ejemplo

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

    Sin especificar

    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

    Sin especificar

    user.login

    user.login

  5. Tras agregar las propiedades del atributo, elija Siguiente y, a continuación, elija Finalizar.

Los atributos deben tener un formato similar al que se muestra en la siguiente imagen. El valor de estado de retransmisión predeterminado es la URL que define la página de destino para los usuarios finales de su cuenta u organización una vez que hayan completado la validación del inicio de sesión único desde Okta. Puede configurarlo en cualquier página de la OpenSearch interfaz de usuario y, a continuación, proporcionar esa URL a los usuarios finales previstos.

El área “SAML 2.0” muestra la URL de estado de retransmisión y la URL de metadatos predeterminadas de una aplicación.

Paso 2: Configura la AWS configuración de Okta

Complete las siguientes tareas para configurar la AWS configuración de Okta.

Tarea 1: recopile información de Okta

Para este paso, tendrá que recopilar su información de Okta para poder configurarla más adelante en AWS.

  1. Inicie sesión en su organización de Okta en https://login.okta.com/como usuario con privilegios administrativos.

  2. En la pestaña Iniciar sesión, en la esquina inferior derecha de la página, seleccione Ver las instrucciones de configuración de SAML.

  3. Copie o almacene el valor para URL de inicio de sesión único del proveedor de identidades. Puede usar esta URL cuando se conecte a cualquier cliente SQL de terceros, como SQL Workbench/J.

  4. Utilice los metadatos del proveedor de identidad del bloque 4 y, a continuación, guarde el archivo de metadatos en formato.xml (por ejemplo, metadata.xml).

Tarea 2: Crear el proveedor de IAM

Para crear su proveedor de IAM, complete los siguientes pasos.

  1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. https://console.aws.amazon.com/iam/

  2. En el panel de navegación, elija Proveedores de identidad en Administración de acceso.

  3. Elija Agregar proveedor.

  4. Para Tipo de proveedor: seleccione SAML.

  5. En Nombre del proveedor, escriba un nombre.

  6. Para el documento de metadatos, elija Elegir archivo y cargue el archivo de metadatos (.xml) que descargó anteriormente.

  7. Elija Agregar proveedor.

Tarea 3: Creación de un rol de IAM

Para crear su AWS Identity and Access Management función, siga estos pasos:

  1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, en Administración del acceso, elija Roles.

  3. Elija Crear rol.

  4. En Tipo de entidad de confianza, seleccione Federación SAML 2.0.

  5. En el proveedor basado en SAML 2.0, elija el proveedor de identidades que ha creado en IAM.

  6. Seleccione Permitir el acceso mediante programación. Consola de administración de AWS

  7. Elija Siguiente.

  8. En la lista de políticas de permisos, active las casillas de verificación de las políticas que otorgan permisos de OpenSearch servicio, por ejemplo, la política AWS AmazonOpenSearchServiceFullAccessadministrada.

  9. Elija Siguiente.

  10. En la sección Revisar, en Nombre de rol, escriba un nombre para el rol (por ejemplo, oktarole).

  11. (Opcional) En Descripción de imagen, ingrese una breve descripción del propósito del rol.

  12. Elija Crear rol.

  13. Vaya al rol que acaba de crear, seleccione la pestaña Relaciones de confianza y, a continuación, elija Editar política de confianza.

  14. En el panel Editar instrucciones, en Agregar acciones para STS, active la casilla correspondiente TagSession.

  15. Elija Actualizar política.

Paso 3: Crear la política de acceso a Amazon OpenSearch Service en IAM

Aprenda a configurar sus funciones de IAM para el control de OpenSearch acceso. Con las funciones de IAM, puede implementar un control de acceso detallado para que sus grupos de usuarios de Okta accedan a los recursos. OpenSearch En este tema, se muestra la configuración basada en roles de IAM mediante dos grupos de ejemplo.

Sample group: Alice

Solicitud:

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

Resultado:

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

Solicitud:

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

Resultado:

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

Puede asignar las funciones del dominio de Amazon OpenSearch Service a las funciones de IAM mediante la asignación de funciones de backend, como se muestra en el siguiente ejemplo:

{ "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": [] } }

Paso 4: Compruebe la experiencia de inicio de sesión único iniciada por el proveedor de identidad con SAML

Abra la URL del estado de retransmisión predeterminado para abrir la página de autenticación de Okta. Introduzca las credenciales de SC-end-user. Se le redirigirá automáticamente a OpenSearch la interfaz de usuario.

Para comprobar sus credenciales actuales, seleccione el ícono de usuario situado en la parte inferior del panel de navegación, como se muestra en la siguiente imagen:

Al seleccionar el ícono de usuario en la página “Configuración y ajustes” de Okta, se muestran las credenciales del usuario actual.

También puede verificar los permisos de control de acceso detallados del usuario accediendo a las herramientas para desarrolladores en la parte inferior del panel de navegación y ejecutando consultas en la consola. A continuación, se muestran algunas consultas de ejemplo:

Example 1: Displays information about the current user

Solicitud:

GET _plugins/_security/api/account

Resultado:

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

Solicitud:

GET bob-test/_search

Resultado:

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

Solicitud:

GET alice-test

Resultado:

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

Paso 5: Configuración del control de acceso detallado basado en atributos de SAML

Con Amazon OpenSearch Service, puedes usar un control de acceso detallado con SAML para mapear usuarios y grupos de tu proveedor de identidad a usuarios y roles de control de acceso OpenSearch detallados de forma dinámica. Puede asignar estas funciones a OpenSearch dominios específicos y colecciones sin servidor, y definir los permisos a nivel de índice y la seguridad a nivel de los documentos.

nota

Para obtener más información, consulte Enabling fine-grained access control, lea Control de acceso detallado en Amazon Service OpenSearch.

Atributos SAML para el control de acceso preciso

subjectKey

Se asigna a un atributo de usuario único, como el correo electrónico o el nombre de usuario, que identifica al usuario para la autenticación.

rolesKey

Se asigna a los atributos de grupo o rol de su IdP que determinan los roles o permisos de autorización.

Tarea 1: Configuración de Okta para el control de acceso preciso

Para configurar Okta para el control de acceso preciso
  1. Añada un nuevo atributo para el OpenSearch usuario principal en la sección Declaraciones de atributos:

    • Nombre: UserName

    • Valor: ${user-email}

    Este atributo se utiliza como clave de asunto en la configuración detallada OpenSearch de control de acceso para la autenticación.

  2. Agregue un atributo de grupo para los roles en la sección sentencia de atributos de grupo:

    • Nombre: groups

    • Filtro: OpenSearch_xxx

    Este atributo se utiliza como clave de función para asignar grupos a funciones de OpenSearch control de acceso específicas para su autorización.

Tarea 2: Configurar SAML en el dominio OpenSearch

Para configurar SAML en el dominio OpenSearch
  1. En la consola AWS de administración, identifique el dominio del OpenSearch servicio para el que desea habilitar un control de acceso detallado para los usuarios de la interfaz de usuario. OpenSearch

  2. Vaya a la página de detalles del dominio específico.

  3. Seleccione la pestaña de configuración de seguridad y haga clic en Editar.

  4. Amplíe SAML mediante IAM Federate.

  5. Introduzca el subjectKey y roleKey que definió en Okta.

  6. Seleccione Guardar cambios.

También puede configurar un control de acceso detallado mediante 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

Para actualizar un dominio existente:

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

Tarea 3: Configurar SAML en colecciones sin servidor OpenSearch

Para configurar un control de acceso detallado basado en SAML en Serverless OpenSearch
  1. Abre Consola de administración de AWS y navega hasta Amazon OpenSearch Service.

  2. En el panel de navegación, en Sin servidor, seleccione Seguridad y, a continuación, seleccione Autenticación.

  3. En la sección Federación de IAM, seleccione Editar.

    Puede controlar el control de acceso específico basado en atributos de SAML mediante esta configuración. La federación de IAM está desactivada de forma predeterminada.

  4. Seleccione Activar la federación de IAM.

  5. Introduzca los valores subjectKey y roleKey que definió en Okta.

    Para obtener más información, consulte Atributos SAML para el control de acceso preciso.

  6. Seleccione Guardar.

  7. En el panel de navegación, en Sin servidor, elija Política de acceso a datos.

  8. Actualice una política existente o cree una nueva.

  9. Amplíe una regla, elija Agregar entidades principales y, a continuación, seleccione Usuarios y grupos federados de IAM.

  10. Agregue las entidades principales necesarias y seleccione Guardar.

  11. Elija Conceder.

  12. Bajo esta regla, haga lo siguiente:

    • Seleccione los permisos que desee definir para las entidades principales seleccionadas.

    • Especifique las colecciones a las que desea aplicar los permisos.

    • Si lo desea, defina los permisos a nivel de índice.

    nota

    Puede crear varias reglas para asignar diferentes permisos a diferentes grupos de entidades principales.

  13. Cuando termine, elija Guardar.

  14. Seleccione Crear.

Como alternativa, puede usar CLI para crear las configuraciones de seguridad para las colecciones, como se indica a continuación:

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