使用AzureDevops在订阅之间移动资源



目前我正试图通过AzureDevops创建动态环境。

实现这一点的其中一个步骤是复制我们的生产数据库,并将它们放置在临时资源组(生产订阅(中,然后将sql server和相关数据库移动到我们的非生产订阅中。然后,我们从这里创建web应用程序并部署代码。

当我通过Az Cli运行这个时,我可以用以下移动资源

SQLSERVERID=$(az resource show -g $RSGNAMETEMP  -n $SQLSERVERNAME --resource-type "Microsoft.Sql/servers" --query id --output tsv)
az resource move --destination-group $RSGNAME --ids $SQLSERVERID --destination-subscription-id $SANDBOXSUBSCRIPTIONID

然而,当我通过AzureDevops运行这个时,我得到了以下错误

ERROR: The client (...) with object id (...)  has permission to perform action  on scope  however, it does not have permission to perform action (...) on the linked scope(s).

我相信,当您在AzureDevops中配置AZ-Cli步骤时,就会出现这个问题,您可以从下拉列表中选择Subscription。帐户/服务主体仅对该特定订阅具有访问权限,而对多个订阅没有访问权限。是否可以配置一个可以连接到多个订阅的服务主体(可在AzureDevops中使用(?

是的,只需转到Azure门户,导航到所需的订阅刀片,转到访问控制,按顶部的+叹息,然后将您的主体添加为订阅的参与者。

要查找服务主体名称,请使用以下命令:

单击VSTS作业中Azure订阅字段中的管理链接,它会将您导航到新刀片。单击此处的管理服务主体。它将带你进入Azure AD中的应用程序页面。之后,你可以在本地目录字段的托管应用程序下复制名称,并使用该名称授予其密钥保管库权限。

最新更新