Apache Ozone je distribuované úložiště objektů postavené na službě Hadoop Distributed Data Store. Dokáže spravovat miliardy malých a velkých souborů, se kterými je v jiných distribuovaných souborových systémech obtížné zacházet. Ozone podporuje bohatá rozhraní API, jako je Amazon S3, Kubernetes CSI, stejně jako nativní rozhraní API systému souborů Hadoop. Díky tomu je Ozone snadno konzumovatelný různými druhy velkých datových zátěží, jako je datový sklad na Apache Hive, příjem dat pomocí Apache Nifi, streamování pomocí Apache Spark/Flink a strojové učení s Tensorflow.
S rostoucí datovou stopou a mnohostranným pracovním zatížením, které vyžaduje spolupráci mezi různými skupinami, je zabezpečení dat nanejvýš důležité. Zabezpečení ozónu bylo přidáno od vydání Apache Hadoop Ozone 0.4.0 s příspěvky od komunit. Byl také zahrnut jako technický náhled ve verzi CDP Data Center 7.0 společnosti Cloudera. Zabezpečení lze rozdělit do čtyř stavebních bloků:Autentizace, Autorizace, Auditování a Šifrování. Části Autentizace se budeme zabývat v tomto blogu spolu se zbývajícími v následujících.
Autentizace je proces rozpoznání identity uživatele pro komponenty ozónu. Ozone je kompatibilní s architekturou zabezpečení Apache Hadoop a podporuje silnou autentizaci pomocí Kerberos a také bezpečnostních tokenů.
Ověřování založené na protokolu Kerberos
Jak je znázorněno na obrázku 1 níže, součásti služby včetně OM (Ozone Manager), SCM (Storage Container Manager) a Datandoes jsou všechny vzájemně ověřeny prostřednictvím Kerberos. Každá služba musí být nakonfigurována s platným hlavním názvem Kerberos a souborem tabulky klíčů, které služba použije k přihlášení po spuštění služby v zabezpečeném režimu. Více podrobností o konfiguraci OM/SCM/Datanode Kerberos lze nalézt v dokumentech Apache Hadoop Ozone. Klienti Ozone musí pro přístup ke službám Ozone, jako je Ozone Manager pro metadata a Datanode pro bloky čtení/zápisu, poskytnout buď platný tiket Kerberos nebo bezpečnostní tokeny.
Bezpečnostní tokeny
Stejně jako delegační tokeny Hadoop má bezpečnostní token Ozone identifikátor tokenu spolu s podepsaným podpisem od vydavatele. Správce ozónu vydává tokeny delegování a blokování pro uživatele nebo klientské aplikace ověřené pomocí Kerberos. Podpis tokenu může být ověřen validátory tokenu, aby se ověřila identita vydavatele. Tímto způsobem může držitel platného tokenu použít token k provádění operací proti klastrovým službám, jako by měly lístky Kerberos vydavatele.
Token delegování vydané Ozone Manager umožňuje držitelům tokenů přístup k metadatovým službám poskytovaným Ozone Managerem, jako je vytvoření svazku nebo výpis objektů v bucketu. Po obdržení požadavku od klienta s delegačním tokenem správce Ozone ověří delegační token kontrolou podpisu podepsaného prostřednictvím jeho veřejného klíče. Operace tokenu delegování, jako je získání, obnovení a zrušení, lze provádět pouze přes připojení ověřené protokolem Kerberos.
Blokovat tokeny jsou podobné delegačním tokenům v tom smyslu, že je vydává/podepisuje správce Ozone. Vydává je správce Ozone, když požadavek klienta zahrnuje blokové čtení nebo zápis na Datanode. Na rozdíl od tokenů delegování požadovaných pomocí explicitních rozhraní API pro získání/obnovení/zrušení jsou klientům transparentně předávány spolu s informacemi o umístění klíče/bloku. Blokové tokeny jsou ověřovány Datanodes při přijetí požadavku na čtení/zápis od klientů pomocí veřejného klíče správce Ozone. Blokový token nemůže být obnoven explicitně klientem. Po vypršení platnosti musí klient znovu načíst umístění klíčů/bloků, aby získal nové tokeny bloku.
S3 Secret
Ozone podporuje protokol Amazon S3 prostřednictvím brány Ozone S3 Gateway. V zabezpečeném režimu vydává Ozone Manager tajný klíč S3 pro uživatele ověřené Kerberos nebo klientské aplikace, které přistupují k Ozone pomocí S3 API. Tomu se budeme věnovat v pozdějších blozích na Ozone S3 Gateway.
Jak funguje bezpečnostní token Ozone?
Jak je znázorněno na obrázku 2, tradiční token delegování Apache Hadoop a blokový token se při podepisování a ověřování tokenu spoléhají na sdílená tajemství mezi vydavatelem tokenu a validátorem tokenu. Když se tedy vydavatel a validátor liší, např. v případě blokového tokenu, sdílený hlavní klíč musí být pravidelně přenášen po drátě, aby se synchronizoval mezi vydavatelem tokenu (namenode) a validátorem tokenu (datanodes).
Místo toho používá bezpečnostní token Ozone přístup založený na certifikátech. Jak je znázorněno na obrázku 3, zcela odděluje vydavatele tokenů a validátory tokenů pomocí podpisu založeného na certifikátu. Tímto způsobem jsou tokeny bezpečnější, protože sdílená tajemství nejsou nikdy přenášena po drátě.
V zabezpečeném režimu se SCM zavede jako CA (Certificate Authority) a vytvoří certifikát CA s vlastním podpisem. Datanode a Ozone Manager se musí zaregistrovat u SCM CA prostřednictvím CSR (žádost o podpis certifikátu). SCM ověřuje identitu Datanode a Ozone Manager přes Kerberos a podepisuje certifikát komponenty. Podepsané certifikáty používá Ozone Manager a Datanode k prokázání své identity. To je zvláště užitečné pro podepisování a ověřování tokenů delegování/bloků.
V případě blokového tokenu Ozone Manager (vydavatel tokenu) podepíše token svým soukromým klíčem a Datanodes (token validator) použije certifikát Ozone Manager k ověření blokových tokenů, protože Ozone Manager i datanode důvěřují certifikátům podepsaným SCM CA.
V případě tokenu delegování, když Ozone Manager (vydavatel tokenu i validátor) běží v režimu HA (High Availability). Současně běží několik instancí Ozone Manager. Token delegování vydaný a podepsaný instancí Ozone Manager 1 může být ověřen instancí Ozone Manager 2, když se změní vedoucí Ozone Manager, protože obě instance důvěřují certifikátům podepsaným SCM CA. Více podrobností o designovém dokumentu Ozone HA naleznete zde.
Závěr
Autentizace je jedním z nejdůležitějších stavebních kamenů zabezpečení Apache Hadoop Ozone. Nyní byste měli lépe porozumět tomu, jaké mechanismy ověřování Apache Hadoop Ozone podporuje a jak fungují. To pomůže pochopit další pilíře zabezpečení ozónu, jako je autorizace a audit.
Zůstaňte naladěni na další články o autorizaci zabezpečení ozónu, auditu, šifrování a GDPR. Pokud se zajímáte o hloubkové potápění, další technické podrobnosti naleznete v dokumentu Ozone security design.
Reference
[1] Apache Hadoop Ozone Architecture
[2] Srovnávání ozónu:úložiště příští generace Cloudera pro CDP
[3] Co je Kerberos? · Hadoop a Kerberos:The Madness Beyond the Gate
[4] Dokument Apache Hadoop Ozone
[5] Přidání zabezpečení do Apache Hadoop
[6] Návrhový dokument Apache Hadoop Ozone HA na HDDS-505.
[7] Dokument Apache Hadoop Ozone Security Design na HDDS-4.