Переменные среды с AWS SSM Run Command - PullRequest
0 голосов
/ 11 апреля 2019

Я использую AWS SSM Run Command с документом AWS-RunShellScript для запуска сценария на экземпляре AWS Linux 1.Часть сценария включает в себя использование переменной окружения.Когда я сам запускаю скрипт, все нормально.Но когда я запускаю скрипт с SSM, он не видит переменную окружения.Эта переменная должна быть передана в скрипт Python.Первоначально я пытался os.environ ['VARIABLE'] безрезультатно.

Я знаю, что AWS SSM использует привилегии суперпользователя, поэтому я поместил строку экспорта этой переменной в корневой файл ~ / .bashrc,пока он все еще не может видеть переменную.Пользователь root может видеть это, когда я запускаю его сам.Разве AWS SSM не может использовать переменные среды, или я неправильно экспортирую его?Если это невозможно, я постараюсь использовать AWS KMS для хранения своей переменной.

~ / .bashrc

export VARIABLE="VALUE"

script.sh

"$VARIABLE"

Безопасность важна, поэтому я не хочу просто сохранять переменную в скрипте.

1 Ответ

1 голос
/ 11 апреля 2019

SSM не открывает реальный сеанс SSH, поэтому передача переменных среды не будет работать.Важно, чтобы на коробке работал демон, который принимает ваши запросы и обрабатывает их.Это очень простой продукт: он не поддерживает какие-либо стандартные функции, которые поставляются с SSH, такие как SCP, переадресация портов, туннелирование, передача переменных env и т. Д. Альтернативный способ передачи значения, необходимого сценарию, заключается всохраните его в AWS Хранилище параметров системного менеджера и попросите сценарий извлечь переменную из хранилища.
Вам потребуется обновить разрешения роли вашего экземпляра, чтобы иметь доступ к ssm:GetParameters для сценария, который вы используете.запустить для доступа к сохраненному значению.

...