Как вы аутентифицируете Discourse с AWS? Помогите нам улучшить настройки!

Возможно, это звучит как придирка, но я считаю, что здесь есть важные нюансы.
Предлагаемые вами варианты представляют собой смесь того, КАК передаются настройки, и ЧТО именно передается.

Что касается того, КАК передаются настройки, применимы два момента:

  1. способ использования переменных окружения на данный момент

Переменные окружения DISCOURSE_WHATEVER в настоящее время используются в процессе сборки Docker для создания записей в discourse.conf, которые становятся доступными как GlobalSetting или SiteSetting внутри Discourse. Сам Discourse не воспринимает эти переменные окружения как таковые.

  1. ограничения записей в discourse.conf

Хотя GlobalSettings обладают удобной возможностью подавлять и переопределять SiteSettings, они также накладывают ограничение: в мультисайтовых окружениях они применяются ко всем сайтам в этой группе.

Сочетание этих двух факторов означает, что внутри Discourse SiteSetting являются наиболее гибким вариантом. Они могут быть настоящими SiteSettings, которые опционально могут поступать из discourse.conf, а эти записи, в свою очередь, могут приходить из переменных окружения DISCOURSE_. На мой взгляд, здесь нет реального выбора: SiteSetting — наиболее гибкий вариант и не имеет недостатков, поскольку является функциональным надмножеством остальных. Вы можете использовать GlobalSettings, если хотите, и их можно заполнять с помощью переменных окружения.

Это подразумевает, что единственное реальное решение заключается в том, использовать ли автоматическое обнаружение учетных данных или нет. По моему личному мнению, автоматическое обнаружение всегда очень подвержено ошибкам, поэтому я предпочел бы что-то явное.

То есть иметь SiteSetting, который каким-то образом указывает на реальные, конкретные учетные данные.