Можно ли как-нибудь добавить Azure Managed Identity к агенту виртуальной машины, на котором запущен мой конвейер Azure DevOps? Я хочу иметь возможность запустить команду curl
внутри задачи bash и получить маркер доступа.
Команда, которую я хочу выполнить внутри конвейера, аналогична этой, как указано в Страница документов Microsoft
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F&client_id=$(IDENTITY)' -H Metadata:true -s
Я знаю, что я может использовать различные встроенные задачи для аутентификации Azure, но ни одно из них (насколько мне известно) не позволяет запрашивать службу метаданных.
Моя идея заключалась бы в том, чтобы иметь задачу ADO, которая добавит управляемую идентификацию в виртуальную машину, в которой эта задача выполняется. Как только конвейер (фактически агент) завершает все мои задачи, управляемая идентификация будет удалена. Управляемая идентификация может быть указана, например, через субъект-службу. Это существует или возможно вообще?
В настоящее время , я использую эти два подхода, но оба они выглядят немного излишне для такой маленькой задачи:
- У меня есть личный пул агентов ADO, и на этих машинах предварительно настроена управляемая идентификация, которую я могу использовать (позже я не могу настроить ее в конвейере)
- Я использую комбинацию из двух конвейеров
- вспомогательный конвейер, который обеспечивает и очищает пользовательские виртуальные машины и
- основной конвейер, который настраивает эти пользовательские виртуальные машины (доступ через служебное соединение) и затем запускает на них мой код bash