我有多个订阅,每个订阅中只有几个VM。我正在使用Microsoft.Azure.Management.Fluent
库列出所有VM。
我在cli命令下面使用它来创建认证文件。
az ad sp create-for-rbac --sdk-auth > my.azureauth
使用身份验证文件,我尝试按以下方式获取所有订阅
var azure = Azure.Authenticate(file).WithDefaultSubscription();
var subs = azure.Subscriptions.List();
使用命令生成的身份验证文件似乎只能访问一个订阅。
这是命令的文档
https://docs.microsoft.com/en-us/cli/azure/ad/sp?view=azure-cli-latest#az-ad-sp-create
如何创建身份验证文件以访问每个订阅中的所有订阅和VM?
答案 0 :(得分:1)
因此,该命令在您的Azure AD中创建一个服务主体。 在文件中找到委托人的客户ID。 您可以使用它来查找服务主体:
对我来说,服务负责人称为“ azure-cli-2019-03-22-20-05-32”。
然后,您可以转到其他订阅的“访问控制(IAM)”选项卡,并将此SP也添加为贡献者。 选择角色目标时,只需在搜索中输入SP的名称或客户ID。
您还可以通过CLI进行分配:
az role assignment create --assignee "your-sp-client-id" --role "Contributor" --scope "/subscriptions/your-subscription-id-here"