Creare un insieme di credenziali delle chiavi per AdE con Microsoft Entra ID

Importante

Crittografia dischi di Azure è pianificato per il ritiro il 15 settembre 2028. Fino a tale data, è possibile continuare a usare Crittografia dischi di Azure senza interruzioni. Il 15 settembre 2028 i carichi di lavoro abilitati per ADE continueranno a essere eseguiti, ma i dischi crittografati non riusciranno a sbloccarsi dopo il riavvio della macchina virtuale, causando un'interruzione del servizio.

Usare la crittografia nell'host per le nuove macchine virtuali o prendere in considerazione le dimensioni delle macchine virtuali riservate con crittografia del disco del sistema operativo per i carichi di lavoro di computing riservato. Tutte le macchine virtuali abilitate per ADE (inclusi i backup) devono eseguire la migrazione alla crittografia nell'host prima della data di ritiro per evitare interruzioni del servizio. Per informazioni dettagliate, vedere Eseguire la migrazione da Crittografia dischi di Azure alla crittografia nell'host .

Si applica a: ✔️ macchine virtuali di Windows

La nuova versione di Crittografia dischi di Azure elimina la necessità di specificare un parametro dell'applicazione Microsoft Entra per abilitare la crittografia dei dischi per le macchine virtuali. Con la nuova versione non è più necessario fornire le credenziali Microsoft Entra durante il passaggio di abilitazione della crittografia. Crittografare tutte le nuove macchine virtuali usando la nuova versione senza i parametri dell'applicazione Microsoft Entra. Per istruzioni su come abilitare la crittografia del disco della macchina virtuale usando la nuova versione, vedere Crittografia dischi di Azure. Le macchine virtuali già crittografate con i parametri dell'applicazione Microsoft Entra sono ancora supportate. Continuare a mantenere queste VM usando la sintassi di Microsoft Entra.

Crittografia dischi di Azure usa Azure Key Vault per controllare e gestire segreti e chiavi di crittografia dei dischi. Per altre informazioni sugli insiemi di credenziali delle chiavi, vedere Introduzione all'insieme di credenziali delle chiavi di Azure e Proteggere l'insieme di credenziali delle chiavi.

La creazione e la configurazione di un insieme di credenziali delle chiavi da utilizzare con Crittografia dischi di Azure e Microsoft Entra ID (versione precedente) prevede quattro passaggi:

  1. Creare un insieme di credenziali delle chiavi.
  2. Configurare un'applicazione Microsoft Entra e un'entità servizio.
  3. Configurare i criteri di accesso per l'insieme di credenziali delle chiavi per l'app Microsoft Entra.
  4. Impostare i criteri di accesso avanzati per l'insieme di credenziali delle chiavi.

È anche possibile generare o importare una chiave di crittografia della chiave (KEK).

Vedere l'articolo principale Creare e configurare un insieme di credenziali delle chiavi per Crittografia dischi di Azure per informazioni su come installare gli strumenti e connettersi a Azure.

Creare un insieme di credenziali delle chiavi

La soluzione Crittografia dischi di Azure è integrata con Azure Key Vault per semplificare il controllo e la gestione delle chiavi di crittografia dei dischi e dei segreti nella sottoscrizione dell'insieme di credenziali delle chiavi. È possibile creare un insieme di credenziali delle chiavi o usarne uno esistente per Crittografia dischi di Azure. Per altre informazioni sugli insiemi di credenziali delle chiavi, vedere Introduzione all'insieme di credenziali delle chiavi di Azure e Proteggere l'insieme di credenziali delle chiavi. Per creare un insieme di credenziali delle chiavi è possibile usare un modello di Resource Manager, Azure PowerShell o l'interfaccia della riga di comando di Azure.

Avviso

Per garantire che i segreti di crittografia non oltrepassino i confini regionali, Crittografia dischi di Azure richiede che l'insieme di credenziali delle chiavi e le macchine virtuali si trovino nella stessa area. Creare e usare un insieme di credenziali delle chiavi nella stessa area della macchina virtuale da crittografare.

Creare un insieme di credenziali delle chiavi usando PowerShell

È possibile creare un insieme di credenziali delle chiavi usando Azure PowerShell e il cmdlet New-AzKeyVault. Per altri cmdlet Key Vault, vedere Az.KeyVault.

  1. Se necessario, creare un nuovo gruppo di risorse usando New-AzResourceGroup. Per ottenere un elenco delle posizioni dei data center, usare Get-AzLocation.

    # Get-AzLocation
    New-AzResourceGroup –Name 'MyKeyVaultResourceGroup' –Location 'East US'
    
  2. Creare un nuovo insieme di credenziali delle chiavi usando New-AzKeyVault

    New-AzKeyVault -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -Location 'East US'
    
  3. Si notino il nome dell'insieme di credenziali, il nome del gruppo di risorse, l'ID risorsa, l'URI dell'insieme di credenziali e l'ID oggetto restituiti per usarli in un secondo momento quando si crittografano i dischi.

Creare un insieme di credenziali usando interfaccia della riga di comando di Azure

È possibile gestire l'insieme di credenziali usando interfaccia della riga di comando di Azure e i comandi az keyvault. Per creare un insieme di credenziali delle chiavi, usare az keyvault create.

  1. Se necessario, creare un nuovo gruppo di risorse usando az group create. Per un elenco delle posizioni, usare az account list-locations

    # To list locations: az account list-locations --output table
    az group create -n "MyKeyVaultResourceGroup" -l "East US"
    
  2. Crea un nuovo insieme di credenziali delle chiavi usando az keyvault create.

    az keyvault create --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --location "East US"
    
  3. Prendere nota del nome dell'insieme di credenziali (nome), del nome del gruppo di risorse, dell'ID risorsa (ID), dell'URI dell'insieme di credenziali e dell'ID oggetto restituiti per un uso successivo.

Creare un insieme di credenziali delle chiavi usando un modello di Resource Manager

È possibile creare un insieme di credenziali delle chiavi usando il modello di Resource Manager.

  1. Nel modello di avvio rapido di Azure selezionare Distribuisci in Azure.
  2. Selezionare la sottoscrizione, il gruppo di risorse, la posizione del gruppo di risorse, il nome dell'insieme di credenziali delle chiavi, l'ID oggetto, le condizioni legali e il contratto e quindi selezionare Acquista.

Configurare un'app Microsoft Entra e un'entità servizio

Quando è necessario abilitare la crittografia in una macchina virtuale in esecuzione in Azure, Crittografia dischi di Azure genera e scrive le chiavi di crittografia nell'insieme di credenziali delle chiavi. La gestione delle chiavi di crittografia nell'insieme di credenziali delle chiavi richiede l'autenticazione di Microsoft Entra. Creare un'applicazione Microsoft Entra a questo scopo. Ai fini dell'autenticazione, è possibile usare l'autenticazione basata sul segreto client o l'autenticazione di Microsoft Entra basata sul certificato client.

Configurare un'app Microsoft Entra e un'entità servizio usando Azure PowerShell

Per eseguire i comandi seguenti, ottenere e usare il modulo Azure PowerShell.

  1. Usare il cmdlet di PowerShell New-AzADApplication per creare un'applicazione Microsoft Entra. MyApplicationHomePage e MyApplicationUri possono essere tutti i valori scelti.

    $aadClientSecret = "My AAD client secret"
    $aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force
    $azureAdApplication = New-AzADApplication -DisplayName "My Application Display Name" -HomePage "https://MyApplicationHomePage" -IdentifierUris "https://MyApplicationUri" -Password $aadClientSecretSec
    $servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role Contributor
    
  2. $azureAdApplication.ApplicationId è l'ID client Microsoft Entra e il $aadClientSecret è il segreto client che verrà usato in seguito per abilitare Crittografia dischi di Azure. Proteggere correttamente il segreto client di Microsoft Entra. Eseguendo $azureAdApplication.ApplicationId, viene mostrato l'ID dell'applicazione.

Configurare un'app e un'entità servizio Microsoft Entra usando interfaccia della riga di comando di Azure

È possibile gestire le entità servizio usando interfaccia della riga di comando di Azure e i comandi az ad sp. Per altre informazioni, vedere Creare un'entità servizio di Azure.

  1. Creare una nuova entità servizio.

    az ad sp create-for-rbac --name "ServicePrincipalName" --password "My-AAD-client-secret" --role Contributor --scopes /subscriptions/<subscription_id>
    
  2. L'AppId restituito è l'ID client Microsoft Entra utilizzato in altri comandi. È anche il nome SPN che verrà usato per az keyvault set-policy. La password è il segreto client usato in un secondo momento per abilitare Crittografia dischi di Azure. Proteggere correttamente il segreto client di Microsoft Entra.

Configurare un'app Microsoft Entra e un'entità servizio con il portale di Azure

Seguire i passaggi illustrati nell'articolo Usare il portale per creare un'applicazione Microsoft Entra e un'entità servizio che possano accedere alle risorse per creare un'applicazione Azure AD. Ognuno di questi passaggi consente di passare direttamente alla sezione dell'articolo per completare.

  1. Verificare le autorizzazioni necessarie
  2. Creare un'applicazione Microsoft Entra
    • Quando si crea l'applicazione è possibile usare qualsiasi nome e URL di accesso desiderato.
  3. Ottenere l'ID applicazione e la chiave di autenticazione.
    • La chiave di autenticazione è il segreto client e viene usata come valore AadClientSecret per Set-AzVMDiskEncryptionExtension.
    • La chiave di autenticazione viene usata dall'applicazione come credenziale per accedere a Microsoft Entra ID. Nel portale di Azure il segreto è denominato chiave, ma non ha alcuna relazione con gli insiemi di credenziali delle chiavi. Proteggere il segreto in modo appropriato.
    • L'ID applicazione viene usato più avanti come AadClientId per Set-AzVMDiskEncryptionExtension e come ServicePrincipalName per Set-AzKeyVaultAccessPolicy.

Configurare i criteri di accesso per l'insieme di credenziali delle chiavi per l'app Microsoft Entra

Per scrivere segreti di crittografia in un insieme di credenziali delle chiavi specificato, Crittografia dischi di Azure deve avere l'ID client e il Segreto client dell'applicazione Microsoft Entra che dispone delle autorizzazioni per scrivere segreti nell'insieme di credenziali delle chiavi.

Note

Crittografia dischi di Azure richiede la configurazione dei criteri di accesso seguenti all'applicazione client Microsoft Entra, ovvero le autorizzazioni WrapKey e Set.

Configurare i criteri di accesso di Key Vault per l'app Microsoft Entra con Azure PowerShell

L'applicazione Microsoft Entra deve avere i diritti di accesso alle chiavi o ai segreti nell'insieme di credenziali. Usare il cmdlet Set-AzKeyVaultAccessPolicy per concedere le autorizzazioni all'applicazione, con l'ID client generato al momento della registrazione dell'applicazione come valore del parametro ServicePrincipalName. Per altre informazioni, vedere il post di blog Azure Key Vault - Step by Step (Procedura dettagliata per Azure Key Vault).

  1. Impostare il criterio di accesso di Key Vault per l'applicazione AD tramite PowerShell.

    $keyVaultName = 'MySecureVault'
    $aadclient ID = 'MyAadAppclient ID'
    $KVRGname = 'MyKeyVaultResourceGroup'
    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadclient ID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname
    

Impostare il criterio di accesso all'insieme di credenziali per l'app di Microsoft Entra usando interfaccia della riga di comando di Azure

Usare az keyvault set-policy per impostare i criteri di accesso. Per altre informazioni, vedere Gestire Key Vault tramite l'interfaccia della riga di comando 2.0.

Concedi all'entità servizio che hai creato usando l'interfaccia della riga di comando di Azure l'accesso per ottenere i segreti ed eseguire il wrapping delle chiavi con il comando seguente:

az keyvault set-policy --name "MySecureVault" --spn "<spn created with CLI/the Microsoft Entra client ID>" --key-permissions wrapKey --secret-permissions set

Imposta il criterio di accesso di Key Vault per l'app Microsoft Entra tramite il portale

  1. Aprire il gruppo di risorse con l'insieme di credenziali delle chiavi.
  2. Selezionare l'insieme di credenziali delle chiavi, passare a Criteri di accesso e quindi selezionare Aggiungi nuovo.
  3. In Selezionare un'entità cercare l'applicazione Microsoft Entra creata e selezionarla.
  4. Per Autorizzazioni chiave, selezionare Wrap Key in Cryptographic operations (Eseguire il wrapping della chiave in Operazioni di crittografia).
  5. Per Autorizzazioni segrete, selezionare Imposta in Operazioni di gestione dei segreti.
  6. Selezionare OK per salvare il criterio di accesso.

Operazioni crittografiche di Azure Key Vault - Esegui il wrapping della chiave

Autorizzazioni segrete di Azure Key Vault - Imposta

Impostare i criteri di accesso avanzati per l'insieme di credenziali delle chiavi

La piattaforma Azure deve avere accesso alle chiavi di crittografia o i segreti nell'insieme di credenziali delle chiavi per renderli disponibili alla macchina virtuale per l'avvio e la decrittografia dei volumi. Abilitare la crittografia del disco nell'insieme di credenziali delle chiavi, altrimenti le distribuzioni avranno esito negativo.

Configurare i criteri avanzati di accesso di Key Vault usando Azure PowerShell

Usare il cmdlet di PowerShell relativo all'insieme di credenziali delle chiavi Set-AzKeyVaultAccessPolicy per abilitare la crittografia del disco per l'insieme di credenziali delle chiavi.

  • Abilitare Key Vault per la crittografia del disco: EnabledForDiskEncryption è necessario per Crittografia dischi di Azure.

    Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDiskEncryption
    
  • Abilitare l'insieme di credenziali delle chiavi per la distribuzione, se necessario: in questo modo si consente al provider di risorse Microsoft.Compute di recuperare segreti da questo insieme di credenziali delle chiavi quando vi viene fatto riferimento durante la creazione di risorse, ad esempio quando si crea una macchina virtuale.

     Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDeployment
    
  • Abilitare l'insieme di credenziali delle chiavi per la distribuzione di modelli, se necessario: in questo modo si consente a Azure Resource Manager di recuperare segreti da questo insieme di credenziali delle chiavi quando vi viene fatto riferimento durante la distribuzione di un modello.

    Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForTemplateDeployment
    

Configurare i criteri di accesso avanzati dell'insieme di credenziali delle chiavi usando interfaccia della riga di comando di Azure

Usare az keyvault update per abilitare la crittografia del disco per l'insieme di credenziali delle chiavi.

  • Abilitare l'insieme di credenziali delle chiavi per la crittografia del disco: Enabled-for-disk-encryption è obbligatorio.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-disk-encryption "true"
    
  • Abilitare l'insieme di credenziali delle chiavi per la distribuzione, se necessario: questo consente alle macchine virtuali di recuperare i certificati archiviati come segreti dall'insieme di credenziali.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-deployment "true"
    
  • Abilitare l'insieme di credenziali delle chiavi per la distribuzione dei modelli: consente a Resource Manager di recuperare i segreti dall'insieme di credenziali.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-template-deployment "true"
    

Impostare i criteri di accesso avanzati per l'insieme di credenziali delle chiavi tramite il portale di Azure

  1. Selezionare l'insieme di credenziali delle chiavi, andare a Criteri di accesso e fare clic per visualizzare i criteri di accesso avanzati.
  2. Selezionare la casella Abilita l'accesso a Crittografia dischi di Azure per la crittografia dei volumi.
  3. Selezionare Abilita l'accesso alle Macchine virtuali di Azure per la distribuzione o Abilita l'accesso a Azure Resource Manager per la distribuzione del modello, se necessario.
  4. Selezionare Salva.

Criteri di accesso avanzati per l'insieme di credenziali delle chiavi di Azure

Configurare una chiave di crittografia della chiave (facoltativo)

Se si desidera usare una chiave di crittografia delle chiavi (KEK) per aggiungere un ulteriore livello di sicurezza alle chiavi di crittografia, aggiungere una chiave KEK al proprio insieme di credenziali delle chiavi. Usare il cmdlet Add-AzKeyVaultKey per creare una chiave di crittografia della chiave nell'insieme di credenziali delle chiavi. È anche possibile importare una chiave di crittografia della chiave dal modulo di protezione hardware di gestione delle chiavi locale. Per altre informazioni, vedere Key Vault documentazione. Quando viene specificata una chiave di crittografia della chiave, Crittografia dischi di Azure la usa per eseguire il wrapping dei segreti di crittografia prima di scrivere nell'insieme di credenziali delle chiavi.

  • Quando si generano chiavi, usare un tipo di chiave RSA. Crittografia dischi di Azure non supporta ancora l'uso di tasti di curva ellittica.

  • È necessario applicare il controllo delle versioni agli URL del segreto dell'insieme di credenziali delle chiavi e della chiave di crittografia della chiave. Azure applica questa restrizione relativa al controllo delle versioni. Per informazioni sugli URL del segreto e della chiave di crittografia della chiave validi, vedere gli esempi seguenti:

  • Esempio di URL del segreto valido: https://contosovault.vault.azure.net/secrets/EncryptionSecretWithKek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  • Esempio di URL della chiave di crittografia della chiave valido: https://contosovault.vault.azure.net/keys/diskencryptionkek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  • Crittografia dischi di Azure non supporta la possibilità di specificare i numeri di porta come parte dei segreti dell'insieme di credenziali delle chiavi e degli URL della chiave di crittografia della chiave. Ecco alcuni esempi di URL di insiemi di credenziali delle chiavi non supportati e supportati:

  • URL dell'insieme di credenziali delle chiavi non accettabile https://contosovault.vault.azure.net:443/secrets/contososecret/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  • URL dell'insieme di credenziali delle chiavi accettabile: https://contosovault.vault.azure.net/secrets/contososecret/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Configurare una chiave di crittografia della chiave usando Azure PowerShell

Prima di usare lo script di PowerShell, esaminare i prerequisiti di Crittografia dischi di Azure per comprendere i passaggi dello script. Lo script di esempio potrebbe richiedere modifiche per l'ambiente in uso. Questo script crea tutti i prerequisiti di Crittografia dischi di Azure e crittografa una macchina virtuale IaaS esistente, eseguendo il wrapping della chiave di crittografia del disco tramite una chiave di crittografia della chiave.

# Step 1: Create a new resource group and key vault in the same location.
	 # Fill in 'MyLocation', 'MyKeyVaultResourceGroup', and 'MySecureVault' with your values.
	 # Use Get-AzLocation to get available locations and use the DisplayName.
	 # To use an existing resource group, comment out the line for New-AzResourceGroup

    $Loc = 'MyLocation';
    $KVRGname = 'MyKeyVaultResourceGroup';
    $KeyVaultName = 'MySecureVault';
    New-AzResourceGroup –Name  $KVRGname –Location $Loc;
    New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc;
    $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname;
    $KeyVaultResourceId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname).ResourceId;
    $diskEncryptionKeyVaultUrl = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname).VaultUri;

# Step 2: Create the AD application and service principal.
	 # Fill in 'MyAADClientSecret', "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
	 # MyApplicationHomePage and the MyApplicationUri can be any values that you choose.

	 $aadClientSecret =  'MyAADClientSecret';
    $aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force;
    $azureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -Password $aadClientSecretSec
    $servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role Contributor;
    $aadclient ID = $azureAdApplication.ApplicationId;

#Step 3: Enable the vault for disk encryption and set the access policy for the Microsoft Entra application.

	 Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption;
    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadclient ID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName  $KVRGname;

#Step 4: Create a new key in the key vault with the Add-AzKeyVaultKey cmdlet.
	 # Fill in 'MyKeyEncryptionKey' with your value.

	 $keyEncryptionKeyName = 'MyKeyEncryptionKey';
    Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName -Destination 'Software';
    $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;

#Step 5: Encrypt the disks of an existing IaaS VM
	 # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

	 $VMName = 'MySecureVM';
     $VMRGName = 'MyVirtualMachineResourceGroup';
    Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -Aadclient ID $aadclient ID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId;

Autenticazione basata su certificati (facoltativo)

Se si desidera usare l'autenticazione tramite certificato, è possibile caricarne uno nel Key Vault e distribuirlo al client. Prima di usare lo script di PowerShell, esaminare i prerequisiti di Crittografia dischi di Azure per comprendere i passaggi dello script. Lo script di esempio potrebbe richiedere modifiche per l'ambiente in uso.


# Fill in "MyKeyVaultResourceGroup", "MySecureVault", and 'MyLocation' ('My location' only if needed)

  $KVRGname = 'MyKeyVaultResourceGroup'
  $KeyVaultName= 'MySecureVault'

  # Create a key vault and set enabledForDiskEncryption property on it.
  # Comment out the next three lines if you already have an existing key vault enabled for encryption. No need to set 'My location' in this case.

  $Loc = 'MyLocation'
  New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
  Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption

  #Setting some variables with the key vault information
  $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
  $DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
  $KeyVaultResourceId = $KeyVault.ResourceId

  # Create the Microsoft Entra application and associate the certificate with it.
  # Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
  # MyApplicationHomePage and the MyApplicationUri can be any values you wish

  $CertPath = "C:\certificates\mycert.pfx"
  $CertPassword = "Password"
  $Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
  $CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())

  $AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
  $ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor

  $AADclient ID = $AzureAdApplication.ApplicationId
  $aadClientCertThumbprint= $cert.Thumbprint

  Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadclient ID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname

  # Upload the pfx file to the key vault.
  # Fill in "MyAADCert".

  $KeyVaultSecretName = "MyAADCert"
  $FileContentBytes = get-content $CertPath -Encoding Byte
  $FileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
          $JSONObject = @"
          {
              "data" : "$filecontentencoded",
              "dataType" : "pfx",
              "password" : "$CertPassword"
          }
"@

  $JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
  $JSONEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)

  #Set the secret and set the key vault policy for -EnabledForDeployment

  $Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
  Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
  Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment

  # Deploy the certificate to the VM
  # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

  $VMName = 'MySecureVM'
  $VMRGName = 'MyVirtualMachineResourceGroup'
  $CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
  $SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
  $VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
  $VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
  Update-AzVM -VM $VM -ResourceGroupName $VMRGName

  #Enable encryption on the VM by using Microsoft Entra client ID and the client certificate thumbprint

  Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -Aadclient ID $AADclient ID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId

Autenticazione basata su certificati e KEK (facoltativo)

Se si vuole usare l'autenticazione del certificato ed eseguire il wrapping della chiave di crittografia con una chiave kek, è possibile usare lo script seguente come esempio. Prima di utilizzare lo script di PowerShell, esaminare tutti i prerequisiti precedenti di Crittografia dischi di Azure per comprendere i passaggi descritti nello script. Lo script di esempio potrebbe richiedere modifiche per l'ambiente in uso.

# Fill in 'MyKeyVaultResourceGroup', 'MySecureVault', and 'MyLocation' (if needed)

   $KVRGname = 'MyKeyVaultResourceGroup'
   $KeyVaultName= 'MySecureVault'

   # Create a key vault and set enabledForDiskEncryption property on it.
   # Comment out the next three lines if you already have an existing key vault enabled for encryption.

   $Loc = 'MyLocation'
   New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption

   # Create the Microsoft Entra application and associate the certificate with it.
   # Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
   # MyApplicationHomePage and the MyApplicationUri can be any values you wish

   $CertPath = "C:\certificates\mycert.pfx"
   $CertPassword = "Password"
   $Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
   $CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())

   $AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
   $ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor

   $AADclient ID = $AzureAdApplication.ApplicationId
   $aadClientCertThumbprint= $cert.Thumbprint

   ## Give access for setting secrets and wrapping keys
   Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadclient ID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname

   # Upload the pfx file to the key vault.
   # Fill in "MyAADCert".

   $KeyVaultSecretName = "MyAADCert"
   $FileContentBytes = get-content $CertPath -Encoding Byte
   $FileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
           $JSONObject = @"
           {
               "data" : "$filecontentencoded",
               "dataType" : "pfx",
               "password" : "$CertPassword"
           }
"@

   $JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
   $JSONEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)

   #Set the secret and set the key vault policy for deployment

   $Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
   Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment

   #Setting some variables with the key vault information and generating a KEK
   # Fill in 'KEKName'

   $KEKName ='KEKName'
   $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
   $DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
   $KeyVaultResourceId = $KeyVault.ResourceId
   $KEK = Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $KEKName -Destination "Software"
   $KeyEncryptionKeyUrl = $KEK.Key.kid



   # Deploy the certificate to the VM
   # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

   $VMName = 'MySecureVM';
   $VMRGName = 'MyVirtualMachineResourceGroup';
   $CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
   $SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
   $VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
   $VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
   Update-AzVM -VM $VM -ResourceGroupName $VMRGName

   #Enable encryption on the VM by using Microsoft Entra client ID and the client certificate thumbprint

   Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -Aadclient ID $AADclient ID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId

Passaggi successivi

Abilitare Crittografia dischi di Azure con Microsoft Entra ID nelle macchine virtuali Windows (versione precedente)