Как безопасно хранить секреты в Git? Знакомьтесь с git-crypt
Главное правило Infrastructure as Code (IaC) — всё должно быть в Git. Но что делать с секретами: паролями, токенами, приватными ключами? Добавлять их в .gitignore — безопасно, но неудобно для команды. Хранить в открытом виде — катастрофа.
git-crypt предлагает элегантное решение этой проблемы, интегрируя шифрование прямо в ваш Git-workflow.
▪️ Философия git-crypt:
Это прозрачный файловый фильтр. Вы один раз указываете, какие файлы или папки должны быть зашифрованы.
Когда вы делаете git push, эти файлы автоматически шифруются перед отправкой на удаленный репозиторий.
Когда ваш коллега (у которого есть доступ) делает git pull, эти файлы автоматически расшифровываются на его машине.
В удаленном репозитории (на GitHub/GitLab) секреты всегда хранятся в виде зашифрованной абракадабры. В вашей рабочей копии вы видите их как обычные текстовые файлы.
▪️ Быстрый старт:
Установка: sudo apt install git-crypt или brew install git-crypt.
Инициализация в репозитории: git-crypt init.
Указание файлов для шифрования: Создайте файл .gitattributes и добавьте в него строку:
secret.yaml filter=git-crypt diff=git-crypt
Добавление доверенных пользователей: Чтобы ваши коллеги могли расшифровывать файлы, добавьте их GPG-ключи:
git-crypt add-gpg-user "email@colleague.com"
Работайте как обычно: git add ., git commit, git push. git-crypt сделает всю магию в фоне.
🧠 Взгляд DevSecOps:
git-crypt — это яркий пример практики «сдвига влево» (Shift Left Security). Вы не думаете о безопасности в последнюю очередь, а встраиваете ее в самый базовый инструмент разработки и администрирования — Git. Это делает безопасный способ работы одновременно и самым простым, устраняя человеческий фактор.
#Git #Security #DevSecOps #SecretsManagement #Automation #IaC
Главное правило Infrastructure as Code (IaC) — всё должно быть в Git. Но что делать с секретами: паролями, токенами, приватными ключами? Добавлять их в .gitignore — безопасно, но неудобно для команды. Хранить в открытом виде — катастрофа.
git-crypt предлагает элегантное решение этой проблемы, интегрируя шифрование прямо в ваш Git-workflow.
▪️ Философия git-crypt:
Это прозрачный файловый фильтр. Вы один раз указываете, какие файлы или папки должны быть зашифрованы.
Когда вы делаете git push, эти файлы автоматически шифруются перед отправкой на удаленный репозиторий.
Когда ваш коллега (у которого есть доступ) делает git pull, эти файлы автоматически расшифровываются на его машине.
В удаленном репозитории (на GitHub/GitLab) секреты всегда хранятся в виде зашифрованной абракадабры. В вашей рабочей копии вы видите их как обычные текстовые файлы.
▪️ Быстрый старт:
Установка: sudo apt install git-crypt или brew install git-crypt.
Инициализация в репозитории: git-crypt init.
Указание файлов для шифрования: Создайте файл .gitattributes и добавьте в него строку:
secret.yaml filter=git-crypt diff=git-crypt
Добавление доверенных пользователей: Чтобы ваши коллеги могли расшифровывать файлы, добавьте их GPG-ключи:
git-crypt add-gpg-user "email@colleague.com"
Работайте как обычно: git add ., git commit, git push. git-crypt сделает всю магию в фоне.
🧠 Взгляд DevSecOps:
git-crypt — это яркий пример практики «сдвига влево» (Shift Left Security). Вы не думаете о безопасности в последнюю очередь, а встраиваете ее в самый базовый инструмент разработки и администрирования — Git. Это делает безопасный способ работы одновременно и самым простым, устраняя человеческий фактор.
#Git #Security #DevSecOps #SecretsManagement #Automation #IaC