UWSGI uid для получения соединения с базой данных

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

У меня есть пользователь (система Ubuntu) под именем 'prod', который владеет исходным кодом сайта Django, и база данных postgres 'dbprod' с владельцем 'prod'. Я могу определить .pgpass в /home/prod, чтобы пользователь prod мог получить доступ к базе данных без ввода пароля. Это способ postgres.

Меня беспокоит, что запуск моих рабочих процессов uwsgi от имени этого пользователя ('prod') является неправильным / небезопасным, в том смысле, что если кто-то взломает процесс веб-сервера, он сможет изменить код и данные, и я буду поджарен, в то время как если бы процесс принадлежал www-data, который имел только "читательский" доступ к исходному коду, ему бы понадобился другой эксплойт. Если я внесу это изменение под другим пользователем (например, www-data), соединение с базой данных не может быть установлено, потому что www-data не может получить доступ к home/.pgpass 'prod'. Я не думаю, что хочу, чтобы 'www-data' имел доступ к базе данных.

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

Вернуться на верх