Condivisione di un broker di messaggi tra sistemi remoti

0

Al momento stiamo esplorando soluzioni per spingere / sincronizzare i dati tra due sistemi (in due reti separate) in "quasi" in tempo reale.

Le soluzioni sono alquanto limitate:

  1. Una sorta di meccanismo RPC: HTTP "Web Hooks", gRPC, SOAP, qualunque sia ...
  2. Condivisione di un tipo di broker di messaggi / coda (Apache Kafka, RabbitMQ, NATS ...)

Da quello che vedo, la maggior parte dei broker di messaggi sono come database: implementano un livello minimo di sicurezza (credenziali e talvolta TLS), ma si basano principalmente sulla sicurezza della rete.

Domanda: esiste un modo sicuro per condividere un broker di messaggi tra due sistemi remoti?

Tutto quello che potevo pensare era mettere un'applicazione in primo piano (quindi tornare alla soluzione 1.), o usare una VPN.

    
posta Michael Tecourt 13.02.2018 - 15:02
fonte

1 risposta

1

Tutto ciò che assicura la connessione funzionerà.

L'opzione più compatibile che utilizza una VPN di livello 2 o 3 per connettere i due sistemi (e firewallli correttamente contro qualsiasi altra cosa): a meno che tu non abbia a che fare con un protocollo davvero molto strano, sei praticamente garantito che sia in grado di farlo funzionare. Il rovescio della medaglia è che può essere delicato configurarlo sugli host basati su cloud e non si adatta bene.

La seconda opzione, come hai intuito, è usare la connessione TLS tra macchine, che dipenderà molto dal software che stai usando, ma TLS è un'opzione piuttosto comune e solitamente puoi configurarlo per l'autenticazione reciproca dei certificati x509 che ti danno un buon livello di sicurezza. Nota che tutte le RPC basate su HTTP saranno in grado di utilizzare TLS e che forzare l'autenticazione reciproca è tipicamente una questione di configurazione.

La terza opzione è abilitare la crittografia all'interno dell'architettura del broker dei messaggi. Contrariamente a quanto hai scritto, molti sistemi di broker di messaggi ti permetteranno di configurare la crittografia end-to-end a livello di messaggio. Di solito non è davvero banale da implementare, comunque. per esempio, dai un'occhiata alla pagina di aiuto di WebSphere su questo argomento . Il vantaggio principale di questa opzione è che i messaggi sono criptati sia a riposo sia in transito e ciò significa che il sistema di code dei messaggi non deve essere in grado di decrittografare i messaggi stessi: tutto ciò richiede i ^ i dati enveloppe corretti.

    
risposta data 14.02.2018 - 10:23
fonte

Leggi altre domande sui tag