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

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

Ukázky šablon Azure Resource Manageru