Как делиться динамически генерируемыми секретами между контейнерами Docker

Я связал вместе пару контейнеров Docker, которые используют конечные точки API друг друга. Эти конечные точки API защищены секретом и генерируются при запуске контейнера. Я ищу безопасный способ поделиться этими секретами между этими службами, не делая ничего статичного (например, жесткое кодирование). Эти сервисы создаются и связаны друг с другом, используя docker-compose и секрет может быть переопределен с помощью переменной окружения. Такое поведение не рекомендуется для производства, однако.

Какой в ​​моем случае самый безопасный способ распространения этих секретов?


Вещи, которые я рассмотрел:

  • Использование центрального контейнера данных, который хранит эти секреты в виде файла. Клиенты могут затем ссылаться на этот контейнер и искать секрет в файле.

Этот огромный недостаток этого подхода заключается в том, что он ограничивает контейнеры для запуска на одном узле.

  • Генерация docker-compose файл с этими случайными секретами, жестко закодированными в них перед развертыванием контейнеров

Недостатком этого подхода будет то, что невозможно будет просто использовать docker-compose файл, но ограничив себя сценарием bash, чтобы сгенерировать что-то столь же критическое, как эти секреты Это также не соответствовало бы моему замечанию о том, что решение должно быть динамически адаптируемым к секретным изменениям.


Примечание

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

0 ответов

Другие вопросы по тегам