Quiero configurar mi clúster de base de datos Amazon Aurora aprovisionado para que sea de acceso público y proteger mi clúster de base de datos Aurora de las conexiones externas.
Descripción corta
Para que tu clúster de base de datos de Aurora sea de acceso público, las instancias del clúster deben tener una dirección IP pública y ejecutarse en una subred pública.
Para una instancia de base de datos de Aurora, no puedes elegir una subred específica. Como alternativa, debes elegir un grupo de subredes de base de datos al crear la instancia. Asegúrate de crear un grupo de subredes de base de datos con configuraciones de red similares. Por ejemplo, crea un grupo de subredes de base de datos para las subredes públicas y otro para las subredes privadas.
Después de configurar la instancia de base de datos para permitir conexiones desde fuera de la VPC, puedes usar TLS para proteger las conexiones.
Nota: Es una práctica recomendada de seguridad no permitir conexiones desde fuera de la VPC, a menos que sea necesario tener acceso público.
Resolución
Establecer la configuración de acceso público para la instancia de base de datos en Sí
La configuración de acceso público de una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) controla la asignación de una dirección IP pública a la instancia de base de datos. Si estableces la configuración en no, la instancia de base de datos no tiene una dirección IP pública. Si estableces la configuración en sí, la instancia de base de datos tiene direcciones IP públicas y privadas.
Para cambiar la configuración de acceso público de la instancia de base de datos a sí, sigue estos pasos:
- Abre la consola de Amazon RDS.
- En el panel de navegación, selecciona Bases de datos y, a continuación, selecciona la instancia de base de datos.
- Selecciona Modificar.
- En la sección Conectividad, elige Configuración adicional y, a continuación, elige Accesible públicamente.
- Selecciona Continuar.
- En la sección Modificaciones de la programación, elige la opción que mejor se adapte a tu caso práctico.
Nota: La opción Aplicar inmediatamente puede provocar tiempos de inactividad. Para obtener más información, consulta Uso de la configuración de la programación de modificaciones.
- Elige Modificar la instancia de base de datos.
Ejecución de una instancia de base de datos en una subred pública
Para asegurarte de que la subred pública de la instancia de base de datos tiene acceso a Internet, sigue estos pasos:
- Crea una puerta de enlace de Internet para adjuntarla a la VPC.
- En el panel de navegación, elige Subredes.
- Comprueba que todas las subredes del grupo de subredes de base de datos utilicen una tabla de enrutamiento con la puerta de enlace de Internet.
- Si la subred usa la tabla de enrutamiento principal de la VPC, agrega la ruta 0.0.0.0/0 para la puerta de enlace de Internet. También puedes crear una tabla de enrutamiento personalizada con una ruta a la puerta de enlace de Internet y, a continuación, asociarla a la subred.
- Para agregar la dirección IP pública de origen desde la que deseas conectarte a la instancia de base de datos, configura las reglas de entrada del grupo de seguridad.
En Tipo, elige MySQL/Aurora o PostgreSQL.
En Origen, elige Personalizado e introduce manualmente el intervalo de CIDR. O bien, elige Mi IP para conectarte a la instancia de base de datos desde la misma estación de trabajo.
Protección del clúster de base de datos de las conexiones externas a la VPC
Utiliza TLS para cifrar las conexiones externas a una VPC porque la transferencia de datos se produce a través de Internet. Para confirmar que utilizas el nivel más alto de seguridad, usa el parámetro ssl-ca para pasar el certificado de autoridad de certificación (CA) y, a continuación, activa la validación del nombre de host.
Para probar la conexión TLS, ejecuta el siguiente comando según la versión de Aurora que utilices.
Edición de Amazon Aurora compatible con MySQL 5.6
mysql -h test-aurora-56.cluster-############.us-east-1.rds.amazonaws.com -u test_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert
Nota: Sustituye test-aurora-56.cluster-############.us-east-1.rds.amazonaws.com por el punto de enlace de tu clúster. Sustituye test_user por tu nombre de usuario. Sustituye rds-combined-ca-bundle.pem por la ruta de tu CA.
Amazon Aurora compatible con MySQL 5.7 y versiones posteriores
mysql -h test-aurora-57.cluster-############.us-east-1.rds.amazonaws.com -u test_user --ssl-ca=rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY
Nota: Sustituye test-aurora-57.cluster-############.us-east-1.rds.amazonaws.com por el punto de enlace de tu clúster. Sustituye test_user por tu nombre de usuario. Sustituye rds-combined-ca-bundle.pem por la ruta de tu CA.
Edición de Amazon Aurora compatible con PostgreSQL
psql -h test-aurora-pg.cluster-############.us-east-1.rds.amazonaws.com -p 5432 "dbname=postgres user=test_user sslrootcert=rds-combined-ca-bundle.pem sslmode=verify-full"
Nota: Sustituye test-aurora-pg.cluster-############.us-east-1.rds.amazonaws.com por el punto de enlace de tu clúster. Sustituye 5432 por el puerto de tu clúster. Sustituye postgres por el nombre de usuario de tu base de datos y test_user por tu nombre de usuario. Sustituye rds-combined-ca-bundle.pem por la ruta de tu CA.
También puedes aplicar TLS a los clústeres de bases de datos. Para Aurora compatible con MySQL, define TLS a nivel de usuario de la base de datos. En el caso de Aurora compatible con PostgreSQL, define el parámetro rds.force_ssl en 1.
Información relacionada
Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos
Protección de los datos de Aurora PostgreSQL con SSL/TLS
¿Cómo puedo conectarme a mi instancia de base de datos de Amazon RDS con un host bastión desde mi máquina Linux o macOS?
¿Cómo puedo configurar los puntos de enlace de Aurora públicos y privados en la consola de Amazon RDS?