我正在测试一个环境,其中我拥有应用程序服务主体的凭据。我的下一步是识别应用程序拥有的对象或应用程序可以访问的资源。
我可以通过 cli 命令获取 AD 用户的类似详细信息
广告登录用户列表拥有的对象
使用 sp 的凭据登录时运行相同的命令会导致以下错误
找不到分段“me”的资源。
我的用例是枚举 SP 帐户以了解其在订阅中的访问权限。有人可以帮助我使用正确的 azure cli 命令集吗?
最佳答案
我尝试在我的环境中重现相同的结果并得到以下结果:
我在存储帐户范围内创建了一个具有Storage Blob Data Contributor
角色的服务主体,如下所示:
az ad sp create-for-rbac --role "Storage Blob Data Contributor" --name <spname> --scopes /subscriptions/<subID>/resourceGroups/<rgname>/providers/Microsoft.Storage/storageAccounts/<storaccname>
现在我使用上述服务主体凭据成功登录到Azure帐户:
az login --service-principal -u appID -p password --tenant tenantID
当我运行相同的命令来获取应用程序可以访问的资源时,我得到了相同的错误,如下所示:
az ad signed-in-user list-owned-objects
要列出分配给服务主体的RBAC 角色,您可以使用以下命令:
az role assignment list --assignee <service_principal_ID> --all
如果您的用例是列出服务主体可以访问/拥有的所有资源/对象,目前没有命令专门用于此目的。
要了解更多详细信息,您可以查看以下引用:
关于azure - 使用 cli 枚举 Azure 服务主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74575325/