Teilen über


Anleitung zur sicheren Schlüsselfreigabe mit vertraulichen VMs

Im folgenden Artikel wird beschrieben, wie Sie eine sichere Schlüsselfreigabe (Secure Key Release, SKR) über Azure Key Vault ausführen, wenn Ihre Anwendungen mit einem auf AMD SEV-SNP basierenden vertraulichen virtuellen Computer ausgeführt werden. Weitere Informationen zu Secure Key Release und Azure Confidential Computing finden Sie hier.

SKR erfordert, dass eine Anwendung, die SKR ausführt, einen Remote-Gastnachweisflow mithilfe von Microsoft Azure Attestation (MAA) durchlaufen muss, wie hier beschrieben.

Allgemeines zu Flow und Architektur

Damit Azure Key Vault einen Schlüssel für einen nachweislich vertraulichen virtuellen Computer freigeben kann, müssen bestimmte Schritte befolgt werden:

  1. Weisen Sie dem vertraulichen virtuellen Computer eine verwaltete Identität zu. Systemseitig zugewiesene verwaltete Identitäten und benutzerseitig zugewiesene verwaltete Identitäten werden unterstützt.
  2. Legen Sie eine Key Vault-Zugriffsrichtlinie fest, um der verwalteten Identität die Berechtigung zur Schlüsselfreigabe zu gewähren. Eine Richtlinie ermöglicht dem vertraulichen virtuellen Computer den Zugriff auf Key Vault und das Ausführen des Freigabevorgangs. Wenn Sie ein verwaltetes Key Vault-HSM verwenden, weisen Sie die Rollenmitgliedschaft „Freigabebenutzer für verwaltete HSM-Kryptodienste“ zu.
  3. Erstellen Sie einen Key Vault-Schlüssel, der als exportierbar gekennzeichnet ist und über eine zugehörige Freigaberichtlinie verfügt. Die Schlüsselfreigaberichtlinie ordnet den Schlüssel einem bestätigten vertraulichen virtuellen Computer zu und dass der Schlüssel nur für den vorgesehenen Zweck verwendet werden kann.
  4. Um die Freigabe auszuführen, senden Sie eine HTTP-Anforderung vom vertraulichen virtuellen Computer an Key Vault. Die HTTP-Anforderung muss den Bericht der Nachweisplattform der vertraulichen VMs im Anforderungstext enthalten. Der Nachweisplattformbericht wird verwendet, um die Vertrauenswürdigkeit des Zustands der Trusted Execution Environment-fähigen Plattform zu überprüfen, z. B. der vertraulichen VM. Der Microsoft Azure Attestation-Dienst kann verwendet werden, um den Nachweisplattformbericht zu erstellen und ihn in die Anforderung einzuschließen.

Diagramm der oben genannten Vorgänge, die wir ausführen werden

Bereitstellen von Azure Key Vault

Richten Sie AKV Premium oder AKV mHSM mit einem exportierbaren Schlüssel ein. Befolgen Sie die detaillierten Anweisungen unter Einrichten von exportierbaren SKR-Schlüsseln.

Bicep

@description('Required. Specifies the Azure location where the key vault should be created.')
param location string = resourceGroup().location

@description('Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet.')
param tenantId string = subscription().tenantId

resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = {
  name: 'mykeyvault'
  location: location
  properties: {
    tenantId: tenantId
    sku: {
      name: 'premium'
      family: 'A'
    }
  }
}

ARM-Vorlage

    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2021-11-01-preview",
      "name": "mykeyvault",
      "location": "[parameters('location')]",
      "properties": {
        "tenantId": "[parameters('tenantId')]",
        "sku": {
          "name": "premium",
          "family": "A"
        }
      }
    }

Bereitstellen eines vertraulichen virtuellen Computers

Folgen Sie den Schnellstartanweisungen zum Bereitstellen vertraulicher VMs mit ARM-Vorlage.

Aktivieren einer systemseitig zugewiesenen verwalteten Identität

Verwaltete Identitäten für Azure-Ressourcen stellen für Azure-Dienste eine automatisch verwaltete Identität in Microsoft Entra ID bereit. Sie können diese Identität für die Authentifizierung bei jedem Dienst verwenden, der die Microsoft Entra-Authentifizierung unterstützt. Hierfür müssen keine Anmeldeinformationen im Code enthalten sein.

Zum Aktivieren der systemseitig zugewiesenen verwalteten Identität auf einer CVM benötigt Ihr Konto die Rollenzuweisung Mitwirkender für virtuelle Computer. Es sind keine anderen Microsoft Entra-Verzeichnisrollenzuweisungen erforderlich.

  1. Verwenden Sie unabhängig davon, ob Sie sich bei Azure lokal oder über das Azure-Portal anmelden, ein Konto, das dem Azure-Abonnement zugeordnet ist, das den virtuellen Computer enthält.

  2. Um die systemseitig zugewiesene verwaltete Identität zu aktivieren, laden Sie die Vorlage in einem Editor, suchen Sie die gewünschte Microsoft.Compute/virtualMachines-Ressource, und fügen Sie die "identity"-Eigenschaft in der gleichen Ebene wie die name: vmName-Eigenschaft hinzu. Verwenden Sie die folgende Syntax:

       identity:{
         type: 'SystemAssigned'
       }
    
  3. Fügen Sie der Vorlage die resource-Details hinzu.

     resource confidentialVm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
       name: vmName
       location: location
       identity:{
         type: 'SystemAssigned'
       }
       // other resource provider properties
     }