Безопасное подключение к источникам данных в Pyspark - PullRequest
0 голосов
/ 26 января 2019

Обычно мы предоставляем учетные данные пользователя, включая пароли, при подключении и чтении данных из таких источников данных, как Oracle.

Но я считаю, что это не лучшая практика, потому что в этом случае пароли открываются для пользователей и становятся уязвимыми. Итак, как защитить конфиденциальную информацию, такую ​​как пароли, в таких случаях с помощью любых методов шифрования или файла свойств подключения.

Было бы замечательно, если бы распространялись какие-либо стандартные практики.

Текущий метод, который выставляет пароли:

jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:postgresql:dbserver") \
    .option("dbtable", "schema.tablename") \
    .option("user", "username") \
    .option("password", "password") \
    .load()

1 Ответ

0 голосов
/ 26 января 2019

Эта проблема довольно популярна, мы должны защищать конфиденциальную информацию и не должны жестко ее кодировать.

Общая идея заключается в том, чтобы зашифровать пароль, и мы передадим зашифрованную строку в качестве параметра задания искры.Внутри спарк-работы мы расшифруем это, чтобы получить конкретный пароль

Пример

encrypted_password = sys.args[1]

jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:postgresql:dbserver") \
    .option("dbtable", "schema.tablename") \
    .option("user", "username") \
    .option("password", decrypt_password(encrypted_password)) \
    .load()

И, наконец, о том, как его зашифровать, зависит от вашей реализации.В моей компании мы используем EMR для запуска Spark, поэтому имеет смысл использовать KMS для шифрования и дешифрования пароля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...