как получить доступ к хранилищам параметров системного менеджера aws для различных сред env (staging, production) в приложенииastic beanstalk - PullRequest
0 голосов
/ 03 июля 2019

Я работаю над переносом приложения 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

Мне нужны некоторые стандартные процедуры или практики, которые люди применяют для решения всех вышеперечисленных проблем.

Пошаговое руководство и пример будут очень полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...