Управление конфиденциальными данными, такими как ключи API, токены и учетные данные, в различных средах может быть довольно сложной задачей, особенно при разработке и развертывании приложений. Обеспечение надежного хранения и извлечения секретов при необходимости без жесткого кодирования их в системе контроля версий имеет решающее значение для обеспечения безопасности.
Вот почему я создал Secrets Loader, скрипт Bash, который динамически извлекает секреты из AWS SSM и CloudFormation непосредственно в ваш .env-файл, делая локальную разработку и развертывание проще, безопаснее и эффективнее.
]Загрузчик секретов — это простой инструмент, предназначенный для автоматического извлечения секретов из хранилища параметров AWS SSM и выходных данных AWS CloudFormation на основе специального синтаксиса в вашем файле .env. Он заменяет заполнители реальными секретами, не раскрывая конфиденциальную информацию в системе контроля версий.
Например, вместо жесткого кодирования ключей API или учетных данных вы определяете их в своем файле .env следующим образом:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
С помощью одной команды Secrets Loader получит фактические значения из AWS и обновит ваш файл .env, обеспечивая безопасность конфиденциальной информации и удобство управления.
Во время локальной разработки и развертывания я столкнулся с конфиденциальными учетными данными, которые не хотел жестко запрограммировать в файлах проекта. Поскольку я активно пользовался услугами AWS, мне нужен был способ без особых хлопот интегрировать управление секретами в существующий рабочий процесс разработки.
Вот основные проблемы, которые решает Secrets Loader:
Загрузчик секретов включает в себя несколько ключевых функций, которые делают его удобным инструментом как для локальной разработки, так и для производственной среды:
Магия Secrets Loader заключается в его способности извлекать секреты из AWS на основе определенных префиксов (ssm: и cf:). Вот пример рабочего процесса:
Добавьте заполнители для своих секретов в файл .env, используя префикс ssm: для параметров SSM или префикс cf: для выходных данных CloudFormation:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
Используйте следующую команду, чтобы запустить скрипт и получить секреты:
./secrets.sh
После запуска скрипта ваш .env-файл будет обновлен фактическими значениями, полученными из AWS:
THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-access-key-value
Больше никаких секретов жесткого кодирования и ручного поиска!
Готовы начать? Вот как вы можете настроить Загрузчик секретов в своем проекте:
git clone https://github.com/Thavarshan/secretst-loader.git cd secretst-loader
chmod x secrets.sh
Если у вас не установлен AWS CLI, следуйте руководству по установке AWS CLI. После установки настройте свои учетные данные AWS:
aws configure
Используйте префиксы ssm: и cf:, чтобы определить, откуда должны поступать секреты:
THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_ACCESS_KEY_ID="cf:my-stack:AccessKeyId"
Давайте рассмотрим простой пример:
# Application settings APP_NAME=MyApp APP_ENV=production # Secrets fetched from AWS SSM and CloudFormation THIRD_PARTY_API_KEY="ssm:/third-party/api/key" AWS_SECRET_ACCESS_KEY="cf:my-stack:SecretAccessKey"
./secrets.sh
# Application settings APP_NAME=MyApp APP_ENV=production # Fetched secrets THIRD_PARTY_API_KEY=actual-api-key-value AWS_SECRET_ACCESS_KEY=actual-secret-access-key
Если у вас возникли какие-либо проблемы при использовании Загрузчика секретов, вот несколько вещей, которые следует проверить:
Разрешения AWS: убедитесь, что интерфейс командной строки AWS настроен правильно и что ваша роль IAM или пользователь имеет достаточные разрешения для доступа к секретам AWS SSM и CloudFormation.
Синтаксические ошибки: дважды проверьте синтаксис в файле .env, чтобы убедиться, что префиксы ssm: и cf: верны.
Ошибки сценария: если сценарию не удается получить определенные секреты, он записывает предупреждения, но продолжает получать остальные. Просмотрите журналы на наличие сообщений об ошибках и убедитесь, что ресурсы AWS существуют и доступны.
Скрипт спроектирован с возможностью расширения. Если вы хотите интегрировать другие системы управления секретами (например, Azure Key Vault или HashiCorp Vault), вы можете легко изменить сценарий для поддержки новых префиксов и логики выборки.
Например, вы можете добавить префикс azkv: для получения секретов из Azure Key Vault и обработки извлечения с помощью Azure CLI.
Загрузчик секретов имеет открытый исходный код, поэтому вклад всегда приветствуется! Если вы хотите добавить функции, исправить ошибки или предложить улучшения, не стесняйтесь:
Если вы устали вручную управлять секретами в разных средах, Secrets Loader — это простой и эффективный инструмент для оптимизации этого процесса. Динамически получая секреты из AWS SSM и CloudFormation, вы можете безопасно управлять своими учетными данными, не рискуя раскрыть их в системе контроля версий.
Ознакомьтесь с проектом на GitHub, попробуйте, и если вы найдете его полезным, поставьте нам ⭐ на GitHub! Ваша поддержка помогает проекту развиваться, и мы будем рады услышать ваше мнение отзывы или посмотрите ваш вклад в его постоянное развитие.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3