使用New-AzRoleAssignment分配角色时出现NotFound错误求助
解决Azure AD服务主体分配Storage Blob Data Contributor角色时的NotFound错误
可能原因及对应解决方案
1. 修正-ServicePrincipal参数取值
-ServicePrincipal参数需要传入服务主体的应用ID(Client ID),而非应用显示名称。可通过以下命令获取正确的应用ID:
Get-AzADServicePrincipal -DisplayName "<你的应用显示名称>"
将输出结果中的ApplicationId字段值,替换原命令里的<Serviceprincipal name>。
2. 验证资源范围路径准确性
检查-Scope参数中的订阅ID、资源组名称、存储账户名称是否完全匹配,无拼写或大小写错误。可通过以下命令获取存储账户的完整资源ID:
Get-AzStorageAccount -ResourceGroupName "<resourcegrp name>" -Name "<storageacc name>" | Select-Object Id
直接复制输出的Id值作为-Scope参数内容。
3. 确认当前会话权限足够
执行角色分配操作需要你拥有Owner或User Access Administrator角色权限。可通过以下命令检查当前账户权限:
Get-AzRoleAssignment -SignInName "<你的登录邮箱>" -ResourceGroupName "<resourcegrp name>"
若权限不足,需联系订阅管理员为你分配对应权限。
4. 确认服务主体存在性
通过以下命令验证服务主体是否已正确创建:
Get-AzADServicePrincipal -ApplicationId "<应用ID>"
若无返回结果,说明服务主体未创建或已被删除,需重新在Azure AD中完成应用注册。
修正后的示例命令
New-AzRoleAssignment -ServicePrincipal "<应用ID>" -RoleDefinitionName "Storage Blob Data Contributor" -Scope "<存储账户完整资源ID>"
内容的提问来源于stack exchange,提问作者william
相关产品推荐
相关产品推荐

