¿Cómo puedo utilizar un túnel SSH para acceder a OpenSearch Dashboards desde fuera de una VPC con autenticación de Amazon Cognito?

7 minutos de lectura
0

El clúster de Amazon OpenSearch Service se encuentra en una nube virtual privada (VPC). Quiero utilizar un túnel SSH para acceder a OpenSearch Dashboards desde fuera de la VPC con autenticación de Amazon Cognito.

Descripción breve

De forma predeterminada, Amazon Cognito restringe el acceso a OpenSearch Dashboards a los usuarios de AWS Identity and Access Management (IAM) en la VPC. Para acceder a un dominio de Amazon OpenSearch Service desde otra VPC, configure un punto de conexión de VPC administrado por OpenSearch Service (con tecnología de AWS PrivateLink). También puede acceder a OpenSearch Dashboards desde fuera de la VPC mediante un túnel SSH.

Importante: Asegúrese de que el acceso a OpenSearch Dashboards desde fuera de la VPC cumpla los requisitos de seguridad de su organización.

Acceda a los paneles desde fuera de la VPC mediante un túnel SSH:

1.    Cree un grupo de usuarios y un grupo de identidades de Amazon Cognito.

2.    Cree una instancia de Amazon Elastic Compute Cloud (Amazon EC2) en una subred pública. Esta subred debe estar en la misma VPC que su dominio de OpenSearch Service.

3.    Utilice un complemento de navegador, como FoxyProxy, para configurar un proxy SOCKS.

4.    Cree un túnel SSH desde su equipo local hacia la instancia EC2.

Nota: También puede utilizar un proxy NGINX o Client VPN para acceder a Dashboards desde fuera de una VPC con la autenticación de Amazon Cognito. Para obtener más información, consulte ¿Cómo puedo acceder a OpenSearch Dashboards desde fuera de una VPC mediante la autenticación de Amazon Cognito?

5.    (Opcional) Si el control de acceso detallado (FGAC) está habilitado, agregue un rol autenticado de Amazon Cognito.

Resolución

Crear un grupo de usuarios y un grupo de identidades de Amazon Cognito

1.    Cree un grupo de usuarios de Amazon Cognito.

2.    Configure un dominio de grupo de usuarios alojado.

3.    En el panel de navegación de la consola de Amazon Cognito, elija Users and groups (Usuarios y grupos).

4.    Seleccione Create user (Crear un usuario) y, a continuación, complete los campos. Asegúrese de ingresar una dirección de email. A continuación, active la casilla de verificación Mark email as verified (Marcar el email como verificado).

5.    Seleccione la pestaña Groups (Grupos) y, a continuación, elija Create group (Crear un grupo). En Precedence (Prioridad), escriba 0. Para obtener más información, consulte Creación de un grupo nuevo en la consola de administración de AWS.

6.    Vuelva a abrir la consola de Amazon Cognito.

7.    Elija Manage Identity Pools (Administrar grupos de identidades) y, a continuación, elija Create new identity pool (Crear un nuevo grupo de identidades).

8.    Ingrese un nombre para el grupo de identidades y active la casilla de verificación de Enable access to unauthenticated identities (Habilitar el acceso a identidades no autenticadas). Luego, elija Create Pool (Crear política).

9.    Cuando se le solicite el acceso a sus recursos de AWS, seleccione Allow (Permitir). Esto creará los dos roles predeterminados asociados a su grupo de identidades: uno para los usuarios no autenticados y otro para los usuarios autenticados.

10.    Configure su dominio de OpenSearch Service para que utilice la autenticación de Amazon Cognito para OpenSearch Dashboards:
En Cognito User Pool (Grupo de usuarios de Cognito), elija el grupo de usuarios que creó en el paso 1.
En Cognito Identity Pool (Grupo de identidades de Cognito), elija el grupo de identidades que creó en el paso 8.

11.    Configure su dominio de OpenSearch Service para que utilice una política de acceso similar a la siguiente. Reemplace los siguientes valores:
account-id por el ID de su cuenta de AWS
identity-name por el nombre de su grupo de identidades de Amazon Cognito
domain-name por el nombre de su dominio
Region (Región) por la región en la que reside el dominio, como us-east-1

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:sts::account-id:assumed-role/Cognito_identity-nameAuth_Role/CognitoIdentityCredentials"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:Region:account-id:domain/domain-name/*"
    }
  ]
}

Por ejemplo, la siguiente política de acceso utiliza estos valores:

ID de la cuenta de AWS: 111122223333
Nombre del grupo de identidades de Amazon Cognito: MyIdentityPool
Nombre del dominio: MyDomain
Región: us-east-1

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:sts::111122223333:assumed-role/Cognito_MyIdentityPoolAuth_Role/CognitoIdentityCredentials"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:111122223333:domain/MyDomain/*"
    }
  ]
}

Crear una instancia EC2 y configurar reglas de grupos de seguridad

1.    Lance una instancia EC2 en una subred pública de la VPC en la que se encuentra el dominio de OpenSearch Service. En la página Configure Instance Details (Configurar detalles de la instancia), asegúrese de que Auto-assign Public IP (Asignar automáticamente IP pública) esté configurada en Enable (Habilitar).
Nota: En los pasos siguientes, la instancia EC2 se denomina tunnel_ec2.

2.    Agregue reglas de entrada al grupo de seguridad asociado a la instancia tunnel_ec2. Estas reglas deben permitir el tráfico a los puertos 8157 y 22 desde la dirección IP del equipo que utilizará para acceder al panel de OpenSearch Service.

3.    Agregue una regla de entrada al grupo de seguridad asociado al dominio de OpenSearch Service. Esta regla debe permitir el tráfico desde la dirección IP privada de la instancia tunnel_ec2.

Configurar el proxy SOCKS

1.    Agregue FoxyProxy Standard a Google Chrome.

2.    Abra FoxyProxy y, a continuación, seleccione Options (Opciones).

3.    En la lista desplegable Proxy mode (Modo proxy), seleccione Use proxies based on their pre-defined patterns and priorities (Utilizar proxies basados en los patrones y las prioridades predefinidos).

4.    Seleccione Add New Proxy (Agregar nuevo proxy).

5.    Seleccione la pestaña General (General) e ingrese un Proxy Name (Nombre de proxy), como, por ejemplo, “Proxy de Dashboards”.

6.    En la pestaña Proxy Details (Detalles del proxy), asegúrese de que la opción Manual Proxy Configuration (Configuración manual del proxy) esté seleccionada y, a continuación, complete los siguientes campos:
En Host or IP Address (Alojamiento o dirección IP), ingrese localhost.
En Port (Puerto), escriba 8157.
Seleccione SOCKS proxy (Proxy SOCKS).
Seleccione SOCKS v5.

7.    Seleccione la pestaña URL Patterns (Patrones de URL).

8.    Seleccione Add new pattern (Agregar nuevo patrón) y, a continuación, complete los siguientes campos:
En Pattern Name (Nombre de patrón), ingrese un nombre como “VPC Endpoint” (Punto de conexión de VPC).
En URL pattern (Patrón de URL), ingrese el punto de conexión de VPC para Dashboards. Asegúrese de que se permite el acceso a la URL. Asegúrese de que la opción Wildcards (Comodines) esté seleccionada.

9.     Elija Save (Guardar).

Crear el túnel SSH

1.    Ejecute este comando desde el equipo local que utilizará para acceder al panel de Dashboards. Sustituya estos elementos:
mykeypair.pem: nombre del archivo .pem del par de claves que especificó cuando lanzó la instancia EC2 tunnel_ec2.
public_dns_name: el DNS público de la instancia EC2 tunnel_ec2 Para obtener más información, visite Consultar los nombres de alojamiento DNS de su instancia EC2.

ssh -i "mykeypair.pem"  ec2-user@public_dns_name -ND 8157

2.    Ingrese el punto de enlace de Dashboards en su navegador. Aparecerá la página de inicio de sesión de Amazon Cognito para Dashboards.

(Opcional) En caso de que el FGAC esté activado, agregue un rol autenticado de Amazon Cognito

Si el control de acceso detallado (FGAC) está activado en el clúster de OpenSearch Service, es posible que se produzca un error de falta el rol. Para resolver el error de “rol en falta”, realice los siguientes pasos:

1.    Inicie sesión en la consola de OpenSearch Service.

2.    En el panel de navegación, en Managed clusters (Clústeres administrados), seleccione Domains (Dominios).

3.    Elija Actions (Acciones).

4.    Seleccione Modify master user (Modificar usuario maestro).

5.    Elija Set IAM ARN (Establecer ARN de IAM) como usuario maestro).

6.    En el campo “IAM ARN” (ARN de IAM), agregue el rol de ARN autenticado de Amazon Cognito.

7.    Elija Submit (Enviar).

Para obtener más información acerca del control de acceso detallado, consulte Tutorial: usuario maestro de IAM y Amazon Cognito.


Información relacionada

Configuración de la autenticación de Amazon Cognito para OpenSearch Dashboards

Lanzamiento de sus dominios de Amazon OpenSearch Service con una VPC

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año