Я создал пользователя HDFS externUser
, которому принадлежит папка /user/externUser
в HDFS. разрешения установлены на drwx------
см скриншот ниже:Избегайте доступа к файлам HDFS без пароля
Я использую HDP 2.4.2 с Ambari 2.2.2
Теперь я написал приложение Java, которое открывает и читает csv-файл в этой папке пользователя, используя следующий код:
System.setProperty("HADOOP_USER_NAME", "externUser");
Configuration conf = new Configuration();
Path path = new Path(hdfs://namenode_url:8020/user/externUser/test.csv);
FileSystem fs = path.getFileSystem(conf);
FSDataInputStream input = fs.open(path);
BufferedReader br = new BufferedReader(new InputStreamReader(input));
String headerRow = br.readLine();
String[] headers = headerRow.split(";");
br.close();
Я запускаю приложение Java с удаленного хоста. Удивительно, но я могу получить доступ к файлу с помощью этого фрагмента кода, БЕЗ указания пароля пользователя! Может ли кто-нибудь объяснить это поведение и как сделать файлы более безопасными?
Доступ через представление Ambari HDFS (скриншот выше) не представляется возможным без входа в систему как «правильный» пользователь ...
Спасибо, я погляжу на это! –