Secure Key Release-Feature mit AKV und Azure Confidential Computing (ACC)
Secure Key Release (SKR) ist eine Funktionalität des verwalteten HSM- und Premium-Angebots von Azure Key Vault (AKV). Secure Key Release ermöglicht die Freigabe eines HSM-geschützten Schlüssels aus AKV für eine attestierte Trusted Execution Environment (TEE) wie beispielsweise eine sichere Enklave oder VM-basierte TEEs. SKR fügt Ihren Datenentschlüsselungs- bzw. Datenverschlüsselungsschlüsseln eine weitere Zugriffsschutzschicht hinzu, in der Sie auf eine Anwendungs- und TEE-Laufzeitumgebung mit bekannter Konfiguration zugreifen können, um Zugriff auf das Schlüsselmaterial zu erhalten. Die zum Zeitpunkt der exportierbaren Schlüsselerstellung definierten SKR-Richtlinien steuern den Zugriff auf diese Schlüssel.
SKR-Unterstützung mit AKV-Angeboten
Gesamter Secure Key Release-Flow mit TEE
SKR kann Schlüssel nur basierend auf den von Microsoft Azure Attestation (MAA) generierten Ansprüchen freigeben. Es gibt eine enge Integration der SKR-Richtliniendefinition in MAA-Ansprüche.
Die folgenden Schritte gelten für AKV Premium.
Schritt 1: Erstellen einer HSM-geschützten Key Vault Premium-Instanz
Befolgen Sie die Details hier für die Az CLI-basierte AKV-Erstellung
Stellen Sie sicher, dass Sie den Wert von [--sku] auf „premium“ festlegen.
Schritt 2: Erstellen einer Secure Key Release-Richtlinie
Eine Secure Key Release-Richtlinie ist eine Freigaberichtlinie im JSON-Format (wie hier definiert), die zusätzlich zur Autorisierung zum Freigeben des Schlüssels eine Reihe von erforderlichen Ansprüchen angibt. Die hier aufgeführten Ansprüche sind MAA-basierte Ansprüche (wie unter Beispiele für ein Nachweistoken für SGX und unter Exemplarisches JWT, das für einen SEV-SNP-Nachweis generiert wurde für AMD SEV-SNP CVM beschrieben).
Weitere Details finden Sie auf der TEE-spezifischen Beispielseite. Informationen zur SKR-Richtliniengrammatik finden Sie unter Secure Key Release-Richtliniengrammatik für Azure Key Vault.
Bevor Sie eine SKR-Richtlinie festlegen, stellen Sie sicher, dass Sie Ihre TEE-Anwendung über den Remotenachweisflow ausführen. Der Remotenachweis wird im Rahmen dieses Tutorials nicht behandelt.
Beispiel
{
"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"
}
]
}
]
}
Schritt 3: Erstellen eines exportierbaren Schlüssels in AKV mit angefügter SKR-Richtlinie
Genaue Details zum Schlüsseltyp und anderen zugeordneten Attributen finden Sie hier.
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"
Schritt 4: Anwendung, die in einer TEE ausgeführt wird und einen Remotenachweis durchführt
Dieser Schritt kann spezifisch für den Typ der TEE sein, in der Sie beispielsweise Ihre Intel SGX-Anwendungsenklaven oder AMD SEV-SNP-basierte CVM-Instanz (Confidential Virtual Machines) bzw. Confidential Containers-Instanz in CVM-Enklaven mit AMD SEV-SNP ausführen.
Verwenden Sie diese Referenzbeispiele für verschiedene TEE-Typen, die mit Azure angeboten werden:
- Anwendung auf AMD EV-SNP-basierter CVM-Instanz, die den Secure Key Release-Vorgang durchführt
- Confidential Containers-Instanz mit Azure Container Instances (ACI) mit SKR-Sidecar-Containern
- Intel SGX-basierte Anwendungen, die den Secure Key Release-Vorgang durchführen – Open-Source-Lösung für Mystikos-Implementierung
Häufig gestellte Fragen (FAQ)
Kann ich SKR mit Nicht-Confidential-Computing-Angeboten durchführen?
Nein Die an SKR angefügte Richtlinie versteht nur MAA-Ansprüche, die hardwarebasierten TEEs zugeordnet sind.
Kann ich meinen eigenen Nachweisanbieter oder Dienst nutzen und diese Ansprüche für AKV zur Überprüfung und Freigabe verwenden?
Nein AKV versteht aktuell nur MAA-Ansprüche und wird daher nur in MAA integriert.
Kann ich AKV-SDKs für die Schlüsselfreigabe verwenden?
Ja. Das neueste SDK, das in Version 7.3 der AKV-APIs integriert ist, unterstützt die Schlüsselfreigabe.
Gibt es Beispiele für die wichtigsten Freigaberichtlinien?
Ja, detaillierte Beispiele nach TEE-Typ sind hier aufgeführt.
Kann ich den SKR-Richtlinientyp mit Zertifikaten und geheimen Schlüsseln anfügen?
Nein Derzeit leider nicht.
References
Secure Key Release mit Confidential Containers in Azure Container Instances (ACI)
CVM für AMD SEV-SNP-Anwendungen mit Secure Key Release-Beispiel