sql >> Databasteknik >  >> NoSQL >> HBase

Konvertera HBase ACL:er till Ranger-policyer

CDP använder Apache Ranger för datasäkerhetshantering. Om du vill använda Ranger för att ha en centraliserad säkerhetsadministration måste HBase ACL:er migreras till policyer. Detta kan göras via Ranger webUI, tillgängligt från Cloudera Manager. Men först, låt oss ta en snabb översikt över HBase-metoden för åtkomstkontroll.

HBase-auktorisering

Om auktorisering är inställd (till exempel med Kerberos och inställning av hbase.security.authorization egenskapen true ), kan användare ha regler definierade för resurser som de får åtkomst till. Dessa regler kan definieras för enskilda tabeller, kolumner och celler i en tabell.

HBase-åtkomstnivåer

HBase-åtkomstnivåer beviljas oberoende av varandra och tillåter olika typer av operationer i en given omfattning.

Möjliga behörigheter (noll eller fler bokstäver från uppsättningen "RWXCA"):

  • Läs (R) – kan läsa data inom det givna omfånget
  • Skriv (W) – kan skriva data med det givna omfånget
  • Execute (X) – kan exekvera coprocessor endpoints vid det givna omfånget
  • Skapa (C) – kan skapa tabeller eller släppa tabeller inom det givna omfånget
  • Admin (A) – kan utföra klusteroperationer som att balansera klustret eller tilldela regioner inom det givna omfånget

Möjliga omfattningar:

  • Superanvändare – Superanvändare kan utföra vilken operation som helst som är tillgänglig i HBase, till vilken resurs som helst. Användaren som kör HBase på ditt kluster är en superanvändare. Alla principer som tilldelats konfigurationsegenskapen hbase.superuser i hbase-site.xml konfigurationsfilen på HMaster är också superanvändare.
  • Global – Behörigheter som beviljas i global omfattning tillåter administratören att arbeta på alla tabeller i klustret.
  • Namnutrymme – Behörigheter som beviljas inom namnområde gäller för alla tabeller inom ett givet namnområde.
  • Tabell – Behörigheter som beviljas vid tabellomfattning gäller data eller metadata i en given tabell.
  • ColumnFamily – Behörigheter som beviljas inom ColumnFamily gäller för celler inom den ColumnFamily.
  • Cell – Behörigheter som beviljas inom cellomfattning gäller för den exakta cellkoordinaten.

Exportera HBase ACLs

1. Logga in via Kerberos med användaruppgifterna för HBase-tjänsten.

2. Starta hbase-skalet och lista ACL:er.

Använd följande kommandon för att lista ACL:er: 

  • user_permission '.*'
  • Alternativt med superanvändarbehörighet:skanna 'hbase:acl'

Exempelutdata för skanna 'hbase:acl':

RAD KOLUMN+CELL

emp column=l:hbase, timestamp=1612190971868, value=RWXCAemp2 column=l:hbase, timestamp=1612191218963, value=RWXCAemp2 kolumn=l:användare1, timestamp=1612191426624,personal value=R:W1 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öre> 

Exempel på utdata av user_permission '.*':

User Namespace,Table,Family,Qualifier:Permissionhbase 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,personlig data, 1:[Tillstånd:actions=READ,WRITE]@group-usr default,emp,personal data,1:[Tillstånd:actions=READ,WRITE]

Obs! Grupper och användare ges åtkomst på samma sätt, men grupper har prefixet "@". Tabeller och namnutrymmen anges på samma sätt, men namnutrymmen har prefixet "@".

Exempel på behörighet på cellnivå:

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

'testet' användaren har RW-behörigheter på 'default' namnutrymme, i tabellen ’emp’ , kolumn 'personuppgifter' och rad '1'...

Skapa Ranger-policyer 

  1. I Cloudera Manager väljer du tjänsten Ranger.
  2. Hitta webbgränssnittet länk som omdirigerar dig till Ranger UI.
  3. Logga in på Ranger-gränssnittet.

Åtkomsthanteraren sida som visas:

1. Välj en befintlig HBase-tjänst.
Lista över policyer sidan visas.

2. Klicka på Lägg till ny policy .
Sidan Skapa policy visas.

3. Slutför sidan Skapa policy enligt följande:

3.1 Policyinformation

Policynamn Ange ett lämpligt policynamn. Detta namn kan inte dupliceras över hela systemet. Detta fält är obligatoriskt.
Policyetikett Ange en etikett för denna policy. Du kan söka i rapporter och filtrera policyer baserat på dessa etiketter.
normal/åsidosätt Låter dig ange en åsidosättande policy. När åsidosättning är vald, åsidosätter åtkomstbehörigheterna i policyn åtkomstbehörigheterna i befintliga policyer. Den här funktionen kan användas med Lägg till giltighetsperiod för att skapa tillfälliga åtkomstpolicyer som åsidosätter befintliga policyer.
HBase Table Välj lämplig databas. Flera databaser kan väljas för en viss policy. Detta fält är obligatoriskt.
HBase Column-familj För den valda tabellen, ange de kolumnfamiljer som policyn gäller.
HBase-kolumn För de valda tabell- och kolumnfamiljerna anger du de kolumner som policyn gäller.
Beskrivning (Valfritt) Beskriv syftet med policyn.
Revisionsloggning Ange om denna policy ska granskas. (Avmarkera för att inaktivera granskning).
Lägg till giltighetsperiod Ange en start- och sluttid för policyn.

3.2 Tillåt/neka villkor
Apache Ranger stöder följande åtkomstvillkor:

  • Tillåt
  • Uteslut från Tillåt
  • Neka
  • Uteslut från Neka

Dessa åtkomstvillkor gör att du kan ställa in finkorniga åtkomstkontrollpolicyer.

Du kan till exempel tillåta åtkomst till en ekonomi tabell till alla användare i ekonomi grupp, men neka åtkomst för alla användare i praktikanter grupp. Låt oss säga att en av medlemmarna i praktikanter grupp, scott , måste arbeta med ett uppdrag som kräver tillgång till ekonomin tabell. I så fall kan du lägga till ett Exclude from Deny-villkor som tillåter användaren scott för att komma åt ekonomi databas.

Välj roll Ange de roller som denna policy gäller.

För att ange en roll som administratör, markera kryssrutan Delegera administratör. Administratörer kan redigera eller ta bort policyn och kan även skapa underordnade policyer baserat på den ursprungliga policyn.
Välj grupp Ange grupperna som denna policy gäller.

Om du vill ange en grupp som administratör markerar du kryssrutan Delegera administratör. Administratörer kan redigera eller ta bort policyn och kan även skapa underordnade policyer baserat på den ursprungliga policyn.
Välj användare Ange vilka användare som denna policy gäller.

Om du vill ange en användare som administratör markerar du kryssrutan Delegera administratör. Administratörer kan redigera eller ta bort policyn och kan även skapa underordnade policyer baserat på den ursprungliga policyn.
Behörigheter Lägg till eller redigera behörigheter:Läs, Skriv, Skapa, Admin, Markera/Avmarkera alla.
Delegerad administratör Du kan använda Delegat Admin för att tilldela administratörsbehörigheter till de användare eller grupper som anges i policyn. Administratörer kan redigera eller ta bort policyn och kan även skapa underordnade policyer baserat på den ursprungliga policyn.

3.3 Du kan använda plussymbolen (+) för att lägga till ytterligare villkor. Villkoren utvärderas i den ordning som anges i policyn. Villkoret högst upp i listan tillämpas först, sedan det andra, sedan det tredje och så vidare. Förneka villkoren är alltid starkare. Följande flödesschema ger information om Ranger Policy Evaluation Flow.

3.4 Klicka slutligen på Lägg till.

Slutsats

I det här blogginlägget tittade vi på hur du kan migrera dina HBase ACL:er till Ranger-policyer med Cloudera Manager. Tyvärr finns det ingen automatisering för migreringen, eftersom de två auktoriseringsmetoderna skiljer sig mycket åt. Även om det finns en importfunktion i Ranger för bulkladdningspolicyer, finns det inget sätt att exportera ACL från HBase i det format som Ranger förstår (specifikt formaterad JSON/CSV).


  1. Få alla fältnamn i en mongodb-samling?

  2. python flask hur man skickar en dynamisk parameter till en dekoratör

  3. Kolv:skicka runt bakgrundsarbetarjobb (rq, redis)

  4. Lagra filer i MongoDB med GridFS