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

Konvertering af HBase ACL'er til Ranger-politikker

CDP bruger Apache Ranger til datasikkerhedsstyring. Hvis du ønsker at bruge Ranger til at have en centraliseret sikkerhedsadministration, skal HBase ACL'er migreres til politikker. Dette kan gøres via Ranger webUI, tilgængelig fra Cloudera Manager. Men først, lad os tage et hurtigt overblik over HBase-metoden til adgangskontrol.

HBase-autorisation

Hvis autorisation er konfigureret (f.eks. med Kerberos og indstilling af hbase.security.authorization ejendom til sand ), kan brugere få defineret regler for ressourcer, som de har tilladelse til at få adgang til. Disse regler kan defineres for individuelle tabeller, kolonner og celler i en tabel.

HBase-adgangsniveauer

HBase-adgangsniveauer tildeles uafhængigt af hinanden og giver mulighed for forskellige typer operationer i et givet omfang.

Mulige tilladelser (nul eller flere bogstaver fra sættet "RWXCA"):

  • Læs (R) – kan læse data ved det givne omfang
  • Skriv (W) – kan skrive data i det givne omfang
  • Udfør (X) – kan udføre coprocessor-endepunkter ved det givne omfang
  • Opret (C) – kan oprette tabeller eller slippe tabeller i det givne omfang
  • Admin (A) – kan udføre klyngeoperationer såsom at afbalancere klyngen eller tildele regioner i det givne omfang

Mulige omfang:

  • Superbruger – Superbrugere kan udføre enhver handling, der er tilgængelig i HBase, til enhver ressource. Brugeren, der kører HBase på din klynge, er en superbruger. Eventuelle principaler, der er tildelt til konfigurationsegenskaben hbase.superuser i hbase-site.xml konfigurationsfilen på HMaster er også superbrugere.
  • Global – Tilladelser givet på globalt plan tillader administratoren at operere på alle tabeller i klyngen.
  • Navneområde – Tilladelser givet ved navneområde gælder for alle tabeller inden for et givet navneområde.
  • Tabel – Tilladelser givet ved tabelomfang gælder for data eller metadata i en given tabel.
  • ColumnFamily – Tilladelser givet i ColumnFamily-omfanget gælder for celler inden for denne ColumnFamily.
  • Celle – Tilladelser givet ved celleomfang gælder for den nøjagtige cellekoordinat.

Eksport af HBase ACL'er

1. Log på via Kerberos med HBase-tjenestelegitimationsoplysningerne.

2. Start hbase-skallen, og angiv ACL'er.

Brug følgende kommandoer for at angive ACL'er: 

  • brugertilladelse '.*'
  • Alternativt med superbrugerrettigheder:scan ‘hbase:acl’

Eksempel output af scan 'hbase:acl':

RÆKKE KOLONNE+CELLE

emp column=l:hbase, timestamp=1612190971868, value=RWXCAemp2 column=l:hbase, timestamp=1612191218963, value=RWXCAemp2 column=l:user1, timestamp=1612191426624,personal value=RWXCAemp2 data, timestamp=1612273141925, value=RWemp column=l:test,personal data,1, timestamp=1612273322678, value=RWemp column=l:@group-usr,personal data,1, timestamp=1612273324527, value=RW før> 

Eksempel output af user_permission '.*':

Brugernavneområde,Tabel,Familie,Qualifier:Permissionhbase default,emp,,:[Permission:actions=READ,WRITE,EXEC,CREATE,ADMIN]user1 default,emp2,,:[Tilladelse:actions=READ,WRITE, CREATE]hbase default,emp2,,:[Tilladelse:actions=READ,WRITE,EXEC,CREATE,ADMIN]teststandard,emp,personlige data,:[Permission:actions=READ,WRITE]teststandard,emp,personlige data, 1:[Tilladelse:actions=READ,WRITE]@group-usr default,emp,personlige data,1:[Tilladelse:actions=READ,WRITE]

Bemærk: Grupper og brugere tildeles adgang på samme måde, men grupper er præfikset med et '@'-tegn. Tabeller og navnerum er angivet på samme måde, men navnerum er præfikset med et '@'-tegn.

Eksempel på tilladelse på celleniveau:

test             default,emp,personlige data,1:[Tilladelse:actions=READ,WRITE]

'testen' brugeren har RW-tilladelser på 'standard' navneområde på tabellen 'emp' , kolonne 'personlige data' og række '1'..

Oprettelse af Ranger-politikker 

  1. Vælg Ranger-tjenesten i Cloudera Manager.
  2. Find webbrugergrænsefladen link, der omdirigerer dig til Ranger UI.
  3. Log ind på Ranger UI.

Adgangsadministratoren viste side:

1. Vælg en eksisterende HBase-tjeneste.
Liste over politikker siden vises.

2. Klik på Tilføj ny politik .
Siden Opret politik vises.

3. Fuldfør siden Opret politik som følger:

3.1 Politikdetaljer

Politiknavn Indtast et passende politiknavn. Dette navn kan ikke duplikeres på tværs af systemet. Dette felt er obligatorisk.
Politiketiket Angiv en etiket for denne politik. Du kan søge i rapporter og filtrere politikker baseret på disse etiketter.
normal/tilsidesæt Gør det muligt at angive en tilsidesættelsespolitik. Når tilsidesættelse er valgt, tilsidesætter adgangstilladelserne i politikken adgangstilladelserne i eksisterende politikker. Denne funktion kan bruges med Tilføj gyldighedsperiode til at oprette midlertidige adgangspolitikker, der tilsidesætter eksisterende politikker.
HBase-tabel Vælg den relevante database. Flere databaser kan vælges til en bestemt politik. Dette felt er obligatorisk.
HBase Column-familie For den valgte tabel skal du angive de kolonnefamilier, som politikken gælder for.
HBase-kolonne For de valgte tabel- og kolonnefamilier skal du angive de kolonner, som politikken gælder for.
Beskrivelse (Valgfrit) Beskriv formålet med politikken.
Revisionslogning Angiv, om denne politik er revideret. (Fravælg for at deaktivere revision).
Tilføj gyldighedsperiode Angiv et start- og sluttidspunkt for politikken.

3.2 Tillad/afvis betingelser
Apache Ranger understøtter følgende adgangsbetingelser:

  • Tillad
  • Ekskluder fra Tillad
  • Afvis
  • Ekskluder fra afvisning

Disse adgangsbetingelser giver dig mulighed for at opsætte finmaskede adgangskontrolpolitikker.

For eksempel kan du tillade adgang til en finansiering tabel til alle brugere i finans gruppe, men nægt adgang til alle brugere i praktikanter gruppe. Lad os sige, at et af medlemmerne af praktikanter gruppe, scott , skal arbejde på en opgave, der kræver adgang til finansen bord. I så fald kan du tilføje en Exclude from Deny-betingelse, der tillader brugeren scott for at få adgang til finansen database.

Vælg rolle Angiv de roller, som denne politik gælder for.

For at udpege en rolle som administrator skal du markere afkrydsningsfeltet Delegeret administrator. Administratorer kan redigere eller slette politikken og kan også oprette underordnede politikker baseret på den oprindelige politik.
Vælg gruppe Angiv de grupper, som denne politik gælder for.

For at udpege en gruppe som administrator, skal du markere afkrydsningsfeltet Delegeret administrator. Administratorer kan redigere eller slette politikken og kan også oprette underordnede politikker baseret på den oprindelige politik.
Vælg Bruger Angiv de brugere, som denne politik gælder for.

For at udpege en bruger som administrator skal du markere afkrydsningsfeltet Delegeret administrator. Administratorer kan redigere eller slette politikken og kan også oprette underordnede politikker baseret på den oprindelige politik.
Tilladelser Tilføj eller rediger tilladelser:Læs, Skriv, Opret, Admin, Vælg/Fravælg alle.
Delegeret administrator Du kan bruge Delegeret administrator til at tildele administratorrettigheder til de brugere eller grupper, der er angivet i politikken. Administratorer kan redigere eller slette politikken og kan også oprette underordnede politikker baseret på den oprindelige politik.

3.3 Du kan bruge plus-symbolet (+) til at tilføje yderligere betingelser. Betingelserne vurderes i den rækkefølge, der er angivet i politikken. Betingelsen øverst på listen anvendes først, derefter den anden, så den tredje, og så videre. Benægtelsesbetingelser er altid stærkere. Følgende rutediagram giver information om Ranger Policy Evaluation Flow.

3.4 Klik til sidst på Tilføj.

Konklusion

I dette blogindlæg så vi på, hvordan du kan migrere dine HBase ACL'er til Ranger-politikker ved hjælp af Cloudera Manager. Desværre er der ingen automatisering til migreringen, da de to godkendelsesmetoder er meget forskellige. Selvom der er en importfunktion i Ranger til masseindlæsningspolitikker, er der ingen måde at eksportere ACL'er fra HBase i det format Ranger forstår (specifikt formateret JSON/CSV).


  1. Meteor uden mongo

  2. Node.js, Socket.io, Redis pub/sub høj lydstyrke, lav latency vanskeligheder

  3. redis scanning returnerer tomme resultater, men ikke-nul markør

  4. Sådan eksporteres Redis-nøgler som CSV ved hjælp af CLI