AZ-SKR-01: Key release policy is bound to attested, compliant confidential VMs¶
| Property | Value |
|---|---|
| Severity | critical |
| Platform | Azure confidential VMs |
| Lifecycle stage | attest |
| Trust boundary | inputs |
| Mode | Passive: read-only cloud API calls. |
What a failure enables¶
- Workload keys released to an attacker-controlled VM
How to fix¶
- Set a release policy whose every anyOf branch names Microsoft's shared regional MAA provider or your own provider (and pass it with --azure-attestation-provider), and requires x-ms-attestation-type (sevsnpvm/tdxvm) and x-ms-compliance-status = azure-compliant-cvm; mark it immutable.
After the fix, scan again: the check should report PASS.
Scan inputs¶
The untrust scan options this check reads:
| Option | Description |
|---|---|
--azure-approved-attestation-authority |
MAA hosts you approve as release-policy authorities besides Microsoft's shared providers and --azure-attestation-provider (comma separated). |
--azure-attestation-provider |
MAA provider name (in the resource group) or resource ID. |
--azure-key |
Key whose release policy gates the workload. |
--azure-key-vault |
Key Vault (name or host) holding the SKR key. |
--azure-resource-group |
Resource group of the VM. |
--azure-subscription |
Subscription ID. |
Permissions¶
The cloud API calls this check makes, read from the scanner's source:
| Cloud | API call | Permission | Access |
|---|---|---|---|
| Azure | arm.attestation_provider (GET attestation provider) |
Microsoft.Attestation/attestationProviders/read |
read |
| Azure | arm.key (GET key (Key Vault data plane)) |
Microsoft.KeyVault/vaults/keys/read |
read |
See Required permissions for every check on this platform.
Generated from untrust 1.3.0 (commit 7ef462d9a0c3).