我可以将托管身份添加到我的ADO管道中吗?

时间:2020-04-13 09:22:01

标签: azure curl azure-devops azure-pipelines azure-managed-identity

有什么方法可以向运行Azure DevOps管道的VM代理添加Azure Managed Identity?我希望能够在bash任务中运行curl命令并获取访问令牌。

根据Microsoft Docs page

,我要在管道中运行的命令与此类似。

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任务,该任务会将托管身份添加到运行该任务的VM。一旦管道(实际上是代理)完成了我的所有任务,托管身份将被删除。可以通过服务主体指定托管身份。这是否存在或有可能吗?

当前,我正在使用这两种方法,但是对于如此小的任务,它们看起来都有些过分了:

  • 我有专用的ADO代理池,并且这些计算机具有可以使用的预配置托管身份(以后无法在管道中对其进行配置)
  • 我使用两个管道的组合
    • 用于配置和清除自定义VM和
    • 的帮助程序管道
    • 配置这些自定义VM(通过服务连接访问)然后在其上运行我的bash代码的主要管道

1 个答案:

答案 0 :(得分:0)

我的想法是拥有一些ADO任务,它将添加托管身份 到运行任务的VM。一旦管道(实际上是代理) 完成我所有的任务后,托管身份将被删除。管理 身份可以例如通过服务主体指定。这是 存在还是有可能?

对不起,但是我担心这不受支持。在Azure Devops中(甚至在VS marketplace中)也没有这样的现成任务可以满足此要求(在VM中添加/删除托管身份)。

此外,不能通过服务主体指定托管身份,因为这两个功能是不同的技术。有关更多详细信息,请参阅this blog。因此,不可能通过服务主体指定托管身份。

作为建议,您可以在UserVoice site(这是我们提供产品建议的主要论坛)上请求所需的功能(在一个VM中控制托管身份的一项正式任务)。提出建议后,您可以投票并在此处添加评论。如果产品小组查看了更新,他们将提供更新。感谢您帮助我们构建更好的Azure DevOps。