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

  • Apache Spark-fürt a HDInsight 5.1-es verziójában nagyvállalati biztonsági csomaggal

Csatlakozás az Apache Ranger rendszergazdai felhasználói felületére

  1. 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.

  2. 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.

    Screenshot that shows the Service Manager page in the Ranger user interface.

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

  1. Nyissa meg a Ranger rendszergazdai felhasználói felületét.

  2. A HADOOP SQL alatt válassza a hive_and_spark.

    Screenshot that shows the selection of Hive and Spark.

  3. Az Access lapon válassza az Új házirend hozzáadása lehetőséget.

    Screenshot that shows the button for adding a new access policy.

  4. Í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

    Screenshot that shows sample details for an access policy.

    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.

  5. A szabályzat mentéséhez válassza a Hozzáadás lehetőséget.

  6. 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:

    Screenshot that shows the result before an access policy.

    A szabályzat alkalmazása után az alábbi eredmény következik be:

    Screenshot that shows the result after an access policy.

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:

  1. A Maszkolás lapon válassza az Új házirend hozzáadása lehetőséget.

    Screenshot that shows the button for adding a new masking policy.

  2. Í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

    Screenshot shows masking policy details.

  3. A házirend mentéséhez válassza a Mentés lehetőséget.

  4. 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; 
    

    Screenshot that shows an open Zeppelin notebook.

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.

Screenshot that shows the repo that contains the Ranger policies for Hive and Spark.

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 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.

Screenshot that shows a new repo with an old ranger database.

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.

  1. Nyissa meg az Ambari felhasználói felületet az új HDInsight 5.1-fürtből.

  2. Lépjen a Spark3 szolgáltatásra, majd a Konfigurációk elemre.

  3. Nyissa meg a Speciális ranger-spark-security konfigurációt.

    Screenshot shows Ambari config ranger security.

    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:

    Screenshot that shows a configuration update for service name in Ambari.

    XML-fájl:

    Screenshot that shows a configuration update for service name in XML.

  4. Indítsa újra a Ranger- és Spark-szolgáltatásokat az Ambariból.

  5. Nyissa meg a Ranger rendszergazdai felhasználói felületét, és kattintson a SZERKESZTÉS gombra a HADOOP SQL szolgáltatás alatt.

    Screenshot that shows edit option for ranger service.

  6. 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.

    Screenshot that shows how to add user in Ranger service.

A szabályzatok a Spark-katalógus adatbázisaiban lesznek alkalmazva. Ha hozzá szeretne férni a Hive-katalógus adatbázisaihoz:

  1. Az Ambariban nyissa meg a Spark3>konfigurációit.

  2. Módosítsa a metastore.catalog.default értéket sparkról hive-re.

    Screenshot that shows changing a metastore configuration.

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.