Programování

Jak Apache Ranger a Chuck Norris pomáhají zabezpečit Hadoop

Bezpečnostní projekt Hadoop s názvem Ranger byl údajně pojmenován na počest Chucka Norrise v jeho roli „Walker, Texas Ranger“. Projekt má své kořeny v XA Secure, který získal Hortonworks, poté přejmenovaný na Argus, než se usadil v Apache Software Foundation jako Ranger.

Když Hadoop začínal, byla to sada volně spojených dílů primárně používaných v zadní části velkých internetových společností, jako je Yahoo. Tyto části byly zabaleny do distribucí a prodávány jako Hadoop jako MapR, Cloudera a Hortonworks.

Taková postupná architektura není ve světě open source nebo dokonce v širokém světě komerčního softwaru neobvyklá. Výsledkem však jsou bezpečnostní výzvy. Někteří to budou číst jako „je to nejisté“, ale nemusí to tak být - i když to tak může být. Problém je spíše v tom, jak ověřujete uživatele ve všech částech tohoto systému částí - a jakmile je ověříte, jak je autorizujete k tomu, aby jim umožňovali dělat to, co chcete?

Každá část Hadoop má své vlastní ověřování LDAP a Kerberos, stejně jako své vlastní prostředky a pravidla autorizace (a ve většině případů totálně oddělené implementace stejných). To znamená, že musíte nakonfigurovat protokol Kerberos nebo LDAP pro každou jednotlivou část a poté tato pravidla definovat v každé samostatné konfiguraci. Co dělá Apache Ranger, je poskytnout zásuvný modul pro každou z těchto částí Hadoop a společné úložiště autentizace a také vám umožní definovat zásady v centralizovaném umístění.

Ranger je jednoznačně projekt sponzorovaný společností Hortonworks (na rozdíl od Cloudera nebo MapR nebo nyní Databricks). Částečně to poznáte podle toho, jak je kůže (zelená) a částečně podle toho, co podporuje. V současné době podporuje Ranger následující:

  • HDFS
  • Úl
  • Bouřka
  • HBase
  • Knox
  • PŘÍZE
  • Kafka
  • Solr

Kromě HDFS a HBase, které jsou podporovány jako součást jádra Hadoop a Solr, se jedná o některé z více „Hortonworksy“ projektů. V moderním nasazení pravděpodobně uvidíte další komponenty, například Spark nebo možná Impala (od Cloudera). Ranger je nicméně skvělá věc.

Jak Ranger funguje

V Rangeru pro každou komponentu pracujete s úložištěm. Tato úložiště jsou založena na základním modulu plug-in nebo agentovi, který pracuje s touto komponentou.

S každým z těchto úložišť je spojena sada zásad, které jsou přidruženy k prostředku, který chráníte (tabulka, složka nebo sloupec), ke skupině (například správci) a k tomu, co mají s danou věcí povoleno (číst , psát atd.). Každou zásadu pojmenujete - řekněte: „Tabulka apac_china může číst pouze grp_nixon.“

GUI s centrálním pohledem na to, kdo smí dělat, co přináší tolik potřebnou jednoduchost ekosystému Hadoop, ale to není vše, co Ranger nabízí. Poskytuje také protokolování auditu. Ačkoli to nemůže nahradit všechny protokoly auditu aplikací, které byste kdy mohli chtít, pokud potřebujete jednoduše vědět, kdo k čemu přistupoval na HDFS nebo jaké zásady byly kde vynucovány, je to pravděpodobně přesně to, co potřebujete.

Kromě toho může společnost Ranger poskytovat služby správy klíčů, aby mohla pracovat s novým TDFS HDFS (transparentní šifrování dat). Pokud tedy potřebujete šifrování typu end-to-end a čistý způsob správy klíčů s ním spojených, Ranger není špatné místo pro začátek.

Ranger se dívá dopředu

Myslím, že největší naděje pro Ranger pochází z jeho rozšiřitelnosti. Můžete vytvořit vlastní doplňky pro oblasti, které nejsou pokryty.

Pokud jste doufali, že to byl konec příběhu o zabezpečení Hadoop, bohužel má Cloudera svůj vlastní projekt Apache s názvem Sentry (který MapR také podporuje), který pokrývá téměř stejnou oblast. Abych byl spravedlivý, nejprve byl Sentry, poté Hortonworks získal XA Secure. To znamená, že dokumentace pro Sentry prakticky neexistuje, pokrytí je omezenější a web projektu je v havarijním stavu (i když aktivita na GitHubu se nedávno objevila).

Zabezpečení Hadoop prošlo dlouhou cestou. Ranger poskytuje poměrně komplexní, i když trochu neúplný způsob, jak spravovat ekosystém. Díry, které přetrvávají, jsou hlavně kvůli konkurenci prodejců v celém světě velkých dat. Ty lze vyplnit prostřednictvím rozšiřitelnosti projektu, ale bylo by hezké vidět více spolupráce a komunity ve světě Apache.