Apache Ranger-szabályzatok konfigurálása Spark SQL-hez a HDInsightban nagyvállalati biztonsági csomaggal
Ez a cikk azt ismerteti, hogyan konfigurálhatja az Apache Ranger-szabályzatokat a Spark SQL-hez a HDInsight vállalati biztonsági csomagjával.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- Apache Ranger-szabályzatok létrehozása.
- Ellenőrizze az alkalmazott Ranger-szabályzatokat.
- Irányelvek alkalmazása az Apache Ranger Spark SQL-hez való beállításához.
Előfeltételek
Csatlakozás az Apache Ranger rendszergazdai felhasználói felületére
Egy böngészőből csatlakozzon a Ranger rendszergazdai felhasználói felületéhez az URL-cím
https://ClusterName.azurehdinsight.net/Ranger/
használatával.Váltson
ClusterName
a Spark-fürt nevére.Jelentkezzen be a Microsoft Entra rendszergazdai hitelesítő adataival. A Microsoft Entra rendszergazdai hitelesítő adatai nem azonosak a HDInsight-fürt hitelesítő adataival vagy a Linux HDInsight-csomópont Biztonságos rendszerhéj (SSH) hitelesítő adataival.
Tartományi felhasználók létrehozása
További információ a tartományi felhasználók létrehozásáról sparkuser
: HDInsight-fürt létrehozása ESP-vel. Éles környezetben a tartományi felhasználók a Microsoft Entra-bérlőből származnak.
Ranger-szabályzat létrehozása
Ebben a szakaszban két Ranger-szabályzatot hoz létre:
- Hozzáférési szabályzat a Spark SQL-ből való
hivesampletable
hozzáféréshez - Maszkolási szabályzat az oszlopok elrejtéséhez a következő helyen:
hivesampletable
Ranger hozzáférési szabályzat létrehozása
Nyissa meg a Ranger rendszergazdai felhasználói felületét.
A HADOOP SQL alatt válassza a hive_and_spark.
Az Access lapon válassza az Új házirend hozzáadása lehetőséget.
Írja be a következő értékeket:
Tulajdonság Érték Házirend neve read-hivesampletable-all adatbázis alapértelmezett table hivesampletable oszlop * Felhasználó kiválasztása sparkuser
Engedélyek Kiválasztás Ha egy tartományfelhasználó nem töltődik fel automatikusan a Felhasználó kiválasztása gombra, várjon néhány percet, amíg a Ranger szinkronizálódik a Microsoft Entra-azonosítóval.
A szabályzat mentéséhez válassza a Hozzáadás lehetőséget.
Nyisson meg egy Zeppelin-jegyzetfüzetet, és futtassa a következő parancsot a szabályzat ellenőrzéséhez:
%sql select * from hivesampletable limit 10;
A szabályzat alkalmazása előtt az alábbi eredmény jelenik meg:
A szabályzat alkalmazása után az alábbi eredmény következik be:
Ranger maszkolási szabályzat létrehozása
Az alábbi példa bemutatja, hogyan hozhat létre egy oszlop maszkolására szolgáló szabályzatot:
A Maszkolás lapon válassza az Új házirend hozzáadása lehetőséget.
Írja be a következő értékeket:
Tulajdonság Érték Házirend neve mask-hivesampletable Hive-adatbázis alapértelmezett Hive-tábla hivesampletable Hive oszlop devicemake Felhasználó kiválasztása sparkuser
Hozzáférési típusok Kiválasztás Maszkolás lehetőség kiválasztása Kivonat A házirend mentéséhez válassza a Mentés lehetőséget.
Nyisson meg egy Zeppelin-jegyzetfüzetet, és futtassa a következő parancsot a szabályzat ellenőrzéséhez:
%sql select clientId, deviceMake from hivesampletable;
Feljegyzés
Alapértelmezés szerint a Hive és a Spark SQL szabályzatai gyakoriak a Rangerben.
Irányelvek alkalmazása az Apache Ranger Spark SQL-hez való beállításához
Az alábbi forgatókönyvek a HDInsight 5.1 Spark-fürt új Ranger-adatbázissal és meglévő Ranger-adatbázis használatával történő létrehozásának irányelveit ismertetik.
1. forgatókönyv: Új Ranger-adatbázis használata HDInsight 5.1 Spark-fürt létrehozásakor
Amikor új Ranger-adatbázist használ egy fürt létrehozásához, a Hive és a Spark Ranger-szabályzatokat tartalmazó megfelelő Ranger-adattár hive_and_spark néven jön létre a Ranger-adatbázis Hadoop SQL szolgáltatásában.
Ha szerkessze a szabályzatokat, azok a Hive-re és a Sparkra is érvényesek lesznek.
Vegye figyelembe az alábbi szempontokat:
Ha két azonos nevű metaadattár-adatbázissal rendelkezik a Hive (például DB1) és a Spark (például DB1) katalógusokhoz:
- Ha a Spark a Spark-katalógust (
metastore.catalog.default=spark
) használja, a szabályzatok a Spark-katalógus DB1 adatbázisára lesznek alkalmazva. - Ha a Spark a Hive-katalógust (
metastore.catalog.default=hive
) használja, a szabályzatok a Hive-katalógus DB1 adatbázisára lesznek alkalmazva.
A Ranger szempontjából nem lehet különbséget tenni a Hive és a Spark katalógusok DB1-jei között.
Ilyen esetekben a következőket javasoljuk:
- Használja a Hive-katalógust a Hive-hez és a Sparkhoz is.
- A Hive- és Spark-katalógusok különböző adatbázis-, tábla- és oszlopneveit is fenntarthatja, így a szabályzatok nem lesznek alkalmazva a katalógusok adatbázisaira.
- Ha a Spark a Spark-katalógust (
Ha a Hive-katalógust a Hive-hez és a Sparkhoz is használja, vegye figyelembe az alábbi példát.
Tegyük fel, hogy egy table1 nevű táblát hoz létre a Hive-ben az aktuális xyz-felhasználóval. Létrehoz egy Hadoop Distributed File System (HDFS) fájlt table1.db , amelynek tulajdonosa a xyz-felhasználó .
Most képzelje el, hogy a felhasználó abc használatával indítja el a Spark SQL-munkamenetet. Az abc felhasználói munkamenetben, ha megpróbál bármit írni az 1. táblába, az sikertelen lesz, mert a tábla tulajdonosa xyz.
Ilyen esetben azt javasoljuk, hogy ugyanazt a felhasználót használja a Hive-ben és a Spark SQL-ben a tábla frissítéséhez. A felhasználónak megfelelő jogosultságokkal kell rendelkeznie a frissítési műveletek végrehajtásához.
2. forgatókönyv: Meglévő Ranger-adatbázis használata (meglévő szabályzatokkal) HDInsight 5.1 Spark-fürt létrehozásakor
Ha hdInsight 5.1-fürtöt hoz létre egy meglévő Ranger-adatbázis használatával, a rendszer ismét létrehoz egy új Ranger-adattárat ezen az adatbázisban az új fürt nevével ebben a formátumban: hive_and_spark.
Tegyük fel, hogy a Ranger-adattárban definiált szabályzatok már oldclustername_hive néven vannak meghatározva a Hadoop SQL szolgáltatásban lévő meglévő Ranger-adatbázisban. Ugyanazokat a szabályzatokat szeretné megosztani az új HDInsight 5.1 Spark-fürtben. A cél eléréséhez kövesse az alábbi lépéseket.
Feljegyzés
Az Ambari rendszergazdai jogosultságokkal rendelkező felhasználók konfigurációfrissítéseket hajthatnak végre.
Nyissa meg az Ambari felhasználói felületet az új HDInsight 5.1-fürtből.
Lépjen a Spark3 szolgáltatásra, majd a Konfigurációk elemre.
Nyissa meg a Speciális ranger-spark-security konfigurációt.
vagy ezt a konfigurációt az /etc/spark3/conf fájlban is megnyithatja az SSH használatával.
Szerkessze két konfigurációt (ranger.plugin.spark.service.name és ranger.plugin.spark.policy.cache.dir) a régi szabályzat-adattárra mutató oldclustername_hive, majd mentse a konfigurációkat.
Ambari:
XML-fájl:
Indítsa újra a Ranger- és Spark-szolgáltatásokat az Ambariból.
Nyissa meg a Ranger rendszergazdai felhasználói felületét, és kattintson a SZERKESZTÉS gombra a HADOOP SQL szolgáltatás alatt.
A oldclustername_hive szolgáltatáshoz vegye fel a rangersparklookup felhasználót a policy.download.auth.users és a tag.download.auth.users listába, és kattintson a Mentés gombra.
A szabályzatok a Spark-katalógus adatbázisaiban lesznek alkalmazva. Ha hozzá szeretne férni a Hive-katalógus adatbázisaihoz:
Az Ambariban nyissa meg a Spark3>konfigurációit.
Módosítsa a metastore.catalog.default értéket sparkról hive-re.
Ismert problémák
- Az Apache Ranger Spark SQL-vel való integrációja nem működik, ha a Ranger-rendszergazda leállt.
- A Ranger naplózási naplóiban, amikor az Erőforrás oszlop fölé viszi az egérmutatót, az nem tudja megjeleníteni a teljes futtatott lekérdezést.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: