HBase
 sql >> Database >  >> NoSQL >> HBase

Conversione di ACL HBase in criteri Ranger

CDP utilizza Apache Ranger per la gestione della sicurezza dei dati. Se desideri utilizzare Ranger per avere un'amministrazione centralizzata della sicurezza, è necessario migrare gli ACL HBase alle policy. Questo può essere fatto tramite l'interfaccia utente web di Ranger, accessibile da Cloudera Manager. Ma prima, diamo una rapida panoramica del metodo HBase per il controllo degli accessi.

Autorizzazione HBase

Se l'autorizzazione è configurata (ad esempio con Kerberos e l'impostazione di hbase.security.authorization proprietà su vero ), gli utenti possono avere regole definite sulle risorse a cui sono autorizzati ad accedere. Queste regole possono essere definite per singole tabelle, colonne e celle all'interno di una tabella.

Livelli di accesso HBase

I livelli di accesso HBase sono concessi indipendentemente l'uno dall'altro e consentono diversi tipi di operazioni in un determinato ambito.

Possibili autorizzazioni (zero o più lettere dall'insieme “RWXCA”):

  • Leggi (R) – può leggere i dati nell'ambito specificato
  • Scrivi (W) – può scrivere dati nell'ambito specificato
  • Esegui (X) – può eseguire gli endpoint del coprocessore nell'ambito specificato
  • Crea (C) – può creare tabelle o trascinare tabelle nell'ambito specificato
  • Admin (A) – può eseguire operazioni di cluster come il bilanciamento del cluster o l'assegnazione di regioni in un determinato ambito

Possibili ambiti:

  • Superuser – I Superuser possono eseguire qualsiasi operazione disponibile in HBase, su qualsiasi risorsa. L'utente che esegue HBase sul tuo cluster è un superutente. Qualsiasi entità assegnata alla proprietà di configurazione hbase.superuser in hbase-site.xml file di configurazione sull'HMaster sono anche superuser.
  • Globale:le autorizzazioni concesse a livello globale consentono all'amministratore di operare su tutte le tabelle del cluster.
  • Spazio dei nomi:le autorizzazioni concesse nell'ambito dello spazio dei nomi si applicano a tutte le tabelle all'interno di un determinato spazio dei nomi.
  • Tabella:le autorizzazioni concesse nell'ambito della tabella si applicano ai dati o ai metadati all'interno di una determinata tabella.
  • ColumnFamily:le autorizzazioni concesse nell'ambito ColumnFamily si applicano alle celle all'interno di tale ColumnFamily.
  • Cella:le autorizzazioni concesse nell'ambito della cella si applicano a quella esatta coordinata della cella.

Esportazione di ACL HBase

1. Accedi tramite Kerberos con le credenziali del servizio HBase.

2. Avvia la shell hbase ed elenca gli ACL.

Per elencare gli ACL, utilizza i seguenti comandi: 

  • permesso_utente '.*'
  • In alternativa con il privilegio di superutente:scan 'hbase:acl'

Esempio di output di scan 'hbase:acl':

RIGA COLONNA+CELLA

emp column=l:hbase, timestamp=1612190971868, value=RWXCA
emp2 column=l:hbase, timestamp=1612191218963, value=RWXCA
emp2 column=l:user1, timestamp=1612191426624, value=RWC
emp column=l:test,personal data, timestamp=1612273141925, value=RW
emp column=l:test,personal data,1, timestamp=1612273322678, value=RW
emp column=l:@group-usr,personal data,1, timestamp=1612273324527, value=RW

Esempio di output di user_permission '.*':

User Namespace,Table,Family,Qualifier:Permission
hbase default,emp,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
user1 default,emp2,,: [Permission: actions=READ,WRITE,CREATE]
hbase default,emp2,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
test default,emp,personal data,: [Permission: actions=READ,WRITE]
test default,emp,personal data,1: [Permission: actions=READ,WRITE]
@group-usr default,emp,personal data,1: [Permission: actions=READ,WRITE]

Nota: Ai gruppi e agli utenti viene concesso l'accesso allo stesso modo, ma i gruppi sono preceduti da un carattere "@". Le tabelle e gli spazi dei nomi sono specificati allo stesso modo, ma gli spazi dei nomi sono preceduti da un carattere "@".

Esempio di autorizzazione a livello di cella:

test             default,emp,personal data,1: [Permission: actions=READ,WRITE]

Il 'test' l'utente dispone delle autorizzazioni RW su 'predefinito' namespace, sulla tabella 'emp' , colonna "dati personali" e riga '1'..

Creazione di criteri Ranger 

  1. In Cloudera Manager, seleziona il servizio Ranger.
  2. Trova la webUI collegamento che ti reindirizza all'interfaccia utente di Ranger.
  3. Accedi all'interfaccia utente di Ranger.

Il Gestione accessi pagina visualizzata:

1. Seleziona un servizio HBase esistente.
L'Elenco dei criteri viene visualizzata la pagina.

2. Fai clic su Aggiungi nuova norma .
Viene visualizzata la pagina Crea politica.

3. Completa la pagina Crea politica come segue:

3.1 Dettagli sulla politica

Nome criterio Inserisci un nome di policy appropriato. Questo nome non può essere duplicato nel sistema. Questo campo è obbligatorio.
Etichetta delle norme Specifica un'etichetta per questa norma. Puoi cercare rapporti e filtrare criteri in base a queste etichette.
normale/override Consente di specificare una politica di sostituzione. Quando si seleziona Sostituisci, le autorizzazioni di accesso nella politica sovrascrivono le autorizzazioni di accesso nelle politiche esistenti. Questa funzione può essere utilizzata con Aggiungi periodo di validità per creare criteri di accesso temporanei che sostituiscono quelli esistenti.
Tabella HBase Seleziona il database appropriato. È possibile selezionare più database per una determinata politica. Questo campo è obbligatorio.
Famiglia di colonne HBase Per la tabella selezionata, specifica le famiglie di colonne a cui si applica il criterio.
Colonna HBase Per le tabelle e le famiglie di colonne selezionate, specifica le colonne a cui si applica il criterio.
Descrizione (Facoltativo) Descrivi lo scopo della politica.
Registrazione di controllo Specificare se questo criterio è controllato. (Deseleziona per disabilitare il controllo).
Aggiungi periodo di validità Specifica un'ora di inizio e di fine per la politica.

3.2 Condizioni Consenti/Nega
Apache Ranger supporta le seguenti condizioni di accesso:

  • Consenti
  • Escludi da Consenti
  • Nega
  • Escludi da Nega

Queste condizioni di accesso ti consentono di impostare criteri di controllo degli accessi a grana fine.

Ad esempio, puoi consentire l'accesso a una finanza tabella a tutti gli utenti nella finanza gruppo, ma nega l'accesso a tutti gli utenti degli tirocinanti gruppo. Diciamo che uno dei membri degli tirocinanti gruppo, scott , deve lavorare su un compito che richiede l'accesso alla finanza tavolo. In tal caso, puoi aggiungere una condizione Escludi da Nega che consentirà all'utente scott per accedere alla finanza Banca dati.

Seleziona ruolo Specifica i ruoli a cui si applica questo criterio.

Per designare un ruolo come amministratore, seleziona la casella di controllo Delega amministratore. Gli amministratori possono modificare o eliminare il criterio e possono anche creare criteri figlio basati sul criterio originale.
Seleziona gruppo Specifica i gruppi a cui si applica questo criterio.

Per designare un gruppo come amministratore, seleziona la casella di controllo Delega amministratore. Gli amministratori possono modificare o eliminare il criterio e possono anche creare criteri figlio basati sul criterio originale.
Seleziona utente Specifica gli utenti a cui si applica questo criterio.

Per designare un utente come amministratore, seleziona la casella di controllo Delega amministratore. Gli amministratori possono modificare o eliminare il criterio e possono anche creare criteri figlio basati sul criterio originale.
Autorizzazioni Aggiungi o modifica autorizzazioni:lettura, scrittura, creazione, amministrazione, seleziona/deseleziona tutto.
Delega amministratore Puoi utilizzare l'amministratore delegato per assegnare privilegi di amministratore agli utenti o ai gruppi specificati nel criterio. Gli amministratori possono modificare o eliminare il criterio e possono anche creare criteri figlio basati sul criterio originale.

3.3 È possibile utilizzare il simbolo più (+) per aggiungere ulteriori condizioni. Le condizioni sono valutate nell'ordine indicato nella polizza. Viene applicata prima la condizione in cima all'elenco, poi la seconda, poi la terza e così via. Le condizioni di negazione sono sempre più forti. Il diagramma di flusso seguente fornisce informazioni sul flusso di valutazione della politica di Ranger.

3.4 Infine, fai clic su Aggiungi.

Conclusione

In questo post del blog abbiamo esaminato come migrare gli ACL HBase alle policy Ranger, utilizzando Cloudera Manager. Sfortunatamente non c'è automazione per la migrazione, poiché i due metodi di autorizzazione differiscono notevolmente. Sebbene in Ranger sia disponibile una funzione di importazione per i criteri di caricamento in blocco, non è possibile esportare ACL da HBase nel formato compreso da Ranger (JSON/CSV formattato in modo specifico).