Храните ключи pgp в хранилище ключей Azure

Храните ключи pgp в хранилище ключей Azure

Я хочу передать зашифрованный файл с сервера SFTP (Ubuntu) в хранилище Azure с помощью конвейера фабрики данных Azure. Клиент использует PGP для шифрования файлов в состоянии покоя и отправки их на сервер SFTP. Таким образом, файл будет зашифрован PGP при поступлении на SFTP. Мне нужно расшифровать файл, чтобы прочитать его оттуда. Кроме того, я хочу сохранить закрытый ключ PGP в хранилище ключей Azure, чтобы использовать его из фабрики данных Azure. Но проблема в том, что я не могу загрузить ключи PGP в хранилище ключей Azure, так как оно принимает только форматы pfx и PEM. Поэтому мой вопрос: можно ли преобразовать ключи PGP в другой формат? Если да, то могу ли я использовать его для расшифровки файлов после изменения их формата?

решение1

Короткий ответ: вы можете поместить все, что захотите, в KeyVault как секрет, а затем извлечь его. Экспортируйте свои ключи как текстовый файл, сохраните его в KeyVault как секрет, и все готово.

Мне удалось заставить это работать, изменив кодhttps://github.com/lfalck/AzureFunctionsPGPDecrypt

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

gpg --export-secret-keys --armor > key.asc

В Azure Key Vault создайте два новых Secrets (не Keys). Один должен быть содержимым файла, key.ascсозданного выше, а другой — парольной фразой, используемой для защиты закрытого ключа в gpg. Затем код в ссылке прочитает эти секреты из Key Vault и передаст их вPGPCoreбиблиотека для расшифровки.

Я также укажу на то, что по какой-то причине код в этом репозитории требует, чтобы секреты были преобразованы в Base64 перед помещением их в KeyVault, потому что он декодирует их в Base64 перед использованием. Мне это не кажется строго необходимым, но если вы повозитесь с кодом выше, вам захочется сделать это кодирование.

Это представлено как функция Azure, но продемонстрированные там концепции могут быть использованы и в других контекстах.

Связанный контент