我有一个Pulumi程序,它在我的开发机器上运行良好。配置存储在Azure中,创建的资源也存储在Azure中。
要运行此程序,我设置了以下环境变量:
SET ARM_SUBSCRIPTION_ID=<id>
我在本地使用az login
登录Azure,然后它会要求我提供凭据。之后,我可以使用pulumi up
更新Azure中的更改。这一切都工作正常,没有任何问题。
现在,我想使用发布管道在Azure Devops中实现相同的功能。我使用“Azure CLI”-任务,并正确配置了ARM连接。该任务包含pulumi up -s develop --yes
(其中“develop”是我的pulumi堆栈)
我可以在日志中看到Azure-login按预期工作,但pulumi抛出以下错误:错误:
构建AzureRM客户端时出错:仅支持以用户身份(不支持以服务主体身份)使用Azure CLI进行身份验证。若要使用服务主体向Azure进行身份验证,你可以使用单独的“使用服务主体进行身份验证”身份验证方法-有关该方法的说明,请参阅以下内容:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/service_principal_client_secret
虽然错误很明显,甚至包含一个解决方案的URL来解决这个问题:这并没有真正帮助我,因为我不直接使用terraform,而是用pulumi代替。
TL;DR:如何将pulumi cli配置为使用Azure的服务主体身份验证?
1条答案
按热度按时间qxsslcnc1#
有两个选项可配置Pulumi以使用服务主体进行身份验证:
1.设置环境变量
ARM_CLIENT_ID
、ARM_CLIENT_SECRET
、ARM_TENANT_ID
和ARM_SUBSCRIPTION_ID
,或者1.使用配置设置它们
参考:服务主体身份验证