You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求可全面爬取Azure资产的全类型资源盘点解决方案

Hey there! 作为经常接手客户Azure环境的托管服务商,我太懂你这个需求的痛点了——市面上不少工具要么只盯着IaaS资源,要么覆盖不全,找起来确实头疼。结合我自己实操过的方案,给你整理几个能覆盖IaaS、PaaS甚至SaaS资源的靠谱办法:

解决方案:遍历Azure全类型资源的实操方案

1. Azure PowerShell:灵活覆盖全资源类型

PowerShell的Az模块是我日常用得最多的,能覆盖绝大多数Azure资源,包括SaaS相关的Azure AD、Microsoft 365服务(只要客户给了对应权限)。

步骤:

  • 先确保安装最新的Az模块:

    Install-Module -Name Az -AllowClobber -Scope CurrentUser
    
  • 登录客户租户(托管服务建议用服务主体登录,更安全):

    Connect-AzAccount -Tenant <客户租户ID> -ServicePrincipal -ApplicationId <你的服务主体ID> -CertificateThumbprint <证书指纹>
    
  • 遍历所有订阅下的IaaS/PaaS资源,导出到CSV:

    Get-AzSubscription | ForEach-Object {
        Set-AzContext -Subscription $_.Id
        Get-AzResource | Select-Object ResourceGroupName, Name, ResourceType, Location, Id
    } | Export-Csv -Path "AzureAllResources.csv" -NoTypeInformation
    

    这里的ResourceType字段能清晰区分资源类型,比如Microsoft.Web/sites是PaaS应用服务,Microsoft.Compute/virtualMachines是IaaS虚拟机。

  • 补充扫描Azure AD的SaaS相关资源(用户、企业应用等):

    # 安装Azure AD模块
    Install-Module -Name Az.Ad -AllowClobber
    
    # 获取Azure AD用户列表
    Get-AzADUser | Select-Object DisplayName, UserPrincipalName, Id
    # 获取集成的SaaS企业应用
    Get-AzADApplication | Select-Object DisplayName, ApplicationId, IdentifierUris
    

2. Azure CLI:轻量快速的批量导出

如果你更习惯命令行操作,Azure CLI的语法更简洁,同样能实现全资源扫描:

步骤:

  • 登录客户租户并切换所有订阅:
    az login --tenant <客户租户ID>
    az account list --query "[].id" -o tsv | while read sub; do
        az account set --subscription $sub
        az resource list --query "[].{ResourceGroup:resourceGroup, Name:name, Type:type, Location:location, ID:id}" -o csv >> AzureAllResources.csv
    done
    
  • 补充Azure AD资源扫描:
    # 获取Azure AD用户
    az ad user list --query "[].{DisplayName:displayName, UPN:userPrincipalName, ID:id}" -o csv
    # 获取SaaS集成应用
    az ad app list --query "[].{DisplayName:displayName, AppID:appId, URIs:identifierUris}" -o csv
    

3. Azure Resource Graph:跨订阅快速查询

如果需要跨多个订阅快速检索资源,官方的Azure Resource Graph是最优解——它专门为大规模资源查询设计,速度快,支持复杂过滤:

PowerShell示例:

Search-AzGraph -Query "resources | project resourceGroup, name, type, location, id"

Azure CLI示例:

az graph query -q "resources | project resourceGroup, name, type, location, id" -o csv

这个工具能覆盖几乎所有Azure原生服务,包括最新上线的PaaS资源,还能自定义查询条件(比如只筛选特定区域的资源)。

4. SaaS资源补充:Microsoft 365专属模块

对于Exchange、SharePoint这类属于Microsoft 365的SaaS资源,需要单独的PowerShell模块来扫描:

  • Exchange Online示例:

    Install-Module -Name ExchangeOnlineManagement
    Connect-ExchangeOnline -Organization <客户租户域名>
    Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, Identity
    
  • SharePoint Online示例:

    Install-Module -Name Microsoft.Online.SharePoint.PowerShell
    Connect-SPOService -Url https://<客户租户名>-admin.sharepoint.com
    Get-SPOSite | Select-Object Title, Url, Owner
    

这些方案组合起来,就能覆盖你需要的所有资源类型了。如果是批量处理客户环境,PowerShell/CLI脚本可以直接自动化;如果是临时查询,Resource Graph的速度优势很明显。

内容的提问来源于stack exchange,提问作者Beefcake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:38:46