azure-vmss-reimage
match (effective permission)
{
"action": "Microsoft.Compute/virtualMachineScaleSets/reimage/action",
"scope_type": "resource|resourceGroup|subscription|mg"
}
emit
| target type | Compute |
|---|---|
| source | <principal> |
| target | <scale set> |
| permissions | Microsoft.Compute/virtualMachineScaleSets/reimage/action |
Narrative
{principal.name} can reimage {vmss.name} (virtualMachineScaleSets/reimage/action), re-applying the model to running instances and detonating poisoned model/extension writes.
Raw rule rules/derived/azure/vmss.yaml
id: azure-vmss-reimage
emits: CanTrigger
match_effective_permission:
action: Microsoft.Compute/virtualMachineScaleSets/reimage/action
scope_type: resource|resourceGroup|subscription|mg
emit:
target_type: Compute
source: <principal>
target: <scale set>
permissions:
- Microsoft.Compute/virtualMachineScaleSets/reimage/action
note: Reimage/osRollingUpgrade re-applies the (poisoned) model to already-running instances - it causes
the target to (re)execute the model, so this is a CanTrigger (detonation) semantic, NOT a power-on-a-stopped-fleet
CanStart. Modeled as CanTrigger so path scoring does not conflate reimage with starting a deallocated
fleet; it realizes CONDITIONAL(service_state) execution edges (azure-vmss-execute-as-via-code) by
re-applying poisoned model/extension writes.
narrative: '{principal.name} can reimage {vmss.name} (virtualMachineScaleSets/reimage/action), re-applying
the model to running instances and detonating poisoned model/extension writes.'