Apache Ozone er en distribueret objektbutik bygget oven på Hadoop Distributed Data Store-tjenesten. Den kan håndtere milliarder af små og store filer, som er svære at håndtere af andre distribuerede filsystemer. Ozon understøtter rige API'er såsom Amazon S3, Kubernetes CSI samt native Hadoop File System API'er. Dette gør Ozon let at forbruge af forskellige slags big data-arbejdsbelastninger såsom datavarehus på Apache Hive, dataindtagelse med Apache Nifi, streaming med Apache Spark/Flink og maskinlæring med Tensorflow.
Med det voksende dataaftryk og mangefacetterede arbejdsbelastninger, der kræver samarbejde mellem forskellige grupper, er datasikkerhed af yderste vigtighed. Ozonsikkerhed er blevet tilføjet siden Apache Hadoop Ozone 0.4.0-udgivelsen med bidrag fra lokalsamfundene. Det er også inkluderet som en teknisk forhåndsvisning i Clouderas CDP Data Center 7.0-udgivelse. Sikkerhed kan klassificeres i fire byggeklodser:Autentificering, Autorisation, Revision og Kryptering. Vi vil dække godkendelsesdelen i denne blog sammen med de resterende i opfølgningen.
Autentificering er processen med at genkende en brugers identitet for ozonkomponenter. Ozon er kompatibel med Apache Hadoop-sikkerhedsarkitektur og understøtter stærk godkendelse ved hjælp af Kerberos samt sikkerhedstokens.
Kerberos-baseret godkendelse
Som vist i figur 1 nedenfor, er servicekomponenter inklusive OM (Ozone Manager), SCM (Storage Container Manager) og Datandoes alle autentificeret med hinanden via Kerberos. Hver tjeneste skal konfigureres med et gyldigt Kerberos Principal Name og keytab-fil, som vil blive brugt af tjenesten til at logge på ved starten af tjenesten i sikker tilstand. Flere detaljer om OM/SCM/Datanode Kerberos-konfigurationen kan findes i Apache Hadoop Ozone-dokumenter. Tilsvarende skal Ozone-klienter enten levere en gyldig Kerberos-billet eller sikkerhedstokens for at få adgang til Ozone-tjenester såsom Ozone Manager til metadata og Datanode til læse-/skriveblokeringer.
Sikkerhedstokens
Ligesom Hadoop-delegationstokens har Ozone-sikkerhedstoken en token-id sammen med en underskrevet signatur fra udstederen. Ozone manager udsteder delegationstoken og bloktokens til brugere eller klientapplikationer, der er godkendt med Kerberos. Signaturen på tokenet kan valideres af token-validatorer for at bekræfte udstederens identitet. På denne måde kan en gyldig token-indehaver bruge tokenet til at udføre operationer mod klyngetjenesterne, som om de har Kerberos-billetter fra udstederen.
Delegationstoken udstedt af Ozone Manager giver token-indehavere mulighed for at få adgang til metadatatjenester, der leveres af Ozone Manager, såsom oprettelse af en volumen eller liste over objekterne i en bøtte. Ved modtagelse af en anmodning fra en klient med et delegationstoken, validerer Ozone Manager delegationstokenet ved at kontrollere underskriverens signatur via dens offentlige nøgle. Delegationstokenhandlinger såsom at hente, forny og annullere kan kun udføres over en Kerberos-godkendt forbindelse.
Bloker tokens ligner delegationstokens i en forstand, at de er udstedt/underskrevet af ozonadministratoren. De udstedes af Ozone Manager, når en klientanmodning involverer bloklæsning eller skrivning på Datanode. I modsætning til delegationstokens, der anmodes om med eksplicitte get/forny/annuller API'er, udleveres de gennemsigtigt til klienter sammen med nøgle-/blokplaceringsoplysningerne. Bloktokens valideres af Datanodes, når de modtager læse-/skriveanmodningen fra klienter ved hjælp af sangerens Ozone-managers offentlige nøgle. Bloktoken kan ikke eksplicit fornyes af klienten. Når den er udløbet, skal klienten hente nøgle-/blokplaceringerne igen for at få nye bloktokens.
S3-hemmelighed
Ozone understøtter Amazon S3-protokollen via Ozone S3 Gateway. I sikker tilstand udsteder Ozone Manager en s3-hemmelighed for Kerberos-godkendte brugere eller klientapplikationer, der får adgang til Ozone ved hjælp af S3 API'er. Det vil vi dække i senere blogs om Ozone S3 Gateway.
Hvordan fungerer Ozone Security Token?
Som vist i figur 2 er det traditionelle Apache Hadoop-delegationstoken og bloktoken afhængig af delte hemmeligheder mellem tokenudsteder og tokenvalidator for at underskrive og validere token. Derfor, når udstederen og validatoren er forskellige, f.eks. i tilfælde af bloktoken, skal den delte hovednøgle periodisk overføres over ledningen for at synkronisere mellem tokenudstederen (navnenoden) og tokenvalidatoren (datanoderne).
I stedet tager Ozon-sikkerhedstoken en certifikatbaseret tilgang. Som vist i figur 3 afkobler den fuldstændigt tokenudstedere og tokenvalidatorer med en certifikatbaseret signatur. På denne måde er tokens mere sikre, da delte hemmeligheder aldrig transporteres over ledningen.
I sikker tilstand opstarter SCM sig selv som en CA (Certificate Authority) og opretter et selvsigneret CA-certifikat. Datanode og Ozone Manager skal registreres hos SCM CA via en CSR (certifikatsigneringsanmodning). SCM validerer identiteten af Datanode og Ozone Manager via Kerberos og underskriver komponentens certifikat. De signerede certifikater bruges af Ozone Manager og Datanode til at bevise sin identitet. Dette er især nyttigt til signering og validering af delegationstoken/bloktoken.
I tilfælde af bloktoken signerer Ozone Manager (tokenudsteder) tokenet med sin private nøgle, og Datanodes (tokenvalidator) bruger Ozone Managers certifikat til at validere bloktokens, fordi både Ozone Manager og datanode har tillid til SCM CA-signerede certifikater.
I tilfælde af delegationstoken, når Ozone Manager (både tokenudsteder og validator) kører i HA-tilstand (Høj tilgængelighed). Der er flere Ozone Manager-forekomster, der kører samtidigt. Et delegationstoken udstedt og underskrevet af Ozone Manager-instans 1 kan valideres af Ozone Manager-instans 2, når lederen Ozone Manager ændres, da begge instanser har tillid til SCM CA-signerede certifikater. Flere detaljer om Ozone HA designdokument kan findes her.
Konklusion
Autentificering er en af de vigtigste byggesten i Apache Hadoop Ozone-sikkerhed. Du burde nu have en bedre forståelse af, hvilke godkendelsesmekanismer der understøttes af Apache Hadoop Ozone, og hvordan de virker. Dette vil hjælpe med at forstå andre ozonsikkerhedssøjler såsom autorisation og revision.
Hold dig opdateret for opfølgende artikler om ozonsikkerhedsautorisation, revision, kryptering og GDPR. Hvis du er interesseret i at dykke dybt, kan du finde flere tekniske detaljer fra Ozone-sikkerhedsdesigndokumentet.
Reference
[1] Apache Hadoop ozonarkitektur
[2] Benchmarking af ozon:Clouderas næste generation af lager til CDP
[3] Hvad er Kerberos? · Hadoop og Kerberos:The Madness Beyond the Gate
[4] Apache Hadoop ozondokument
[5] Tilføjelse af sikkerhed til Apache Hadoop
[6] Apache Hadoop Ozone HA Design Document på HDDS-505.
[7] Apache Hadoop Ozone Security Design Document på HDDS-4.