sql >> Database >  >> NoSQL >> HBase

Apache Hadoop Ozon Beveiliging – Authenticatie

Apache Ozone is een gedistribueerde objectopslag die bovenop de Hadoop Distributed Data Store-service is gebouwd. Het kan miljarden kleine en grote bestanden beheren die moeilijk te verwerken zijn door andere gedistribueerde bestandssystemen. Ozone ondersteunt uitgebreide API's zoals Amazon S3, Kubernetes CSI en native Hadoop File System API's. Dit maakt Ozone gemakkelijk te consumeren door verschillende soorten big data-workloads, zoals datawarehouse op Apache Hive, gegevensopname met Apache Nifi, streaming met Apache Spark/Flink en machine learning met Tensorflow.

Met de groeiende gegevensvoetafdruk en veelzijdige workloads die samenwerking tussen verschillende groepen vereisen, is gegevensbeveiliging van het grootste belang. Ozonbeveiliging is toegevoegd sinds de Apache Hadoop Ozone 0.4.0-release met bijdragen van de gemeenschappen. Het is ook opgenomen als een technische preview in de CDP Data Center 7.0-release van Cloudera. Beveiliging kan worden ingedeeld in vier bouwstenen:verificatie, autorisatie, controle en versleuteling. We zullen het verificatiegedeelte in deze blog behandelen, samen met de rest in de vervolggedeelten.

Authenticatie is het proces van het herkennen van de identiteit van een gebruiker voor Ozone-componenten. Ozone is compatibel met de Apache Hadoop-beveiligingsarchitectuur en ondersteunt sterke authenticatie met Kerberos en beveiligingstokens.

Kerberos-gebaseerde authenticatie

Zoals weergegeven in Afbeelding 1 hieronder, worden servicecomponenten, waaronder OM (Ozone Manager), SCM (Storage Container Manager) en Datandoes, allemaal met elkaar geverifieerd via Kerberos. Elke service moet worden geconfigureerd met een geldige Kerberos-principalnaam en keytab-bestand, dat door de service zal worden gebruikt om in te loggen bij het starten van de service in de beveiligde modus. Meer details over de OM/SCM/Datanode Kerberos-configuratie zijn te vinden in Apache Hadoop Ozone-documenten. Dienovereenkomstig moeten Ozone-klanten een geldig Kerberos-ticket of beveiligingstokens verstrekken om toegang te krijgen tot Ozone-services zoals Ozone Manager voor metadata en Datanode voor lees-/schrijfblokken.

Beveiligingstokens

Net als Hadoop-delegatietokens heeft Ozone-beveiligingstoken een token-ID samen met een ondertekende handtekening van de uitgever. Ozonmanager geeft delegatietoken en bloktokens uit voor gebruikers of clienttoepassingen die zijn geverifieerd met Kerberos. De handtekening van het token kan worden gevalideerd door tokenvalidators om de identiteit van de uitgever te verifiëren. Op deze manier kan een geldige tokenhouder het token gebruiken om bewerkingen uit te voeren tegen de clusterservices alsof ze Kerberos-tickets van de uitgever hebben.

Delegatietoken uitgegeven door Ozone Manager geeft tokenhouders toegang tot metadataservices die door Ozone Manager worden geleverd, zoals het maken van een volume of het weergeven van de objecten in een bucket. Na ontvangst van een verzoek van een klant met een delegatietoken, valideert Ozone Manager het delegatietoken door de handtekening van de ondertekenaar te controleren via de openbare sleutel. Delegatietokenbewerkingen zoals ophalen, vernieuwen en annuleren kunnen alleen worden uitgevoerd via een door Kerberos geverifieerde verbinding.

Bloktokens zijn vergelijkbaar met delegatietokens in die zin dat ze worden uitgegeven/ondertekend door de ozonmanager. Ze worden uitgegeven door Ozone Manager wanneer een klantverzoek betrekking heeft op bloklezen of schrijven op Datanode. In tegenstelling tot delegatietokens die worden aangevraagd met expliciete get/renew/cancel API's, worden ze transparant aan klanten overhandigd samen met de sleutel/bloklocatie-informatie. Bloktokens worden gevalideerd door Datanodes bij het ontvangen van het lees-/schrijfverzoek van klanten met behulp van de openbare sleutel van de zanger Ozone-manager. Bloktoken kan niet expliciet door de klant worden vernieuwd. Eenmaal verlopen, moet de client de sleutel-/bloklocaties opnieuw ophalen om nieuwe bloktokens te krijgen.

S3-geheim

Ozone ondersteunt het Amazon S3-protocol via Ozone S3-gateway. In de beveiligde modus geeft Ozone Manager een s3-geheim uit voor door Kerberos geverifieerde gebruikers of clienttoepassingen die toegang hebben tot Ozone met behulp van S3-API's. We zullen dat bespreken in latere blogs over Ozone S3 Gateway.

Hoe werkt Ozone Security Token?

Zoals weergegeven in afbeelding 2, vertrouwen het traditionele Apache Hadoop-delegatietoken en bloktoken op gedeelde geheimen tussen de tokenuitgever en de tokenvalidator om het token te ondertekenen en te valideren. Daarom, wanneer de uitgever en validator verschillend zijn, bijvoorbeeld in het geval van bloktoken, moet de gedeelde hoofdsleutel periodiek over de draad worden overgedragen om te synchroniseren tussen de tokenuitgever (namenode) en tokenvalidator (datanodes).

In plaats daarvan hanteert Ozone-beveiligingstoken een op certificaten gebaseerde benadering. Zoals weergegeven in afbeelding 3, ontkoppelt het de tokenuitgevers en tokenvalidators volledig met een op certificaten gebaseerde handtekening. Op deze manier zijn tokens veiliger omdat gedeelde geheimen nooit over de draad worden getransporteerd.

In de veilige modus bootst SCM zichzelf aan als CA (Certificate Authority) en maakt het een zelfondertekend CA-certificaat. Datanode en Ozone Manager moeten zich aanmelden bij SCM CA via een CSR (certificaatondertekeningsverzoek). SCM valideert de identiteit van Datanode en Ozone Manager via Kerberos en ondertekent het certificaat van de component. De ondertekende certificaten worden door Ozone Manager en Datanode gebruikt om zijn identiteit te bewijzen. Dit is vooral handig voor het ondertekenen en valideren van delegatietoken/bloktoken.

In het geval van een bloktoken ondertekent Ozone Manager (uitgever van het token) het token met zijn persoonlijke sleutel en gebruikt Datanodes (tokenvalidator) het certificaat van Ozone Manager om bloktokens te valideren, omdat zowel Ozone Manager als datanode op SCM CA ondertekende certificaten vertrouwen.

In het geval van een delegatietoken wanneer Ozone Manager (zowel de tokenverstrekker als de validator) wordt uitgevoerd in de HA-modus (hoge beschikbaarheid). Er zijn meerdere Ozone Manager-instanties tegelijk actief. Een delegatietoken dat is uitgegeven en ondertekend door Ozone Manager-instantie 1 kan worden gevalideerd door Ozone Manager-instantie 2 wanneer de leider Ozone Manager verandert, aangezien beide instanties door SCM CA ondertekende certificaten vertrouwen. Meer details van het Ozone HA-ontwerpdocument zijn hier te vinden.

Conclusie

Authenticatie is een van de belangrijkste bouwstenen van Apache Hadoop Ozone-beveiliging. U zou nu beter moeten begrijpen welke authenticatiemechanismen worden ondersteund door Apache Hadoop Ozone en hoe ze werken. Dit zal helpen bij het begrijpen van andere Ozon-beveiligingspijlers, zoals autorisatie en auditing.

Blijf op de hoogte voor vervolgartikelen over Ozone-beveiligingsautorisatie, audit, versleuteling en AVG. Als je geïnteresseerd bent om diep te duiken, kun je meer technische details vinden in het document Ozone-beveiligingsontwerp.

Referentie

[1] Apache Hadoop Ozon Architectuur

[2] Benchmarking Ozone:Cloudera's volgende generatie opslag voor CDP

[3] Wat is Kerberos? · Hadoop en Kerberos:The Madness Beyond the Gate

[4] Apache Hadoop ozondocument

[5] Beveiliging toevoegen aan Apache Hadoop

[6] Apache Hadoop Ozone HA Design Document op HDDS-505.

[7] Apache Hadoop Ozone Security Design Document op HDDS-4.


  1. Hoe gebruik je een variabele als veldnaam in mongodb-native findOne()?

  2. MongoDB:controleer verbinding met DB

  3. Node js mangoest bevolken limiet

  4. Hoe geneste $ lookup zoeken in MongoDB?