Hadoop Security

Сценарий: - Пользователь входит в систему на своем компьютере, проходит проверку подлинности Kerberos Authentication и отправляет задание уменьшения карты

Я пытаюсь узнать "Как Kerberos может быть реализован в Hadoop?" Я ознакомился с этим документом https://issues.apache.org/jira/browse/HADOOP-4487 Я также ознакомился с базовыми материалами Kerberos ( https://www.youtube.com/watch?v=KD2Q-2ToloE) .

После изучения этих ресурсов я пришел к выводу, который я представляю на диаграмме. Сценарий: - пользователь входит в систему на своем компьютере, проходит проверку подлинности с помощью Kerberos Authentication и отправляет задание по сокращению карты (пожалуйста, прочитайте описание схемы, это вряд ли займет 5 минут вашего времени) Я хотел бы объяснить диаграмму и задать вопросы, связанные с несколькими шаги (жирным шрифтом) Числа на желтом фоне представляют весь поток (Числа от 1 до 19) DT (с красным фоном) представляет токен делегирования BAT (с зеленым фоном) представляет токен блочного доступа JT (с коричневым фоном) представляет токен задания

Шаги 1,2,3 и 4 представляют: - Запрос на TGT (Билет для предоставления Билета) Запрос на сервисный Билет для Узла Имени. Вопрос1) Где должен быть расположен KDC? Может ли это быть на компьютере, где присутствует мое имя узла или трекер работы?

Шаги 5,6,7,8 и 9 представляют: - Показать билет службы на имя узла, получить подтверждение. Name Node выдаст токен делегирования (красный) . Пользователь расскажет об обновителе токена (в данном случае это Job Tracker) .

Вопрос2) Пользователь передает токен делегирования вместе с заданием в Job Tracker. Будет ли маркер делегирования использоваться для отслеживания задач?

Шаги 10,11,12,13 и 14 представляют собой: - Запросить билет на обслуживание для Job Tracker, получить билет на обслуживание от KDC Показать этот билет на Job Tracker и получить ACK от JobTracker Отправить Job + токен делегирования на JobTracker.

Шаги 15,16 и 17 представляют собой: - Создать блочный токен доступа и распределить его по всем узлам данных. Отправьте blockID и токен блокировки доступа в Job Tracker, и Job Tracker передаст его в TaskTracker

Вопрос 3) Кто будет запрашивать Block Access Token и идентификатор блока с узла имени? JobTracker или TaskTracker

Извините, я пропустил номер 18 по ошибке. Шаг 19 представляет: - Трекер заданий генерирует жетон задания (коричневый) и передает его в TaskTrackers.

Вопрос4) Можно ли сделать вывод, что для каждого пользователя будет один токен делегирования, который будет распределен по всему кластеру, и для каждого задания будет один токен задания? Таким образом, у пользователя будет только один токен делегирования и множество токенов заданий (равных количеству представленных им заданий) .

Пожалуйста, скажите мне, если я что-то пропустил или я ошибся в какой-то момент в моем объяснении.

1 ответ

Безопасность Hadoop в основном использовала Kerberos для аутентификации, а часовой для авторизации. Ranger, как шлюзы, knox используется для обеспечения безопасности http://commandstech.com/latest-hadoop-admin-interview-questions/

Действия по обеспечению безопасности Hadoop

  1. Установите Kerberos на любом сервере, доступном для всех узлов кластера. yum установить krb5-сервер yum установить krb5-рабочую станцию ​​yum установить krb5-libs

  2. Измените файл конфигурации в конфигурации сервера KDC, чтобы настроить файлы acl, файлы ключей администратора для хоста. /var/kerberos/krb5kdc/kdc.conf

  3. Измените файл конфигурации /etc/krb5.conf, чтобы настроить хост kdc и сервер администратора

  4. Создание базы данных на хосте KDC

    $ kdb5_util create –r имя_хоста -s

  5. Добавить администраторов в файл ACL

    1. vi /etc/kdamin.acl
    2. Добавьте в этот файл принципала администратора 'admin/admin@host_name'
  6. Добавить администратора: $addprinc admin/admin@host_name

Установите клиенты Kerberos на все узлы кластера

ням установить krb5-рабочая станция

Скопируйте krb5.conf во все узлы кластера.

Обязательно включите безопасный режим в Hadoop, установив необходимые конфигурации https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SecureMode.html

Проверить:

  • Войдите в систему как обычный пользователь в шлюз кластера или узел, где развернуты пользовательские ключевые таблицы
  • Запустите "kinit –k –t /location/of/keytab файл username@host_name"
  • Запустите команды HDFS или mapreduce, чтобы убедиться, что кластер защищен.

Это основные шаги, чтобы убедиться, что Kerberos включен в вашем кластере.

Другие вопросы по тегам