如何使用Azure CLI枚举服务主体的访问权限与所属对象?
服务主体枚举权限&拥有对象的正确Azure CLI命令
一、查询服务主体拥有的对象
az ad signed-in-user list-owned-objects仅适用于普通用户账号,服务主体需通过自身ID查询拥有的对象:
- 先获取当前登录的服务主体ID:
az ad sp show --id $(az account show --query user.name -o tsv) --query id -o tsv - 再用该ID查询拥有的对象:
az ad sp list-owned-objects --id <上面获取的服务主体ID>
嫌步骤繁琐可以直接用合并命令:
az ad sp list-owned-objects --id $(az account show --query user.name -o tsv)
二、枚举服务主体在订阅中的访问权限
1. 查看当前订阅的角色分配
az role assignment list --assignee $(az account show --query user.name -o tsv) --all
需要指定订阅时,添加--subscription参数:
az role assignment list --assignee $(az account show --query user.name -o tsv) --subscription <订阅ID/名称> --all
2. 查看包含继承权限的所有有效权限
az role assignment list --assignee $(az account show --query user.name -o tsv) --include-inherited --all
3. 查询特定资源/资源组的权限
比如针对某资源组查询:
az role assignment list --assignee $(az account show --query user.name -o tsv) --resource-group <资源组名称>
注意事项
az ad signed-in-user系列命令仅面向用户身份设计,服务主体必须使用az ad sp相关命令操作。- 执行上述命令需要当前身份具备足够权限,比如查询AD对象需拥有Directory Readers角色,查询订阅权限至少要有Reader权限。
内容的提问来源于stack exchange,提问作者abhinav singh
相关产品推荐
相关产品推荐

