Самый простой способ поделиться учетными данными на нескольких серверах - PullRequest
0 голосов
/ 06 февраля 2020

Я знаю, что это обычная проблема, но после долгих поисков у меня нет решения, которое мне нравится. Я создаю простой пример сервис-ориентированной архитектуры для моих студентов. Мы используем Digital Ocean. Будет три отдельных сервера, которым необходимо узнать IP-адреса друг друга и различные секретные токены (например, токены доступа Twitter). Я хочу проиллюстрировать идею о том, что такую ​​информацию не помещают в репозиторий.

Я планирую использовать переменные среды во всех стратегических точках c. Но как настроить эти переменные среды «автоматически» и «обслуживаемо»?

  1. У меня может быть частное репозиторий github только с одним файлом, и не забудьте клонировать его и обновить на всех трех серверах
  2. Я не хочу вдаваться в capistrano и подобные сложные вещи
  3. Я думал о том, чтобы иметь суть информации и использовать http для ее получения, но суть публикуется c. Хорошо, я делаю суть частной, но теперь я должен подтвердить подлинность этой сути, и я вернулся к тому, с чего начал.

Предложения?

1 Ответ

1 голос
/ 06 февраля 2020

Какой бы путь вы ни выбрали, вам придется предоставить средство аутентификации доступа к секретам.

Либо «Я написал токен доступа Twitter на белой доске»

Или «Секреты хранятся в сервисе, и вот как вы аутентифицируете доступ к ним».

Для последнего частное репо Git не является худшим решением. Вы можете предоставить доступ к репо своим студентам («аккаунтам»). Они будут иметь 2 этапа: приобрести токен из репозитория GitHub, применить токен к ресурсу Digital Ocean.

Существуют альтернативы, включая Хранилище HashiCorp, см. Учебник . Недавно я тоже использовал Secret Manager от Google . Это сторонние сервисы, а не функции, предоставляемые непосредственно Digital Ocean.

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

...