Konakta şifreleme kullanarak uçtan uca şifrelemeyi etkinleştirmek için Azure CLI kullanma

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri

Konakta şifrelemeyi etkinleştirdiğinizde, VM ana bilgisayarında depolanan veriler bekleme durumunda şifrelenir ve Depolama hizmetine akışlar şifrelenir. Konakta şifreleme ve diğer yönetilen disk şifreleme türleri hakkında kavramsal bilgi için bkz . Konakta şifreleme - VM verileriniz için uçtan uca şifreleme.

Kısıtlamalar

  • 4k kesim boyutu Ultra Diskler ve Premium SSD v2 için desteklenir.
  • Yalnızca 13.05.2023'te oluşturulduklarında 512e kesim boyutu Ultra Diskler ve Premium SSD v2'de desteklenir.
    • Bu tarihten önce oluşturulan diskler için, diskinizin anlık görüntüsünü oluşturun ve anlık görüntüyü kullanarak yeni bir disk oluşturun.
  • Şu anda veya Azure Disk Şifrelemesi etkin olan sanal makinelerde (VM) veya sanal makine ölçek kümelerinde etkinleştirilemiyor.
  • Azure Disk Şifrelemesi, konakta şifreleme etkinleştirilmiş disklerde etkinleştirilemiyor.
  • Şifreleme mevcut sanal makine ölçek kümelerinde etkinleştirilebilir. Ancak, yalnızca şifreleme etkinleştirildikten sonra oluşturulan yeni VM'ler otomatik olarak şifrelenir.
  • Mevcut VM'lerin şifrelenmesi için serbest bırakılması ve yeniden ayrılmaları gerekir.

Bölgesel kullanılabilirlik

Konaktaki şifreleme, tüm disk türleri için tüm bölgelerde kullanılabilir.

Desteklenen VM boyutları

Desteklenen VM boyutlarının tam listesi program aracılığıyla çekilebilir. Bunları program aracılığıyla nasıl alacağınızı öğrenmek için Desteklenen VM boyutlarını bulma bölümüne bakın. VM boyutunun yükseltilmesi, yeni VM boyutunun EncryptionAtHost özelliğini desteklenip desteklemediğini denetlemek için doğrulamaya neden olur.

Önkoşullar

VM/VMSS'niz için EncryptionAtHost özelliğini kullanmadan önce aboneliğiniz için özelliği etkinleştirmeniz gerekir. Aboneliğiniz için özelliği etkinleştirmek için aşağıdaki adımları kullanın:

  • Özelliği aboneliğinize kaydetmek için aşağıdaki komutu yürütebilirsiniz
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
  • Özelliği denemeden önce aşağıdaki komutu kullanarak kayıt durumunun Kayıtlı (birkaç dakika sürer) olup olmadığını denetleyin.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost

Kaynak oluşturma

Not

Bu bölüm yalnızca müşteri tarafından yönetilen anahtarlara sahip yapılandırmalar için geçerlidir. Platform tarafından yönetilen anahtarlar kullanıyorsanız Örnek betikler bölümüne atlayabilirsiniz.

Özellik etkinleştirildikten sonra bir DiskEncryptionSet ve bir Azure Key Vault veya Azure Key Vault Yönetilen HSM ayarlamanız gerekir.

Azure Key Vault

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:

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

Örnek betikler

Müşteri tarafından yönetilen anahtarlarla etkinleştirilmiş konakta şifrelemeye sahip bir VM oluşturma

Müşteri tarafından yönetilen anahtarlarla işletim sistemi ve veri disklerinin önbelleğini şifrelemek için daha önce oluşturulan DiskEncryptionSet kaynak URI'sini kullanarak yönetilen disklerle bir VM oluşturun. Geçici diskler platform tarafından yönetilen anahtarlarla şifrelenir.

rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_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 \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 128 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId

Platform tarafından yönetilen anahtarlarla etkinleştirilmiş konakta şifrelemeye sahip bir VM oluşturma

İşletim sistemi/veri disklerinin ve geçici disklerin önbelleğini platform tarafından yönetilen anahtarlarla şifrelemek için konakta şifreleme özelliği etkinleştirilmiş bir VM oluşturun.

rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN

az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \

Konakta şifrelemeyi etkinleştirmek için VM'yi güncelleştirme

rgName=yourRGName
vmName=yourVMName

az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true

Vm için konakta şifreleme durumunu denetleme

rgName=yourRGName
vmName=yourVMName

az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv

Konakta şifrelemeyi devre dışı bırakmak için VM'yi güncelleştirme

Konakta şifrelemeyi devre dışı bırakmadan önce VM'nizi serbest bırakmanız gerekir.

rgName=yourRGName
vmName=yourVMName

az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false

Müşteri tarafından yönetilen anahtarlarla etkinleştirilmiş konakta şifreleme ile bir Sanal Makine Ölçek Kümesi oluşturma

Müşteri tarafından yönetilen anahtarlarla işletim sistemi ve veri disklerinin önbelleğini şifrelemek için daha önce oluşturulan DiskEncryptionSet kaynak URI'sini kullanarak yönetilen disklerle bir Sanal Makine Ölçek Kümesi oluşturun. Geçici diskler platform tarafından yönetilen anahtarlarla şifrelenir.

Ö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

rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
diskEncryptionSetName=yourDiskEncryptionSetName

diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)

az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId

Platform tarafından yönetilen anahtarlarla etkinleştirilmiş konakta şifreleme ile bir Sanal Makine Ölçek Kümesi oluşturma

İşletim sistemi/veri disklerinin ve geçici disklerin önbelleğini platform tarafından yönetilen anahtarlarla şifrelemek için konakta şifreleme etkinleştirilmiş bir Sanal Makine Ölçek Kümesi oluşturun.

Ö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

rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204

az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \

Konakta şifrelemeyi etkinleştirmek için sanal makine ölçek kümesini güncelleştirme

rgName=yourRGName
vmssName=yourVMName

az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true

Sanal Makine Ölçek Kümesi için konakta şifreleme durumunu denetleme

rgName=yourRGName
vmssName=yourVMName

az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv

Konakta şifrelemeyi devre dışı bırakmak için sanal makine ölçek kümesini güncelleştirme

Sanal Makine Ölçek Kümenizdeki konakta şifrelemeyi devre dışı bırakabilirsiniz, ancak bu yalnızca konakta şifrelemeyi devre dışı bırakıldıktan sonra oluşturulan VM'leri etkiler. Mevcut VM'ler için VM'yi serbest bırakmanız, bu vm'de konakta şifrelemeyi devre dışı bırakmanız ve ardından VM'yi yeniden dağıtmanız gerekir.

rgName=yourRGName
vmssName=yourVMName

az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false

Desteklenen VM boyutlarını bulma

Eski VM Boyutları desteklenmez. Desteklenen VM boyutlarının listesini kaynak SKU API'lerini veya Azure PowerShell modülünü kullanarak bulabilirsiniz. CLI kullanarak desteklenen boyutları bulamazsınız.

Kaynak Sku'ları API'sini çağırırken, özelliğin EncryptionAtHostSupported True olarak ayarlandığını denetleyin.

    {
        "resourceType": "virtualMachines",
        "name": "Standard_DS1_v2",
        "tier": "Standard",
        "size": "DS1_v2",
        "family": "standardDSv2Family",
        "locations": [
        "CentralUSEUAP"
        ],
        "capabilities": [
        {
            "name": "EncryptionAtHostSupported",
            "value": "True"
        }
        ]
    }

Azure PowerShell modülü için Get-AzComputeResourceSku cmdlet'ini kullanın.

$vmSizes=Get-AzComputeResourceSku | where{$_.ResourceType -eq 'virtualMachines' -and $_.Locations.Contains('CentralUSEUAP')}

foreach($vmSize in $vmSizes)
{
    foreach($capability in $vmSize.capabilities)
    {
        if($capability.Name -eq 'EncryptionAtHostSupported' -and $capability.Value -eq 'true')
        {
            $vmSize

        }

    }
}

Sonraki adımlar

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ı, yönetilen disklerinizin güvenliğini sağlamak için kullanabileceğiniz, her biri ilgili senaryoya sahip örnek betikler içerir.

Azure Resource Manager şablon örnekleri