azure - 获取 Azure AD 主体的所有角色分配
问题描述
我有一个包含多个订阅和资源的 Azure 环境。我的要求是有一个功能,如果我传递用户名或 SPN 名称,它会为我提供该用户/spn 有权访问的所有 azure 资源(从管理组到 azure 资源)以及它是什么访问权限(阅读器/数据阅读器ETC)。
主要问题是 - 我也想要 PIM 角色分配。有没有办法得到它?
探索的选项
- https://docs.microsoft.com/en-us/rest/api/authorization/role-assignments但这给出了每个范围的角色分配。我想要每个用户/spn
- https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-list-portal它不包括 PIM 分配,并且只为每个订阅提供分配
- Azure Resource Graph Explorer - 这根本不包括角色分配
除了遍历 50 个订阅,获取每个作用域的角色分配,然后比较对象 id,还有什么更好的方法吗?
解决方案
您可以使用以下 Powershell 脚本在多个订阅中获取服务主体名称的角色分配。
Connect-AzAccount
$tenantID = "yourTenantID"
$spn = "serviceprincipalname"
$user= Get-AzADUser -UserPrincipalName $spn
$subscriptions = Get-AzSubscription -TenantId $tenantID
#$subscriptions.Id
foreach ($subscription in $subscriptions) {
$set = Set-AzContext -Subscription $subscription
$set
$roleassignment= Get-AzRoleAssignment -ObjectId $user.Id
$roleassignment
}
输出:
参考:
推荐阅读
- reactjs - 如何渲染在 bundle.js 中编译的反应应用程序?
- angular - 正确的 ngSwitchCase 不会使段落出现
- php - 在 laravel 中安装 ui 时如何解决问题?
- sql - Access 要求输入一个值
- c - 关于c中的函数重载
- javascript - VSC 从哪里获得工具提示中显示的信息?
- c++ - 如何计算二维数组中的重复数?(C++)
- javascript - 如何使用提交按钮添加多个下拉表单组合值并制作另一个html页面名称去它
- python - Python-Treeview Tkinter,显示模糊/像素化和索引问题
- javascript - Konva.js 用文本在 Img 元素周围虚线描边