我正试图从PowerShell将几个ARM模板部署到现有的Azure资源组(RG1(。不过,我在这样做的时候遇到了授权错误。奇怪的是,当我在另一个已经存在的资源组(RG2(上执行相同的活动时,我没有遇到这些问题。
我认为以下信息是相关的:
- 我只是在通过PowerShell部署到RG1时遇到问题,我能够通过Azure门户在RG1中手动创建资源
- 我正在为PowerShell和Azure门户使用相同的Azure帐户
- Azure帐户同时具有RG1和RG2的"参与者"角色
我在尝试将ARM模板规范资源部署到RG1:时收到以下错误
New-AzTemplateSpec `
~~~~~~~~~~~~~~~~~~~~
Operation returned an invalid status code 'Forbidden'
当我试图在RG1:上实际"运行"ARM模板时,收到以下错误
New-AzResourceGroupDeployment `
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17:01:55 - Error: Code=AuthorizationFailed; Message=The client 'yyy@yyy.onmicrosoft.com' with object id [objectid] does not have authorization to perform action 'Microsoft.Resources/deployments/validate/action' over scope '/subscriptions/[subscriptionid]/resourcegroups/RG-ABC/providers/Microsoft.Resources/deployments/[deploymentid]' or the scope is invalid. If access was recently granted, please refresh your credentials.
令人沮丧的是,我在RG1和RG2之间的策略或访问控制配置上找不到任何差异。它们看起来完全一样,但显然不是。
如果没有看到您的其余代码,我不确定,但请确保您登录:
Login-AzAccount
-确保您使用您的azure帐户登录贡献者,它会显示您登录帐户下的电子邮件
然后你想设置你的azure订阅上下文
Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"
然后你可以运行
New-AzResourceGroupDeployment