在一个目录下的多个订阅中列出 Azure VM
Listing Azure VMs in multiple subscription under one directory
我有多个订阅,每个订阅中的虚拟机很少。我正在使用 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?
所以该命令在您的 Azure AD 中创建了一个服务主体。
主体的客户端 ID 可在文件中找到。
您可以使用它来查找服务主体:
- 转到portal.azure.com
- 从左侧打开 Azure Active Directory
- 打开企业应用程序
- 在企业应用列表的搜索栏中输入客户端 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"
我有多个订阅,每个订阅中的虚拟机很少。我正在使用 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?
所以该命令在您的 Azure AD 中创建了一个服务主体。 主体的客户端 ID 可在文件中找到。 您可以使用它来查找服务主体:
- 转到portal.azure.com
- 从左侧打开 Azure Active Directory
- 打开企业应用程序
- 在企业应用列表的搜索栏中输入客户端 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"