Použití Azure CLI k povolení kompletního šifrování pomocí šifrování na hostiteli
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
Když povolíte šifrování na hostiteli, data uložená na hostiteli virtuálního počítače se šifrují v klidovém stavu a toky zašifrované do služby Storage. Koncepční informace o šifrování na hostiteli a dalších typech šifrování spravovaných disků najdete v tématu Šifrování na hostiteli – kompletní šifrování dat virtuálního počítače.
Omezení
- Podporováno pro disky Ultra s velikostí 4k sektorů a SSD úrovně Premium v2.
- Podporuje se pouze na 512e sektorech velikost disků Ultra a SSD úrovně Premium v2, pokud byly vytvořeny po 13. 5. 2023.
- U disků vytvořených před tímto datem vytvořte snímek disku a vytvořte nový disk pomocí snímku.
- Na virtuálních počítačích nebo ve škálovacích sadách virtuálních počítačů, které v současné době nebo kdy měly povolenou službu Azure Disk Encryption, není možné povolit.
- Azure Disk Encryption nejde povolit na discích s povoleným šifrováním na hostiteli.
- Šifrování je možné povolit ve stávajících škálovacích sadách virtuálních počítačů. Po povolení šifrování se ale automaticky zašifrují jenom nové virtuální počítače vytvořené po povolení šifrování.
- Aby bylo možné šifrovat stávající virtuální počítače, musí být uvolněné a přerozdělené.
Podporované velikosti virtuálních počítačů
Úplný seznam podporovaných velikostí virtuálních počítačů je možné načíst prostřednictvím kódu programu. Informace o tom, jak je načíst prostřednictvím kódu programu, najdete v části Vyhledání podporovaných velikostí virtuálních počítačů . Upgradem velikosti virtuálního počítače se ověří, jestli nová velikost virtuálního počítače podporuje funkci EncryptionAtHost.
Požadavky
Před použitím vlastnosti EncryptionAtHost pro váš virtuální počítač nebo VMSS musíte tuto funkci pro své předplatné povolit. Pomocí následujících kroků povolte funkci pro vaše předplatné:
- Spuštěním následujícího příkazu zaregistrujte funkci pro vaše předplatné.
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- Před vyzkoušením funkce zkontrolujte, jestli je stav registrace zaregistrovaný (trvá několik minut) pomocí následujícího příkazu.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Vytvoření zdrojů
Poznámka:
Tato část se vztahuje pouze na konfigurace s klíči spravovanými zákazníkem. Pokud používáte klíče spravované platformou, můžete přeskočit do části Ukázkové skripty .
Jakmile je tato funkce povolená, musíte nastavit DiskEncryptionSet a azure Key Vault nebo spravovaný HSM služby Azure Key Vault.
Azure Key Vault
- Nainstalujte nejnovější Azure CLI a přihlaste se k účtu Azure pomocí příkazu az login.
- Vytvoření služby Azure Key Vault a šifrovacího klíče
Při vytváření služby Key Vault je nutné povolit ochranu před vymazáním. Ochrana před vymazáním zajistí, že odstraněný klíč nebude možné trvale odstranit, dokud doba uchovávání nepřesběne. Tato nastavení chrání před ztrátou dat z důvodu náhodného odstranění. Tato nastavení jsou povinná při použití služby Key Vault pro šifrování spravovaných disků.
Důležité
Pokud to uděláte, nemusí dojít k problémům při přiřazování dalších disků k prostředku na webu 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
- Vytvořte diskEncryptionSet. Pokud chcete povolit automatické obměně klíče, můžete nastavit automatické obměně klíče rovnou hodnotě true. Když povolíte automatickou obměnu, systém automaticky aktualizuje všechny spravované disky, snímky a image odkazující na sadu šifrování disku tak, aby používal novou verzi klíče do jedné hodiny.
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
- Udělte prostředku DiskEncryptionSet přístup k trezoru klíčů.
Poznámka:
Vytvoření identity diskEncryptionSet ve vašem ID Microsoft Entra může trvat několik minut. Pokud se při spuštění následujícího příkazu zobrazí chyba Typu Nejde najít objekt služby Active Directory, počkejte několik minut a zkuste to znovu.
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
Managed HSM služby Azure Key Vault
Případně můžete ke zpracování klíčů použít spravovaný HSM.
K tomu je nutné splnit následující požadavky:
- Nainstalujte nejnovější Azure CLI a přihlaste se k účtu Azure pomocí příkazu az login.
- Vytvoření a konfigurace spravovaného HSM
- Přiřaďte uživateli oprávnění, aby mohli spravovat spravovaný HSM.
Konfigurace
Po vytvoření spravovaného HSM a přidání oprávnění povolte ochranu před vymazáním a vytvořte šifrovací klíč.
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
Pak vytvořte 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
Nakonec udělte DiskEncryptionSet přístup ke spravovanému 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
Ukázkové skripty
Vytvoření virtuálního počítače s šifrováním na hostiteli s využitím klíčů spravovaných zákazníkem
Vytvořte virtuální počítač se spravovanými disky pomocí identifikátoru URI prostředku diskEncryptionSet vytvořeného dříve pro šifrování mezipaměti operačního systému a datových disků pomocí klíčů spravovaných zákazníkem. Dočasné disky jsou šifrované pomocí klíčů spravovaných platformou.
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
Vytvoření virtuálního počítače s šifrováním na hostiteli s využitím klíčů spravovaných platformou
Vytvořte virtuální počítač s šifrováním na hostiteli, který umožňuje šifrovat mezipaměť disků s operačním systémem a datových disků a dočasné disky pomocí klíčů spravovaných platformou.
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 \
Aktualizace virtuálního počítače pro povolení šifrování na hostiteli
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
Kontrola stavu šifrování na hostiteli pro virtuální počítač
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
Aktualizace virtuálního počítače, aby se zakázalo šifrování na hostiteli
Před zakázáním šifrování na hostiteli musíte virtuální počítač uvolnit.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
Vytvoření škálovací sady virtuálních počítačů s šifrováním na hostiteli s využitím klíčů spravovaných zákazníkem
Vytvořte škálovací sadu virtuálních počítačů se spravovanými disky pomocí identifikátoru URI prostředku diskEncryptionSet vytvořeného dříve pro šifrování mezipaměti operačního systému a datových disků pomocí klíčů spravovaných zákazníkem. Dočasné disky jsou šifrované pomocí klíčů spravovaných platformou.
Důležité
Od listopadu 2023 se škálovací sady virtuálních počítačů vytvořené pomocí PowerShellu a Azure CLI ve výchozím nastavení nastaví do flexibilního režimu orchestrace, pokud není zadaný žádný režim orchestrace. Další informace o této změně a akcích, které byste měli provést, najdete v tématu Zásadní změna pro zákazníky PowerShellu nebo rozhraní příkazového řádku VMSS – 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
Vytvoření škálovací sady virtuálních počítačů s šifrováním na hostiteli s využitím klíčů spravovaných platformou
Vytvořte škálovací sadu virtuálních počítačů s šifrováním na hostiteli, která umožňuje šifrování mezipaměti disků s operačním systémem a datových disků a dočasných disků pomocí klíčů spravovaných platformou.
Důležité
Od listopadu 2023 se škálovací sady virtuálních počítačů vytvořené pomocí PowerShellu a Azure CLI ve výchozím nastavení nastaví do flexibilního režimu orchestrace, pokud není zadaný žádný režim orchestrace. Další informace o této změně a akcích, které byste měli provést, najdete v tématu Zásadní změna pro zákazníky PowerShellu nebo rozhraní příkazového řádku VMSS – 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 \
Aktualizace škálovací sady virtuálních počítačů pro povolení šifrování na hostiteli
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
Kontrola stavu šifrování na hostiteli pro škálovací sadu virtuálních počítačů
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
Aktualizace škálovací sady virtuálních počítačů za účelem zakázání šifrování na hostiteli
Šifrování na hostiteli ve škálovací sadě virtuálních počítačů můžete zakázat, ale to ovlivní jenom virtuální počítače vytvořené po zakázání šifrování na hostiteli. U existujících virtuálních počítačů musíte virtuální počítač uvolnit, zakázat šifrování na hostiteli na daném virtuálním počítači a pak virtuální počítač znovu přidělit.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
Vyhledání podporovaných velikostí virtuálních počítačů
Starší velikosti virtuálních počítačů se nepodporují. Seznam podporovaných velikostí virtuálních počítačů najdete pomocí rozhraní API skladových položek prostředků nebo modulu Azure PowerShellu. Podporované velikosti nemůžete najít pomocí rozhraní příkazového řádku.
Při volání rozhraní API skladových položek prostředků zkontrolujte, jestli EncryptionAtHostSupported
je tato možnost nastavená na Hodnotu True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUSEUAP"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
Pro modul Azure PowerShell použijte rutinu 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
}
}
}
Další kroky
Teď, když jste tyto prostředky vytvořili a nakonfigurovali, můžete je použít k zabezpečení spravovaných disků. Následující odkaz obsahuje ukázkové skripty, z nichž každý má odpovídající scénář, který můžete použít k zabezpečení spravovaných disků.