Sdílet prostřednictvím


Průvodce zabezpečeným uvolněním klíče pomocí důvěrných virtuálních počítačů

Následující článek popisuje, jak provést zabezpečenou verzi klíče ze služby Azure Key Vault, když vaše aplikace běží s důvěrným virtuálním počítačem založeným na AMD SEV-SNP. Další informace o verzi zabezpečeného klíče a důvěrném výpočetním prostředí Azure najdete tady.

SKR vyžaduje, aby aplikace provádějící SKR prošla tokem ověření vzdáleného hosta pomocí ověření identity Microsoft Azure (MAA), jak je popsáno zde.

Celkový tok a architektura

Pokud chcete službě Azure Key Vault povolit vydání klíče na potvrzený důvěrný virtuální počítač, je potřeba provést určité kroky:

  1. Přiřaďte spravovanou identitu k důvěrnému virtuálnímu počítači. Podporuje se spravovaná identita přiřazená systémem nebo spravovaná identita přiřazená uživatelem.
  2. Nastavte zásady přístupu ke službě Key Vault tak, aby spravované identitě udělily oprávnění "release" klíče. Zásady umožňují důvěrnému virtuálnímu počítači přistupovat ke službě Key Vault a provádět operaci vydávání. Pokud používáte spravovaný HSM služby Key Vault, přiřaďte členství role Managed HSM Crypto Service Release User.
  3. Vytvořte klíč služby Key Vault, který je označený jako exportovatelný a má přidruženou zásadu vydané verze. Zásada vydání klíče přidruží klíč k potvrzeným důvěrným virtuálním počítačům a že tento klíč lze použít pouze pro požadovaný účel.
  4. Pokud chcete tuto verzi provést, odešlete do služby Key Vault požadavek HTTP z důvěrného virtuálního počítače. Požadavek HTTP musí obsahovat důvěrné virtuální počítače atestované sestavy platformy v textu požadavku. Sestava otestované platformě se používá k ověření důvěryhodnosti stavu platformy s povoleným důvěryhodným spouštěcím prostředím, jako je například důvěrný virtuální počítač. Službu Microsoft Azure Attestation můžete použít k vytvoření sestavy otestované platformě a zahrnout ji do požadavku.

Diagram výše uvedených operací, které budeme provádět

Nasazení služby Azure Key Vault

Nastavte AKV Premium nebo AKV mHSM s exportovatelným klíčem. Postupujte podle podrobných pokynů odsud a nastavte exportovatelné klíče SKR.

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'
    }
  }
}

Šablona ARM

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

Nasazení důvěrného virtuálního počítače

Postupujte podle pokynů pro rychlý start k nasazení důvěrného virtuálního počítače pomocí šablony ARM.

Povolení spravované identity přiřazené systémem

Spravované identity pro prostředky Azure poskytují službám Azure automaticky spravovanou identitu v Microsoft Entra ID. Tuto identitu můžete použít k ověření v jakékoli službě, která podporuje ověřování Microsoft Entra, aniž byste ve vašem kódu museli mít přihlašovací údaje.

Pokud chcete povolit spravovanou identitu přiřazenou systémem na CVM, váš účet potřebuje přiřazení role Přispěvatel virtuálních počítačů. Nejsou vyžadována žádná další přiřazení rolí adresáře Microsoft Entra.

  1. Bez ohledu na to, jestli se přihlásíte k Azure místně nebo přes Azure Portal, použijte účet přidružený k předplatnému Azure, které obsahuje virtuální počítač.

  2. Pokud chcete povolit spravovanou identitu přiřazenou systémem, načtěte šablonu do editoru, vyhledejte Microsoft.Compute/virtualMachines požadovaný prostředek a přidejte "identity" vlastnost na stejné úrovni jako name: vmName vlastnost. Použijte následující syntax:

       identity:{
         type: 'SystemAssigned'
       }
    
  3. Přidejte do šablony resource podrobnosti.

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