Megosztás a következőn keresztül:


Oktatóanyag: Apache Kafka-szabályzatok konfigurálása a HDInsightban nagyvállalati biztonsági csomaggal

Megtudhatja, hogyan konfigurálhatja az Apache Ranger-szabályzatokat az Enterprise Security Package (ESP) Apache Kafka-fürtökhöz. Az ESP-fürtök egy tartományhoz csatlakoznak, lehetővé téve a felhasználók számára a tartományi hitelesítő adatokkal való hitelesítést. Ebben az oktatóanyagban két Ranger-házirendet hoz létre, amelyek korlátozzák a hozzáférést a sales és marketingspend témakörökhöz.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Tartományi felhasználók létrehozása.
  • Ranger-szabályzatok létrehozása.
  • Témakörök létrehozása Egy Kafka-fürtben.
  • Ranger-szabályzatok tesztelése.

Előfeltétel

HdInsight Kafka-fürt enterprise security package csomaggal.

Csatlakozás az Apache Ranger felügyeleti felhasználói felületéhez

  1. Egy böngészőből csatlakozzon a Ranger felügyeleti felhasználói felületéhez (UI) az URL-cím https://ClusterName.azurehdinsight.net/Ranger/használatával. Ne felejtse el átírni a ClusterName elemet a Kafka-fürtje nevére. A Ranger hitelesítő adatai nem azonosak a Hadoop-fürt hitelesítő adataival. Ha meg szeretné akadályozni, hogy a böngészők gyorsítótárazott Hadoop hitelesítő adatokat használjanak, egy új InPrivate-böngészőablakból csatlakozzon a Ranger rendszergazdai felhasználói felületéhez.

  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 SSH-hitelesítő adataival.

    Képernyőkép a HDInsight Apache Ranger felügyeleti felhasználói felületről.

Tartományi felhasználók létrehozása

A sales_user és marketing_user tartomány felhasználóinak létrehozásáról a HDInsight-fürt létrehozása vállalati biztonsági csomaggal című témakörben olvashat. Éles környezetben a tartományi felhasználók a Microsoft Entra ID-bérlőjéből származnak.

Ranger-szabályzat létrehozása

Hozzon létre egy Ranger-házirendet a sales_user és marketing_user felhasználókhoz.

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

  2. A Kafka területen válassza a< ClusterName>_kafka lehetőséget. Előfordulhat, hogy egy előre konfigurált szabályzat szerepel a listában.

  3. Válassza az Új szabályzat hozzáadása lehetőséget, és adja meg a következő értékeket:

    Beállítás Ajánlott érték
    Házirend neve HDInsight értékesítési* szabályzat
    Téma sales*
    Felhasználó kiválasztása sales_user1
    Engedélyek közzététel, felhasználás, létrehozás

    A témakör nevében a következő helyettesítő karakterek használhatók:

    • * a karakterek nulla vagy több előfordulását jelzi.
    • ? egy karaktert jelöl.

    Képernyőkép az Apache Ranger rendszergazdai felhasználói felületének házirend 1. létrehozásáról.

    Várjon néhány percet, amíg a Ranger szinkronizálódik a Microsoft Entra-azonosítóval, ha egy tartományfelhasználó nem töltődik fel automatikusan a Felhasználó kiválasztása beállításhoz.

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

  5. Válassza az Új házirend hozzáadása lehetőséget, majd adja meg a következő értékeket:

    Beállítás Ajánlott érték
    Házirend neve HDInsight marketingszabályzat
    Téma marketingspend
    Felhasználó kiválasztása marketing_user1
    Engedélyek közzététel, felhasználás, létrehozás

    Képernyőkép az Apache Ranger rendszergazdai felhasználói felületének Házirend 2. létrehozásáról.

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

Témakörök létrehozása egy Kafka-fürtön az ESP-vel

Két témakör létrehozása és saleseventsmarketingspend:

  1. A következő paranccsal nyisson meg egy Secure Shell-kapcsolatot (SSH) a fürthöz:

    ssh DOMAINADMIN@CLUSTERNAME-ssh.azurehdinsight.net
    

    Cserélje le DOMAINADMIN a fürt létrehozása során konfigurált rendszergazdai felhasználóra. Cserélje le a CLUSTERNAME elemet a fürt nevére. Ha a rendszer kéri, adja meg a rendszergazdai felhasználói fiók jelszavát. Az SSH HDInsighttal való használatával kapcsolatos további információkat az SSH a HDInsighttal való használatáról szóló cikkben találhat.

  2. Használja az alábbi parancsokat a fürtnév változóként való mentéséhez és egy JSON-elemző segédprogram, a jq telepítéséhez. Ha a rendszer kéri, adja meg a Kafka-fürt nevét.

    sudo apt -y install jq
    read -p 'Enter your Kafka cluster name:' CLUSTERNAME
    
  3. A Kafka-közvetítő gazdagépeinek lekéréséhez használja az alábbi parancsokat. Ha a rendszer kéri, adja meg a fürt rendszergazdai fiókjának jelszavát.

    export KAFKABROKERS=`curl -sS -u admin -G https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/KAFKA/components/KAFKA_BROKER | jq -r '["\(.host_components[].HostRoles.host_name):9092"] | join(",")' | cut -d',' -f1,2`; \
    

    Mielőtt továbblépne, előfordulhat, hogy be kell állítania a fejlesztési környezetet, ha még nem tette meg. Olyan összetevőkre van szüksége, mint a Java JDK, az Apache Maven és egy biztonságos másolattal (SCP) rendelkező SSH-ügyfél. További információ: Telepítési utasítások.

  4. Töltse le az Apache Kafka tartományhoz csatlakoztatott előállítói és fogyasztói példákat.

  5. Kövesse a 2. és a 3 . lépést a Build alatt, és telepítse a példát az oktatóanyagban : Az Apache Kafka Producer és Consumer API-k használata.

    Feljegyzés

    Ehhez az oktatóanyaghoz használja kafka-producer-consumer.jar a DomainJoined-Producer-Consumer projekt alatt. Ne használja a projekt alatt Producer-Consumer lévőt, amely nem tartományhoz csatlakoztatott forgatókönyvekhez tartozik.

  6. Futtassa az alábbi parancsot:

    java -jar -Djava.security.auth.login.config=/usr/hdp/current/kafka-broker/conf/kafka_client_jaas.conf kafka-producer-consumer.jar create salesevents $KAFKABROKERS
    java -jar -Djava.security.auth.login.config=/usr/hdp/current/kafka-broker/conf/kafka_client_jaas.conf kafka-producer-consumer.jar create marketingspend $KAFKABROKERS
    

Ranger-házirendek tesztelése

A konfigurált Ranger-szabályzatok alapján sales_user létrehozhatja/felhasználhatja a témakört, a témakört marketingspendsalesevents azonban nem. Ezzel szemben a marketing_user létrehozhatja/felhasználhatja a témakörtmarketingspend, de a témakört saleseventsnem.

  1. Nyisson meg egy új SSH-kapcsolatot a fürthöz. Az alábbi paranccsal jelentkezzen be mint sales_user1:

    ssh sales_user1@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Az előző szakasz közvetítőneveit használva állítsa be a következő környezeti változót:

    export KAFKABROKERS=<brokerlist>:9092
    

    Példa: export KAFKABROKERS=<brokername1>.contoso.com:9092,<brokername2>.contoso.com:9092

  3. Kövesse a 3. lépést a Build alatt, és telepítse a példát az oktatóanyagban: Az Apache Kafka Producer és Consumer API-k használatával győződjön meg arról, hogy kafka-producer-consumer.jar az sales_user is elérhető.

    Feljegyzés

    Ehhez az oktatóanyaghoz használja kafka-producer-consumer.jar a "DomainJoined-Producer-Consumer" projektet. Ne használja a "Producer-Consumer" projekt alatt lévőt, amely nem tartományhoz csatlakoztatott forgatókönyvekhez készült.

  4. Az alábbi parancs futtatásával ellenőrizze, hogy sales_user1 képes-e a témakört salesevents létrehozni:

    java -jar -Djava.security.auth.login.config=/usr/hdp/current/kafka-broker/conf/kafka_client_jaas.conf kafka-producer-consumer.jar producer salesevents $KAFKABROKERS
    
  5. Futtassa a következő parancsot a témakörből saleseventsvaló felhasználáshoz:

    java -jar -Djava.security.auth.login.config=/usr/hdp/current/kafka-broker/conf/kafka_client_jaas.conf kafka-producer-consumer.jar consumer salesevents $KAFKABROKERS
    

    Ellenőrizze, hogy elolvashatja-e az üzeneteket.

  6. Ellenőrizze, hogy a sales_user1 nem tud-e létrehozni a témakörhöz marketingspend , ha az alábbi parancsot futtatja ugyanabban az SSH-ablakban:

    java -jar -Djava.security.auth.login.config=/usr/hdp/current/kafka-broker/conf/kafka_client_jaas.conf kafka-producer-consumer.jar producer marketingspend $KAFKABROKERS
    

    Engedélyezési hiba történik, amely figyelmen kívül hagyható.

  7. Figyelje meg, hogy marketing_user1 nem lehet felhasználni a témakörből salesevents.

    Ismételje meg az előző 1–3. lépést, de ezúttal marketing_user1.

    Futtassa a következő parancsot a témakörből saleseventsvaló felhasználáshoz:

    java -jar -Djava.security.auth.login.config=/usr/hdp/current/kafka-broker/conf/kafka_client_jaas.conf kafka-producer-consumer.jar consumer salesevents $KAFKABROKERS
    

    A korábbi üzenetek nem láthatók.

  8. A hozzáférési események naplózása a Ranger felhasználói felületről tekinthető meg.

    Képernyőkép a Ranger felhasználói felületi szabályzat naplózási hozzáférési eseményeiről.

Témakörök létrehozása és felhasználása az ESP Kafkában a konzol használatával

Feljegyzés

A konzolparancsok nem használhatók témakörök létrehozására. Ehelyett az előző szakaszban bemutatott Java-kódot kell használnia. További információ: Témakörök létrehozása egy Kafka-fürtben ESP-vel.

Témakörök létrehozása és felhasználása az ESP Kafkában a konzol használatával:

  1. Használja kinit a felhasználó felhasználónevével. Amikor a rendszer kéri, adja meg a jelszót.

    kinit sales_user1
    
  2. Környezeti változók beállítása:

    export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/hdp/current/kafka-broker/conf/kafka_client_jaas.conf"
    export KAFKABROKERS=<brokerlist>:9092
    
  3. Üzenetek létrehozása a témakörbe salesevents:

    /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --topic salesevents --broker-list $KAFKABROKERS --producer-property security.protocol=SASL_PLAINTEXT
    
  4. A témakörből saleseventsszármazó üzenetek felhasználása:

    /usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --topic salesevents --from-beginning --bootstrap-server $KAFKABROKERS --consumer-property security.protocol=SASL_PLAINTEXT
    

Témakörök létrehozása és felhasználása egy hosszú ideig futó munkamenethez az ESP Kafkában

A Kerberos-jegygyorsítótár lejárati korlátozásokkal rendelkezik. Hosszú ideig futó munkamenet esetén használjon keytab-ot a jegygyorsítótár manuális megújítása helyett.

Kulcstartó használata hosszú ideig futó munkamenetben a következő nélkül kinit:

  1. Hozzon létre egy új keytab-et a tartományfelhasználó számára:

    ktutil
    addent -password -p <user@domain> -k 1 -e RC4-HMAC
    wkt /tmp/<user>.keytab
    q
    
    
  2. Hozza létre a következőt: /home/sshuser/kafka_client_jaas.conf. A következő sorokkal kell rendelkeznie:

    KafkaClient {
     com.sun.security.auth.module.Krb5LoginModule required
     useKeyTab=true
     storeKey=true
     keyTab="/tmp/<user>.keytab"
     useTicketCache=false
     serviceName="kafka"
     principal="<user@domain>";
    };
    
  3. /home/sshuser/kafka_client_jaas.conf Cserélje le java.security.auth.login.config és hozza létre vagy használja fel a témakört a konzol vagy az API használatával:

    export KAFKABROKERS=<brokerlist>:9092
    
    # console tool
    export KAFKA_OPTS="-Djava.security.auth.login.config=/home/sshuser/kafka_client_jaas.conf"
    /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --topic salesevents --broker-list $KAFKABROKERS --producer-property security.protocol=SASL_PLAINTEXT
    /usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --topic salesevents --from-beginning --bootstrap-server $KAFKABROKERS --consumer-property security.protocol=SASL_PLAINTEXT
    
    # API
    java -jar -Djava.security.auth.login.config=/home/sshuser/kafka_client_jaas.conf kafka-producer-consumer.jar producer salesevents $KAFKABROKERS
    java -jar -Djava.security.auth.login.config=/home/sshuser/kafka_client_jaas.conf kafka-producer-consumer.jar consumer salesevents $KAFKABROKERS
    

Az erőforrások eltávolítása

Ha nem folytatja az alkalmazás használatát, törölje a létrehozott Kafka-fürtöt:

  1. Jelentkezzen be az Azure Portalra.
  2. A felső keresőmezőbe írja be a HDInsight kifejezést.
  3. A Szolgáltatások területen válassza ki a HDInsight-fürtöket.
  4. A megjelenő HDInsight-fürtök listájában válassza ki az oktatóanyaghoz létrehozott fürt melletti ... elemet.
  5. Válassza az Törlés>Igen lehetőséget.

Hibaelhárítás

Ha kafka-producer-consumer.jar nem működik tartományhoz csatlakoztatott fürtön, győződjön meg arról, hogy a projekt alatt használjakafka-producer-consumer.jar.DomainJoined-Producer-Consumer Ne használja a projekt alatt Producer-Consumer lévőt, amely nem tartományhoz csatlakoztatott forgatókönyvekhez tartozik.

Következő lépések