¿Cómo puedo conectarme a una instancia de base de datos de Amazon RDS privada desde una máquina local con una instancia de Amazon EC2 que actúe como host bastión?

Última actualización: 29/3/2022

¿Cómo puedo conectarme a una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) privada desde una máquina local con una instancia de Amazon Elastic Compute Cloud (Amazon EC2) que actúe como host bastión (de salto)?

Descripción corta

Para conectarse a una instancia de base de datos de Amazon RDS desde una máquina local con una instancia de EC2 como servidor de salto, siga estos pasos:

  1. Lance y configure la instancia EC2 y ajuste la configuración de red de la instancia.
  2. Configure los grupos de seguridad de la instancia de base de datos de RDS.
  3. Conéctese a la instancia de base de datos de RDS desde la máquina local.

Importante: para conectarse a una instancia de base de datos de Amazon RDS o Amazon Aurora privada, la práctica recomendada es utilizar VPN o AWS Direct Connect. Si no puede utilizar VPN o Direct Connect, utilice un host bastión. El siguiente ejemplo de configuración restringe el acceso mediante grupos de seguridad. Sin embargo, también puede restringir la lista de control de acceso a la red (ACL de red) de subredes para que la conexión sea más segura. También puede restringir el alcance de la ruta de la gateway de Internet para utilizar un rango menor en lugar de 0.0.0.0/0. Por ejemplo, puede agregar únicamente el rango CIDR requerido en la tabla de enrutamiento para el destino cuando agregue la puerta de enlace de Internet. Para más información, consulte Opciones de enrutamiento de ejemplo.

Resolución

El siguiente ejemplo de configuración es para una instancia de Amazon RDS for MySQL que se encuentra en una Amazon Virtual Private Cloud (Amazon VPC). La instancia tiene grupos de seguridad configurados para una instancia EC2.

Lanzar y configurar la instancia EC2

  1. Abra la consola de Amazon EC2 y seleccione Lanzar instancia.
  2. Elija una Amazon Machine Image (AMI).
  3. Elija un tipo de instancia, y luego elija Next: Configure Instance Details (Siguiente: Configurar detalles de la instancia).
  4. Para Network (Red), elija la VPC que utiliza la instancia de base de datos de RDS.
  5. Para Subnet (Subred), elija la subred que cuenta con una puerta de enlace de Internet en su tabla de enrutamiento. Si aún no dispone de una puerta de enlace de Internet, puede agregarla a la subred una vez que se haya creado la instancia EC2.
  6. Elija Next: Add Storage (Siguiente: Agregar almacenamiento), y modifique el almacenamiento como sea necesario.
  7. Elija Next: Add Tags (Siguiente: Agregar etiquetas), y agregue etiquetas según sea necesario.
  8. Elija Next: Configure Security Group (Siguiente: Configurar grupo de seguridad), elija Add Rule (Agregar regla) e ingrese lo siguiente:
    Type (Tipo): Regla TCP personalizada
    Protocol (Protocolo): TCP
    Port Range (Rango de puertos): 22
    Source (Fuente): Ingrese la dirección IP de su máquina local. De forma predeterminada, la dirección IP fuente está disponible para todo el mundo. No obstante, puede limitar el acceso a su dirección IP pública local exclusivamente.
  9. Elija Review and Launch (Revisar y lanzar).
  10. Elija Lanzar.

Configurar los grupos de seguridad de la instancia de base de datos de RDS

  1. Abra la consola de Amazon RDS y elija Bases de datos en el panel de navegación.
  2. Elija el nombre de la instancia de base de datos de RDS. O bien cree una instancia de base de datos de RDS, si aún no posee ninguna.
  3. Elija la pestaña Connectivity & security (Conectividad y seguridad).
  4. Desde la sección Security (Seguridad), elija el vínculo bajo VPC security groups (Grupos de seguridad de VPC).
  5. Seleccione el grupo de seguridad, elija Actions (Acciones) y elija Edit inbound rules (Editar reglas de entrada).
  6. Elija Add rule (Agregar regla) e ingrese lo siguiente:
    Type (Tipo): Regla TCP personalizada
    Protocol (Protocolo): TCP
    Port Range (Rango de puertos): Ingrese el puerto de su instancia de base de datos de RDS
    Source (Fuente): Ingrese la dirección IP privada de su instancia EC2
  7. Seleccione Save (Guardar).

Esta configuración para el grupo de seguridad permite el tráfico desde la dirección IP privada de la instancia EC2. Si la instancia EC2 y la instancia de base de datos de RDS utilizan la misma VPC, entonces no necesita modificar la tabla de enrutamiento que utiliza la instancia de base de datos de RDS. Si la VPC es diferente, cree una interconexión de VPC para permitir conexiones entre estas VPC.

Conectarse a la instancia de base de datos de RDS desde su máquina local

Según el cliente que utilice, varían los pasos necesarios para conectarse a la instancia de base de datos de RDS. Para obtener más información, consulte Conectarse a una instancia de base de datos de Amazon RDS. Si utiliza MySQL, es una práctica recomendada utilizar SSL para cifrar la conexión entre la aplicación cliente y Amazon RDS.

El siguiente ejemplo utiliza el cliente MySQL Workbench para conectarse al anfitrión bastión:

  1. Inicie una nueva conexión y seleccione Standard TCP/IP over SSH (TCP/IP estándar por medio de SSH) para Connection Method (Método de conexión).
  2. Ingrese los siguientes detalles sobre la instancia EC2 para la configuración SSH:
    SSH Hostname (Nombre de anfitrión SSH): Ingrese el nombre de DNS público de la instancia EC2.
    SSH Username (Nombre de usuario SSH): Ingrese el nombre de usuario para su instancia EC2. Por ejemplo, “ec2-user” es el nombre de usuario para las máquinas EC2 Linux.
    SSH Key File (Archivo de clave SSH): Seleccione la clave privada que se utilizaba cuando se creó la instancia EC2.
  3. Ingrese los siguientes detalles para la configuración de la instancia MySQL:
    MySQL Hostname (nombre de anfitrión MySQL): Ingrese el punto de conexión de la instancia de base de datos de RDS.
    MySQL Server port (Puerto de servidor de MySQL): Ingrese 3306 (o el puerto personalizado que utilice).
    Username (Nombre de usuario): Ingrese el nombre de usuario maestro de la instancia de base de datos de RDS.
    Password (Contraseña): Ingrese la contraseña maestra de la instancia de base de datos de RDS.
  4. Elija Test Connection (Probar conexión).
  5. Una vez que la conexión se realice correctamente, dele un nombre y guárdela.

Si desea conectarse desde su cliente MySQL local a una instancia privada de RDS mediante un túnel SSH, consulte los siguientes comandos.

Linux o macOS:

Ejecute los siguientes comandos:

ssh -N -L 3336:127.0.0.1:3306 [user]@[server_ip]

mysql -u MYSQL_USER -p -h 127.0.0.1

Nota: Utilice su propia información donde aparecen user, server_ip y mysql_user.

Windows PowerShell:

ssh -i "<filename>.pem" <user_name>@<EC2_Endpoint> -L <Port_number>:<RDS_Endpoint>:<Port_number> -N

Nota: Utilice su propia información donde aparecen filename y username. Utilice la información relativa a su instancia de RDS donde aparecen EC2_Endpoint, port_number, RDS_Endpoint y Port_number


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?