我有这个 Azure Graph 查询来获取我的所有存储帐户:
resources
| where type == 'microsoft.storage/storageaccounts'
| join kind=inner (
resourcecontainers
| where type == 'microsoft.resources/subscriptions'
| project subscriptionId, subscriptionName = name)
on subscriptionId
| project name,sku,properties,tags,resourceGroup,tenantId,subscriptionId,location,subscriptionName
现在我需要为每个存储帐户获取容器名称和每个容器的“公共访问级别”,如 Azure 门户中的这张图片所示:
我在 Azure Graph 中找不到正确的查询来执行此操作。有什么帮助吗?
这不是最好的答案,但我确实使用了图表并这样做,循环每个存储中的容器,如下所示:
$storageAccount = Get-AzStorageAccount -ResourceGroupName $_.resourceGroup -Name $_.name
$ctx = $storageAccount.Context
$container = Get-AzStorageContainerAcl -Context $ctx -ErrorAction SilentlyContinue
$container = $container | Where-Object -Property PublicAccess -ne "Off"
foreach ($c in $container) {
[PSCustomObject]@{
ResourceGroup = $_.resourceGroup
StorageAccount = $_.name
BlobPublicAccess = $_.allowBlobPublicAccess
Container = $c.Name
ContainerPublicAccess = $c.PublicAccess
}
}
根据我的理解,为了访问存储帐户的容器信息,您必须登录该存储帐户,这可能取决于很多方面,例如如何配置您访问它的方式,但主要您需要访问键