Š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. | |
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. | |
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. |
Použití Azure Cloud Shellu:
Spusťte Cloud Shell.
Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.
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.
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í.