

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.

# Configuración de la autenticación de Amazon Cognito para paneles OpenSearch
<a name="cognito-auth"></a>

[Puede autenticar y proteger su instalación predeterminada de OpenSearch paneles de Amazon OpenSearch Service mediante Amazon Cognito.](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) La autenticación de Amazon Cognito es opcional y solo está disponible para los dominios que utilizan Elasticsearch OpenSearch 5.1 o una versión posterior. Si no configura la autenticación de Amazon Cognito, puede seguir protegiendo Dashboards con una [política de acceso basada en IP](ac.md#ac-types-ip) y un [servidor proxy](dashboards.md#dashboards-proxy), una autenticación básica de HTTP o [SAML](saml.md).

Gran parte del proceso de autenticación se lleva a cabo en Amazon Cognito, pero en esta sección se ofrecen directrices y requisitos para configurar los recursos de Amazon Cognito para que funcionen OpenSearch con los dominios de servicio. [Se aplican precios estándar](https://aws.amazon.com/cognito/pricing/) a todos los recursos de Amazon Cognito.

**sugerencia**  
La primera vez que configure un dominio para usar la autenticación de Amazon Cognito para los OpenSearch paneles, le recomendamos que utilice la consola. Los recursos de Amazon Cognito se pueden personalizar en gran medida y la consola puede ayudar a identificar y comprender las funciones importantes.

**Topics**
+ [Requisitos previos](#cognito-auth-prereq)
+ [Configuración de un dominio para utilizar la autenticación de Amazon Cognito](#cognito-auth-config)
+ [Permitir el rol autenticado](#cognito-auth-config-ac)
+ [Configuración de proveedores de identidades](#cognito-auth-identity-providers)
+ [(Opcional) Configuración de acceso pormenorizado](#cognito-auth-granular)
+ [(Opcional) Personalización de la página de inicio de sesión](#cognito-auth-customize)
+ [(Opcional) Configuración de seguridad avanzada](#cognito-auth-advanced)
+ [Testeo](#cognito-auth-testing)
+ [Cuotas](#cognito-auth-limits)
+ [Problemas habituales de configuración](#cognito-auth-troubleshooting)
+ [Desactivación de la autenticación de Amazon Cognito para paneles OpenSearch](#cognito-auth-disable)
+ [Eliminar dominios que utilizan la autenticación de Amazon Cognito para los paneles OpenSearch](#cognito-auth-delete)

## Requisitos previos
<a name="cognito-auth-prereq"></a>

Antes de poder configurar la autenticación de Amazon Cognito para los OpenSearch paneles, debe cumplir varios requisitos previos. La consola OpenSearch de servicio ayuda a agilizar la creación de estos recursos, pero comprender el propósito de cada recurso ayuda a configurar y solucionar problemas. La autenticación de Amazon Cognito para Dashboards requiere los siguientes recursos:
+ [Grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) de Amazon Cognito
+ [Grupo de identidades](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) de Amazon Cognito
+ Rol de IAM que tiene la política de `AmazonOpenSearchServiceCognitoAccess` adjunta (`CognitoAccessForAmazonOpenSearch`)

**nota**  
El grupo de usuarios y el grupo de identidades deben estar en la misma Región de AWS. Puede usar el mismo grupo de usuarios, grupo de identidades y rol de IAM para añadir la autenticación de Amazon Cognito para Dashboards a OpenSearch varios dominios de servicio. Para obtener más información, consulte [Cuotas](#cognito-auth-limits).

### Acerca del grupo de usuarios
<a name="cognito-auth-prereq-up"></a>

Los grupos de usuarios tiene dos características principales: crear y administrar un directorio de usuarios y permitir que los usuarios se inscriban e inicien sesión. Para obtener instrucciones acerca de cómo crear un grupo de usuarios, consulte [Introducción a los grupos de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) en la *Guía para desarrolladores de Amazon Cognito*.

Al crear un grupo de usuarios para usarlo con el OpenSearch Servicio, tenga en cuenta lo siguiente:
+ Su grupo de usuarios de Amazon Cognito debe tener un [nombre de dominio](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-domain.html). OpenSearch El servicio utiliza este nombre de dominio para redirigir a los usuarios a una página de inicio de sesión para acceder a los paneles. Aparte de un nombre de dominio, el grupo de usuarios no requiere ninguna configuración no predeterminada.
+ Debe especificar los [atributos estándar](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) necesarios del grupo como nombre, fecha de nacimiento, dirección de email y número de teléfono. No se pueden cambiar estos atributos después de crear el grupo de usuarios, por lo que debe elegir los que considere importantes en este momento.
+ Al crear el grupo de usuarios, elija si los usuarios pueden crear sus propias cuentas, el nivel mínimo de seguridad de la contraseña para las cuentas y si se va a habilitar la autenticación multifactor. Si tiene previsto utilizar un [proveedor de identidades externo](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html), estos ajustes no tienen importancia. Técnicamente puede habilitar el grupo de usuarios como un proveedor de identidades *y* habilitar un proveedor de identidades externo, pero la mayoría de las personas prefieren uno u otro.

El grupo de usuarios IDs adopta la forma de`{{region}}_{{ID}}`. Si planea usar la AWS CLI o un AWS SDK para configurar el OpenSearch servicio, anote el ID.

### Acerca del grupo de identidades
<a name="cognito-auth-prereq-ip"></a>

Los grupos de identidades permiten asignar funciones temporales con privilegios limitados a los usuarios después de que inicien sesión. Para obtener instrucciones acerca de cómo crear un grupo de identidades, consulte [Información general de la consola de grupos de identidades](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) en la *Guía para desarrolladores de Amazon Cognito*. Al crear un grupo de identidades para usarlo con el OpenSearch Servicio, tenga en cuenta lo siguiente: 
+ Si utiliza la consola de Amazon Cognito, debe seleccionar la casilla de verificación **Habilitar el acceso a identidades sin autenticar** para crear el grupo de identidades. Tras crear el grupo de identidades y configurar el dominio del OpenSearch servicio, Amazon Cognito inhabilita este ajuste.
+ No es necesario agregar [proveedores de identidades externos](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) al grupo de identidades. Cuando configura el OpenSearch Servicio para usar la autenticación de Amazon Cognito, configura el grupo de identidades para que use el grupo de usuarios que acaba de crear.
+ Después de crear el grupo de identidades, debe elegir funciones de IAM autenticadas y sin autenticar. Estos roles especifican las políticas de acceso que los usuarios tienen antes y después de que inicien sesión. Si utiliza la consola de Amazon Cognito, puede crear estas funciones para usted. Una vez creado el rol autenticado, anote el ARN, que adopta la forma de `arn:aws:iam::{{123456789012}}:role/Cognito_{{identitypoolname}}Auth_Role`.

El grupo de identidades IDs adopta la forma de. `{{region}}:{{ID}}-{{ID}}-{{ID}}-{{ID}}-{{ID}}` Si planea usar la AWS CLI o un AWS SDK para configurar el OpenSearch servicio, anote el ID.

### Acerca del CognitoAccessForAmazonOpenSearch rol
<a name="cognito-auth-role"></a>

OpenSearch El servicio necesita permisos para configurar los grupos de usuarios e identidades de Amazon Cognito y usarlos para la autenticación. Para ello`AmazonOpenSearchServiceCognitoAccess`, puede utilizar una política AWS gestionada. `AmazonESCognitoAccess`es una política antigua que se sustituyó por la que `AmazonOpenSearchServiceCognitoAccess` se cambió el nombre del servicio a Amazon OpenSearch Service. Ambas políticas proporcionan los permisos mínimos de Amazon Cognito necesarios para habilitar la autenticación de Amazon Cognito. Para obtener más información sobre la política, consulta [AmazonOpenSearchServiceCognitoAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonOpenSearchServiceCognitoAccess.html)la *Guía de referencia de políticas AWS gestionadas*.

Si utilizas la consola para crear o configurar tu dominio de OpenSearch servicio, esta crea un rol de IAM para ti y adjunta la `AmazonOpenSearchServiceCognitoAccess` política (o la `AmazonESCognitoAccess` política si es un dominio de Elasticsearch) al rol. El nombre predeterminado del rol es `CognitoAccessForAmazonOpenSearch`.

`AmazonESCognitoAccess`Tanto la función como las políticas `AmazonOpenSearchServiceCognitoAccess` de permisos permiten al OpenSearch Servicio realizar las siguientes acciones en todos los grupos de identidades y usuarios:
+ Acción: `cognito-idp:DescribeUserPool`
+ Acción: `cognito-idp:CreateUserPoolClient`
+ Acción: `cognito-idp:DeleteUserPoolClient`
+ Acción: `cognito-idp:UpdateUserPoolClient`
+ Acción: `cognito-idp:DescribeUserPoolClient`
+ Acción: `cognito-idp:AdminInitiateAuth`
+ Acción: `cognito-idp:AdminUserGlobalSignOut`
+ Acción: `cognito-idp:ListUserPoolClients`
+ Acción: `cognito-identity:DescribeIdentityPool`
+ Acción: `cognito-identity:SetIdentityPoolRoles`
+ Acción: `cognito-identity:GetIdentityPoolRoles`

Si usa uno de ellos AWS SDKs, debe crear su propio rol, adjuntar la política y especificar el ARN de este rol al configurar su dominio de OpenSearch servicio. AWS CLI El rol debe tener la siguiente relación de confianza:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "opensearchservice.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Para obtener instrucciones, consulte [Crear un rol para delegar permisos a un AWS servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) y [Agregar y eliminar permisos de identidad de IAM en la Guía](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) del usuario de *IAM*.

## Configuración de un dominio para utilizar la autenticación de Amazon Cognito
<a name="cognito-auth-config"></a>

Tras completar los requisitos previos, puede configurar un dominio de OpenSearch servicio para usar Amazon Cognito for Dashboards.

**nota**  
Amazon Cognito no está disponible en todos los dispositivos. Regiones de AWS Para ver una lista de las regiones admitidas, consulte [Puntos de conexión del servicio](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html#cognito_identity_region) de Amazon Cognito. No necesita usar la misma región para Amazon Cognito que usa para OpenSearch el Servicio.

### Configuración de la autenticación de Amazon Cognito (consola)
<a name="cognito-auth-config-console"></a>

Dado que se crea el rol `CognitoAccessForAmazonOpenSearch` para que usted no tenga que hacerlo, la consola ofrece la experiencia de configuración más sencilla. Además de los permisos de OpenSearch servicio estándar, necesita el siguiente conjunto de permisos para usar la consola y crear un dominio que utilice la autenticación de Amazon Cognito para OpenSearch Dashboards.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "cognito-identity:ListIdentityPools",
        "cognito-idp:ListUserPools",
        "iam:CreateRole",
        "iam:AttachRolePolicy"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::{{123456789012}}:role/service-role/{{CognitoAccessForAmazonOpenSearch}}"
    }
  ]
}
```

------

Para obtener instrucciones sobre cómo agregar permisos a una identidad (usuario, grupo de usuarios o rol), consulte[Adición de permisos de identidad de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

Si el `CognitoAccessForAmazonOpenSearch` ya existe, necesita menos permisos:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "cognito-identity:ListIdentityPools",
        "cognito-idp:ListUserPools"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::{{123456789012}}:role/service-role/{{CognitoAccessForAmazonOpenSearch}}"
    }
  ]
}
```

------

**Para configurar la autenticación de Amazon Cognito para Dashboards (consola)**

1. Abre la consola de Amazon OpenSearch Service en [https://console.aws.amazon.com/aos/casa/](https://console.aws.amazon.com/aos/home/).

1. En **Dominios**, seleccione el dominio que desea configurar.

1. Seleccione **Acciones** y **Editar la configuración de seguridad**.

1. Seleccione **Habilitar la autenticación de Amazon Cognito**.

1. En **Región**, seleccione la Región de AWS que contenga su grupo de usuarios y su grupo de identidades de Amazon Cognito.

1. En **Grupo de usuarios de Cognito**, seleccione un grupo de usuarios o cree uno. Para obtener más información, consulte [Acerca del grupo de usuarios](#cognito-auth-prereq-up).

1. En **Grupo de identidades de Cognito**, seleccione un grupo de identidades o cree uno. Para obtener más información, consulte [Acerca del grupo de identidades](#cognito-auth-prereq-ip).
**nota**  
Los enlaces **Crear grupo de usuarios** y **Crear grupo de identidades** dirigen a la consola de Amazon Cognito y requieren crear estos recursos de forma manual. El proceso no es automático. Para obtener más información, consulte [Requisitos previos](#cognito-auth-prereq).

1. Para **Nombre de rol de IAM**, utilice el valor de `CognitoAccessForAmazonOpenSearch` predeterminado (recomendado) o ingrese un nombre nuevo. Para obtener más información, consulte [Acerca del CognitoAccessForAmazonOpenSearch rol](#cognito-auth-role).

1. Elija **Guardar cambios**.

Después de que el dominio termine de procesarse, consulte [Permitir el rol autenticado](#cognito-auth-config-ac) y [Configuración de proveedores de identidades](#cognito-auth-identity-providers) para conocer los pasos adicionales de configuración.

### Configuración de la autenticación de Amazon Cognito (AWS CLI)
<a name="cognito-auth-config-cli"></a>

Utilice el `--cognito-options` parámetro para configurar su dominio OpenSearch de servicio. Los comandos `create-domain` y `update-domain-config` emplean la siguiente sintaxis:

```
--cognito-options Enabled=true,UserPoolId="{{user-pool-id}}",IdentityPoolId="{{identity-pool-id}}",RoleArn="{{arn:aws:iam::123456789012:role/CognitoAccessForAmazonOpenSearch}}"
```

**Ejemplo**

En el siguiente ejemplo se crea un dominio en la región `us-east-1` que habilita la autenticación de Amazon Cognito para Dashboards mediante el rol `CognitoAccessForAmazonOpenSearch` y proporciona acceso al dominio a `Cognito_Auth_Role`:

```
aws opensearch create-domain --domain-name {{my-domain}} --region {{us-east-1}} --access-policies '{ "Version": "2012-10-17",		 	 	  "Statement":[{"Effect":"Allow","Principal":{"AWS": ["arn:aws:iam::{{123456789012}}:role/{{Cognito_Auth_Role}}"]},"Action":"es:ESHttp*","Resource":"arn:aws:es:{{us-east-1:123456789012}}:domain/*" }]}' --engine-version "OpenSearch_1.0" --cluster-config InstanceType=m4.xlarge.search,InstanceCount=1 --ebs-options EBSEnabled=true,VolumeSize=10 --cognito-options Enabled=true,UserPoolId="{{us-east-1_123456789}}",IdentityPoolId="{{us-east-1:12345678-1234-1234-1234-123456789012}}",RoleArn="arn:aws:iam::{{123456789012}}:role/{{CognitoAccessForAmazonOpenSearch}}"
```

Después de que el dominio termine de procesarse, consulte [Permitir el rol autenticado](#cognito-auth-config-ac) y [Configuración de proveedores de identidades](#cognito-auth-identity-providers) para conocer los pasos adicionales de configuración.

### Configuración de la autenticación de Amazon Cognito ()AWS SDKs
<a name="cognito-auth-config-sdk"></a>

Las AWS SDKs (excepto Android e iOS SDKs) admiten todas las operaciones que se definen en la [referencia de la API de Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/Welcome.html), incluido el `CognitoOptions` parámetro de las `UpdateDomainConfig` operaciones `CreateDomain` y. Para obtener más información sobre la instalación y el uso de AWS SDKs, consulte los [kits de desarrollo de AWS software](https://aws.amazon.com/code).

Después de que el dominio termine de procesarse, consulte [Permitir el rol autenticado](#cognito-auth-config-ac) y [Configuración de proveedores de identidades](#cognito-auth-identity-providers) para conocer los pasos adicionales de configuración.

## Permitir el rol autenticado
<a name="cognito-auth-config-ac"></a>

De forma predeterminada, el rol de IAM autenticado que configuró siguiendo las instrucciones que se indican en él [Acerca del grupo de identidades](#cognito-auth-prereq-ip) no tiene los privilegios necesarios para acceder OpenSearch a los paneles. Debe proporcionar permisos adicionales al rol.

**nota**  
Si configuró el [control de acceso detallado](fgac.md) y utiliza una política de acceso abierta o basada en IP, puede omitir este paso.

Puede incluir estos permisos en una política [basada en la identidad](ac.md#ac-types-identity), pero a menos que desee que los usuarios autenticados tengan acceso a todos los dominios del OpenSearch servicio, lo mejor es aplicar una política [basada en recursos](ac.md#ac-types-resource) asociada a un único dominio.

Para el `Principal`, especifique el ARN del rol autenticado de Cognito que configuró con las pautas que figuran en [Acerca del grupo de identidades](#cognito-auth-prereq-ip).

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "AWS":[
               "arn:aws:iam::{{111122223333}}:role/Cognito_{{identitypoolname}}/Auth_Role"
            ]
         },
         "Action":[
            "es:ESHttp*"
         ],
         "Resource":"arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/{{domain-name}}/*"
      }
   ]
}
```

------

 Para obtener instrucciones sobre cómo agregar una política basada en recursos a un dominio de servicio, consulte. OpenSearch [Configurar políticas de acceso](createupdatedomains.md#createdomain-configure-access-policies)

## Configuración de proveedores de identidades
<a name="cognito-auth-identity-providers"></a>

Al configurar un dominio para usar la autenticación de Amazon Cognito para los paneles, OpenSearch Service agrega un [cliente de aplicación al](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html) grupo de usuarios y agrega el grupo de usuarios al grupo de identidades como proveedor de autenticación. 

**aviso**  
No cambie el nombre ni elimine el cliente de aplicación.

En función de cómo configure el grupo de usuarios, puede que necesite crear cuentas de usuarios de forma manual, o bien los usuarios podrían crear sus propias cuentas. Si estos ajustes son aceptables, no es necesario realizar más acciones. Sin embargo, muchas personas prefieren usar proveedores de identidades externos.

Para habilitar un proveedor de identidades SAML 2.0, debe proporcionar un documento de metadatos de SAML. Para habilitar proveedores de identidades sociales como Login with Amazon, Facebook y Google, debe disponer de un ID de aplicación y de la clave secreta de la aplicación de esos proveedores. Puede habilitar cualquier combinación de proveedores de identidades. 

La forma más sencilla de configurar el grupo de usuarios consiste en utilizar la consola de Amazon Cognito. Para obtener instrucciones, consulte [Inicio de sesión en grupos de usuarios con proveedores de identidad de terceros](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html) y [Ajustes específicos de una aplicación en los clientes de aplicación](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html) en la *Guía para desarrolladores de Amazon Cognito*.

## (Opcional) Configuración de acceso pormenorizado
<a name="cognito-auth-granular"></a>

Es posible que haya observado que la configuración predeterminada del grupo de identidades asigna a todos los usuarios que inician sesión en el mismo rol de IAM (`Cognito_{{identitypool}}Auth_Role`), lo que significa que todos los usuarios pueden acceder a los mismos recursos. AWS Si desea utilizar el [control de acceso detallado](fgac.md) con Amazon Cognito, por ejemplo, si desea que los analistas de la organización tengan acceso de solo lectura a varios índices, pero que los desarrolladores tengan acceso de escritura a todos los índices, tiene dos opciones:
+ Cree grupos de usuarios y configure su proveedor de identidades de tal forma que elija el rol de IAM en función del token de autenticación del usuario (recomendado).
+ Configure su proveedor de identidades para que elija el rol de IAM en función de una o varias reglas.

Para obtener un tutorial que incluya el control de acceso detallado, consulte [Tutorial: Configurar un dominio con un usuario maestro de IAM y la autenticación de Amazon Cognito](fgac-iam.md).

**importante**  
Al igual que sucede con el rol predeterminado, Amazon Cognito debe formar parte de la relación de confianza de cada rol adicional. Para obtener más información, consulte [Creación de roles para la asignación de roles](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html#creating-roles-for-role-mapping) en la *Guía para desarrolladores de Amazon Cognito*.

### Grupos de usuarios y tokens
<a name="cognito-auth-granular-tokens"></a>

Al crear un grupo de usuarios, elige un rol de IAM para los miembros del grupo. Para obtener información acerca de cómo crear grupos, consulte [Agregar grupos a un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html) en la *Guía para desarrolladores de Amazon Cognito*.

Después de crear uno o más grupos de usuarios, puede configurar su proveedor de autenticación para asignar a los usuarios las funciones de sus grupos en lugar del rol predeterminado del grupo de identidades. Seleccione **Elegir rol a partir de un token**, luego elija **Utilizar rol autenticado predeterminado** o **DENEGAR** para especificar de qué manera el grupo de identidades se encargará de los usuarios que no forman parte del grupo.

### Reglas
<a name="cognito-auth-granular-rules"></a>

Las reglas son básicamente una serie de instrucciones `if` que Amazon Cognito evalúa de forma secuencial. Por ejemplo, si una dirección de email del usuario contiene `@corporate`, Amazon Cognito asigna `Role_A` a ese usuario. Si la dirección de correo electrónico de un usuario contiene `@subsidiary`, asigna a ese usuario `Role_B`. De lo contrario, asigna al usuario el rol autenticado predeterminado.

Para obtener más información, consulte [Uso de la asignación basada en reglas para la asignación de roles a los usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html#using-rules-to-assign-roles-to-users) en la *Guía para desarrolladores de Amazon Cognito*.

## (Opcional) Personalización de la página de inicio de sesión
<a name="cognito-auth-customize"></a>

Puede usar la consola de Amazon Cognito para cargar un logotipo personalizado y realizar cambios de CSS en la página de inicio de sesión. Para obtener instrucciones y una lista completa de las propiedades de CSS, consulte [Personalización de la marca de la interfaz de usuario alojada (clásica)](https://docs.aws.amazon.com/cognito/latest/developerguide/hosted-ui-classic-branding.html) en la *Guía para desarrolladores de Amazon Cognito*.

## (Opcional) Configuración de seguridad avanzada
<a name="cognito-auth-advanced"></a>

Los grupos de usuarios de Amazon Cognito admiten características de seguridad avanzadas como la autenticación multifactor, la verificación de credenciales comprometidas y la autenticación flexible. Para obtener más información, consulte [Uso de las características de seguridad de los grupos de usuarios de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/managing-security.html) en la *Guía para desarrolladores de Amazon Cognito*.

## Testeo
<a name="cognito-auth-testing"></a>

Una vez que esté satisfecho con la configuración, verifique que la experiencia del usuario cumpla sus expectativas.

**Para acceder a los paneles OpenSearch**

1. Vaya a `https://{{opensearch-domain}}/_dashboards` en un navegador Web. Para iniciar sesión directamente en un inquilino específico, agregue `?security_tenant={{tenant-name}}` a la URL.

1. Inicie sesión con las credenciales que prefiera.

1. Una vez que se carguen los OpenSearch paneles, configure al menos un patrón de índice. Dashboards utiliza estos patrones para identificar los índices que desea analizar. Escriba `*`, seleccione **Siguiente paso** y, a continuación, seleccione **Crear patrón de índice**.

1. Para buscar datos o explorar en ellos, seleccione **Detección**.

Si cualquier paso de este proceso da error, consulte [Problemas habituales de configuración](#cognito-auth-troubleshooting) para obtener información sobre resolución de problemas.

## Cuotas
<a name="cognito-auth-limits"></a>

Amazon Cognito cuenta con límites flexibles en muchos de los recursos. Si desea habilitar la autenticación de Dashboards para un gran número de dominios de OpenSearch servicio, revise [las cuotas en Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html) Cognito [y solicite los aumentos del límite según sea necesario](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

Cada dominio OpenSearch de servicio agrega un [cliente de aplicación al](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html) grupo de usuarios, que agrega un [proveedor de autenticación](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) al grupo de identidades. Si habilita la autenticación de OpenSearch Dashboards para más de 10 dominios, es posible que se encuentre con el límite «máximo de proveedores de grupos de usuarios de Amazon Cognito por grupo de identidades». **Si supera un límite, cualquier dominio de OpenSearch servicio que intente configurar para usar la autenticación de Amazon Cognito para los paneles puede quedar atrapado en un estado de configuración de Procesamiento.**

## Problemas habituales de configuración
<a name="cognito-auth-troubleshooting"></a>

En las tablas siguientes se muestran los problemas habituales de configuración y las soluciones.


**Configuración del servicio OpenSearch**  

| Problema | Solución | 
| --- | --- | 
| `OpenSearch Service can't create the role` (consola) | No dispone de los permisos de IAM correctos. Agregue los permisos especificados en [Configuración de la autenticación de Amazon Cognito (consola)](#cognito-auth-config-console). | 
| `User is not authorized to perform: iam:PassRole on resource CognitoAccessForAmazonOpenSearch` (consola) | No tienes iam:PassRole permisos para el [CognitoAccessForAmazonOpenSearch](#cognito-auth-role)rol. Asocie la siguiente política a su cuenta:  JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::{{123456789012:role/service-role/CognitoAccessForAmazonOpenSearch}}"
    }
  ]
}
```    Como alternativa, puede adjuntar la política `IAMFullAccess`. | 
| `User is not authorized to perform: cognito-identity:ListIdentityPools on resource` | No tiene permisos de lectura para Amazon Cognito. Adjunte la política `AmazonCognitoReadOnly` a su cuenta. | 
| `An error occurred (ValidationException) when calling the CreateDomain operation: OpenSearch Service must be allowed to use the passed role` | OpenSearch El servicio no está especificado en la relación de confianza del `CognitoAccessForAmazonOpenSearch` rol. Verifique si el rol utiliza la relación de confianza que se especifica en [Acerca del CognitoAccessForAmazonOpenSearch rol](#cognito-auth-role). De manera alternativa, utilice la consola para configurar la autenticación de Amazon Cognito. La consola crea un rol para usted. | 
| `An error occurred (ValidationException) when calling the CreateDomain operation: User is not authorized to perform: cognito-idp:{{action}} on resource: {{user pool}}` | El rol especificado en --cognito-options no cuenta con permisos para acceder a Amazon Cognito. Compruebe que el rol tenga la AmazonOpenSearchServiceCognitoAccess política AWS gestionada adjunta. De manera alternativa, utilice la consola para configurar la autenticación de Amazon Cognito. La consola crea un rol para usted. | 
| An error occurred (ValidationException) when calling the CreateDomain operation: User pool does not exist | OpenSearch El servicio no encuentra el grupo de usuarios. Verifique que creó uno y que tiene el ID correcto. Para encontrar el ID, puede utilizar la consola de Amazon Cognito o el siguiente comando: AWS CLI <pre>aws cognito-idp list-user-pools --max-results 60 --region {{region}}</pre> | 
| `An error occurred (ValidationException) when calling the CreateDomain operation: IdentityPool not found` | OpenSearch El servicio no encuentra el grupo de identidades. Verifique que creó uno y que tiene el ID correcto. Para encontrar el ID, puede utilizar la consola de Amazon Cognito o el siguiente comando: AWS CLI <pre>aws cognito-identity list-identity-pools --max-results 60 --region {{region}}</pre> | 
| `An error occurred (ValidationException) when calling the CreateDomain operation: Domain needs to be specified for user pool` | El grupo de usuarios no tiene un nombre de dominio. Puede configurar uno con la consola de Amazon Cognito o el siguiente comando de la AWS CLI :<pre>aws cognito-idp create-user-pool-domain --domain {{name}} --user-pool-id {{id}}</pre> | 


**Acceder a OpenSearch los paneles**  

| Problema | Solución | 
| --- | --- | 
| La página de inicio de sesión no muestra mis proveedores de identidades preferidos. | Compruebe que ha activado el proveedor de identidad para el cliente de la aplicación de OpenSearch servicio, tal y como se especifica en[Configuración de proveedores de identidades](#cognito-auth-identity-providers). | 
| La página de inicio de sesión no parece estar asociada a mi organización. | Consulte [(Opcional) Personalización de la página de inicio de sesión](#cognito-auth-customize). | 
| Mis credenciales de inicio de sesión no funcionan. | Verifique que configuró el proveedor de identidades tal y como se especifica en [Configuración de proveedores de identidades](#cognito-auth-identity-providers).<br />Si utiliza el grupo de usuarios como proveedor de identidades, verifique que la cuenta exista en la consola de Amazon Cognito. | 
| OpenSearch Los paneles no se cargan en absoluto o no funcionan correctamente. | El rol autenticado de Amazon Cognito necesita permisos `es:ESHttp*` para el dominio (`/*`) a fin de obtener acceso y utilizar Dashboards. Verifique que agregó una política de acceso tal y como se especifica en [Permitir el rol autenticado](#cognito-auth-config-ac). | 
| Al cerrar sesión en los OpenSearch paneles de control desde una pestaña, en las pestañas restantes aparece un mensaje que indica que se ha revocado el token de actualización. | Cuando cierra sesión en una sesión de OpenSearch Dashboards mientras utiliza la autenticación de Amazon Cognito OpenSearch , Service ejecuta [AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)una operación que cierra la sesión de todas las sesiones *de* Dashboards OpenSearch activas.  | 
| Invalid identity pool configuration. Check assigned IAM roles for this pool. | Amazon Cognito no cuenta con permisos para asumir el rol de IAM en nombre del usuario autenticado. Modifique la relación de confianza para el rol de tal forma que incluya:  JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "Federated": "cognito-identity.amazonaws.com"
    },
    "Action": "sts:AssumeRoleWithWebIdentity",
    "Condition": {
      "StringEquals": {
        "cognito-identity.amazonaws.com:aud": "{{identity-pool-id}}"
      },
      "ForAnyValue:StringLike": {
        "cognito-identity.amazonaws.com:amr": "authenticated"
      }
    }
  }
 ]
}
```     | 
| Token is not from a supported provider of this identity pool. | Este error poco habitual se puede producir al eliminar el cliente de aplicación del grupo de usuarios. Intente abrir Dashboards en una nueva sesión del navegador. | 

## Desactivación de la autenticación de Amazon Cognito para paneles OpenSearch
<a name="cognito-auth-disable"></a>

Utilice el siguiente procedimiento para deshabilitar la autenticación de Amazon Cognito para Dashboards.

**Para deshabilitar la autenticación de Amazon Cognito para Dashboards (consola)**

1. Abre la [consola OpenSearch de Amazon Service](https://console.aws.amazon.com/aos/home/).

1. En **Dominios**, seleccione el dominio que desea configurar.

1. Seleccione **Acciones** y **Editar la configuración de seguridad**.

1. Desactive **Habilitar la autenticación de Amazon Cognito**.

1. Seleccione **Guardar cambios**.

**importante**  
Si ya no necesita el grupo de usuarios y de identidades de Amazon Cognito, elimínelos. De lo contrario, seguirá incurriendo en costos.

## Eliminar dominios que utilizan la autenticación de Amazon Cognito para los paneles OpenSearch
<a name="cognito-auth-delete"></a>

Para evitar que los dominios que utilizan la autenticación de Amazon Cognito para los paneles se atasquen en un estado de configuración de **Procesamiento**, elimine los dominios de OpenSearch servicio *antes* de eliminar sus grupos de usuarios e identidades de Amazon Cognito asociados.