Когда в Azure создается кластер HDInsight, в качестве основного хранилища можно выбрать ADLS
. Для аутентификации от HDInsight
до ADLS
требуется субъект обслуживания , и его можно сгенерировать и сертификат / ключ загрузить в виде файла .pfx
на шаге 2. Azure явно указывает, что файл должен быть загружен и сохранен в безопасности, если кластер необходимо воссоздать. ( На шаге 2 вторым вариантом является использование существующего принципала, куда должен быть загружен файл .pfx.) Пока все хорошо - все работает как положено.
Проблема в том, что мне нужно автоматизировать весь процесс. Я скачал шаблон развертывания Azure RM. В этом файле нужно указать identityCertificate
, который уже существует .pfx
файл. Я не смог найти способ сгенерировать его с помощью шаблона.
Мы попытались создать субъект-службу, сохранить его в хранилище ключей и загрузить сертификат с помощью следующих команд интерфейса командной строки Azure:
az ad sp create-for-rbac --name ${sp_name} --create-cert --keyvault ${vault} --cert ${cert_name}
az keyvault certificate download --vault-name ${vault} --name ${cert_name} --file ${cert_name}.pem
Проблема в том, что файл .pem
, созданный таким образом, содержит только открытый ключ, и развертывание завершается неудачей.
Очевидно, что я не могу сказать нашему клиенту, что ему нужно щелкать здесь и там в Azure, чтобы создать кластер, когда продукт будет запущен. Итак, главный вопрос:
Как я могу создать такого субъекта службы и получить программно .pfx
для возможности развертывания HDInsight?
Большое спасибо!