Безопасность Flume-ng hdfs

Я новичок в Hadoop и Flume NG, и мне нужна помощь. Я не понимаю, как реализована безопасность hdfs.

Вот строки из конфигурации из руководства пользователя Flume:

# properties of hdfs-Cluster1-sink agent_foo.sinks.hdfs-Cluster1-sink.type = hdfs agent_foo.sinks.hdfs-Cluster1-sink.hdfs.path = hdfs://namenode/flume/webdata

Означает ли это, что любой, кто знает мой путь hdfs, может записывать любые данные в мои hdfs?


person eLTG    schedule 20.05.2014    source источник


Ответы (1)


Вопрос возник некоторое время назад, но я постараюсь ответить на него любому другому разработчику, занимающемуся безопасностью Flume и HDFS.

Приемнику HDFS Flume нужна только конечная точка, в которой будут сохраняться данные. Защищена такая конечная точка или нет, это полностью зависит от Hadoop, а не от Flume.

Экосистема Hadoop имеет несколько инструментов и систем для обеспечения безопасности, но сосредоточившись на этих нативных элементах, мы говорим о методах аутентификации и авторизации.

Аутентификация основана на Kerberos, и, как и любой другой механизм аутентификации, это процесс определения того, является ли кто-то или что-то на самом деле тем, кем или чем оно объявлено. Таким образом, при использовании аутентификации недостаточно знать имя пользователя HDFS, вы должны продемонстрировать, что являетесь владельцем такого пользователя, предварительно пройдя аутентификацию с помощью Kerberos и получив билет. Аутентификация может быть основана на пароле или на основе keytab; вы можете видеть keytabs как «файлы сертификатов», содержащие ключи аутентификации.

Авторизацию можно реализовать в файловой системе, определив, какие разрешения имеет та или иная папка или файл в HDFS. Таким образом, если у определенного файла всего 600 разрешений, то только его владелец сможет его прочитать или записать. Можно использовать другие механизмы авторизации, такие как списки управления доступом Hadoop.

При этом, если вы посмотрите на приемник Flume, вы см., что есть пара параметров о Kerberos:

  • hdfs.kerberosPrincipal — субъект пользователя Kerberos для доступа к защищенной HDFS.
  • hdfs.kerberosKeytab — вкладка ключей Kerberos для доступа к защищенной файловой системе HDFS.

В терминологии Kerberos принципал — это уникальное удостоверение, которому Kerberos может назначать билеты. Таким образом, для каждого включенного пользователя в HDFS вам потребуется принципал, зарегистрированный в Kerberos. Keytab, как было сказано ранее, представляет собой контейнер для ключей аутентификации, которыми владеет определенный принципал.

Таким образом, если вы хотите защитить свою HDFS, установите Kerberos, создайте участников и таблицы ключей для каждого включенного пользователя и правильно настройте приемник HDFS. Кроме того, соответствующим образом измените разрешения в HDFS.

person frb    schedule 27.02.2015