Isilon. Автоматизированная конфигурация Kerberos Ambari с Isilon
Summary: В этой статье приведены пошаговые инструкции по настройке безопасности Kerberos в кластере Hadoop под управлением Ambari.
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 (Hedal не поддерживается). Для настройки инфраструктуры Kerberos выполните следующие действия.
- Переадресация и обратный DNS между всеми хостами.
- Все службы запущены (зеленый) на панели управления Ambari.
Включение Kerberos
Предварительная настройка
Перед запуском мастера необходимо настроить две конфигурации и перезапустить все службы.- В HDFS — настраиваемый> параметр «hadoop.security.token.service.use_ip» для «false»
- В MapReduce2 —> Advanced mapred-site add "'hadoop classpath':" в начало «mapreduce.application.classpath». Обратите внимание на двоеточие и backticks (но не копируйте кавычки).
Начало работы
Перейдите в раздел Admin -> Kerberos и нажмите кнопку «Enable Kerberos». Названия в этом разделе содержат названия страниц мастера Kerberos.
Выберите «Existing MIT KDC» и убедитесь, что выполнены предварительные условия, затем нажмите «Далее». Обратите внимание, что Isilon не использует Java и не требуется JCE.
Настройка Kerberos / Установка и тестирование клиента Kerberos
Введите всю информацию о KDC и администраторе сервера. На шаге 3 (установка и тестирование клиента Kerberos) сервер Ambari выполнит проверку задымления, чтобы проверить правильность настройки Kerberos.
Настройка удостоверений и подтверждение конфигурации
а) Субъекты-пользователь ambari (UPN)
Ambari создает субъектов-пользователей в форме $ -$ @$ , а затем использует hadoop.security.auth_to_local в core-site.xml для сопоставления субъектов с $в файловой системе.Isilon не соответствует правилам сопоставления, поэтому необходимо удалить -$ из всех субъектов в разделе «Ambari Principals». 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, введите следующие изменения на вкладке «Общие»:
- Имя участника Группы: ${cluster-env/radiuser}-$ @$ => ${cluster-env/radiuser}@$
- 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@$
б) Директора по обслуживанию (SPN)
Ambari создают субъекты-службы, некоторые из которых отличаются от имен пользователей UNIX. Поскольку Isilon не соответствует правилам сопоставления, необходимо изменить имена субъектов в соответствии с именами пользователей UNIX. В кластере Ambari 2.2.1 введите следующие изменения на вкладке «Дополнительно»:
- HDFS —> dfs.namenode.kerberos.principal: nn/_HOST@$ => hdfs/_HOST@$
- YARN —> yarn.resourcemanager.principal: rm/_HOST@$=> yarn/_HOST@$
- YARN —> yarn.nodemanager.principal: nm/_HOST@$ => yarn/_HOST@$
- MapReduce2 —> mapreduce.jobhistory.principal: jhs/_HOST@$ => mapred/_HOST@$
- Falcon —> *.dfs.namenode.kerberos.principal: nn/_HOST@$ => hdfs/_HOST@$

После настройки соответствующих субъектов нажмите кнопку «Далее». На экране «Confirm Configuration» нажмите кнопку «Next».
Остановите службы/ кластер Kerberize
Службы остановки и kerberizing должны быть успешными.

Не продолжайте. Isilon не позволяет Ambari создавать основные таблицы ключей для субъектов Isilon. Вместо этого необходимо вручную настроить Kerberos в Isilon, выполнив следующие действия.
а) Создание KDC в качестве поставщика auth Isilon
Примечание. Если в этой зоне Isilon уже настроено использование KDC mit, вы можете пропустить эти шаги.
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
б) Создание субъектов-служб для 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
в) Создание необходимых пользователей прокси-сервера
В незатеряемых кластерах любой пользователь может выбрать любого другого пользователя. В защищенных кластерах требуется, чтобы пользователи прокси были явно указаны.
Если у вас есть 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
г) Отключите простую аутентификацию.
Допускается только аутентификация с использованием 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.
- Чтобы отладить ошибки Java GSSAPI/Kerberos, добавьте «-Dsun.security.krb5.debug=true» в HADOOP_OPTS.
- Для ошибок HTTP 401 используйте curl с -IV для получения дополнительной информации об отладе.
- Убедитесь, что для всех хостов настроены прямой и обратный DNS-серверы.
В HDFS —> настраиваемый набор «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
Очистка Isilon
Сначала необходимо очистить Isilon. По сути, это обратное включение Kerberos.
а) Отключите аутентификацию по протоколу Kerberos.
isi hdfs settings modify --authentication-mode=simple_only --zone=$isilon_zone
б) Удалите всех пользователей прокси-сервера.
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
г) Удаление KDC в качестве поставщика аутентификации Isilon
isi zone zones modify --zone=$isilon_zone --remove-auth-provider=krb5:$REALM
isi auth krb5 delete --provider-name=$REALM
Очистка клиентов с помощью Ambari
Нажмите «Отключить Kerberos» в разделе «Администратор —> Kerberos». Все службы должны быть зелеными.