首页 > 解决方案 > 使用 VSTS 将角色分配给 Web 应用程序时出现授权错误

问题描述

我正在尝试使用 VSTS 将角色分配给 azure web 应用程序。

New-AzureRmRoleAssignment -ObjectId 976a5114-xxxx-xxxx-xxxx-7403ef25ac29 -RoleDefinitionName "Reader" -Scope "/subscriptions/4364666b-xxxx-xxxx-xxxx-47158904c439/resourceGroups/devt002RG/providers/Microsoft.Storage/storageAccounts/devt002"

错误 :

2019-03-26T09:26:16.5246563Z ##[error]The client 'a78361e3-xxxx-xxxx-xxxx-fb0ced07865c' with object id 'a78361e3-xxxx-xxxx-xxxx-fb0ced07865c' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/write' over scope '/subscriptions/4364666b-xxxx-xxxx-xxxx-47158904c439/resourceGroups/devt002RG/providers/Microsoft.Storage/storageAccounts/devt002/providers/Microsoft.Authorization/roleAssignments/466c9ad5-xxxx-xxxx-xxxx-c0ff4051db14'.

我是订阅 4364666b-xxxx-xxxx-xxxx-47158904c439 的所有者

注意:使用 cloud shell 运行时工作正常。

标签: azurepowershellazure-devops

解决方案


您应该首先拥有订阅的所有者权限,然后通过 Azure PowerShell 使用服务主体登录。因此,您可以将 Reader 角色分配给您的存储帐户。

我可以重新出现你得到的错误,然后达到你的目的。下面是过程截图:

你得到的错误: 在此处输入图像描述

获取订阅的所有者权限,然后在新的 PowerShell 会话中使用服务主体登录: 在此处输入图像描述

将 Reader 角色分配给您的存储帐户: 在此处输入图像描述

有一个例外,但该角色已创建。 在此处输入图像描述

注意:当您在 Azure Cloud Shell 中时,默认情况下您已经使用您的 Azure 帐户登录了 Azure,而不是服务主体。


推荐阅读