azure - 调用 Get-AzADGroupMember 时权限不足,无法完成操作
问题描述
我在 Powershell(v 2.0) 中有一个 Azure 功能,安装了 Az 模块,并分配了一个托管标识来管理租户说“A”的一堆订阅中的资源。因此,我能够使用 Get-AzVm、Set-AzContext 等命令执行操作以处理 VM/订阅管理。
在该函数中,有一个逻辑可以检查用户组中是否存在用户,例如 AzureAD 中租户“A”的“只读组”。我试图通过调用从函数中获取用户组
$users = Get-AzADGroupMember -GroupDisplayName 'readonlygroup'
但是我抛出了一个异常
ERROR: Get-AzADGroupMember : Insufficient privileges to complete the operation.
At D:\home\site\wwwroot\{functionname}\run.ps1:110 char:18
+ ... $users = Get-AzADGroupMember -GroupDisplayName 'readonlygroup'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-AzADGroupMember], Exception
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ActiveDirectory.GetAzureADGroupMemberCommand
Script stack trace:
at <ScriptBlock>, D:\home\site\wwwroot\{functionname}\run.ps1: line 110
System.Exception: Insufficient privileges to complete the operation.
我假设它是因为与函数应用关联的标识没有对 Azure Active Directory 的适当访问权限。我能够将角色分配分配给应用程序标识以管理订阅,但我没有看到有关如何设置类似配置以从函数应用程序访问 AD 的任何选项。
如何从我的 azure powershell 函数运行此命令?
解决方案
尝试转到您的 azure 广告、角色和管理员,选择一个允许您执行所需 ps 功能的角色,在这种情况下,您正在尝试读取组,所以也许目录阅读器然后单击添加分配。找到您的函数名称,或从函数应用标识刀片中,复制显示的对象 ID,然后将其粘贴到添加分配搜索框中,它应该会找到它,将其添加到那里.. 可能需要 24 小时才能生效,但通常需要很多时间更快,那么您应该能够运行那些 ps 命令。您从功能中的身份刀片添加的 azure 角色分配仅为其提供订阅访问权限,而不是对 azure 广告的访问权限。
推荐阅读
- flask - Flask OS 环境变量 - 更改每个视图调用?
- javascript - 如何使用 React Hook 触发两个组件之间的函数?
- vba - 来自 Microsoft 网站的“Shape.ConnectedShapes 方法(Visio)”示例给出“无效的工作表标识符”错误
- html - 如果该页面中有另一个用户,则在 Django admin 中锁定网页
- python - 有没有办法阻止 scikit 学习在文档术语矩阵中截断我的(大)输出数据?
- linux - eBPF 可以调用动态库吗?
- non-linear-regression - excel中具有多个变量的多项式回归
- python - Nginx 将 websocket 请求传递给 Gunicorn 而不是 Daphne
- python - 使用来自同一表的计算数据更新 PostgresSQL 列
- javascript - 在表单提交上创建一个段落