Hadoop sicurezza, isolamento e indurimento

7

Questa è una domanda a più parti, che tutti in realtà tornano alla domanda principale:

How best to protect data in a Hadoop (wikipedia) cluster.

(Versione corrente, distro di ramo principale di vaniglia - anche se sono aperto a parlare di altri). Dopo molte ricerche e ricerche, non ho trovato un sacco di cose ...

Il mio scenario è un fornitore di servizi, che ospita ed elabora grandi quantità di dati da diversi grandi clienti aziendali (multi-tenancy). Questi clienti non accedono direttamente a Hadoop, ma solo attraverso l'applicazione SaaS. Tuttavia, questi clienti sono spesso concorrenti diretti, e spesso piuttosto paranoici (giustificatamente, dal momento che ognuno sarebbe probabilmente contento di qualche spionaggio aziendale contro gli altri ...).

La mia vecchia reazione, istintiva, è quella di distribuire istanze individuali e isolate per ogni cliente. Tuttavia, questo non è pratico, né consente di sfruttare i vantaggi e le capacità di Hadoop.
Inoltre, trovo difficile credere che con tutti i grandi utenti di Hadoop, non ci siano buone soluzioni per questi problemi ...

In particolare, sto esaminando questi problemi:

  • Limitare l'accesso agli utenti specifici in uso da ciascuna applicazione (utente dell'applicazione per cliente)
  • Codifica
  • Isolamento tra i clienti, ovvero non consente a un cliente di visualizzarne un altro.
  • Suggerimenti generali

Sono riuscito a trovare alcune indicazioni, ma non sono stato in grado di verificare che queste siano buone indicazioni, o se ci sono soluzioni migliori.

  • Autorizzazione di livello di servizio
  • Isolamento di rete / sistema, per impedire a chiunque tranne l'applicazione di accedere direttamente
  • Permessi file / cartelle, per utente dell'applicazione (cioè cliente).
    Problemi che ho riscontrato con questo approccio:
    • Le autorizzazioni vengono applicate solo al NameNode; accesso diretto a DataNode fornirebbe comunque accesso.
    • L'autenticazione è un po '"incerta", almeno fino a quando non aggiungono il supporto Kerberos (dopo di ciò, dovremo vedere la reimplementazione ...)
    • Mi sembra che questo non offra abbastanza isolamento tra i clienti.
  • HDFS Federation / Namespace
    Questo potrebbe essere in grado di fornire un migliore isolamento dei privilegi, per non parlare dei server separati e della larghezza di banda allocata per cliente (per evitare di provare a fare un altro tramite il singolo punto di errore NameNode). Ma non ho trovato alcuna informazione reale sull'uso degli sprechi reali, o su come si regge l'abuso.
    Inoltre, questo non risolve il problema dell'autenticazione soft (vero?) E l'accesso diretto al blocco DataNode (vero?)
  • Per la crittografia dei dati, sono diviso tra la crittografia HDFS (una singola chiave simmetrica condivisa tra TUTTI i nodi) o la crittografia a livello di applicazione (e la chiave (o le chiavi, per esempio una per cliente) dovrebbero ancora essere distribuite a ciascun nodo attività per i lavori MapReduce).
posta AviD 16.02.2012 - 17:41
fonte

1 risposta

2

Dipende molto da chi stai cercando di proteggere i tuoi dati da.

Ho impostato i cluster Hadoop che utilizzano eCryptfs su ciascun nodo, per garantire che i dati possano essere condivisi in modo trasparente tra i nodi, ma anche per garantire che tutti i dati siano crittografati prima di essere scritti su disco. Ciò fornisce un livello misurabile di privacy e protezione, se si sta tentando di proteggere i dati da vulnerabilità a furti fisici di dischi o storage di rete remoto sottostanti macchine virtuali in un ambiente cloud.

Full disclosure: sono uno degli autori e l'attuale manutentore di Utilità dello spazio utente eCryptfs.

    
risposta data 17.02.2012 - 04:26
fonte

Leggi altre domande sui tag