在一个目录下列出多个订阅中的Azure VM

问题描述 投票:0回答:1

我在每个订阅中有多个订阅和很少的VM。我正在使用Microsoft.Azure.Management.Fluent库列出所有虚拟机。

我使用下面的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?

c# azure azure-sdk-.net
1个回答
1
投票

因此,该命令在Azure AD中创建服务主体。可以在文件中找到主体的客户端ID。您可以使用它来查找服务主体:

  1. 转到portal.azure.com
  2. 从左侧打开Azure Active Directory
  3. Open Enterprise应用程序
  4. 在企业应用列表的搜索栏中输入客户端ID
  5. 您现在应该找到服务主体

对我来说,服务负责人称为“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"
© www.soinside.com 2019 - 2024. All rights reserved.