Как безопасно хранить приват на сервере? - PullRequest
0 голосов
/ 15 октября 2019

Я думал о том, что является наиболее безопасным местом для хранения личных данных (например, учетные данные для БД).

Я вижу 2 варианта:

  1. в переменных среды
  2. в файле

Второй вариант кажется более безопасным, особенно если вы установили chmod a-rwx для файла, и только пользователи sudo могут его прочитать.

Когда мы запускаем Docker-контейнер, код внутри по умолчанию имеет root-доступ.

Так что вы думаете об этой идее:

  • создайте файл с пустым доступом (chmod a-rwx private.txt)
  • запустите докер и предоставьте ему файл: docker run -v=$(pwd):/app php:7.3-alpine3.9 cat /app/private.txt
  • docker должен находиться в группе sudo

Теперь, когда хакер взломает сервер, он не сможет прочитать учетные данные, хранящиеся в файле private.txt. Наша программа в Docker-контейнере может прочитать файл. Хакеру нужен root-доступ, но с root-доступом он может делать все, что ему захочется.

Что вы думаете об этой идее? Это безопасно?

1 Ответ

2 голосов
/ 15 октября 2019

Если вы собираетесь использовать Swarm, вы можете проверить статью Докера о " Управлении конфиденциальными данными с секретами Docker "

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

...