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

标签 c# azure azure-sdk-.net

我有多个订阅,每个订阅中的虚拟机很少。我正在使用 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://learn.microsoft.com/en-us/cli/azure/ad/sp?view=azure-cli-latest#az-ad-sp-create

如何创建身份验证文件来访问所有订阅和每个订阅中的虚拟机?

最佳答案

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

  1. 转到portal.azure.com
  2. 从左侧打开Azure Active Directory
  3. 打开企业应用程序
  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"

关于c# - 在一个目录下列出多个订阅中的 Azure VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306910/

相关文章:

c# - "The IMAP server has unexpectedly disconnected"使用 993 端口和 MailKit

azure - 查看Azure服务总线死信的应用程序

azure - 无法使用 Azure 中的服务主体获取经典 Web 角色

c# - 在 C# 中开发 winform 应用程序是否有任何标准的屏幕分辨率

c# - 如何在执行流操作时获得更好的粒度?

c# - 多个串行端口读取仅在几分钟后挂起

azure - 不同排列的 KQL 连接

azure - 如何从快速 SSL 中仅从 .CER 获取 .PFX 文件

azure - 如何获取在同一云服务中部署的兼容虚拟机大小的列表?

azure - 如何删除本地PC上的所有Azure模拟器数据库?