Защитить пароль моей базы данных от разработчиков

У нас есть приложение, которое использует базу данных на моем рабочем месте. В настоящее время для аутентификации используется пароль имени пользователя (хотя мы могли бы использовать доверенные IP-соединения). Мы не хотим использовать доверие из-за перемещения, которое мы будем делать с IP-адресами для определенных машин, на которых находятся приложение и база данных.

В настоящее время, поскольку мы применяем имя пользователя и пароль, установленные в файлах конфигурации в приложении, у нас есть разработчики в дополнение к моему боссу, который является системным администратором, и шестью его подчиненными, знающими пароль (я являюсь главным), потому что любой из нас, администратор на ротационной основе, поддерживает и развертывает приложение. Как таковой, В последнее время мы начали чаще менять пароль, но теперь я хочу, чтобы только я знал этот пароль. Я единственный, кто должен запускать запросы к базе данных напрямую по указанию моего начальника. Даже моему боссу незачем знать это с головы до ног (возможно, в мое отсутствие и официально). Я подумал о том, чтобы сделать следующее:

  1. Создать текстовый файл на сервере, доступный только для чтения приложению.
  2. Попросите разработчиков кодировать приложение для обращения к этому файлу для получения пароля в виде простого текста.
  3. Приложение использует это для логин.

Я думаю, что разработчики по-прежнему смогут раскрыть пароль, если в приложении они сохранят код, который делает это за них (НЕ то, что они зловещие, мы просто пытаемся коллективно оптимизировать коллективный риск)

Вопрос Есть ли лучший способ усовершенствовать этот подход, и есть ли другой способ, который я могу использовать, кроме этого.

Платформы: Linux (Ubuntu Server), PostgreSQL, Java

-1
задан 18 January 2017 в 09:48
1 ответ

Старый способ unix / linux:

vi /etc/my_app.conf
database_ip=192.168.123.123
database_instance=db1
database_user=my_app
database_password=secret_in_plaintext

Это не решает вашу проблему сразу, но ... В будущем вы можете развернуть точно такие же двоичные файлы приложения (war / jar) в различных серверов приложений (производство, подготовка, тестирование, разработка). Все они могут иметь разные базы данных (prod, pre, test, dev). Таким образом, со временем разработчикам вообще не понадобится доступ к производственной среде.

0
ответ дан 5 December 2019 в 20:25

Теги

Похожие вопросы