Azure PowerShell ile sanal makine ölçek kümesindeki işletim sistemini ve bağlı veri disklerini şifreleyin

uygulama hedefi: : heavy_check_mark: Linux vm 'leri: heavy_check_mark: Windows vm 'ler: heavy_check_mark: tekdüzen ölçek kümeleri

Azure PowerShell modülü, PowerShell komut satırından veya betik içinden Azure kaynakları oluşturmak ve yönetmek için kullanılır. bu makalede, bir sanal makine ölçek kümesi oluşturmak ve şifrelemek için Azure PowerShell nasıl kullanılacağı gösterilmektedir. Azure disk şifrelemesini bir sanal makine ölçek kümesine uygulama hakkında daha fazla bilgi için bkz. Sanal Makine Ölçek Kümeleri Için Azure disk şifrelemesi.

Azure Cloud Shell kullanma

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell’i barındırır. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell’in önceden yüklenmiş komutlarını kullanabilirsiniz.

Azure Cloud Shell’i başlatmak için:

Seçenek Örnek/Bağlantı
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin. Deneyin seçeneği belirlendiğinde, kod otomatik olarak Cloud Shell’e kopyalanmaz. Azure Cloud Shell için Deneyin örneği
Cloud Shell’i tarayıcınızda açmak için https://shell.azure.com bölümüne gidin veya Cloud Shell’i Başlat düğmesini seçin. Cloud Shell’i yeni bir pencerede başlatma
Azure portalın sağ üst köşesindeki menü çubuğunda yer alan Cloud Shell düğmesini seçin. Azure portaldaki Cloud Shell düğmesi

Azure Cloud Shell’de bu makaledeki kodu çalıştırmak için:

  1. Cloud Shell’i başlatın.

  2. Kodu kopyalamak için kod bloğunda Kopyala düğmesini seçin.

  3. Windows ve Linux sisteminde Ctrl+Shift+V tuşlarını kullanarak veya macOS’de Cmd+Shift+V tuşlarını kullanarak kodu Cloud Shell oturumuna yapıştırın.

  4. Kodu çalıştırmak için Enter tuşuna basın.

Disk şifrelemesi için etkin bir Azure Key Vault oluşturma

Azure Key Vault, uygulamaları ve hizmetlerinize güvenli bir şekilde uygulamanızı sağlayan anahtarları, parolaları veya parolaları depolayabilirler. Şifreleme anahtarları yazılım korumasını kullanarak Azure Key Vault depolanır veya anahtarlarınızı FIPS 140-2 düzey 2 standartlarına sertifikalı donanım güvenlik modüllerinde (HSM 'ler) içeri aktarabilir veya oluşturabilirsiniz. Bu şifreleme anahtarları, VM 'nize bağlı sanal diskleri şifrelemek ve şifrelerini çözmek için kullanılır. Bu şifreleme anahtarlarının denetimini koruyabilir ve kullanımlarını denetleyebilir.

New-Azkeykasasıylabir Key Vault oluşturun. Key Vault disk şifrelemesi için kullanılmasına izin vermek için, Enabledfordiskencryption parametresini ayarlayın. Aşağıdaki örnek ayrıca kaynak grubu adı, Key Vault adı ve konum için değişkenleri tanımlar. Kendi benzersiz Key Vault adınızı sağlayın:

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

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

Mevcut bir Key Vault kullan

Bu adım yalnızca disk şifrelemesi ile kullanmak istediğiniz mevcut bir Key Vault varsa gereklidir. Önceki bölümde bir Key Vault oluşturduysanız bu adımı atlayın.

Set-AzKeyVaultAccessPolicyile disk şifrelemesi için ölçek kümesiyle aynı abonelikte ve bölgede bulunan mevcut bir Key Vault etkinleştirebilirsiniz. $VaultName değişkeninde mevcut Key Vault adını aşağıdaki gibi tanımlayın:

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

Ölçek kümesi oluşturma

İlk olarak, VM örnekleri için Get-Credential ile bir yönetici kullanıcı adı ve parola ayarlayın:

$cred = Get-Credential

Şimdi New-AzVmssile bir sanal makine ölçek kümesi oluşturun. Her bir sanal makine örneklerine trafiği dağıtmak için bir yük dengeleyici de oluşturulur. Yük dengeleyici hem TCP bağlantı noktası 80 üzerinden trafiği dağıtmak hem de TCP bağlantı noktası 3389 üzerinden uzak masaüstü trafiğine hem de TCP bağlantı noktası 5985 üzerinden PowerShell uzaktan iletişimine olanak tanımak için kurallar içerir:

$vmssName="myScaleSet"

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

Şifrelemeyi etkinleştir

Bir ölçek kümesindeki sanal makine örneklerini şifrelemek için, ilk olarak Get-AzkeykasasıylaKey Vault URI ve kaynak kimliği hakkında bazı bilgiler alın. Bu değişkenler, set-AzVmssDiskEncryptionExtensionile şifreleme işlemini başlatmak için kullanılır:

$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"

İstendiğinde, ölçek kümesi sanal makine örneklerinde disk şifreleme işlemine devam etmek için y yazın.

Anahtarı kaydırmak için KEK kullanarak şifrelemeyi etkinleştirme

Ayrıca, sanal makine ölçek kümesini şifrelerken ek güvenlik için anahtar şifreleme anahtarını da kullanabilirsiniz.

$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"

Not

Disk-Encryption-keykasası parametresinin değeri için sözdizimi tam tanımlayıcı dizesidir:
/Subscriptions/[abonelik-kimliği-GUID]/resourceGroups/[resource-Group-Name]/providers/Microsoft.KeyVault/vaults/[keykasaadı]

Anahtar şifreleme-anahtar parametresinin değeri için sözdizimi, KEK içinde olduğu gibi tam URI 'dir:
https://[keykasaadı]. kasa. Azure. net/Keys/[kekname]/[kek-Unique-ID]

Şifreleme ilerlemesini denetleme

Disk şifrelemenin durumunu denetlemek için Get-AzVmssDiskEncryptionkomutunu kullanın:

Get-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

VM örnekleri şifrelendiğinde, Encryptionsummary kodu aşağıdaki örnek çıktıda gösterildiği gibi provisioningstate/başarılı bildirir:

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

Şifrelemeyi devre dışı bırak

Artık şifrelenmiş VM örnekleri disklerini kullanmak istemiyorsanız, Disable-AzVmssDiskEncryption ile şifrelemeyi şu şekilde devre dışı bırakabilirsiniz:

Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

Sonraki adımlar