View a markdown version of this page

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 para 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 esta compatibilidad, los usuarios de tu cuenta u organización pueden acceder directamente a la OpenSearch interfaz de usuario asumiendo funciones de IAM. Puedes crear una experiencia de inicio de sesión único iniciada por el proveedor de identidad (IdP) para tus usuarios finales, en la que puedan autenticarse en el proveedor de identidad externo y ser redirigidos directamente a la página que hayas definido en la interfaz de usuario. OpenSearch También puedes implementar un control de acceso detallado configurando a 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 instrucciones paso a paso 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.

nota

Si usa AWS IAM Identity Center, no necesita configurar la federación de SAML como se describe en este tema. OpenSearch La interfaz de usuario es compatible con IAM Identity Center de forma nativa, lo que proporciona acceso de inicio de sesión único sin necesidad de configurar SAML adicional. IAM Identity Center también admite la administración de usuarios y grupos a nivel de organización. La integración de SAML que se describe aquí está destinada a proveedores de identidades de terceros (como Okta, Azure Active Directory y Ping) que no pertenecen a IAM Identity Center.

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

Para usar SAML con la 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 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. Inicia sesión en tu organización de Okta https://login.okta.com/ como usuario con privilegios de administrador.

  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. Inicia sesión en tu organización de Okta https://login.okta.com/ como usuario con privilegios de administrador.

  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. Para la URL de inicio de sesión único, introduce la URL https://signin.aws.amazon.com/saml correspondiente a 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. Inicia sesión en tu organización de Okta 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. Establezca 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 proveedor de identidad y rol de IAM en un paso posterior al configurar la AWS configuración.

    2. Configura 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. Puedes 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: Configurar AWS configuración para Okta

Complete las siguientes tareas para configurar su AWS configuración para 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. Inicia sesión en tu organización de Okta 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. Toma nota del valor de la Sign-on URL única del proveedor de identidad. 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. Inicia sesión en Consola de administración de AWS y abre la consola de IAM 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 tu AWS Identity and Access Management rol, completa los siguientes pasos:

  1. Inicia sesión en Consola de administración de AWS y abre la consola de IAM 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. nota

    En Sign-in Terminales, selecciona Sin identificadores únicos. Si seleccionas con identificadores únicos, la SAML:aud condición de la política de confianza no coincidirá con la audiencia de las aserciones de SAML, lo que generará un AccessDenied error cuando los usuarios intenten iniciar sesión.

  8. Elija Siguiente.

  9. En la lista de políticas de permisos, seleccione las casillas de verificación de las políticas que otorgan permisos de OpenSearch servicio, por ejemplo, AWS la política administrada. AmazonOpenSearchServiceFullAccess

  10. Elija Siguiente.

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

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

  13. Elija Crear rol.

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

  15. En el panel Editar instrucciones, en Agregar acciones para STS, selecciona la casilla para TagSession.

  16. Elija Actualizar política.

Paso 3: Crea 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, puedes implementar un control de acceso detallado para que tus 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 } }

Puedes asignar los roles de dominio de Amazon OpenSearch Service a los roles de IAM mediante la asignación de roles 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: Verifique la experiencia única iniciada por el proveedor de identidad con SAML Sign-On

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 la interfaz de usuario. OpenSearch

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 asignar usuarios y grupos de tu proveedor de identidad a usuarios y roles de control de acceso OpenSearch detallados de forma dinámica. Puedes asignar estas funciones a OpenSearch dominios y colecciones sin servidor específicos, y definir los permisos a nivel de índice y la seguridad a nivel de documento.

nota

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

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. Agregue 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 OpenSearch detallada del 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 usa como clave de rol para asignar grupos a roles de control de acceso OpenSearch detallados para la 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 de OpenSearch servicio para el que desea habilitar un control de acceso detallado para los usuarios de la OpenSearch interfaz de usuario.

  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 SAML-based acceso detallado en Serverless OpenSearch
  1. Abra el Consola de administración de AWS y navegue hasta Amazon Service. OpenSearch

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