Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Applica a: ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi
archiviazione su disco di Azure supporta la crittografia lato server con chiavi gestite dal cliente per i dischi gestiti dal cliente. Per informazioni concettuali sulle chiavi gestite dal cliente e altri tipi di crittografia del disco gestito, vedere Chiavi gestite dal cliente.
Restrizioni
Per il momento, le chiavi gestite dal cliente presentano le restrizioni seguenti:
- Se questa funzionalità è abilitata per un disco con snapshot incrementali, non può essere disabilitata su tale disco o sui relativi snapshot. Per risolvere questo problema, copiare tutti i dati in un disco gestito completamente diverso che non usa chiavi gestite dal cliente. A tale scopo, è possibile usare il modulo interfaccia della riga di comando di Azure o il modulo Azure PowerShell.
- Un disco e tutti gli snapshot incrementali associati devono avere lo stesso set di crittografia del disco.
- Sono supportate solo chiavi RSA software e HSM di dimensioni a 2.048 bit, a 3.072 bit e a 4.096 bit, senza altre chiavi o dimensioni.
- Le chiavi HSM richiedono il livello Premium degli Azure Key Vault.
- Solo per Dischi Ultra e dischi SSD Premium v2:
- (Anteprima) Le identità gestite assegnate dall'utente sono disponibili per dischi Ultra e dischi SSD Premium v2 crittografati con chiavi gestite dal cliente.
- La maggior parte delle risorse correlate alle chiavi gestite dal cliente (set di crittografia dischi, macchine virtuali, dischi e snapshot) deve trovarsi nella stessa sottoscrizione e nella stessa area.
- Azure Key Vault può essere usato da una sottoscrizione diversa, ma deve trovarsi nella stessa area del set di crittografia del disco. Azure Key Vault in tenant Microsoft Entra diversi sono supportati per i dischi gestiti. Per informazioni dettagliate, vedere Crittografare i dischi gestiti con chiavi gestite dal cliente tra tenant.
- I dischi crittografati con chiavi gestite dal cliente possono passare a un altro gruppo di risorse solo se la macchina virtuale a cui sono collegati è deallocata.
- Non è possibile spostare dischi, snapshot e immagini crittografati con chiavi gestite dal cliente tra sottoscrizioni.
- I dischi gestiti attualmente o precedentemente crittografati con Crittografia dischi di Azure non possono essere crittografati usando chiavi gestite dal cliente.
- È possibile creare fino a 5000 set di crittografia dei dischi per area per sottoscrizione.
- Per informazioni sull'uso di chiavi gestite dal cliente con raccolte di immagini condivise, vedere Anteprima: Usare chiavi gestite dal cliente per crittografare le immagini.
Configurare Azure Key Vault e un set di crittografia del disco con rotazione automatica delle chiavi
Per usare le chiavi gestite dal cliente con la crittografia lato server, configurare un Azure Key Vault e un set di crittografia del disco.
Installare la versione Azure PowerShell più recente e accedere all'account Azure con
Connect-AzAccount.Creare un'istanza di Azure Key Vault e chiave di crittografia.
Quando si crea l'istanza di Key Vault, è necessario abilitare la protezione dall'eliminazione. La protezione dall'eliminazione garantisce che una chiave eliminata non possa essere eliminata definitivamente fino a quando non scade il periodo di conservazione. Queste impostazioni consentono di evitare la perdita di dati a causa dell'eliminazione accidentale. Queste impostazioni sono obbligatorie quando si usa un Key Vault per crittografare i dischi gestiti.
$ResourceGroupName="yourResourceGroupName" $LocationName="westcentralus" $keyVaultName="yourKeyVaultName" $keyName="yourKeyName" $keyDestination="Software" $diskEncryptionSetName="yourDiskEncryptionSetName" $keyVault = New-AzKeyVault -Name $keyVaultName ` -ResourceGroupName $ResourceGroupName ` -Location $LocationName ` -EnablePurgeProtection $key = Add-AzKeyVaultKey -VaultName $keyVaultName ` -Name $keyName ` -Destination $keyDestination Set-AzKeyVaultKeyRotationPolicy -VaultName $keyVaultName -KeyName $keyName -ExpiresIn P2Y -KeyRotationLifetimeAction @{Action="Rotate";TimeBeforeExpiry = "P18M"}Creare un set di crittografia del disco. Questo script imposta RotationToLatestKeyVersionEnabled uguale a $true per abilitare la rotazione automatica della chiave. Quando si abilita la rotazione automatica, il sistema aggiorna automaticamente tutti i dischi gestiti, gli snapshot e le immagini che fanno riferimento al set di crittografia del disco per usare la nuova versione della chiave entro un'ora.
$desConfig=New-AzDiskEncryptionSetConfig -Location $LocationName ` -SourceVaultId $keyVault.ResourceId ` -KeyUrl $key.Key.Kid ` -IdentityType SystemAssigned ` -RotationToLatestKeyVersionEnabled $true $des=New-AzDiskEncryptionSet -Name $diskEncryptionSetName ` -ResourceGroupName $ResourceGroupName ` -InputObject $desConfigConcedere l'accesso all'insieme di credenziali delle chiavi al set di crittografia dei dischi.
Nota
La creazione dell'identità del set di crittografia del disco in Azure Microsoft Entra ID potrebbe richiedere alcuni minuti. Se viene visualizzato un errore simile a "Impossibile trovare l'oggetto Active Directory" quando si esegue il comando seguente, attendere alcuni minuti e riprovare.
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $des.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get
Usare un Key Vault in una sottoscrizione diversa
In alternativa, è possibile gestire centralmente gli insiemi di credenziali delle chiavi Azure da una singola sottoscrizione e usare le chiavi archiviate nel Key Vault per crittografare dischi gestiti e snapshot in altre sottoscrizioni dell'organizzazione. Ciò consente al team di sicurezza di gestire e applicare facilmente criteri di sicurezza affidabili a una singola sottoscrizione.
Importante
Per questa configurazione, sia il Key Vault che il set di crittografia del disco devono trovarsi nella stessa area e usare lo stesso tenant.
Lo script seguente è un esempio di come configurare un set di crittografia del disco per l'uso di una chiave da un Key Vault in una sottoscrizione diversa, ma nella stessa area:
$sourceSubscriptionId="<sourceSubID>"
$sourceKeyVaultName="<sourceKVName>"
$sourceKeyName="<sourceKeyName>"
$targetSubscriptionId="<targetSubID>"
$targetResourceGroupName="<targetRGName>"
$targetDiskEncryptionSetName="<targetDiskEncSetName>"
$location="<targetRegion>"
Set-AzContext -Subscription $sourceSubscriptionId
$key = Get-AzKeyVaultKey -VaultName $sourceKeyVaultName -Name $sourceKeyName
Set-AzContext -Subscription $targetSubscriptionId
$desConfig=New-AzDiskEncryptionSetConfig -Location $location `
-KeyUrl $key.Key.Kid `
-IdentityType SystemAssigned `
-RotationToLatestKeyVersionEnabled $true
$des=New-AzDiskEncryptionSet -Name $targetDiskEncryptionSetName `
-ResourceGroupName $targetResourceGroupName `
-InputObject $desConfig
Gestire le chiavi gestite dal cliente per Azure dischi gestiti con PowerShell
Dopo aver creato e configurato le risorse necessarie, usare l'esempio seguente Azure PowerShell script per creare macchine virtuali e dischi crittografati, crittografare dischi gestiti e set di scalabilità esistenti, ruotare una chiave del set di crittografia del disco e controllare lo stato della crittografia lato server di un disco.
Creare una macchina virtuale con un'immagine del Marketplace, crittografando il disco del sistema operativo e i dischi dati con chiavi gestite dal cliente
Prima di eseguire lo script, specificare un gruppo di risorse e un set di crittografia dischi esistenti, insieme ai valori per le credenziali di amministratore della macchina virtuale, l'area, le dimensioni della macchina virtuale e la rete virtuale. Lo script crea la rete virtuale, l'interfaccia di rete e la macchina virtuale da un'immagine Windows Server Marketplace.
Get-AzDiskEncryptionSet Usa per recuperare il set di crittografia del disco e New-AzVM per creare la macchina virtuale con un disco del sistema operativo crittografato e un disco dati crittografato da 128 GiB. Sostituire i valori di esempio con i propri parametri e quindi eseguire lo script.
$VMLocalAdminUser = "yourVMLocalAdminUserName"
$VMLocalAdminSecurePassword = ConvertTo-SecureString <password> -AsPlainText -Force
$LocationName = "yourRegion"
$ResourceGroupName = "yourResourceGroupName"
$ComputerName = "yourComputerName"
$VMName = "yourVMName"
$VMSize = "yourVMSize"
$diskEncryptionSetName="yourdiskEncryptionSetName"
$NetworkName = "yourNetworkName"
$NICName = "yourNICName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$NIC = New-AzNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2012-R2-Datacenter' -Version latest
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $($VMName +"_OSDisk") -DiskEncryptionSetId $diskEncryptionSet.Id -CreateOption FromImage
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name $($VMName +"DataDisk1") -DiskSizeInGB 128 -StorageAccountType Premium_LRS -CreateOption Empty -Lun 0 -DiskEncryptionSetId $diskEncryptionSet.Id
New-AzVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose
Creare un disco vuoto crittografato usando la crittografia lato server con chiavi gestite dal cliente e associarlo a una macchina virtuale
Lo script usa Add-AzVMDataDisk per aggiungere il disco dati crittografato alla configurazione della macchina virtuale e Update-AzVM per applicare la configurazione. Sostituire i valori di esempio con i propri parametri e quindi eseguire lo script.
$vmName = "yourVMName"
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$diskName = "yourDiskName"
$diskSKU = "Premium_LRS"
$diskSizeinGiB = 30
$diskLUN = 1
$diskEncryptionSetName="yourDiskEncryptionSetName"
$vm = Get-AzVM -Name $vmName -ResourceGroupName $ResourceGroupName
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
$vm = Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Empty -DiskSizeInGB $diskSizeinGiB -StorageAccountType $diskSKU -Lun $diskLUN -DiskEncryptionSetId $diskEncryptionSet.Id
Update-AzVM -ResourceGroupName $ResourceGroupName -VM $vm
Crittografare i dischi gestiti esistenti
I dischi esistenti non devono essere collegati a una macchina virtuale in esecuzione. Lo script usa New-AzDiskUpdateConfig e Update-AzDisk per configurare le chiavi gestite dal cliente per il disco.
$rgName = "yourResourceGroupName"
$diskName = "yourDiskName"
$diskEncryptionSetName = "yourDiskEncryptionSetName"
$diskEncryptionSet = Get-AzDiskEncryptionSet -ResourceGroupName $rgName -Name $diskEncryptionSetName
New-AzDiskUpdateConfig -EncryptionType "EncryptionAtRestWithCustomerKey" -DiskEncryptionSetId $diskEncryptionSet.Id | Update-AzDisk -ResourceGroupName $rgName -DiskName $diskName
Crittografare un set di scalabilità di macchine virtuali esistente (modalità di orchestrazione uniforme) utilizzando la crittografia lato server e le chiavi gestite dal cliente
Questo script funzionerà solo per i set di scalabilità in modalità di orchestrazione uniforme. Per i set di scalabilità in modalità di orchestrazione flessibile, seguire Crittografare i dischi gestiti esistenti per ogni macchina virtuale.
Lo script usa Get-AzVmss per recuperare il set di scalabilità e Update-AzVmss per applicare il set di crittografia del disco. Sostituire i valori di esempio con i propri parametri e quindi eseguire lo script.
#set variables
$vmssname = "name of the vmss that is already created"
$diskencryptionsetname = "name of the diskencryptionset already created"
$vmssrgname = "vmss resourcegroup name"
$diskencryptionsetrgname = "diskencryptionset resourcegroup name"
#get vmss object and create diskencryptionset object attach to vmss os disk
$ssevmss = get-azvmss -ResourceGroupName $vmssrgname -VMScaleSetName $vmssname
$ssevmss.VirtualMachineProfile.StorageProfile.OsDisk.ManagedDisk.DiskEncryptionSet = New-Object -TypeName Microsoft.Azure.Management.Compute.Models.DiskEncryptionSetParameters
#get diskencryption object and retrieve the resource id
$des = Get-AzDiskEncryptionSet -ResourceGroupName $diskencryptionsetrgname -Name $diskencryptionsetname
write-host "the diskencryptionset resource id is:" $des.Id
#associate DES resource id to os disk and update vmss
$ssevmss.VirtualMachineProfile.StorageProfile.OsDisk.ManagedDisk.DiskEncryptionSet.id = $des.Id
$ssevmss | update-azvmss
Creare un set di scalabilità di macchine virtuali usando un'immagine del Marketplace, crittografando il sistema operativo e i dischi dati con chiavi gestite dal cliente
Prima di eseguire lo script, specificare un gruppo di risorse e un set di crittografia del disco esistenti, insieme ai valori per le credenziali di amministratore, l'area, le dimensioni della macchina virtuale e la rete virtuale. Lo script crea la rete virtuale e usa New-AzVmss per creare un set di scalabilità di macchine virtuali uniforme a due istanze da un'immagine Windows Server Marketplace. I dischi del sistema operativo del set di scalabilità e i dischi dati 128-GiB usano il set di crittografia del disco. Sostituire i valori di esempio con i propri parametri e quindi eseguire lo script.
Importante
A partire da novembre 2023, i set di scalabilità delle macchine virtuali creati con PowerShell e interfaccia della riga di comando di Azure utilizzeranno per impostazione predefinita la modalità di orchestrazione flessibile se non è specificata alcuna modalità di orchestrazione. Per ulteriori informazioni su questa modifica e sulle azioni da intraprendere, consultare Modifica significativa per gli utenti di PowerShell/CLI di VMSS - Microsoft Community Hub
$VMLocalAdminUser = "yourLocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString Password@123 -AsPlainText -Force
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$ComputerNamePrefix = "yourComputerNamePrefix"
$VMScaleSetName = "yourVMSSName"
$VMSize = "Standard_DS3_v2"
$diskEncryptionSetName="yourDiskEncryptionSetName"
$NetworkName = "yourVNETName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$ipConfig = New-AzVmssIpConfig -Name "myIPConfig" -SubnetId $Vnet.Subnets[0].Id
$VMSS = New-AzVmssConfig -Location $LocationName -SkuCapacity 2 -SkuName $VMSize -UpgradePolicyMode 'Automatic' -OrchestrationMode 'Uniform'
$VMSS = Add-AzVmssNetworkInterfaceConfiguration -Name "myVMSSNetworkConfig" -VirtualMachineScaleSet $VMSS -Primary $true -IpConfiguration $ipConfig
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
# Enable encryption at rest with customer managed keys for OS disk by setting DiskEncryptionSetId property
$VMSS = Set-AzVmssStorageProfile $VMSS -OsDiskCreateOption "FromImage" -DiskEncryptionSetId $diskEncryptionSet.Id -ImageReferenceOffer 'WindowsServer' -ImageReferenceSku '2012-R2-Datacenter' -ImageReferenceVersion latest -ImageReferencePublisher 'MicrosoftWindowsServer'
$VMSS = Set-AzVmssOsProfile $VMSS -ComputerNamePrefix $ComputerNamePrefix -AdminUsername $VMLocalAdminUser -AdminPassword $VMLocalAdminSecurePassword
# Add a data disk encrypted at rest with customer managed keys by setting DiskEncryptionSetId property
$VMSS = Add-AzVmssDataDisk -VirtualMachineScaleSet $VMSS -CreateOption Empty -Lun 1 -DiskSizeGB 128 -StorageAccountType Premium_LRS -DiskEncryptionSetId $diskEncryptionSet.Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
New-AzVmss -VirtualMachineScaleSet $VMSS -ResourceGroupName $ResourceGroupName -VMScaleSetName $VMScaleSetName
Modificare la chiave di un set di crittografia del disco per ruotare la chiave per le risorse a cui si fa riferimento
Lo script usa Update-AzDiskEncryptionSet per modificare la chiave a cui fa riferimento il set di crittografia del disco. Sostituire i valori di esempio con i propri parametri e quindi eseguire lo script.
$ResourceGroupName="yourResourceGroupName"
$keyVaultName="yourKeyVaultName"
$keyName="yourKeyName"
$diskEncryptionSetName="yourDiskEncryptionSetName"
$keyVault = Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $ResourceGroupName
$keyVaultKey = Get-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName
Update-AzDiskEncryptionSet -Name $diskEncryptionSetName -ResourceGroupName $ResourceGroupName -SourceVaultId $keyVault.ResourceId -KeyUrl $keyVaultKey.Id
Trovare lo stato di crittografia lato server di un disco
Lo script usa Get-AzDisk per recuperare il tipo di crittografia lato server del disco.
$ResourceGroupName="yourResourceGroupName"
$DiskName="yourDiskName"
$disk=Get-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName
$disk.Encryption.Type
Per i dischi configurati dagli esempi precedenti, EncryptionAtRestWithCustomerKey indica la crittografia lato server con una chiave gestita dal cliente.
EncryptionAtRestWithPlatformAndCustomerKeys indica la doppia crittografia con chiavi gestite dal cliente e gestite dalla piattaforma.
Importante
Le chiavi gestite dal cliente si basano sulle identità gestite per le risorse Azure, una funzionalità di Microsoft Entra ID. Quando si configurano le chiavi gestite dal cliente, un'identità gestita viene assegnata automaticamente alle risorse dietro le quinte. Se successivamente si sposta la sottoscrizione, il gruppo di risorse o il disco gestito da una directory Microsoft Entra a un'altra, l'identità gestita associata ai dischi gestiti non viene trasferita al nuovo tenant, quindi le chiavi gestite dal cliente potrebbero non funzionare più. Per ulteriori informazioni, vedere Trasferimento di una sottoscrizione tra directory di Microsoft Entra.
Passaggi successivi
- Esplorare i modelli di Azure Resource Manager per la creazione di dischi crittografati con chiavi gestite dal cliente
- Replicare le macchine virtuali con i dischi abilitati per le chiavi gestite dal cliente
- Impostare il ripristino di emergenza di macchine virtuali VMware per Azure con PowerShell
- Configura il ripristino di emergenza su Azure per le macchine virtuali Hyper-V con PowerShell e Azure Resource Manager