Estoy tratando de encontrar la mejor y más segura manera de hacerlo, si es posible hacerlo de forma segura.
Pequeña empresa. Tenemos un servidor web alojado de un tercero que sirve a nuestra aplicación web de cliente con un mínimo de datos en la base de datos del servidor. Quiere comenzar a ofrecer más funciones a través del portal, lo que requeriría desarrollar la aplicación para acceder a nuestros datos más completos en nuestra base de datos interna. La compañía no quiere poner los datos en el servidor de terceros.
Estoy pensando que una forma de hacerlo sería abrir el servidor de terceros en el puerto de la base de datos y solo permitir el tráfico de la IP de la oficina a ese puerto. En el servidor interno, abra el puerto de la base de datos solo para el tráfico desde la IP del servidor de terceros.
1) ¿Se consideraría esto una configuración razonablemente segura?
No soy un tipo de red ni de seguridad, por lo que solo estoy recopilando información sobre las mejores prácticas y obteniendo información sobre la configuración.
Sé que puede haber falsificación de IP donde un atacante puede hacer que su IP se parezca a la de cualquier otro. Tendrían que saber qué propiedad intelectual está exenta de antemano. Sin embargo, se puede configurar una clave de autenticación entre los servidores, por lo que incluso si la IP fue falsificada, ambos extremos de la conexión necesitarían la clave.
2) ¿Esto solo sería una clave SSH?
EDIT 1:
Para ser perfectamente franco, no en la empresa es un verdadero entendimiento con respecto a la seguridad. No quieren nuestros datos confidenciales en un servidor de terceros porque creen que simplemente está flotando para que cualquiera en el aether lo agarre. Básicamente, como buscar en Google 'Microsoft', o algo así, alguien puede simplemente ser como 'my_company data' y obtener nuestros datos. La otra razón es práctica. Los datos deben estar disponibles de inmediato, ya que estamos trabajando constantemente con ellos. Tener que cargar y descargar desde un servidor remoto sería lento y sería molesto realmente rápido.
Además, debo agregar que esto implica información confidencial que no debe hacerse pública. En qué consiste si un cliente desea calcular el percentil 65 para un elemento determinado, esa solicitud se envía desde la aplicación web del cliente que se ejecuta en el servidor de la tercera parte a la base de datos interna donde los datos sin procesar deben calcular el percentil. El resultado se envía de vuelta a la aplicación web del cliente y se presenta allí. No deberían tener acceso a los datos directamente porque son confidenciales.
Dicho esto, estaba leyendo un poco sobre API REST. Algo de lo que estaba leyendo decía que las API REST pueden no ser las mejores cuando se requiere información confidencial o autenticación y que se debe usar SOAP.