Я работаю над переносом приложения rails с текущего PaaS на aws эластичный бобовый стебель. Все прошло хорошо, за исключением того, что эластичный бобовый стебель позволяет конфигурации иметь ключ и значение в сочетании максимально до 4096 байт. Поскольку в моем приложении много сторонних учетных данных API, размер моего конфига превышает 4096 байт.
В AWS я нашел отличный сервис для хранения секретных учетных данных, который называется AWS System Manager Parameter Store для преодоления ограничения в 4096 байт.
Моя цель - сохранить свои учетные данные и затем загрузить их обратно в переменную ENV для моего приложения, однако я обнаружил следующие проблемы:
Как можно разделить значение конфигурации для разных env, в моем случае у меня будет подготовка и производство в хранилище параметров? Нужно ли мне дублировать ключ для каждого env? Какова практика организации этих ключей, чтобы можно было легко загружать их в ENV var программно?
Как получить доступ к хранилищу параметров и текущему env соответственно? т.е. когда контейнер развернут в рабочей среде, значения параметров хранилища в рабочей среде должны быть загружены в ENV var, но не в промежуточную.
Как лучше всего разрешать экземпляру ElasticBeanstalk получать доступ к хранилищам параметров администратора системы AWS через AWS IAM?
Я попробовал несколько команд в AWS CLI для локального чтения и записи, хорошо работает, например, что-то вроде этого
aws --region=us-east-1 ssm put-parameter --name STG_DB --value client --type SecureString
aws --region=us-east-1 ssm get-parameter --name STG_DB --with-decryption --output A --query Parameter.Value
Мне нужны некоторые стандартные процедуры или практики, которые люди применяют для решения всех вышеперечисленных проблем.
Пошаговое руководство и пример будут очень полезны.