Я использую Postgres Amazon RDS и Amazon ECS для запуска контейнеров-докеров. Вопрос есть. Какова наилучшая практика для получения имени пользователя и пароля для базы данных RDS в контейнер докеров, работающий на ECS?Лучшая практика получения пароля RDS для контейнера докеров на ECS
Я вижу несколько вариантов:
- Постройте параметры доступа в Докер изображения. Мне это не нравится, так как каждый, у кого есть доступ к изображению, может получить пароль.
- Поместите учетные данные в пользовательские данные конфигурации запуска, используемые группой автомасштабирования для ECS. При таком подходе все изображения докеров, запущенные на моем кластере ECS, имеют доступ к учетным данным. Мне тоже это не нравится. Таким образом, если blackhat обнаружит отверстие безопасности в любой из моих служб (даже служб, которые не используют базу данных), он сможет получить учетные данные для базы данных.
- Поместите учетные данные в S3 и ограничьте доступ к этому ведру с ролью IAM, которую имеет сервер ECS. Те же недостатки, что и их ввод в пользовательские данные.
- Поместите учетные данные в определение задачи ECS. Я не вижу здесь никаких недостатков.
Что вы думаете о том, как это сделать? Я пропустил какие-либо варианты?
С уважением, Tobias
спасибо. Мы закончили тем, что поставили их в определение задачи, как вы предлагали, и оно работает как шарм. –
Я знаю, что это немного старо, но разве мы не должны использовать роли IAM для предоставления доступа? Экземпляр EC2, несущий этот кластер, может иметь разрешение на чтение/запись в RDS, если он находится в экосистеме Amazon. Насколько я понимаю, вам никогда не придется записывать учетные данные жесткого кода - даже в качестве переменной окружения. – cameck
Переменные окружения не являются жестко запрограммированными, особенно в определениях задач, вы можете их перебирать, потому что они не находятся в двоичном виде (контейнер). Также IAM не разрешает вам доступ к RDS. RDS - это размещенная база данных, вы все еще подключаетесь к ней со строкой соединения (url, port, username, password) –