De Azure CLI gebruiken om end-to-end-versleuteling in te schakelen met behulp van versleuteling op de host
Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️
Wanneer u versleuteling op de host inschakelt, worden gegevens die zijn opgeslagen op de VM-host in rust versleuteld en stromen versleuteld naar de Storage-service. Zie Versleuteling op host en andere versleutelingstypen voor beheerde schijven voor conceptuele informatie over versleuteling op de host: end-to-end-versleuteling voor uw VM-gegevens.
Beperkingen
- Ondersteund voor 4k sectorgrootte Ultra Disks en Premium SSD v2.
- Alleen ondersteund op 512e sectorgrootte Ultra Disks en Premium SSD v2 als ze na 5/13/2023 zijn gemaakt.
- Voor schijven die vóór deze datum zijn gemaakt, maakt u een momentopname van de schijf en maakt u een nieuwe schijf met behulp van de momentopname.
- Kan niet worden ingeschakeld op virtuele machines (VM's) of virtuele-machineschaalsets waarvoor Momenteel of ooit Azure Disk Encryption is ingeschakeld.
- Azure Disk Encryption kan niet worden ingeschakeld op schijven waarvoor versleuteling is ingeschakeld op de host.
- De versleuteling kan worden ingeschakeld voor bestaande virtuele-machineschaalsets. Alleen nieuwe VIRTUELE machines die zijn gemaakt nadat de versleuteling is ingeschakeld, worden echter automatisch versleuteld.
- Bestaande VM's moeten de toewijzing ongedaan worden gemaakt en opnieuw worden toegewezen om te kunnen worden versleuteld.
Ondersteunde VM-grootten
De volledige lijst met ondersteunde VM-grootten kan programmatisch worden opgehaald. Zie de sectie Ondersteunde VM-grootten zoeken voor meer informatie over het programmatisch ophalen. Het upgraden van de VM-grootte resulteert in validatie om te controleren of de nieuwe VM-grootte de functie EncryptionAtHost ondersteunt.
Vereisten
U moet de functie voor uw abonnement inschakelen voordat u de eigenschap EncryptionAtHost voor uw VM/VMSS gebruikt. Gebruik de volgende stappen om de functie voor uw abonnement in te schakelen:
- Voer de volgende opdracht uit om de functie voor uw abonnement te registreren
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- Controleer of de registratiestatus is geregistreerd (duurt enkele minuten) met behulp van de onderstaande opdracht voordat u de functie probeert.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Resources maken
Notitie
Deze sectie is alleen van toepassing op configuraties met door de klant beheerde sleutels. Als u door het platform beheerde sleutels gebruikt, kunt u doorgaan naar de sectie Voorbeeldscripts .
Zodra de functie is ingeschakeld, moet u een DiskEncryptionSet en een Door Azure Key Vault beheerde HSM instellen.
Azure Key Vault
- Installeer de nieuwste Azure CLI en meld u aan bij een Azure-account met az login.
- Maak een Azure Key Vault en versleutelingssleutel.
Wanneer u de Sleutelkluis maakt, moet u beveiliging tegen opschonen inschakelen. Beveiliging tegen opschonen zorgt ervoor dat een verwijderde sleutel pas definitief kan worden verwijderd als de bewaarperiode is verstreken. Met deze instellingen kunt u geen gegevens kwijtraken vanwege onbedoelde verwijdering. Deze instellingen zijn verplicht wanneer u een sleutelkluis gebruikt voor het versleutelen van beheerde schijven.
Belangrijk
Als u dit doet, ondervindt u mogelijk problemen bij het toewijzen van extra schijven aan de resource in Azure Portal.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
- Maak een DiskEncryptionSet. U kunt inschakelen voor het inschakelen van automatische sleutelrotatie gelijk aan waar instellen om automatische rotatie van de sleutel in te schakelen. Wanneer u automatische rotatie inschakelt, worden alle beheerde schijven, momentopnamen en installatiekopieën die naar de schijfversleuteling verwijzen, automatisch bijgewerkt om binnen één uur de nieuwe versie van de sleutel te gebruiken.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
- Verdeel de DiskEncryptionSet-resource toegang tot de sleutelkluis.
Notitie
Het kan enkele minuten duren voordat Azure de identiteit van uw DiskEncryptionSet in uw Microsoft Entra-id heeft gemaakt. Als er een foutbericht wordt weergegeven als 'Kan het Active Directory-object niet vinden' wanneer u de volgende opdracht uitvoert, wacht u enkele minuten en probeert u het opnieuw.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
Beheerde HSM van Azure Key Vault
U kunt ook een beheerde HSM gebruiken om uw sleutels te verwerken.
Hiervoor moet u de volgende vereisten voltooien:
- Installeer de nieuwste Azure CLI en meld u aan bij een Azure-account in met az login.
- Een beheerde HSM maken en configureren.
- Wijs machtigingen toe aan een gebruiker, zodat ze uw beheerde HSM kunnen beheren.
Configuratie
Nadat u een beheerde HSM hebt gemaakt en machtigingen hebt toegevoegd, schakelt u opschoningsbeveiliging in en maakt u een versleutelingssleutel.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
Maak vervolgens een DiskEncryptionSet.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
Verleen ten slotte de DiskEncryptionSet toegang tot de beheerde HSM.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
Voorbeeldscripts
Een VIRTUELE machine maken met versleuteling op de host ingeschakeld met door de klant beheerde sleutels
Maak een VIRTUELE machine met beheerde schijven met behulp van de resource-URI van de DiskEncryptionSet die u eerder hebt gemaakt om de cache van besturingssysteem- en gegevensschijven te versleutelen met door de klant beheerde sleutels. De tijdelijke schijven worden versleuteld met door het platform beheerde sleutels.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 128 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Een VIRTUELE machine maken met versleuteling op de host ingeschakeld met door het platform beheerde sleutels
Maak een VIRTUELE machine met versleuteling op de host die is ingeschakeld voor het versleutelen van de cache van besturingssysteem-/gegevensschijven en tijdelijke schijven met door platform beheerde sleutels.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \
Een VM bijwerken om versleuteling op host in te schakelen
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Controleer de status van versleuteling op de host voor een VM
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
Een VM bijwerken om versleuteling op host uit te schakelen
U moet de toewijzing van uw VIRTUELE machine ongedaan maken voordat u versleuteling op de host kunt uitschakelen.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
Een virtuele-machineschaalset maken met versleuteling op host ingeschakeld met door de klant beheerde sleutels
Maak een virtuele-machineschaalset met beheerde schijven met behulp van de resource-URI van de DiskEncryptionSet die u eerder hebt gemaakt om de cache van besturingssysteem- en gegevensschijven te versleutelen met door de klant beheerde sleutels. De tijdelijke schijven worden versleuteld met door het platform beheerde sleutels.
Belangrijk
Vanaf november 2023 worden VM-schaalsets die zijn gemaakt met PowerShell en Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Voor meer informatie over deze wijziging en welke acties u moet ondernemen, gaat u naar Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Een virtuele-machineschaalset maken met versleuteling op host ingeschakeld met door platform beheerde sleutels
Maak een virtuele-machineschaalset met versleuteling op de host die is ingeschakeld voor het versleutelen van de cache van besturingssysteem-/gegevensschijven en tijdelijke schijven met door platform beheerde sleutels.
Belangrijk
Vanaf november 2023 worden VM-schaalsets die zijn gemaakt met PowerShell en Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Voor meer informatie over deze wijziging en welke acties u moet ondernemen, gaat u naar Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \
Een virtuele-machineschaalset bijwerken om versleuteling op de host in te schakelen
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
Controleer de status van versleuteling op de host voor een virtuele-machineschaalset
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
Een virtuele-machineschaalset bijwerken om versleuteling op host uit te schakelen
U kunt versleuteling uitschakelen op de host in uw virtuele-machineschaalset, maar dit heeft alleen invloed op vm's die zijn gemaakt nadat u versleuteling op de host hebt uitgeschakeld. Voor bestaande VM's moet u de toewijzing van de VIRTUELE machine ongedaan maken, versleuteling uitschakelen op de host op die afzonderlijke VM en vervolgens de VIRTUELE machine opnieuw implementeren.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
Ondersteunde VM-grootten zoeken
Verouderde VM-grootten worden niet ondersteund. U vindt de lijst met ondersteunde VM-grootten met behulp van resource-SKU-API's of de Azure PowerShell-module. U kunt de ondersteunde grootten niet vinden met behulp van de CLI.
Wanneer u de Resource Skus-API aanroept, controleert u of de EncryptionAtHostSupported
mogelijkheid is ingesteld op True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUSEUAP"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
Gebruik voor de Azure PowerShell-module de cmdlet Get-AzComputeResourceSku .
$vmSizes=Get-AzComputeResourceSku | where{$_.ResourceType -eq 'virtualMachines' -and $_.Locations.Contains('CentralUSEUAP')}
foreach($vmSize in $vmSizes)
{
foreach($capability in $vmSize.capabilities)
{
if($capability.Name -eq 'EncryptionAtHostSupported' -and $capability.Value -eq 'true')
{
$vmSize
}
}
}
Volgende stappen
Nu u deze resources hebt gemaakt en geconfigureerd, kunt u deze gebruiken om uw beheerde schijven te beveiligen. De volgende koppeling bevat voorbeeldscripts, elk met een respectieve scenario, die u kunt gebruiken om uw beheerde schijven te beveiligen.