配置AppGW报LinkedAuthorizationFailed错误 赋权后仍未解决
问题根因
之前的角色分配范围配置错误。报错明确提示,执行配置更新的服务主体缺少对用户分配托管标识id-agw-keyvault-kubota-dev的Microsoft.ManagedIdentity/userAssignedIdentities/assign/action操作权限,但此前执行角色绑定操作时,将Managed Identity Operator角色的授权范围设置为应用程序网关资源本身,未覆盖需要操作的目标托管标识资源,因此权限校验不通过。
修复操作
- 清理之前错配范围的冗余角色分配:
az role assignment delete --role "Managed Identity Operator" --assignee xxxxxxxx-551c-46a7-b1c2-e4eb093784ce --scope /subscriptions/xxxxxxxx-6a2d-49e7-a103-74011445fdf5/resourceGroups/rg-kubota-dev/providers/Microsoft.Network/applicationGateways/agw-kubota-dev
- 在报错提示的正确资源范围上重新绑定角色:
az role assignment create --role "Managed Identity Operator" --assignee xxxxxxxx-551c-46a7-b1c2-e4eb093784ce --scope /subscriptions/xxxxxxxx-6a2d-49e7-a103-74011445fdf5/resourcegroups/rg-kubota-dev/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id-agw-keyvault-kubota-dev
若后续需要为资源组内其他托管标识分配同类权限,可直接将授权范围提升至整个
rg-kubota-dev资源组,避免新增资源时重复配置权限,对应命令如下:az role assignment create --role "Managed Identity Operator" --assignee xxxxxxxx-551c-46a7-b1c2-e4eb093784ce --scope /subscriptions/xxxxxxxx-6a2d-49e7-a103-74011445fdf5/resourceGroups/rg-kubota-dev
- 权限配置完成后,重启应用程序网关Ingress控制器的Pod,加速权限生效:
kubectl rollout restart deployment ingress-appgw-deployment -n kube-system
- 等待Pod重启完成后查看运行日志,确认
FailedApplyingAppGwConfig类报错消失,应用网关配置正常下发即可。
异常排查校验项
如果完成上述操作后仍报相同错误,依次校验以下配置:
- 确认角色绑定的
assignee参数值为应用网关Ingress控制器实际使用的托管标识对象ID,未错填为其他服务主体ID - 确认目标托管标识
id-agw-keyvault-kubota-dev确实存在于rg-kubota-dev资源组下,未被误删或迁移至其他资源组、订阅 - 确认执行Azure CLI命令的账号拥有目标范围的角色分配权限(需持有订阅/资源组级别的用户访问管理员或所有者权限),避免出现角色分配返回成功但实际未生效的情况
内容的提问来源于stack exchange,提问作者Mohamed
相关产品推荐
相关产品推荐

