Azure Windows VM Sanal Diskleri Şifreleme
Gelişmiş sanal makine (VM) güvenliği ve uyumluluğu için Azure’daki sanal diskler şifrelenebilir. Diskler, Azure Key Vault’a sabitlenmiş şifreleme anahtarları kullanılarak şifrelenir. Bu şifreleme anahtarlarını kontrol eder ve kullanımlarını denetleyebilirsiniz. Bu makalede, Windows VM’de sanal disklerin Azure PowerShell kullanılarak nasıl şifreleneceğini anlatacağım.
- Aşağıdaki örnek VM’de görebileceğiniz gibi VM’in diski henüz şifrelenmemiştir.
- Öncelikle aşağıdaki PowerShell kodunu çalıştırarak Azure Key Vault oluşturabilirsiniz.
$rgName = "OnderRG"
$location = "NorthEurope"
$keyVaultName = "myKeyVault$(Get-Random)"
New-AzureRMKeyVault -Location $location `
-ResourceGroupName $rgName `
-VaultName $keyVaultName `
-EnabledForDiskEncryption
- PowerShell kodunu çalıştırdıktan sonra bir Azure Key Vault’unuz olacaktır. KeyVault’un erişim politikaları bölümünde “Enable access to Azure Disk Encryption for volume encription” seçeneğinin işaretli olduğundan emin olun.
- Yazılım veya Donanım Güvenlik Modeli (HSM) koruması kullanarak şifreleme anahtarlarını saklayabilirsiniz. Standart bir Anahtar Kasası yalnızca yazılım korumalı anahtarları saklar. Bir HSM kullanmak, ek bir ücret karşılığında premium Anahtar Kasası gerektirir. Premium Anahtar Kasası oluşturmak için önceki adımda -Sku “Premium” parametresini ekleyebilirsiniz. Aşağıdaki örnek, standart bir Anahtar Kasası içindir.
Her iki koruma modelinde de, VM sanal disklerin şifresini çözmek için önyüklenirken şifreleme anahtarlarını istemek için Azure platformuna erişim izni verilmesi gerekir. Add-AzureKeyVaultKey ile Anahtar Kasanızda bir şifreleme anahtarı oluşturabilirsiniz.
$keyVaultName = "myKeyVault1853426728"
Add-AzureKeyVaultKey -VaultName $keyVaultName `
-Name "myKey" `
-Destination "Software"
- Son olarak aşağıdaki komut ile Azure Windows sanal makineninizin disklerini şifreleyebilirsiniz.
$rgName = "OnderRG"
$keyVaultName = "myKeyVault1853426728"
$keyVault = Get-AzureRMKeyVault -VaultName $keyVaultName -ResourceGroupName $rgName;
$diskEncryptionKeyVaultUrl = $keyVault.VaultUri;
$keyVaultResourceId = $keyVault.ResourceId;
$keyEncryptionKeyUrl = (Get-AzureKeyVaultKey -VaultName $keyVaultName -Name myKey).Key.kid;
Set-AzureRMVMDiskEncryptionExtension -ResourceGroupName $rgName `
-VMName "OnderVM" `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $keyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $keyVaultResourceId