Azure PowerShell ile sanal makine ölçek kümesindeki işletim sistemini ve bağlı veri disklerini şifreleme
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, Sanal Makine Ölçek Kümesi oluşturmak ve şifrelemek için Azure PowerShell'in nasıl kullanılacağı gösterilmektedir. Sanal Makine Ölçek Kümesine Azure Disk Şifrelemesi uygulama hakkında daha fazla bilgi için bkz. Sanal Makine Ölçek Kümeleri için Azure Disk Şifrelemesi.
Azure Cloud Shell
Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı olan Azure Cloud Shell'i barındırıyor. Azure hizmetleriyle çalışmak için Cloud Shell ile Bash veya PowerShell kullanabilirsiniz. Yerel ortamınıza herhangi bir şey yüklemek zorunda kalmadan bu makaledeki kodu çalıştırmak için Cloud Shell önceden yüklenmiş komutlarını kullanabilirsiniz.
Azure Cloud Shell'i başlatmak için:
Seçenek | Örnek/Bağlantı |
---|---|
Kodun veya komut bloğunun sağ üst köşesindeki Deneyin'i seçin. Deneyin seçildiğinde kod veya komut otomatik olarak Cloud Shell'e kopyalanmaz. | |
https://shell.azure.comadresine gidin veya Cloud Shell'i tarayıcınızda açmak için Cloud Shell'i Başlat düğmesini seçin. | |
Azure portalının sağ üst kısmındaki menü çubuğunda Cloud Shell düğmesini seçin. |
Azure Cloud Shell'i kullanmak için:
Cloud Shell'i başlatın.
Kodu veya komutu kopyalamak için kod bloğundaki (veya komut bloğundaki) Kopyala düğmesini seçin.
Windows ve Linux'ta Ctrl+Shift V'yi seçerek veya macOS üzerinde Cmd+Shift++V'yi seçerek kodu veya komutu Cloud Shell oturumuna yapıştırın.
Kodu veya komutu çalıştırmak için Enter'ı seçin.
Disk şifrelemesi için etkinleştirilmiş bir Azure Key Vault oluşturma
Azure Key Vault, uygulamalarınızda ve hizmetlerinizde güvenli bir şekilde uygulamanıza olanak sağlayan anahtarları, gizli dizileri veya parolaları depolayabilir. Şifreleme anahtarları yazılım koruması kullanılarak Azure Key Vault'ta depolanır veya anahtarlarınızı FIPS 140 onaylı standartlara sahip Donanım Güvenlik Modülleri'nde (HSM) içeri aktarabilir veya oluşturabilirsiniz. Bu şifreleme anahtarları, VM'nize bağlı sanal diskleri şifrelemek ve şifresini çözmek için kullanılır. Bu şifreleme anahtarlarının denetimini korursunuz ve bunların kullanımını denetleyebilirsiniz.
New-AzKeyVault ile bir Key Vault oluşturun. Key Vault'un 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ı belirtin:
$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 kullanma
Bu adım yalnızca disk şifrelemesi ile kullanmak istediğiniz mevcut bir Key Vault'nuz varsa gereklidir. Önceki bölümde bir Key Vault oluşturduysanız bu adımı atlayın.
Set-AzKeyVaultAccessPolicy ile disk şifrelemesi için ölçek kümesiyle aynı abonelikte ve bölgede mevcut bir Key Vault'ı etkinleştirebilirsiniz. $vaultName değişkeninde mevcut Key Vault'unuzun adını aşağıdaki gibi tanımlayın:
$vaultName="myexistingkeyvault"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName -EnabledForDiskEncryption
Ölçek kümesi oluşturma
Önemli
Kasım 2023'den itibaren, düzenleme modu belirtilmezse PowerShell ve Azure CLI kullanılarak oluşturulan VM ölçek kümeleri varsayılan olarak Esnek Düzenleme Modu olarak ayarlanır. Bu değişiklik ve gerçekleştirmeniz gereken eylemler hakkında daha fazla bilgi için BKZ. VMSS PowerShell/CLI Müşterileri için Yeni Değişiklik - Microsoft Community Hub
İlk olarak, VM örnekleri için Get-Credential ile bir yönetici kullanıcı adı ve parola ayarlayın:
$cred = Get-Credential
Şimdi New-AzVmss ile 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 `
-OrchestrationMode "flexible" `
-Location $location `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-Credential $cred
Şifrelemeyi etkinleştirme
Ölçek kümesindeki VM örneklerini şifrelemek için öncelikle Get-AzKeyVault ile Key Vault URI'si ve kaynak kimliği hakkında bazı bilgiler alın. Bu değişkenler daha sonra Set-AzVmssDiskEncryptionExtension ile ş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 VM örneklerinde disk şifreleme işlemine devam etmek için y yazın.
Anahtarı sarmak için KEK kullanarak şifrelemeyi etkinleştirme
Sanal Makine Ölçek Kümesini şifrelerken ek güvenlik için anahtar şifreleme anahtarı 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-keyvault parametresinin değerinin söz dizimi tam tanımlayıcı dizesidir:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
Anahtar-şifreleme-anahtar parametresinin değerinin söz dizimi, KEK'nin tam URI'sidir; örneğin:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
Şifreleme ilerleme durumunu denetleme
Disk şifrelemesinin durumunu denetlemek için Get-AzVmssDiskEncryption komutunu 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/succeeded değerini 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ırakma
Şifrelenmiş VM örnekleri disklerini artık kullanmak istemiyorsanız Disable-AzVmssDiskEncryption ile şifrelemeyi aşağıdaki gibi devre dışı bırakabilirsiniz:
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName
Sonraki adımlar
- Bu makalede, Sanal Makine Ölçek Kümesini şifrelemek için Azure PowerShell kullandınız. Azure CLI veya Azure Resource Manager şablonlarını da kullanabilirsiniz.
- Başka bir uzantı sağlandıktan sonra Azure Disk Şifrelemesi uygulanmasını istiyorsanız, uzantı sıralamasını kullanabilirsiniz.