Sdílet prostřednictvím


Šifrování operačního systému a připojených datových disků ve škálovací sadě virtuálních počítačů pomocí Azure PowerShellu

Modul Azure PowerShell slouží k vytváření a správě prostředků Azure z příkazového řádku PowerShellu nebo ve skriptech. V tomto článku se dozvíte, jak pomocí Azure PowerShellu vytvořit a šifrovat škálovací sadu virtuálních počítačů. Další informace o použití služby Azure Disk Encryption na škálovací sadu virtuálních počítačů najdete v tématu Azure Disk Encryption pro škálovací sady virtuálních počítačů.

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Snímek obrazovky znázorňující příklad možnosti Vyzkoušet pro Azure Cloud Shell
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Tlačítko pro spuštění Azure Cloud Shellu
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Snímek obrazovky znázorňující tlačítko Cloud Shell na webu Azure Portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Vytvoření služby Azure Key Vault s povolenou službou Azure Key Vault pro šifrování disků

Azure Key Vault může ukládat klíče, tajné kódy nebo hesla, která vám umožní bezpečně je implementovat ve vašich aplikacích a službách. Kryptografické klíče se ukládají ve službě Azure Key Vault pomocí softwarové ochrany nebo můžete importovat nebo generovat klíče v modulech hardwarového zabezpečení (HSM) certifikovaných pro ověřené standardy FIPS 140. Tyto kryptografické klíče slouží k šifrování a dešifrování virtuálních disků připojených k virtuálnímu počítači. Tyto kryptografické klíče si zachováte pod kontrolou a můžete je auditovat.

Vytvořte službu Key Vault pomocí New-AzKeyVault. Pokud chcete službě Key Vault povolit použití pro šifrování disku, nastavte parametr EnabledForDiskEncryption . Následující příklad také definuje proměnné pro název skupiny prostředků, název služby Key Vault a umístění. Zadejte vlastní jedinečný název služby Key Vault:

$rgName="myResourceGroup"
$vaultName="myuniquekeyvault"
$location = "EastUS"

New-AzResourceGroup -Name $rgName -Location $location
New-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName -Location $location -EnabledForDiskEncryption

Použití existující služby Key Vault

Tento krok se vyžaduje jenom v případě, že máte existující službu Key Vault, kterou chcete použít s šifrováním disku. Tento krok přeskočte, pokud jste vytvořili službu Key Vault v předchozí části.

Existující službu Key Vault můžete povolit ve stejném předplatném a oblasti jako škálovací sadu pro šifrování disků pomocí Set-AzKeyVaultAccessPolicy. Název existující služby Key Vault definujte v proměnné $vaultName následujícím způsobem:

$vaultName="myexistingkeyvault"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName -EnabledForDiskEncryption

Vytvoření škálovací sady

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.

Nejprve pomocí rutiny Get-Credential nastavte uživatelské jméno a heslo správce instancí virtuálních počítačů:

$cred = Get-Credential

Teď vytvořte škálovací sadu virtuálních počítačů pomocí Rutiny New-AzVmss. Za účelem distribuce provozu do jednotlivých instancí virtuálních počítačů se vytvoří také nástroj pro vyrovnávání zatížení. Nástroj pro vyrovnávání zatížení obsahuje pravidla pro distribuci provozu na portu TCP 80, stejně jako provozu vzdálené plochy na portu TCP 3389 a vzdálené komunikace PowerShellu na portu TCP 5985:

$vmssName="myScaleSet"

New-AzVmss `
    -ResourceGroupName $rgName `
    -VMScaleSetName $vmssName `
    -OrchestrationMode "flexible" `
    -Location $location `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -PublicIpAddressName "myPublicIPAddress" `
    -LoadBalancerName "myLoadBalancer" `
    -Credential $cred

Povolení šifrování

Pokud chcete šifrovat instance virtuálních počítačů ve škálovací sadě, nejprve získejte informace o identifikátoru URI služby Key Vault a ID prostředku pomocí rutiny Get-AzKeyVault. Tyto proměnné se používají k následnému spuštění procesu šifrování pomocí Set-AzVmssDiskEncryptionExtension:

$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId

Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
    -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"

Po zobrazení výzvy zadejte y a pokračujte v procesu šifrování disku v instancích virtuálních počítačů škálovací sady.

Povolení šifrování pomocí klíče KEK

Šifrovací klíč klíče můžete použít také k přidání zabezpečení při šifrování škálovací sady virtuálních počítačů.

$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId
$keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $vaultName -Name $keyEncryptionKeyName).Key.kid;

Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
    -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId `
    -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"

Poznámka:

Syntaxe pro hodnotu parametru disk-encryption-keyvault je řetězec úplného identifikátoru:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name.]

Syntaxe pro hodnotu parametru key-encryption-key je úplný identifikátor URI klíče KEK jako v:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Kontrola průběhu šifrování

Pokud chcete zkontrolovat stav šifrování disků, použijte rutinu Get-AzVmssDiskEncryption:

Get-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

Když jsou instance virtuálních počítačů šifrované, kód EncryptionSummary hlásí ProvisioningState/succeeded , jak je znázorněno v následujícím příkladu výstupu:

ResourceGroupName            : myResourceGroup
VmScaleSetName               : myScaleSet
EncryptionSettings           :
  KeyVaultURL                : https://myuniquekeyvault.vault.azure.net/
  KeyEncryptionKeyURL        :
  KeyVaultResourceId         : /subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myuniquekeyvault
  KekVaultResourceId         :
  KeyEncryptionAlgorithm     :
  VolumeType                 : All
  EncryptionOperation        : EnableEncryption
EncryptionSummary[0]         :
  Code                       : ProvisioningState/succeeded
  Count                      : 2
EncryptionEnabled            : True
EncryptionExtensionInstalled : True

Zakázání šifrování

Pokud už nechcete používat šifrované disky instancí virtuálních počítačů, můžete šifrování zakázat pomocí Disable-AzVmssDiskEncryption následujícím způsobem:

Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

Další kroky

  • V tomto článku jste použili Azure PowerShell k šifrování škálovací sady virtuálních počítačů. Můžete také použít Azure CLI nebo šablony Azure Resource Manageru.
  • Pokud chcete, aby služba Azure Disk Encryption byla použita po zřízení jiného rozšíření, můžete použít sekvencování rozšíření.