Säker nyckelversionsfunktion med AKV och Azure Confidential Computing (ACC)
Secure Key Release (SKR) är en funktion i Azure Key Vault (AKV) Managed HSM och Premium-erbjudandet. Med säker nyckelfrisättning kan du släppa en HSM-skyddad nyckel från AKV till en godkänd betrodd körningsmiljö (TEE), till exempel en säker enklav, VM-baserade TEE:er osv. SKR lägger till ytterligare ett lager av åtkomstskydd till dina datakrypterings-/krypteringsnycklar där du kan rikta ett program + TEE-körningsmiljö med känd konfiguration för att få åtkomst till nyckelmaterialet. DE SKR-principer som definierades vid tidpunkten för skapandet av exportbara nycklar styr åtkomsten till dessa nycklar.
SKR-stöd med AKV-erbjudanden
Övergripande flöde för säker nyckelfrisättning med TEE
SKR kan bara frigöra nycklar baserat på de MAA-genererade anspråken (Microsoft Azure Attestation). Det finns en nära integrering av SKR-principdefinitionen till MAA-anspråk.
Stegen nedan gäller för AKV Premium.
Steg 1: Skapa en Key Vault Premium HSM-backad
Följ informationen här för skapande av Az CLI-baserad AKV
Se till att ange värdet för [--sku] till "premium".
Steg 2: Skapa en princip för säker nyckelfrisättning
En princip för säker nyckelutgivning är en json-formatversionsprincip som definieras här som anger en uppsättning anspråk som krävs utöver auktorisering för att frigöra nyckeln. Anspråken här är MAA-baserade anspråk som refereras här för SGX och här för AMD SEV-SNP CVM.
Mer information finns på sidan med TEE-specifika exempel. Mer information om grammatiken för SKR-policyn finns i Azure Key Vault secure key release policy grammar (Azure Key Vault secure key release policy grammar).
Innan du anger en SKR-princip måste du köra tee-programmet via fjärrattesteringsflödet. Fjärrattestering omfattas inte som en del av den här självstudien.
Exempel
{
"version": "1.0.0",
"anyOf": [ // Always starts with "anyOf", meaning you can multiple, even varying rules, per authority.
{
"authority": "https://sharedweu.weu.attest.azure.net",
"allOf": [ // can be replaced by "anyOf", though you cannot nest or combine "anyOf" and "allOf" yet.
{
"claim": "x-ms-isolation-tee.x-ms-attestation-type", // These are the MAA claims.
"equals": "sevsnpvm"
},
{
"claim": "x-ms-isolation-tee.x-ms-compliance-status",
"equals": "azure-compliant-cvm"
}
]
}
]
}
Steg 3: Skapa en exporterbar nyckel i AKV med bifogad SKR-princip
Exakt information om vilken typ av nyckel och andra attribut som är associerade finns här.
az keyvault key create --exportable true --vault-name "vault name from step 1" --kty RSA-HSM --name "keyname" --policy "jsonpolicyfromstep3 -can be a path to JSON"
Steg 4: Program som körs i en TEE som gör en fjärrattestering
Det här steget kan vara specifikt för vilken typ av TEE du kör ditt program Intel SGX Enclaves eller AMD SEV-SNP-baserade konfidentiella virtuella datorer (CVM) eller konfidentiella containrar som körs i CVM-enklaver med AMD SEV-SNP osv.
Följ dessa referensexempel för olika TEE-typer med Azure:
- Program i AMD EV-SNP-baserade CVM:s utförande av säker nyckelversion
- Konfidentiella containrar med Azure Container Instances (ACI) med SKR-sidobilscontainrar
- Intel SGX-baserade program som utför säker nyckelversion – Mystikos-implementering med öppen källkod
Vanliga frågor och svar (FAQ)
Kan jag utföra SKR med icke-konfidentiella databehandlingserbjudanden?
Nej. Principen som är kopplad till SKR förstår bara MAA-anspråk som är associerade med maskinvarubaserade TEE:er.
Kan jag ta med min egen attesteringsprovider eller tjänst och använda dessa anspråk för AKV för att validera och släppa?
Nej. AKV förstår och integrerar bara med MAA idag.
Kan jag använda AKV-SDK:er för att utföra viktig VERSION?
Ja. Senaste SDK:n är integrerad med 7.3 AKV API:s supportnyckel RELEASE.
Kan du dela några exempel på viktiga versionsprinciper?
Ja, detaljerade exempel efter TEE-typ visas här.
Kan jag bifoga SKR-typen av princip med certifikat och hemligheter?
Nej. Nej, inte just nu.
Referenser
CVM på AMD SEV-SNP-program med secure key release example
AKV REST API med SKR-information
Grammatik för säker nyckelfrisättningsprincip i Azure Key Vault