Рубрики
Uncategorized

Управление вашими секретами в Git 🗝

Нам всегда было сказано не хранить секреты в Git. Они могут быть раскрыты потенциальному злоумышленству … Помечено DevOps, WebDev, Git, Github.

Нам всегда было сказано не хранить секреты в Git. Они могут быть раскрыты потенциальному злоумышленству и могут быть неправильно использованы. Но что, если я сказал вам, что в Daily.dev Мы управляем всеми нашими секретами в Git?

Представляем Git-Crypt Addon Git, который автоматически зашифрует и расшифрует секреты после совершения и оформления заказа. Вам необходимо определить, какие файлы Git-Crypt (больше на это позже) должен шифровать, и это займет для остальных. Самой невероятной особенностью является то, что вы даже не можете сказать, что файлы зашифрованы. Процесс полностью прозрачен для конечного пользователя. Он совместим с Git Diff и всеми другими операциями Git. Одно одно изменение в том, что теперь удаленные файлы зашифрованы и не могут быть доступны без ключа шифрования.

Теперь, когда мы можем зашифровать наши секреты, нам не нужно беспокоиться о том, что они просочились или неправильно использованы другими. Git-Crypt следует наилучшими практиками с точки зрения шифрования и безопасности.

Прежде чем мы погрузимся в то, как именно мы можем использовать этот инструмент, давайте рассмотрим плюсы и минусы.

Господин

  • Секреты не могут быть отредактированы без тяги кода.
  • Нет фантазии UI для редактирования секретов.
  • Разработчики нужны Git-Crypt для чтения и записи секретов.
  • Секреты не могут быть переданы через проекты легко.
  • При возврате хранилища конфигурация также будет возвращена, и это может привести к использованию номерного конфигурации.

Плюс

  • Инфраструктура как код, один из моих любимых шаблонов дизайна. Секреты управляются в Git, и, таким образом, вы можете применить любой рабочий процесс, к которому вы используются. Код отзывов, возврат, версию сравнения и многое другое.
  • Схема секретов всегда выровнена с кодом приложения. Секреты и код приложений развертываются как единое целое устройство, поэтому, даже если вы вернете вашу версию приложения, конфигурация также будет возвращена, убедившись, что схема совместима с кодом.
  • Секреты не могут быть разделены, что заставляет вас создавать автономный конфиг. Совместное использование секретов между услугами просто похоже на совместное подключение к базе данных, это зависимость заставляет вас координировать развертывание. Очень трудно поддерживать эти зависимости в долгосрочной перспективе.
  • Вы точно знаете, где найти все секреты для вашего приложения.
  • CI/CD может легко получить доступ к секретам.

К настоящему времени вы, вероятно, понимаете, что этот метод не для всех или каждого использования. Если вы увлекаетесь сильным вентилятором инфраструктуры, поскольку код, как я, убедитесь, что проверьте его.

Давайте попробуем это.

Установка Git-Crypt

Для пользователей Brew, как я, это супер легко установить: Brew Установить Git-Crypt

Остальные, вероятно, должны построить его от источника, но не беспокоиться. Также должно быть довольно просто. Инструкции можно найти здесь Отказ

Инициализация

Нам нужно позволить Git-Crypt инициализирую свою среду в нашем репозитории. Перейдите к своему репо и запустите: Git-Crypt init

Конфигурация

Давайте откроем . Гитаттрибуты Файл в корневом каталоге нашего репо. Нам нужно добавить файлы и шаблоны шаблона Мы хотели бы зашифровать.

Вот пример:

secretfile filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secretdir/** filter=git-crypt diff=git-crypt

В этом примере Git-Crypt будет управлять следующими файлами:

  • Файл с именем Secretfile Отказ
  • Все файлы, которые заканчиваются .ключ .
  • Все файлы, которые находятся в Secretdir папка и ее дети.

Добавление нового сотрудничества

Это сложная часть. Вам нужно запустить эту команду для каждого сотрудника проекта, включая себя. В противном случае этот человек не сможет расшифровать секреты. Обратите внимание, что у вас должен быть установлен GPG для выполнения этой команды (выходит из объема этого блога). Git-Crypt add-gpg-user user_id

User_id Может быть идентификатор ключа, полный отпечаток пальца, адрес электронной почты или все, что однозначно идентифицирует открытый ключ к GPG. После того, как вы запустите эту команду GIT-Crypt, зафиксируют новые изменения, чтобы применить их. Хороший побочный эффект, вы можете отслеживать ваши сотрудники через историю Git.

Разблокировка существующего репо

Если вы потяните существующее репо, которое защищено Git-Crypt, вам нужно разблокировать его, чтобы расшифровать все. Вы должны убедиться, что вы являетесь сотрудником и имеют доступ к ключу шифрования. Просто запустить: Git-Crypt Unlock И вот и все, зашифрованные файлы теперь расшифруются и готовы к их редактированию.

Вот и все! 🌟 Вы готовы пойти и хранить свои секреты в Git. Обязательно дайте мне знать, как он опустится в комментарии 👇

Ежедневно Доставляет лучшие новости программирования каждой новой вкладкой. Мы будем ранять сотни квалифицированных источников для вас, чтобы вы могли взломать будущее.

Оригинал: «https://dev.to/dailydotdev/managing-your-secrets-in-git-2fae»