Azure Resource Graph-exempelfrågor för Azure Key Vault

Den här sidan är en samling Azure Resource Graph-exempelfrågor för Azure Key Vault.

Exempelfrågor

Räkna key vault-resurser

Den här frågan använder count i stället för summarize att räkna antalet poster som returneras. Endast nyckelvalv ingår i antalet.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| count
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | count"

Nyckelvalv utan mjuk borttagning aktiverat

Den här frågan identifierar nyckelvalv som inte har mjuk borttagning aktiverat, vilket är en viktig säkerhetsfunktion som gör det möjligt att återställa borttagna nyckelvalvobjekt.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| where properties.enableSoftDelete == false or isnull(properties.enableSoftDelete)
| project name, resourceGroup, subscriptionId, location, properties.enableSoftDelete
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | where properties.enableSoftDelete == false or isnull(properties.enableSoftDelete) | project name, resourceGroup, subscriptionId, location, properties.enableSoftDelete"

Nyckelvalv utan rensningsskydd aktiverat

Denna sökfråga hittar nyckelvalv som inte har aktiverat rensningsskydd. Rensningsskydd rekommenderas för produktionsmiljöer för att förhindra permanent borttagning av nyckelvalvsobjekt under kvarhållningsperioden.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| where properties.enablePurgeProtection != true
| project name, resourceGroup, subscriptionId, location, softDeleteEnabled = properties.enableSoftDelete, purgeProtectionEnabled = properties.enablePurgeProtection
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | where properties.enablePurgeProtection != true | project name, resourceGroup, subscriptionId, location, softDeleteEnabled = properties.enableSoftDelete, purgeProtectionEnabled = properties.enablePurgeProtection"

Nyckelvalv med RBAC-auktorisering

Den här frågan listar nyckelvalv som använder Azure RBAC för auktorisering i stället för åtkomstprinciper. RBAC-auktorisering är den rekommenderade metoden för att hantera åtkomst till key vault-dataplanet.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| extend rbacEnabled = properties.enableRbacAuthorization
| project name, resourceGroup, subscriptionId, location, rbacEnabled
| where rbacEnabled == true
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | extend rbacEnabled = properties.enableRbacAuthorization | project name, resourceGroup, subscriptionId, location, rbacEnabled | where rbacEnabled == true"

Nyckelvalv med offentlig nätverksåtkomst aktiverad

Den här frågan identifierar nyckelvalv som tillåter åtkomst till offentliga nätverk. För förbättrad säkerhet bör du överväga att begränsa åtkomsten till specifika nätverk eller använda privata slutpunkter.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| extend networkDefaultAction = tostring(properties.networkAcls.defaultAction)
| where networkDefaultAction =~ 'Allow' or isnull(networkDefaultAction)
| project name, resourceGroup, subscriptionId, location, networkDefaultAction
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | extend networkDefaultAction = tostring(properties.networkAcls.defaultAction) | where networkDefaultAction =~ 'Allow' or isnull(networkDefaultAction) | project name, resourceGroup, subscriptionId, location, networkDefaultAction"

Säkerhetskonfigurationssammanfattning för Nyckelvalv

Den här frågan innehåller en omfattande sammanfattning av säkerhetsstatusen för alla nyckelvalv, inklusive mjuk borttagningsstatus, rensningsskydd, RBAC-auktorisering och nätverksinställningar.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| extend 
    softDeleteEnabled = tobool(properties.enableSoftDelete),
    purgeProtectionEnabled = tobool(properties.enablePurgeProtection),
    rbacEnabled = tobool(properties.enableRbacAuthorization),
    networkDefaultAction = tostring(properties.networkAcls.defaultAction),
    sku = tostring(properties.sku.name)
| project name, resourceGroup, subscriptionId, location, sku, softDeleteEnabled, purgeProtectionEnabled, rbacEnabled, networkDefaultAction
| order by name asc
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | extend softDeleteEnabled = tobool(properties.enableSoftDelete), purgeProtectionEnabled = tobool(properties.enablePurgeProtection), rbacEnabled = tobool(properties.enableRbacAuthorization), networkDefaultAction = tostring(properties.networkAcls.defaultAction), sku = tostring(properties.sku.name) | project name, resourceGroup, subscriptionId, location, sku, softDeleteEnabled, purgeProtectionEnabled, rbacEnabled, networkDefaultAction | order by name asc"

Nyckelvalv efter plats

Den här frågan räknar nyckelvalv grupperade efter Azure-region, vilket är användbart för att förstå den geografiska fördelningen av dina nyckelhanteringsresurser.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| summarize count() by location
| order by count_ desc
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | summarize count() by location | order by count_ desc"

Nyckelvalv efter SKU-typ

Den här frågan grupperar nyckelvalv efter SKU-nivå (standard eller premium). Premium-SKU:er krävs för HSM-skyddade nycklar.

Resources
| where type =~ 'microsoft.keyvault/vaults'
| extend skuName = tostring(properties.sku.name)
| summarize count() by skuName
az graph query -q "Resources | where type =~ 'microsoft.keyvault/vaults' | extend skuName = tostring(properties.sku.name) | summarize count() by skuName"

Nyckelvalv med prenumerationsnamn

Följande fråga visar en komplex användning av join med sort som leftouter. Frågan begränsar den anslutna tabellen till prenumerationsresurser och med project för att endast inkludera det ursprungliga fältet subscriptionId och namnfältet som har bytt namn till Undernamn. Namnbytet på fältet undviker join att lägga till det som namn1 eftersom fältet redan finns i resurser. Den ursprungliga tabellen filtreras med where och följande project innehåller kolumner från båda tabellerna. Frågeresultatet är alla nyckelvalv som visar typ, namnet på nyckelvalvet och namnet på den prenumeration som det finns i.

Resources
| join kind=leftouter (ResourceContainers | where type=='microsoft.resources/subscriptions' | project SubName=name, subscriptionId) on subscriptionId
| where type == 'microsoft.keyvault/vaults'
| project type, name, SubName
az graph query -q "Resources | join kind=leftouter (ResourceContainers | where type=='microsoft.resources/subscriptions' | project SubName=name, subscriptionId) on subscriptionId | where type == 'microsoft.keyvault/vaults' | project type, name, SubName"

Nästa steg