Programiranje

Kako Apache Ranger in Chuck Norris pomagata zavarovati Hadoop

Varnostni projekt Hadoop, imenovan Ranger, naj bi bil poimenovan v čast Chucku Norrisu v vlogi "Walker, Texas Ranger". Projekt ima korenine v XA Secure, ki ga je prevzel Hortonworks, nato preimenovan v Argus, preden se je ustanovil pri Fundaciji Apache Software kot Ranger.

Ko se je Hadoop začel, je šlo za sklop ohlapno povezanih delov, ki so se v glavnem uporabljali v ozadju velikih internetnih podjetij, kot je Yahoo. Ti deli so bili zaviti v distribucije in trženi kot Hadoop, kot so MapR, Cloudera in Hortonworks.

Takšna delna arhitektura ni nenavadna v svetu odprte kode ali celo v širokem svetu komercialne programske opreme. Vendar pa ima za posledico varnostne izzive. Nekateri bodo to prebrali kot "negotovo", vendar to ni nujno tako - čeprav je lahko. Težava je bolj v tem, kako preverite pristnost uporabnikov za vse dele tega sistema - in ko jih enkrat preverite, kako jih pooblastite, da naredijo samo tisto, kar jim želite omogočiti?

Vsak del Hadoopa ima lastno preverjanje pristnosti LDAP in Kerberos ter lastna sredstva in pravila avtorizacije (in v večini primerov popolnoma ločene izvedbe istega). To pomeni, da morate konfigurirati Kerberos ali LDAP za vsak posamezen del, nato pa ta pravila določite v vsaki ločeni konfiguraciji. Apache Ranger naredi vtičnik za vsakega od teh delov Hadoop-a in skupno shrambo za preverjanje pristnosti ter vam omogoča, da določite politike na centraliziranem mestu.

Ranger je očitno projekt, ki ga sponzorira Hortonworks (v nasprotju s Cloudero ali MapR ali zdaj Databricks). To lahko ugotovite deloma po tem, kako je odeta (zelena), delno pa po tem, kar podpira. Trenutno Ranger podpira naslednje:

  • HDFS
  • Panj
  • Nevihta
  • HBase
  • Knox
  • PREJA
  • Kafka
  • Solr

Razen HDFS in HBase, ki sta podprta kot del jedra Hadoop in Solr, gre za nekatere bolj "Hortonworksy" projekte. V sodobni uvedbi boste verjetno videli druge komponente, kot je Spark ali Impala (Cloudera). Kljub temu je Ranger odlična stvar.

Kako deluje Ranger

V Rangerju za vsako komponento delate s skladiščem. Ta skladišča temeljijo na osnovnem vtičniku ali agentu, ki deluje s to komponento.

Z vsakim od teh skladišč je povezan nabor pravilnikov, ki so povezani z virom, ki ga ščitite (tabela, mapa ali stolpec) in skupino (na primer skrbniki), ter s tem, kaj lahko počnejo s to stvarjo (preberite , pišite itd.). Vsakemu pravilniku daste ime - recimo, "Le grp_nixon lahko bere tabelo apac_china."

GUI z osrednjim pogledom na to, kdo sme narediti tisto, kar prinaša prepotrebno preprostost v ekosistem Hadoop, vendar to še ni vse, kar ponuja Ranger. Omogoča tudi beleženje revizij. Čeprav to ne more nadomestiti vseh dnevnikov revizije aplikacij, ki bi si jih kdaj želeli, če preprosto želite vedeti, kdo je do česa dostopal v HDFS-ju ali kje so se kje uveljavili, je verjetno točno tisto, kar potrebujete.

Poleg tega lahko Ranger nudi storitve upravljanja ključev za delo z novim TDE HDFS (pregledno šifriranje podatkov). Če torej potrebujete šifriranje od konca do konca in čist način upravljanja s tem povezanimi ključi, Ranger ni slabo mesto za začetek.

Ranger gleda naprej

Mislim, da največje upanje za Rangerja prinaša njegova razširljivost. Za področja, ki niso zajeta, lahko ustvarite lastne vtičnike.

Če ste upali, da se je s tem zgodba o varnosti Hadoop končala, ima Cloudera na žalost lasten projekt Apache, imenovan Sentry (ki ga, kot kaže, podpira tudi MapR), ki pokriva skoraj isto področje. Po pravici povedano je bil najprej Sentry, nato je Hortonworks pridobil XA Secure. Kljub temu dokumentacija za Sentry tako rekoč ne obstaja, pokritost je bolj omejena in spletno mesto projekta je v slabem stanju (čeprav se je aktivnost na GitHubu pred kratkim okrepila).

Hadoopova varnost je daleč napredovala. Ranger daje dokaj izčrpen, čeprav še nekoliko nepopoln način upravljanja ekosistema. Dolgotrajne luknje so predvsem posledica konkurence prodajalcev v svetu velikih podatkov. Te je mogoče zapolniti s pomočjo razširljivosti projekta, vendar bi bilo lepo videti več sodelovanja in skupnosti v svetu Apačev.

$config[zx-auto] not found$config[zx-overlay] not found