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

如何通过AZ-CLI/资源图KQL/PowerShell获取启用SAS认证的Azure存储账户列表

如何获取所有Azure订阅中启用SAS认证的存储账户列表

以下是三种跨订阅场景下的实现方案:

AZ-CLI 方案

通过遍历所有订阅,逐个查询存储账户并筛选允许SAS认证的实例(SAS依赖共享密钥,因此以allowSharedKeyAccess为判断依据):

# 遍历所有订阅并输出符合条件的存储账户
az account list --query "[].id" --output tsv | while read sub; do
    echo "=== 订阅ID: $sub ==="
    az storage account list --subscription $sub --query "[?allowSharedKeyAccess == true].{存储账户名:name, 资源组:resourceGroup, 区域:location, 允许SAS认证:allowSharedKeyAccess}" --output table
done

Azure资源图KQL 查询

使用资源图可高效跨订阅查询,无需逐个切换订阅:

Resources
| where type == 'microsoft.storage/storageaccounts'
| project 存储账户名 = name, 资源组 = resourceGroup, 订阅ID = subscriptionId, 允许SAS认证 = properties.allowSharedKeyAccess
| where 允许SAS认证 == true

使用方式:在Azure门户的资源图资源管理器中执行上述查询,或通过az graph query -q "<上述KQL语句>"命令行执行。

PowerShell 脚本

# 获取所有订阅并遍历查询
$subscriptions = Get-AzSubscription

foreach ($sub in $subscriptions) {
    Select-AzSubscription -SubscriptionId $sub.Id | Out-Null
    Write-Host "=== 订阅ID: $($sub.Id) ==="
    Get-AzStorageAccount | Where-Object { $_.AllowSharedKeyAccess -eq $true } | Select-Object @{Name='存储账户名';Expression={$_.StorageAccountName}}, 资源组名=ResourceGroupName, 区域=Location, 允许SAS认证=AllowSharedKeyAccess
}

说明

存储账户的allowSharedKeyAccess属性直接控制是否允许使用共享密钥(包括SAS令牌)进行身份验证,当该值为true时,即表示该存储账户启用了SAS认证能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:20:04