sql >> Database >  >> NoSQL >> HBase

HBase ACL's converteren naar Ranger-beleid

CDP gebruikt Apache Ranger voor gegevensbeveiligingsbeheer. Als u Ranger wilt gebruiken voor een gecentraliseerd beveiligingsbeheer, moeten HBase ACL's worden gemigreerd naar beleidsregels. Dit kan via de Ranger webUI, toegankelijk vanuit Cloudera Manager. Maar laten we eerst een kort overzicht geven van de HBase-methode voor toegangscontrole.

HBase-autorisatie

Als autorisatie is ingesteld (bijvoorbeeld met Kerberos en het instellen van de hbase.security.authorization eigenschap naar true ), kunnen gebruikers regels laten definiëren voor bronnen waartoe ze toegang hebben. Deze regels kunnen worden gedefinieerd voor individuele tabellen, kolommen en cellen binnen een tabel.

HBase-toegangsniveaus

HBase-toegangsniveaus worden onafhankelijk van elkaar verleend en maken verschillende soorten bewerkingen op een bepaald bereik mogelijk.

Mogelijke machtigingen (nul of meer letters van de set "RWXCA"):

  • Lezen (R) – kan gegevens lezen met het opgegeven bereik
  • Schrijven (W) – kan gegevens schrijven met het opgegeven bereik
  • Execute (X) - kan coprocessor-eindpunten uitvoeren op het opgegeven bereik
  • Creëren (C) – kan tabellen maken of tabellen neerzetten op het opgegeven bereik
  • Beheerder (A) - kan clusterbewerkingen uitvoeren, zoals het balanceren van het cluster of het toewijzen van regio's op het gegeven bereik

Mogelijke bereiken:

  • Superuser - Superusers kunnen elke bewerking die beschikbaar is in HBase, voor elke bron uitvoeren. De gebruiker die HBase op uw cluster uitvoert, is een superuser. Alle principals die zijn toegewezen aan de configuratie-eigenschap hbase.superuser in de hbase-site.xml configuratiebestand op de HMaster zijn ook superusers.
  • Globaal:machtigingen verleend op globaal bereik stellen de beheerder in staat om op alle tabellen van het cluster te werken.
  • Naamruimte:machtigingen die zijn verleend op naamruimtebereik zijn van toepassing op alle tabellen binnen een bepaalde naamruimte.
  • Tabel:machtigingen die zijn verleend bij het bereik van de tabel, zijn van toepassing op gegevens of metagegevens binnen een bepaalde tabel.
  • ColumnFamily:machtigingen die zijn verleend in het ColumnFamily-bereik zijn van toepassing op cellen binnen die ColumnFamily.
  • Cel – Toestemmingen verleend bij Celbereik zijn van toepassing op die exacte celcoördinaat.

HBase ACL's exporteren

1. Log in via Kerberos met de HBase-servicereferenties.

2. Start de hbase-shell en maak een lijst van ACL's.

Gebruik de volgende opdrachten om ACL's weer te geven: 

  • user_permission '.*'
  • Alternatief met superuser-privilege:scan 'hbase:acl'

Voorbeelduitvoer van scan 'hbase:acl':

RIJ KOLOM+CEL

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

Voorbeelduitvoer van 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]

Opmerking: Groepen en gebruikers krijgen op dezelfde manier toegang, maar groepen worden voorafgegaan door een '@'-teken. Tabellen en naamruimten worden op dezelfde manier gespecificeerd, maar naamruimten worden voorafgegaan door een '@'-teken.

Voorbeeld voor toestemming op celniveau:

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

De ‘test’ gebruiker heeft RW-rechten op de 'standaard' naamruimte, op tafel ’emp’ , kolom ‘persoonlijke gegevens’ en rij ‘1’..

Ranger-beleid maken 

  1. Selecteer in Cloudera Manager de Ranger-service.
  2. Zoek de webUI link die u doorverwijst naar de Ranger-gebruikersinterface.
  3. Log in op de Ranger-gebruikersinterface.

De Toegangsbeheerder weergegeven pagina:

1. Selecteer een bestaande HBase-service.
De Lijst met beleid pagina verschijnt.

2. Klik op Nieuw beleid toevoegen .
De pagina Beleid maken wordt weergegeven.

3. Vul de pagina Beleid maken als volgt in:

3.1 Beleidsdetails

Beleidsnaam Voer een toepasselijke beleidsnaam in. Deze naam kan niet in het hele systeem worden gedupliceerd. Dit veld is verplicht.
Beleidslabel Geef een label op voor dit beleid. U kunt rapporten zoeken en beleid filteren op basis van deze labels.
normaal/overschrijven Hiermee kunt u een overschrijvingsbeleid specificeren. Als overschrijven is geselecteerd, overschrijven de toegangsmachtigingen in het beleid de toegangsmachtigingen in bestaand beleid. Deze functie kan worden gebruikt met Geldigheidsperiode toevoegen om tijdelijke toegangsbeleidsregels te maken die bestaand beleid overschrijven.
HBase-tabel Selecteer de juiste database. Voor een bepaald beleid kunnen meerdere databases worden geselecteerd. Dit veld is verplicht.
HBase Kolomfamilie Specificeer voor de geselecteerde tabel de kolomfamilies waarop het beleid van toepassing is.
HBase-kolom Geef voor de geselecteerde tabel- en kolomfamilies de kolommen op waarop het beleid van toepassing is.
Beschrijving (Optioneel) Beschrijf het doel van het beleid.
Auditregistratie Geef aan of dit beleid wordt gecontroleerd. (Deselecteer om auditing uit te schakelen).
Geldigheidsperiode toevoegen Geef een begin- en eindtijd voor het beleid op.

3.2 Voorwaarden toestaan/weigeren
Apache Ranger ondersteunt de volgende toegangsvoorwaarden:

  • Toestaan
  • Uitsluiten van toestaan
  • Weigeren
  • Uitsluiten van weigeren

Met deze toegangsvoorwaarden kunt u fijnmazig beleid voor toegangscontrole instellen.

U kunt bijvoorbeeld toegang verlenen tot een financiën tafel voor alle gebruikers in de financiën groep, maar weiger de toegang tot alle gebruikers in de stagiaires groep. Laten we zeggen dat een van de leden van de stagiaires groep, scott , moet werken aan een opdracht waarvoor toegang tot de financiën . vereist is tafel. In dat geval kunt u een Uitsluiten van Weigeren-voorwaarde toevoegen waarmee gebruiker scott om toegang te krijgen tot de financiën databank.

Selecteer rol Geef de rollen op waarop dit beleid van toepassing is.

Als u een rol als beheerder wilt aanwijzen, schakelt u het selectievakje Beheerder gemachtigde in. Beheerders kunnen het beleid bewerken of verwijderen en kunnen ook onderliggende beleidsregels maken op basis van het oorspronkelijke beleid.
Groep selecteren Geef de groepen op waarop dit beleid van toepassing is.

Als u een groep wilt aanwijzen als beheerder, schakelt u het selectievakje Beheerder gemachtigde in. Beheerders kunnen het beleid bewerken of verwijderen en kunnen ook onderliggende beleidsregels maken op basis van het oorspronkelijke beleid.
Gebruiker selecteren Geef de gebruikers op waarop dit beleid van toepassing is.

Als u een gebruiker wilt aanwijzen als beheerder, schakelt u het selectievakje Beheerder gemachtigde in. Beheerders kunnen het beleid bewerken of verwijderen en kunnen ook onderliggende beleidsregels maken op basis van het oorspronkelijke beleid.
Machtigingen Toevoegen of bewerken van machtigingen:Lezen, Schrijven, Maken, Beheerder, Alles selecteren/deselecteren.
Beheerder gedelegeerd U kunt Delegate Admin gebruiken om beheerdersrechten toe te wijzen aan de gebruikers of groepen die in het beleid zijn gespecificeerd. Beheerders kunnen het beleid bewerken of verwijderen en kunnen ook onderliggende beleidsregels maken op basis van het oorspronkelijke beleid.

3.3 U kunt het plusteken (+) gebruiken om aanvullende voorwaarden toe te voegen. Voorwaarden worden beoordeeld in de volgorde zoals vermeld in de polis. De voorwaarde bovenaan de lijst wordt eerst toegepast, dan de tweede, dan de derde, enzovoort. Ontkenningsvoorwaarden zijn altijd sterker. Het volgende stroomdiagram geeft informatie over de Ranger-beleidsevaluatiestroom.

3.4 Klik ten slotte op Toevoegen.

Conclusie

In deze blogpost hebben we gekeken hoe je met Cloudera Manager je HBase ACL's kunt migreren naar Ranger-policies. Helaas is er geen automatisering voor de migratie, omdat de twee autorisatiemethoden enorm verschillen. Hoewel Ranger een importfunctie bevat voor beleid voor bulksgewijs laden, is er geen manier om ACL's uit HBase te exporteren in de indeling die Ranger begrijpt (specifiek geformatteerde JSON/CSV).


  1. Redis schildwacht-docker-afbeelding / Dockerfile

  2. 9 ClusterControl-functies die u niet zult vinden in andere hulpprogramma's voor databasebeheer

  3. Automatisch verwijzende objecten verwijderen bij verwijdering in MongoDB

  4. Redis actief-actieve replicatie