Ісілон: Автоматизована конфігурація Kerberos Ambari з Isilon
Summary: У цій статті ви дізнаєтеся, як налаштувати безпеку Kerberos за допомогою керованого Ambari кластера Hadoop.
Symptoms
Cause
Resolution
У цій статті описано, як налаштувати безпеку Kerberos за допомогою кластера Hadoop, керованого Ambari.
Kerberos відіграє ключову роль у надійній автентифікації та шифруванні Hadoop, але його налаштування та адміністрування може бути складним завданням. Ambari 2.0 представив автоматизовану конфігурацію Kerberos на основі майстра, яка робить процес набагато швидшим і менш схильним до помилок. Починаючи з OneFS 8.0.0.1, клієнти Dell EMC Isilon можуть використовувати цю чудову функцію.
Передумови
- OneFS 8.0.0.1 або новішої версії.
- Ambari 2.0 або вище.
- Запуск MIT KDC (Heimdal не підтримується). Дотримуйтесь інструкцій тут, щоб налаштувати інфраструктуру Kerberos.
- Прямий і зворотний DNS між усіма хостами.
- Усі служби працюють (зеленим кольором) на інформаційній панелі Ambari.
Увімкнути Kerberos
Попереднє налаштування
Перед запуском майстра необхідно встановити дві конфігурації і перезапустити всі служби.- У HDFS - Custom core-site> встановіть "hadoop.security.token.service.use_ip" на "false"
- У MapReduce2 - Advanced mapred-site> додайте "'hadoop classpath':" на початок "mapreduce.application.classpath". Зверніть увагу на двокрапку і зворотні лапки (але не копіюйте лапки).
Початок роботи
Перейдіть до Admin -> Kerberos і натисніть кнопку "Увімкнути Kerberos". Заголовки цього розділу стосуються назв сторінок майстра Kerberos.
Виберіть «Існуючий MIT KDC» і переконайтеся, що попередні умови виконані, а потім натисніть «Далі». Зауважте, що Isilon не використовує Java і не потребує JCE.
Налаштування Kerberos / Встановлення та тестування клієнта Kerberos
Заповніть усі дані KDC та сервера адміністрування. На кроці 3 (Встановлення та тестування клієнта Kerberos) сервер Ambari виконає тест на дим, щоб переконатися, що ви правильно налаштували Kerberos.
Налаштування профілів / Підтвердження конфігурації
a) Реєстраційні записи користувачів Ambari (UPN)
Ambari створює реєстраційні записи користувачів у формі $ -$ @$ , а потім використовує hadoop.security.auth_to_local у core-site.xml щоб відобразити їх у $ у файловій системі.Isilon не дотримується правил прив'язки, тому вам слід вилучити -$ з усіх реєстраційних записів у розділі "Реєстраційні записи Амбарі". Isilon видалить @$ , тому накладення не потрібне. У кластері Ambari 2.2.1 під керуванням HDFS, YARN, MapReduce2, Tez, Hive, HBase, Pig, Sqoop, Oozie, Zookeeper, Falcon, Storm, Flume, Accumulo, Ambari Metrics, Kafka, Knox, Mahout, Slider і Spark внесіть наступні зміни у вкладку «Загальні»:
- Ім'я директора Smokeuser: ${cluster-env/smokeuser}-$ @$ => ${cluster-env/smokeuser}@$
- spark.history.kerberos.principal: ${spark-env/spark_user}-$ @$ => ${spark-env/spark_user}-@$
- Основне ім'я шторму: ${storm-env/storm_user}-$ @$ => ${storm-env/storm_user}-@$
- Реєстраційний запис користувача HBase: ${hbase-env/hbase_user}-$ @$ => ${hbase-env/hbase_user}@$
- Принципал користувача HDFS: ${hadoop-env/hdfs_user}-$ @$ => ${hadoop-env/hdfs_user}@$
- accumulo_principal_name: ${accumulo-env/accumulo_user}-$ @$ => ${accumulo-env/accumulo_user}@$
- trace.user: tracer-$ @$ => tracer@$
b) Службові записи (SPN)
Ambari створює реєстраційні записи служб, деякі з яких відрізняються від імен користувачів UNIX. Знову ж таки, оскільки Isilon не дотримується правил прив'язки, ви повинні змінити імена реєстраційних записів так, щоб вони відповідали іменам користувачів UNIX. У кластері Ambari 2.2.1 у вкладці "Додатково" внесіть наступні зміни:
- HDFS -> dfs.namenode.kerberos.principal: nn/_HOST@$ => HDFS/_HOST@$
- YARN -> yarn.resourcemanager.principal: rm/_HOST@$ => пряжа/_HOST@$
- YARN -> yarn.nodemanager.principal: нм/_HOST@$ => пряжа/_HOST@$
- MapReduce2 -> mapreduce.jobhistory.principal: jhs/_HOST@$ => mapred/_HOST@$
- Falcon -> *.dfs.namenode.kerberos.principal: nn/_HOST@$ => HDFS/_HOST@$

Після налаштування відповідних принципалів натискаємо «Далі». На екрані «Підтвердити конфігурацію» натисніть «Далі».
Stop Services / Kerberize Cluster
Зупинка та Kerberizing сервіси мають бути успішними.

Не продовжуйте: Isilon не дозволяє Ambari створювати клавіатури для реєстраційних записів Isilon. Натомість вам слід вручну налаштувати Kerberos на Isilon за допомогою наведених нижче кроків.
a) Створити KDC як постачальника автентифікації Isilon
Примітка. Якщо ця зона Isilon вже налаштована на використання вашого MIT KDC, ви можете пропустити ці кроки.
isi auth krb5 create --realm=$REALM --admin-server=$admin_server --kdc=$kdc_server --user=$admin_principal --password=$admin_password
isi zone zones modify --zone=$isilon_zone --add-auth-provider=krb5:$REALM
b) Створення реєстраційних записів служб для HDFS та HTTP (для WebHDFS).
isi auth krb5 spn create --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
isi auth krb5 spn create --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
c) Створіть будь-яких необхідних проксі-користувачів
У незахищених кластерах будь-який користувач може видавати себе за будь-якого іншого користувача. У захищених кластерах користувачів проксі потрібно явно вказати.
Якщо у вас є Hive або Oozie, додайте відповідних проксі-користувачів.
isi hdfs proxyusers create oozie --zone=$isilon_zone --add-user=ambari-qa
isi hdfs proxyusers create hive --zone=$isilon_zone --add-user=ambari-qa
d) Вимкніть просту автентифікацію
Дозволено лише автентифікацію за допомогою маркера делегування Kerberos або делегування.
Зміни параметрів ISI HDFS --zone=$isilon_zone --authentication-mode=kerberos_only
Тепер, коли Isilon також налаштовано, натисніть «Далі» в Ambari, щоб перейти до останнього кроку майстра.
Послуги запуску та тестування

Якщо служби не запускаються, ось кілька хитрощів для налагодження проблем з Kerberos:
- У зв'язку з помилкою в YARN, вам потрібно встановити "yarn.resourcemanager.principal" на yarn/$rm_hostname@$REALM в YARN - Custom yarn-site>. Синтаксис «_HOST» не працює, якщо увімкнено Kerberos.
- Щоб діагностувати помилки GSSAPI/Kerberos у Java, додайте до HADOOP_OPTS "-Dsun.security.krb5.debug=true".
- Для помилок HTTP 401 використовуйте curl з -iv для отримання додаткової налагоджувальної інформації.
- Переконайтеся, що між усіма хостами налаштовано прямий і зворотний DNS.
У HDFS - Custom core-site> встановіть "hadoop.rpc.protection" значення "integrity" або "privacy". Окрім автентифікації, цілісність гарантує, що повідомлення не були підроблені, а конфіденційність шифрує всі повідомлення.
Виконуйте роботу!
З будь-якого клієнтського хостингу спробуйте завдання MapReduce!
kinit <some-user> yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 1 1000
Job Finished in 37.635 seconds
Estimated value of Pi is 3.14800000000000000000
Congratulations--you have secured your cluster with Kerberos!
(Необов'язково.) Вимкнення Kerberos
Очистіть Ісілон
Спочатку слід прибрати Ісілон. Це, по суті, протилежне ввімкненню Kerberos.
a) Вимкніть автентифікацію Kerberos
isi hdfs settings modify --authentication-mode=simple_only --zone=$isilon_zone
b) Видаліть усіх проксі-користувачів
isi hdfs proxyusers delete oozie --zone=$isilon_zone
isi hdfs proxyusers delete hive --zone=$isilon_zone
в) Вилучити реєстраційні записи
isi auth krb5 spn delete --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --all
isi auth krb5 spn delete --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --all
Зауважте, що наведені вище команди лише вилучають ці реєстраційні дані з Isilon, але не вилучають їх з KDC. Скористайтеся цими командами, щоб вилучити реєстраційні дані Isilon з KDC:
kadmin -p $admin_principal
kadmin: delete_principal hdfs/$isilon_smartconnect@$REALM
kadmin: delete_principal HTTP/$isilon_smartconnect@$REALM
d) Вилучити KDC як постачальника розпізнавання в Isilon
isi zone zones modify --zone=$isilon_zone --remove-auth-provider=krb5:$REALM
isi auth krb5 delete --provider-name=$REALM
Очищення клієнтів за допомогою Ambari
Натисніть "Вимкнути Kerberos" в Admin -> Kerberos. Всі послуги повинні бути зеленими.