Yönetilen diskler için müşteri tarafından yönetilen anahtarlarla sunucu tarafı şifrelemeyi etkinleştirmek için Azure CLI'yi kullanma
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri
Azure Disk Depolama, isterseniz yönetilen diskler için sunucu tarafı şifreleme (SSE) kullanırken kendi anahtarlarınızı yönetmenizi sağlar. Müşteri tarafından yönetilen anahtarlarla SSE ve diğer yönetilen disk şifreleme türleri hakkında kavramsal bilgi için disk şifreleme makalemizin Müşteri tarafından yönetilen anahtarlar bölümüne bakın.
Kısıtlamalar
Şimdilik müşteri tarafından yönetilen anahtarlar aşağıdaki kısıtlamalara sahiptir:
- Bu özellik artımlı anlık görüntüleri olan bir disk için etkinleştirildiyse, bu diskte veya anlık görüntülerinde devre dışı bırakılamaz. Bu sorunu geçici olarak çözmek için tüm verileri müşteri tarafından yönetilen anahtarları kullanmayan tamamen farklı bir yönetilen diske kopyalayın. Bunu Azure CLI veya Azure PowerShell modülüyle yapabilirsiniz.
- Bir disk ve ilişkili tüm artımlı anlık görüntüleri aynı disk şifreleme kümesine sahip olmalıdır.
- Yalnızca 2.048 bit, 3.072 bit ve 4.096 bit boyutlarında yazılım ve HSM RSA anahtarları desteklenir; başka anahtar veya boyut yoktur.
- HSM anahtarları, Azure Anahtar kasalarının premium katmanını gerektirir.
- Yalnızca Ultra Diskler ve Premium SSD v2 diskleri için:
- Sunucu tarafı şifreleme ve müşteri tarafından yönetilen anahtarlarla şifrelenmiş anlık görüntülerden oluşturulan diskler aynı disk şifreleme kümesiyle şifrelenmelidir.
- Kullanıcı tarafından atanan yönetilen kimlikler, müşteri tarafından yönetilen anahtarlarla şifrelenmiş Ultra Diskler ve Premium SSD v2 diskleri için desteklenmez.
- Farklı bir Microsoft Entra ID kiracısında depolanan Azure Key Vault'ları kullanarak Ultra Diskleri ve Premium SSD v2 disklerini müşteri tarafından yönetilen anahtarlarla şifreleme şu anda desteklenmemektedir.
- Müşteri tarafından yönetilen anahtarlarınız (disk şifreleme kümeleri, VM'ler, diskler ve anlık görüntüler) ile ilgili kaynakların çoğu aynı abonelikte ve bölgede olmalıdır.
- Azure Key Vaults farklı bir abonelikten kullanılabilir, ancak disk şifreleme kümenizle aynı bölgede olmalıdır. Önizleme olarak, farklı Microsoft Entra kiracılarından Azure Key Vault'ları kullanabilirsiniz.
- Müşteri tarafından yönetilen anahtarlarla şifrelenmiş diskler, yalnızca bağlı oldukları VM serbest bırakıldığında başka bir kaynak grubuna taşınabilir.
- Müşteri tarafından yönetilen anahtarlarla şifrelenmiş diskler, anlık görüntüler ve görüntüler abonelikler arasında taşınamaz.
- Şu anda veya daha önce Azure Disk Şifrelemesi kullanılarak şifrelenen yönetilen diskler, müşteri tarafından yönetilen anahtarlar kullanılarak şifrelenemez.
- Abonelik başına bölge başına en fazla 5000 disk şifreleme kümesi oluşturabilir.
- Paylaşılan görüntü galerileriyle müşteri tarafından yönetilen anahtarları kullanma hakkında bilgi için bkz . Önizleme: Görüntüleri şifrelemek için müşteri tarafından yönetilen anahtarları kullanma.
Kaynak oluşturma
Özellik etkinleştirildikten sonra bir DiskEncryptionSet ve bir Azure Key Vault veya Azure Key Vault Yönetilen HSM ayarlamanız gerekir.
Azure Key Vault
- En son Azure CLI'yi yükleyin ve az login ile bir Azure hesabında oturum açın.
- Azure Key Vault ve şifreleme anahtarı oluşturun.
Key Vault'ı oluştururken temizleme korumasını etkinleştirmeniz gerekir. Temizleme koruması, silinen anahtarın saklama süresi atlayana kadar kalıcı olarak silinememesini sağlar. Bu ayarlar yanlışlıkla silme nedeniyle veri kaybına karşı sizi korur. Yönetilen diskleri şifrelemek için Key Vault kullanılırken bu ayarlar zorunlu hale getirilir.
Önemli
Bölgeyi büyük/küçük harfe dönüştürmeyin. Bunu yaparsanız Azure portalında kaynağa ek diskler atarken sorunlarla karşılaşabilirsiniz.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
- DiskEncryptionSet oluşturun. Anahtarın otomatik döndürmesini etkinleştirmek için enable-auto-key-rotation değerini true değerine eşit olarak ayarlayabilirsiniz. Otomatik döndürmeyi etkinleştirdiğinizde, sistem bir saat içinde anahtarın yeni sürümünü kullanmak için disk şifreleme kümesine başvuran tüm yönetilen diskleri, anlık görüntüleri ve görüntüleri otomatik olarak güncelleştirir.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
- DiskEncryptionSet kaynak erişimini anahtar kasasına verin.
Not
Azure'ın Microsoft Entra kimliğinizde DiskEncryptionSet'inizin kimliğini oluşturması birkaç dakika sürebilir. Aşağıdaki komutu çalıştırırken "Active Directory nesnesi bulunamıyor" gibi bir hata alırsanız, birkaç dakika bekleyin ve yeniden deneyin.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
Azure Key Vault Yönetilen HSM
Alternatif olarak, anahtarlarınızı işlemek için Yönetilen HSM kullanabilirsiniz.
Bunu yapmak için aşağıdaki önkoşulları tamamlamanız gerekir:
- En son Azure CLI'yi yükleyin ve az login ile bir Azure hesabında oturum açın.
- Yönetilen bir HSM oluşturun ve yapılandırın.
- Yönetilen HSM'nizi yönetebilmesi için kullanıcıya izinler atayın.
Yapılandırma
Yönetilen HSM oluşturup izinler ekledikten sonra temizleme korumasını etkinleştirin ve bir şifreleme anahtarı oluşturun.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
Ardından bir DiskEncryptionSet oluşturun.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
Son olarak, Yönetilen HSM'ye DiskEncryptionSet erişimi verin.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
Artık bu kaynakları oluşturup yapılandırdığınıza göre, yönetilen disklerinizin güvenliğini sağlamak için bunları kullanabilirsiniz. Aşağıdaki bağlantılar, yönetilen disklerinizin güvenliğini sağlamak için kullanabileceğiniz, her biri ilgili senaryoya sahip örnek betikler içerir.
Örnekler
Market görüntüsü kullanarak vm oluşturma, işletim sistemini ve veri disklerini müşteri tarafından yönetilen anahtarlarla şifreleme
rgName=yourResourceGroupName
vmName=yourVMName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName -n $vmName -l $location --image $image --size $vmSize --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 128 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Mevcut yönetilen diskleri şifreleme
Aşağıdaki betiği kullanarak şifrelemeniz için mevcut disklerinizin çalışan bir VM'ye bağlı olmaması gerekir:
rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName
az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId
Market görüntüsü kullanarak, işletim sistemini ve veri disklerini müşteri tarafından yönetilen anahtarlarla şifreleyen bir sanal makine ölçek kümesi oluşturma
rgName=yourResourceGroupName
vmssName=yourVMSSName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName -n $vmssName --image $image --upgrade-policy automatic --admin-username azureuser --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 64 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Müşteri tarafından yönetilen anahtarlarla sunucu tarafı şifrelemesi kullanarak şifrelenmiş boş bir disk oluşturma ve vm'ye ekleme
vmName=yourVMName
rgName=yourResourceGroupName
diskName=yourDiskName
diskSkuName=Premium_LRS
diskSizeinGiB=30
location=westcentralus
diskLUN=2
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az disk create -n $diskName -g $rgName -l $location --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId --size-gb $diskSizeinGiB --sku $diskSkuName
diskId=$(az disk show -n $diskName -g $rgName --query [id] -o tsv)
az vm disk attach --vm-name $vmName --lun $diskLUN --ids $diskId
DiskEncryptionSet'e başvuran tüm kaynakların anahtarını döndürmek için DiskEncryptionSet anahtarını değiştirme
rgName=yourResourceGroupName
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
keyVaultId=$(az keyvault show --name $keyVaultName--query [id] -o tsv)
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set update -n keyrotationdes -g keyrotationtesting --key-url $keyVaultKeyUrl --source-vault $keyVaultId
Diskin sunucu tarafı şifreleme durumunu bulma
az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv
Önemli
Müşteri tarafından yönetilen anahtarlar, Microsoft Entra ID'nin bir özelliği olan Azure kaynakları için yönetilen kimlikleri kullanır. Müşteri tarafından yönetilen anahtarları yapılandırdığınızda, kapaklar altındaki kaynaklarınıza otomatik olarak bir yönetilen kimlik atanır. Daha sonra aboneliği, kaynak grubunu veya yönetilen diski bir Microsoft Entra dizininden diğerine taşırsanız, yönetilen disklerle ilişkili yönetilen kimlik yeni kiracıya aktarılmaz, bu nedenle müşteri tarafından yönetilen anahtarlar artık çalışmayabilir. Daha fazla bilgi için bkz . Microsoft Entra dizinleri arasında abonelik aktarma.
Sonraki adımlar
- Müşteri tarafından yönetilen anahtarlarla şifrelenmiş diskler oluşturmak için Azure Resource Manager şablonlarını keşfedin
- Müşteri tarafından yönetilen anahtarların etkinleştirildiği disklerle makineleri çoğaltma
- PowerShell ile VMware VM'lerinin Azure'a olağanüstü durum kurtarmayı ayarlama
- PowerShell ve Azure Resource Manager kullanarak Hyper-V VM'leri için Azure'a olağanüstü durum kurtarmayı ayarlama
- Kod örneği için bkz . CLI ile anlık görüntüden yönetilen disk oluşturma.