Назад | Перейти на главную страницу

Несколько серверов с одним файлом конфигурации

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

Какие есть безопасные решения для единой конфигурации для нескольких серверов? Это экземпляры ec2, поэтому, если есть решение AWS, которое могло бы упростить, я все слышу.

Решение, к которому я сейчас склоняюсь, заключалось в том, чтобы зашифровать конфигурацию и поместить ее на AWS S3, а затем расшифровать ее на стороне сервера с помощью AWS Key Management Service (KMS). Приветствуются любые другие идеи.

Эластичная файловая система AWS это общая файловая система, работающая как NFS. Хранение одного файла конфигурации не будет стоить практически ничего. Вы можете зашифровать его, если хотите, хотя EFS еще не обеспечивает шифрование как часть сервера.

Если вам нужна общая файловая система, но EFS недоступна, вы можете запустить экземпляр с общим ресурсом NFS. Для хранения файлов конфигурации вы можете запустить это на t2.nano примерно за 3 доллара в месяц. Вы также можете запустить общий ресурс NFS с одной машины, которая у вас уже есть. Очевидно, что эта машина должна находиться в частной подсети без выхода в Интернет, подходящей усиленной.

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

Вы также можете рассмотреть возможность использования Данные пользователя EC2 для предоставления информации экземплярам при загрузке. Это был бы хороший способ сделать что-то с парком автоматически масштабируемых экземпляров, поскольку вы определяете его один раз и он доступен для каждого запущенного экземпляра.

В некоторой степени связано назначение экземпляру EC2 роли IAM перед его загрузкой, это позволяет вам определить политику, которая разрешает EC2 доступ к другим ресурсам AWS. Это, вероятно, не поможет вашему варианту использования, но связано.

Вы также можете использовать технологию синхронизации, такую ​​как rsync, BitTorrent Sync или Dropbox Sync, для перемещения файлов между машинами. Вероятно, в данном случае это не лучшее решение, но оно может сработать для других случаев использования.