В настоящее время многие команды используют AWS SSM, чтобы обеспечить безопасность своих секретов, но иногда вам нужно запустить свое приложение на локальной машине разработки, не подключаясь к AWS SSM. В этой статье я постараюсь объяснить простое решение для использования ваших секретов в автономном режиме.
Одним из общих решений для использования AWS SSM является инъекция секретов в качестве переменной среды в ОС Docker. Приложение может легко получить доступ ко всем переменным и секретам, которые ему нужны. SSM-ENV .
Решение:
AWS CLI имеет хорошую функцию, чтобы извлечь все секреты рекурсивно ( —рекурсивное-с декрифрованием ). Мы используем его для извлечения всех секретов в нашей локальной разработке в качестве файла dotenv.
#!/bin/sh REGION=eu-west-1 PROFILE=default AWS_SECRET_PATH="/secrets/service/TESTAPP/eu/staging/" SECRET_FILE_PATH="secrets/eu-staging.env" currentDate=`date` echo "# Last update = $currentDate" > $SECRET_FILE_PATH (export AWS_REGION="$REGION"; export AWS_DEFAULT_REGION="$REGION"; aws --profile $PROFILE ssm get-parameters-by-path --path "${AWS_SECRET_PATH}" \ --recursive --with-decryption \ --output text --query "Parameters[].[Name,Version,Value]" \ | while read key version value ; do echo "# version $version " >> $SECRET_FILE_PATH ; echo "${key##*/}=$value" >> $SECRET_FILE_PATH ; done)
Результатом будет eu-staging.env файл
# Last update = Di 28 Jul 2020 17:26:08 CEST # version 1 DB_PASSWORD=Xrttrsdfseww # version 2 API_PASS=sdfsdflklhfs
Время даты в верхней части файла показано вам последнее обновление.
Чтобы запустить ваше приложение, вы можете использовать dotenv-cli
dotenv -e secrets/eu-staging.env yarn start
Вы можете легко расширить этот сценарий, чтобы получить все секреты окружающей среды на основе ваших потребностей.
Алиакбар Салехи
Оригинал: «https://dev.to/aliakbar_salehi/use-aws-secret-in-local-development-via-dotenv-31ii»