mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
50 end-to-end test cases derived from real Azure built-in policies. Each file contains a complete policy definition, sample resources, and expected evaluation results. Coverage spans storage, networking, compute, security, monitoring, database, identity, governance, and update management scenarios. Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
157 lines
4.8 KiB
YAML
157 lines
4.8 KiB
YAML
# Copyright (c) Microsoft Corporation.
|
|
# Licensed under the MIT License.
|
|
|
|
# E2E Test: Compute/VMRequireManagedDisk_Audit
|
|
# Real Azure Policy: "Audit VMs that do not use managed disks"
|
|
# Features: anyOf, allOf nesting, field (type + alias), equals, exists,
|
|
# multiple resource types (VM + VMSS)
|
|
|
|
aliases: test_aliases.json
|
|
|
|
policy_definition: |
|
|
{
|
|
"properties": {
|
|
"displayName": "Audit VMs that do not use managed disks",
|
|
"policyType": "BuiltIn",
|
|
"mode": "All",
|
|
"parameters": {},
|
|
"policyRule": {
|
|
"if": {
|
|
"anyOf": [
|
|
{
|
|
"allOf": [
|
|
{
|
|
"field": "type",
|
|
"equals": "Microsoft.Compute/virtualMachines"
|
|
},
|
|
{
|
|
"field": "Microsoft.Compute/virtualMachines/osDisk.uri",
|
|
"exists": "True"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"allOf": [
|
|
{
|
|
"field": "type",
|
|
"equals": "Microsoft.Compute/VirtualMachineScaleSets"
|
|
},
|
|
{
|
|
"anyOf": [
|
|
{
|
|
"field": "Microsoft.Compute/VirtualMachineScaleSets/osDisk.vhdContainers",
|
|
"exists": "True"
|
|
},
|
|
{
|
|
"field": "Microsoft.Compute/VirtualMachineScaleSets/osdisk.imageUrl",
|
|
"exists": "True"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"then": {
|
|
"effect": "audit"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
cases:
|
|
# =========================================================================
|
|
# Audit — VM with unmanaged OS disk (vhd uri present)
|
|
# =========================================================================
|
|
|
|
- note: audit_vm_unmanaged_osdisk
|
|
resource:
|
|
type: "Microsoft.Compute/virtualMachines"
|
|
name: "legacyVM"
|
|
location: "eastus"
|
|
properties:
|
|
storageProfile:
|
|
osDisk:
|
|
vhd:
|
|
uri: "https://mystorage.blob.core.windows.net/vhds/osdisk.vhd"
|
|
want_effect: "audit"
|
|
|
|
# =========================================================================
|
|
# No effect — VM with managed disk (no vhd uri)
|
|
# =========================================================================
|
|
|
|
- note: pass_vm_managed_disk
|
|
resource:
|
|
type: "Microsoft.Compute/virtualMachines"
|
|
name: "modernVM"
|
|
location: "eastus"
|
|
properties:
|
|
storageProfile:
|
|
osDisk:
|
|
managedDisk:
|
|
storageAccountType: "Premium_LRS"
|
|
want_undefined: true
|
|
|
|
# =========================================================================
|
|
# Audit — VMSS with vhdContainers (unmanaged)
|
|
# =========================================================================
|
|
|
|
- note: audit_vmss_vhd_containers
|
|
resource:
|
|
type: "Microsoft.Compute/VirtualMachineScaleSets"
|
|
name: "legacyScaleSet"
|
|
location: "westus"
|
|
properties:
|
|
virtualMachineProfile:
|
|
storageProfile:
|
|
osDisk:
|
|
vhdContainers:
|
|
- "https://stor1.blob.core.windows.net/vhds"
|
|
want_effect: "audit"
|
|
|
|
# =========================================================================
|
|
# Audit — VMSS with custom image URL (unmanaged)
|
|
# =========================================================================
|
|
|
|
- note: audit_vmss_image_url
|
|
resource:
|
|
type: "Microsoft.Compute/VirtualMachineScaleSets"
|
|
name: "customImgScaleSet"
|
|
location: "westus"
|
|
properties:
|
|
virtualMachineProfile:
|
|
storageProfile:
|
|
osDisk:
|
|
image:
|
|
uri: "https://mystorage.blob.core.windows.net/images/custom.vhd"
|
|
want_effect: "audit"
|
|
|
|
# =========================================================================
|
|
# No effect — VMSS with managed disk (no vhdContainers, no imageUrl)
|
|
# =========================================================================
|
|
|
|
- note: pass_vmss_managed_disk
|
|
resource:
|
|
type: "Microsoft.Compute/VirtualMachineScaleSets"
|
|
name: "modernScaleSet"
|
|
location: "eastus"
|
|
properties:
|
|
virtualMachineProfile:
|
|
storageProfile:
|
|
osDisk:
|
|
managedDisk:
|
|
storageAccountType: "Standard_LRS"
|
|
want_undefined: true
|
|
|
|
# =========================================================================
|
|
# No effect — wrong resource type entirely
|
|
# =========================================================================
|
|
|
|
- note: skip_wrong_type
|
|
resource:
|
|
type: "Microsoft.Storage/storageAccounts"
|
|
name: "myStorage"
|
|
location: "eastus"
|
|
properties: {}
|
|
want_undefined: true
|