Share via


Veilige sleutelrelease met vertrouwelijke VM's instructies

In het onderstaande artikel wordt beschreven hoe u een veilige sleutelrelease uitvoert vanuit Azure Key Vault wanneer uw toepassingen worden uitgevoerd met een vertrouwelijke virtuele machine op basis van AMD SEV-SNP. Ga hier voor meer informatie over Secure Key Release en Azure Confidential Computing.

SKR vereist dat een toepassing die SKR uitvoert, een externe stroom voor gastverklaring doorloopt met behulp van Microsoft Azure Attestation (MAA), zoals hier wordt beschreven.

Algemene stroom en architectuur

Als u wilt toestaan dat Azure Key Vault een sleutel vrijgeeft aan een geteste vertrouwelijke virtuele machine, zijn er bepaalde stappen die moeten worden gevolgd:

  1. Wijs een beheerde identiteit toe aan de vertrouwelijke virtuele machine. Door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit worden ondersteund.
  2. Stel een Key Vault-toegangsbeleid in om de beheerde identiteit de machtiging 'release'-sleutel te verlenen. Met een beleid kan de vertrouwelijke virtuele machine toegang krijgen tot Key Vault en de releasebewerking uitvoeren. Als u Key Vault Managed HSM gebruikt, wijst u het rollidmaatschap beheerde HSM Crypto Service Release User toe.
  3. Maak een Key Vault-sleutel die is gemarkeerd als exporteerbaar en heeft een gekoppeld releasebeleid. Het sleutelreleasebeleid koppelt de sleutel aan een geteste vertrouwelijke virtuele machine en dat de sleutel alleen kan worden gebruikt voor het gewenste doel.
  4. Als u de release wilt uitvoeren, verzendt u een HTTP-aanvraag naar de Key Vault vanaf de vertrouwelijke virtuele machine. De HTTP-aanvraag moet het testplatformrapport vertrouwelijke VM's bevatten in de aanvraagbody. Het geteste platformrapport wordt gebruikt om de betrouwbaarheid van de status van het platform met vertrouwde uitvoeringsomgevingen, zoals de vertrouwelijke VM, te controleren. De Microsoft Azure Attestation-service kan worden gebruikt om het geteste platformrapport te maken en op te nemen in de aanvraag.

Diagram of the aforementioned operations, which we'll be performing.

Een Azure Key Vault implementeren

Stel AKV Premium of AKV mHSM in met een exportbare sleutel. Volg de gedetailleerde instructies van hieruit het instellen van exportbare SKR-sleutels

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-sjabloon

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

Een vertrouwelijke virtuele machine implementeren

Volg de quickstart-instructies voor het implementeren van een vertrouwelijke VM met ARM-sjabloon

De door het systeem toegewezen beheerde identiteit inschakelen

Beheerde identiteiten voor Azure-resources bieden Azure-services met een automatisch beheerde identiteit in Microsoft Entra-id. U kunt deze identiteit gebruiken voor verificatie bij alle services die Microsoft Entra-verificatie ondersteunen, zonder dat u aanmeldingsgegevens in uw code hoeft te hebben.

Als u door het systeem toegewezen beheerde identiteit wilt inschakelen op een CVM, heeft uw account de roltoewijzing Inzender voor virtuele machines nodig. Er zijn geen andere roltoewijzingen voor Microsoft Entra-mappen vereist.

  1. Gebruik een account dat is gekoppeld aan het Azure-abonnement dat de virtuele machine bevat, of u zich nu lokaal aanmeldt of via Azure Portal.

  2. Als u door het systeem toegewezen beheerde identiteit wilt inschakelen, laadt u de sjabloon in een editor, zoekt u de Microsoft.Compute/virtualMachines interessebron en voegt u de "identity" eigenschap toe op hetzelfde niveau als de name: vmName eigenschap. Gebruik de volgende syntaxis:

       identity:{
         type: 'SystemAssigned'
       }
    
  3. Voeg de resource details toe aan de sjabloon.

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