Вы, наверное, слышали о Mozilla/SOP , но даже если Readme удивительно подробно, пример с нуля всегда приятно иметь.
SOP
, в двух словах, мостит разрыв между различными услугами управления ключами (PGP, AWS KMS, GCP KMS, Vault Key Azure), и вы. Этот пост будет пытаться заставить вас на ноги как можно быстрее, в 3 простых шагах: от « Я понятия не имею, что делать с моими руками » — « » Ни в коем случае это так просто! «.
Установите зависимости:
$ brew install sops gnupg
И запустите эти команды 3-ish, чтобы убедить себя:
# Clone the example repository $ git clone https://github.com/ervinb/sops-gpg-example.git $ cd sops-gpg-example # Import the encryption key ## The path is Keybase specific and it will work on any platform - no need to use your local filesystem path $ gpg --import <(keybase fs read /keybase/team/sopsgpgexample/pgp/key.asc) ## Or if you don't have Keybase set up yet $ gpg --import <(curl -L https://gist.githubusercontent.com/ervinb/288c44a45cf2614a0684bea333b3aa36/raw/sops-gpg-example.asc) # Decrypt and open the file $ sops secrets/mysecrets.dev.enc.yaml
Ваше повседневное взаимодействие с этим было бы только последней строкой.
GPG --import
Должен быть выполнен только один раз, после чего ключ будет частью локального брелочного бренда (сохраняется также перезагрузки). Это буквально все, что есть к нему, после последующей следующей ниже шагов.
Сделай сам
Запустите секундомер — у нас есть 2 минуты.
- Генерировать ключ PGP
$ gpg --batch --generate-key <
Ключ создан без парольной фразы из-за % без защиты
вариант. В противном случае A Фраза лома:
потребуется.
- Создайте файл конфигурации SOP с отпечатками пальцев клавиш. Это ✨ Magic ✨ ингредиент, который делает бортовое настолько без трения.
$ gpg --list-keys pub rsa2048 2020-12-06 [SC] 7E6DC556C66C43D928A95EA3715A56B718EAF0B6 uid [ultimate] Foo Bar sub rsa2048 2020-12-06 [E] $ cat .sops.yaml creation_rules: - path_regex: secrets/.*\.dev\.enc\.yaml$ pgp: 7E6DC556C66C43D928A95EA3715A56B718EAF0B6
Это также идеально, если вы хотите больше контроля над секретами, например, используя разные клавиши для разных сред. Например Секреты/*. Dev.enc.yaml
может использовать один ключ, а Секреты/*. prod.enc.yaml
Еще один. Подробнее об этом здесь Отказ
- Использовать
SOP
редактировать и создать новые секреты
$ sops secrets/mysecrets.dev.enc.yaml
Тогда это просто вопрос распространения ключей к нужным людям и/или окружающей среде.
Который приводит нас к KeyBase.
Примечание для пользователей Linux
Я обнаружил, что как на Fedora и Ubuntu, по какой-то причине, создавая новый файл с SOP
бросает следующую загадочную ошибку:
$ sops secrets/new.dev.enc.yamlFile has not changed, exiting.
Решение — сначала создать файл и шифровать его впоследствии впоследствии:
$ vi secrets/new.dev.enc.yaml $ sops -i -e secrets/new.dev.enc.yaml
Распространение ключа к друзьям и семье
Чтобы извлечь ключ PGP из вашего локального брелока, используйте:
$ gpg --list-keys ------------------------------- pub rsa2048 2020-12-06 [SC] 7E6DC556C66C43D928A95EA3715A56B718EAF0B6 uid [ultimate] Foo Bar sub rsa2048 2020-12-06 [E] $ gpg --armor --export-secret-keys 7E6DC556C66C43D928A95EA3715A56B718EAF0B6 > key.asc
--Armor
Делает это так, чтобы вывод был отформатирован ASCII ( .asc
), а не в двоичном (по умолчанию).
Один из самых беспрепятственных способов распространения ключей и других чувствительных файлов является Keybase. Он имеет низкий барьер входа, и вы можете контролировать гранулярность доступа с «командами». Это также хорошо интегрируется с файловой системой.
- Установите Keybase
$ brew install keybase
- Завести аккаунт
- Храните секретный ключ под папкой команды
После этого вы захватите универсальный путь и импортируйте ключ в куда угодно с GPG
установлен.
Используйте его в ваших приложениях
Чтобы использовать дешифрованные значения в вашем приложении, вы можете просто добавить строку в сценарии настроек для запуска:
sops -d secrets/mysecret.dev.enc.yaml > configuration.yaml
(Обязательно добавьте дешифрованные файлы на .gitignore
)
Для проектов Terraform используют Террафор-SOP И если вы в TerrageRunt, У него есть встроенный sops_decrypt_file функция.
Вы будете работать SOP
Только для создания или редактирования секретов, в противном случае он будет невидимым (и невероятно).
Оригинал: «https://dev.to/ervinb/from-zero-to-encyrpted-secrets-in-2-minutes-with-sops-and-gpg-2l9a»