Sto testando una soluzione MySQL Amazon RDS: il database è fornito da Amazon RDS ma la logica dell'applicazione (script php) che accede ai dati è ospitata in un altro server diverso (non amazon).
Supponiamo che per qualche ragione non possa usare le connessioni SSL MySQL e mi baso solo sulla sicurezza fornita dalle politiche di origine / destinazione che puoi impostare su Amazon VPC: posso dire che l'istanza MySQL può accettare SOLO traffico da un IP specifico (l'IP del mio server Web) e può inviare SOLO traffico ad un IP specifico (di nuovo, l'IP del mio server Web).
Quanto è pericolosa questa soluzione? So che la domanda sembra troppo vaga, ma ci sono alcuni dettagli specifici che vorrei chiarire; proviamo a vedere cosa può succedere:
1) I dati (comprese le credenziali MySQL) vengono inviati in chiaro su Internet, quindi se si tratta di dati sensibili, potrebbe essere visto da una parte esterna. Quanto è facile questo attacco? Il fatto che stiamo usando IP e non i nomi di dominio nella politica rende un attacco man-in-the-middle più difficile da eseguire?
2) Supponiamo che un utente malintenzionato riesca a sottrarre le credenziali MySQL usando 1), quanto sarebbe facile eseguire query arbitrarie sull'istanza MySQL? L'autore dell'attacco deve fingere di avere l'IP del mio server web, operazione che dovrebbe essere più difficile in "modalità di ricezione" piuttosto che in "modalità di invio". Quindi immagino ci siano due diverse categorie di domande che dovremmo considerare separatamente:
A: query SELECT arbitrarie (in generale, query che richiedono il ritorno di alcuni tipi di dati)
B: DELETE arbitrato, UPDATE, INSERT, ... (in generale, query che non richiedono una risposta)
Direi che le query B sono più facili da eseguire ma ciò potrebbe dipendere da altri fattori come il protocollo specifico usato da MySQL.