我的目标是让应用程序成为存储帐户的“blob 存储贡献者”。 为此,我尝试授予应用程序角色,但不能 - 尝试时遇到错误。
我正在尝试使用此命令来执行此操作:
New-AzureRmRoleAssignment -ApplicationId $appId -ResourceGroupName $resourceGroupName -ResourceName $resourceName -ResourceType 'Microsoft.Storage/storageAccounts' -RoleDefinitionName 'Storage Blob Data Contributor'
我收到错误:
New-AzureRmRoleAssignment : The provided information does not map to an AD object id.
有谁知道可能是什么问题吗?我检查了所有参数,对象 ID 肯定是正确的(尝试了 objectId 和 ApplicationId 但仍然不起作用)
当我使用以下命令执行类似的操作来授予组角色时,它成功了。
New-AzureRmRoleAssignment -ObjectId $groupObjId -ResourceGroupName $resourceGroupName -ResourceName $resourceName -RoleDefinitionName 'Reader' -ResourceType "Microsoft.Storage/storageAccounts"
有什么想法吗?
最佳答案
我使用的是 AZ 模块,但命令应该与 RM 模块相同
$contributor = Get-AzRoleDefinition "Contributor"
$contributor
$scope = "/subscriptions/<SubscriptionID>/resourceGroups/Demo/providers/Microsoft.Storage/storageAccounts/<Storage Account name>"
New-AzRoleAssignment -ApplicationId <appicationID> -RoleDefinitionName $contributor.Name -Scope $scope
PS:您还可以通过以下方式获取范围的存储帐户 ID:
$stracc = Get-AzStorageAccount -ResourceGroupName <resourecegroupname> -Name <Storage Account name>
$stracc.Id
关于azure - 在存储帐户中授予应用程序角色 "storage blob data contributor",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57633371/