Estoy probando una solución MySQL de Amazon RDS: la base de datos la proporciona Amazon RDS, pero la lógica de la aplicación (scripts php) que accede a los datos está alojada en otro servidor diferente (no amazon).
Supongamos que por alguna razón no puedo usar las conexiones SSL de MySQL y confío solo en la seguridad proporcionada por las políticas de origen / destino que puede configurar en Amazon VPC: Puedo decir que la instancia de MySQL puede aceptar tráfico SOLAMENTE desde una IP específica (la IP de mi servidor web) y puede enviar tráfico SOLAMENTE a una IP específica (nuevamente, la IP de mi servidor web).
¿Qué tan peligrosa es esta solución? Sé que la pregunta parece demasiado vaga, pero hay algunos detalles específicos que me gustaría aclarar; vamos a tratar de ver qué puede pasar:
1) Los datos (incluidas las credenciales de MySQL) se envían de forma clara a través de Internet, por lo que, si se trata de datos razonables, podría ser visto por un tercero. ¿Qué tan fácil es este ataque? ¿El hecho de que estemos usando IP y no nombres de dominio en la política hace que sea más difícil ejecutar un ataque de intermediario?
2) Supongamos que un atacante logra robar las credenciales de MySQL usando 1), ¿qué tan fácil sería ejecutar consultas arbitrarias en la instancia de MySQL? El atacante debe pretender tener la IP de mi servidor web, operación que debería ser más difícil en "modo de recepción" que en "modo de envío". Así que supongo que hay dos categorías diferentes de consultas que deberíamos considerar por separado:
A: consultas SELECT arbitrarias (en general, consultas que solicitan algún tipo de datos)
B: BORRAR arbitrariamente, ACTUALIZAR, INSERTAR, ... (en general, las consultas que no necesitan una respuesta)
Diría que las consultas B son más fáciles de ejecutar, pero esto podría depender de otros factores, como el protocolo específico utilizado por MySQL.