Dela via


Säker nyckelversion med konfidentiella virtuella datorer – guide

I artikeln nedan beskrivs hur du utför en säker nyckelversion från Azure Key Vault när dina program körs med en AMD SEV-SNP-baserad konfidentiell virtuell dator. Mer information om säker nyckelversion och konfidentiell databehandling i Azure finns här..

SKR kräver att ett program som utför SKR ska gå igenom ett fjärrinloggningsflöde för gästattestering med hjälp av Microsoft Azure Attestation (MAA) enligt beskrivningen här.

Övergripande flöde och arkitektur

Om du vill tillåta att Azure Key Vault släpper en nyckel till en attesterad konfidentiell virtuell dator finns det vissa steg som måste följas:

  1. Tilldela en hanterad identitet till den konfidentiella virtuella datorn. Systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet stöds.
  2. Ange en key vault-åtkomstprincip för att ge den hanterade identiteten behörigheten "release"-nyckel. En princip gör det möjligt för den konfidentiella virtuella datorn att komma åt Key Vault och utföra versionsåtgärden. Om du använder Key Vault Managed HSM tilldelar du rollmedlemskapet "Managed HSM Crypto Service Release User".
  3. Skapa en Key Vault-nyckel som är markerad som exporterbar och har en associerad versionsprincip. Principen för nyckelutgivning associerar nyckeln till en intygad konfidentiell virtuell dator och att nyckeln endast kan användas för önskat syfte.
  4. Om du vill utföra versionen skickar du en HTTP-begäran till Key Vault från den konfidentiella virtuella datorn. HTTP-begäran måste innehålla rapporten om konfidentiella virtuella datorer som har intygats i plattformsrapporten i begärandetexten. Den intygade plattformsrapporten används för att verifiera tillförlitligheten för tillståndet för den betrodda körningsmiljöaktiverade plattformen, till exempel den konfidentiella virtuella datorn. Microsoft Azure Attestation-tjänsten kan användas för att skapa den intygade plattformsrapporten och inkludera den i begäran.

Diagram över de ovan nämnda åtgärderna, som vi ska utföra.

Distribuera ett Azure Key Vault

Konfigurera AKV Premium eller AKV mHSM med en exporterbar nyckel. Följ de detaljerade anvisningarna här när du konfigurerar SKR-exporterbara nycklar

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

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

Distribuera en konfidentiell virtuell dator

Följ snabbstartsinstruktionerna om hur du distribuerar konfidentiell virtuell dator med ARM-mall

Aktivera systemtilldelad hanterad identitet

Hanterade identiteter för Azure-resurser tillhandahåller Azure-tjänster med en automatiskt hanterad identitet i Microsoft Entra-ID. Du kan använda den här identiteten för att autentisera mot alla tjänster som har stöd för Microsoft Entra-autentisering, utan att behöva ha några autentiseringsuppgifter i koden.

För att aktivera systemtilldelad hanterad identitet på en CVM behöver ditt konto rolltilldelningen Virtuell datordeltagare . Inga andra microsoft Entra-katalogrolltilldelningar krävs.

  1. Oavsett om du loggar in på Azure lokalt eller via Azure Portal använder du ett konto som är associerat med Den Azure-prenumeration som innehåller den virtuella datorn.

  2. Om du vill aktivera systemtilldelad hanterad identitet läser du in mallen i ett redigeringsprogram, letar upp den intressanta resursen Microsoft.Compute/virtualMachines "identity" och lägger till egenskapen på samma nivå som name: vmName egenskapen. Använd följande syntax:

       identity:{
         type: 'SystemAssigned'
       }
    
  3. resource Lägg till informationen i mallen.

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