Sdílet prostřednictvím


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 klidu a při přenosu jsou rovněž šifrována 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í

  • 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é.

Následující omezení platí jenom pro disky Úrovně Ultra a SSD úrovně Premium v2:

  • Po 13. 5. 2023 je potřeba vytvořit disky s velikostí sektoru 512e.

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 Azure Key Vault s řízeným HSM.

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 nevydržuje doba uchovávání informací. 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é

Nezaměňujte region velbloudím stylem psaní, pokud tak učiníte, můžete narazit na problémy při přiřazování dalších disků k prostředku v Azure portálu.

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é otáčení klíče, můžete nastavit enable-auto-key-rotation na true. Když povolíte automatickou rotaci, systém automaticky aktualizuje všechny spravované disky, snímky a obrazy odkazující na sadu šifrování disku tak, aby používaly 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 úložišti klíčů.

Poznámka:

Vytvoření identity vaší DiskEncryptionSet ve službě Microsoft Entra ID 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

Služba Azure Key Vault Managed HSM

Případně můžete ke zpracování klíčů použít spravovaný HSM.

K tomu je nutné splnit následující požadavky:

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č deallocovat, zakázat šifrování na hostiteli na daném virtuálním počítači, a poté virtuální počítač znovu alokovat.

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 SKU prostředků nebo Azure CLI.

Při volání rozhraní API pro SKU prostředků zkontrolujte, zda je tato schopnost nastavena na EncryptionAtHostSupported.

    {
        "resourceType": "virtualMachines",
        "name": "Standard_DS1_v2",
        "tier": "Standard",
        "size": "DS1_v2",
        "family": "standardDSv2Family",
        "locations": [
        "CentralUS"
        ],
        "capabilities": [
        {
            "name": "EncryptionAtHostSupported",
            "value": "True"
        }
        ]
    }

Pro Azure CLI použijte příkaz az vm image list-skus .

location=centralus

az vm list-skus --location $location --all \
--resource-type virtualMachines \
--query "[?capabilities[?name=='EncryptionAtHostSupported' && value=='True']].{VMName:name, EncryptionAtHost:capabilities[?name=='EncryptionAtHostSupported'].value | [0]}" \
--output table

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ů.

Ukázky šablon Azure Resource Manageru