2016-07-12 1 views
2

Я хочу скрыть свой пароль, который я использую, чтобы импортировать данные из моей RDBMS в кластер Hadoop. Я использую --option-files для хранения моего пароля и имени пользователя в текстовом файле, но он не защищен.Как защитить пароль и имя пользователя в Sqoop?

Могу ли я сделать какое-то шифрование в этом конкретном файле для лучшей защиты?

ответ

2

Безопасный способ предоставления пароля базе данных.

Вы должны сохранить пароль в файле на домашней директории пользователя с 400 разрешениями и указать путь к этому файлу, используя --password-file аргумент, и является предпочтительным методом ввода учетных данных. Затем Sqoop прочитает пароль из файла и передаст его в кластер MapReduce с помощью защищенных средств без раскрытия пароля в конфигурации задания. Файл, содержащий пароль, может находиться в локальной FS или HDFS. Например:

$ sqoop import --connect jdbc:mysql://database.example.com/employees \ 
--username venkatesh --password-file ${user.home}/.password 

Проверить бурильных docs для получения более подробной информации.

Кроме того, вы можете использовать опцию -P для Считать пароль с консоли.

1

Похоже, что этот вопрос был рассмотрен ранее here, также описан на этом hortonworks page и в основном состоит из создания и .enc-файла. Вам также необходимо настроить несколько параметров, таких как ключ, чтобы открыть шифрование.

sqoop import \ 
-Dorg.apache.sqoop.credentials.loader.class=org.apache.sqoop.util.password.CryptoFileLoader \ 
-Dorg.apache.sqoop.credentials.loader.crypto.passphrase=sqoop2 \ 
--connect jdbc:mysql://example.com/sqoop \ 
--username sqoop \ 
--password-file file:///tmp/pass.enc \ 
--table tbl 

Вот несколько параметров, которые могут быть сконфигурированы (опять же следующие ссылки):

  • org.apache.sqoop.credentials.loader.class - учетные данные для фронтальных погрузчиков
  • org.apache.sqoop .credentials.loader.crypto.alg - Алгоритм, используемый для дешифрования файла (по умолчанию используется AES/ECB/PKCS5Padding).
  • org.apache.sqoop.credentials.loader.crypto.salt - соль, используемая для получения ключа с парольной фразой (по умолчанию SALT).
  • org.apache.sqoop.credentials.loader.crypto.iterations - Количество итераций PBKDF2 (по умолчанию - 10000).
  • org.apache.sqoop.credentials.loader.crypto.salt.key.len - Производная длина ключа (по умолчанию - 128).
  • org.apache.sqoop.credentials.loader.crypto.passphrase Парольная фраза, используемая для получения ключа.

В качестве альтернативы вы можете также следовать Sqoop documentation page и создать пароль псевдоним, который получает извлеченный с реализацией CredentialProviderPasswordLoader класса. Вы можете увидеть весь класс here