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

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

Azure CLI, komut satırından veya betik içindeki Azure kaynaklarını oluşturmak ve yönetmek için kullanılır. Bu hızlı başlangıçta, bir sanal makine ölçek kümesi oluşturmak ve şifrelemek için Azure CLı 'nın 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.

Önkoşullar

  • Azure Cloud Shell'Da Bash ortamını kullanın.

    Cloud Shell’i yeni bir pencerede başlatma

  • Dilerseniz CLI başvuru komutlarını çalıştırmak için Azure CLI’yi yükleyebilirsiniz.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Ek oturum açma seçenekleri için bkz. Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantılarını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu makale, Azure CLı 'nin sürüm 2.0.31 veya üstünü gerektirir. Azure Cloud Shell kullanılıyorsa, en son sürüm zaten yüklüdür.

Ölçek kümesi oluşturma

Ölçek kümesi oluşturabilmek için az group create ile bir kaynak grubu oluşturun. Aşağıdaki örnek eastus konumunda myresourcegroup adlı bir kaynak grubu oluşturur:

az group create --name myResourceGroup --location eastus

Bu adımda az vmss create ile bir sanal makine ölçek kümesi oluşturun. Aşağıdaki örnek, değişiklikler uygulandıkça otomatik güncelleştirilecek şekilde ayarlanan myScaleSet adlı bir ölçek kümesi oluşturur ve ~/.ssh/id_rsa içinde yoksa SSH anahtarları oluşturur. Her bir sanal makine örneğine bir 32Gb veri diski iliştirilir ve az VMSS uzantı kümesiyleveri disklerini hazırlamak Için Azure Özel Betik uzantısı kullanılır:

# Create a scale set with attached data disk
az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image UbuntuLTS \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 32

# Prepare the data disk for use with the Custom Script Extension
az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.sh"],"commandToExecute":"./prepare_vm_disks.sh"}'

Tüm ölçek kümesi kaynaklarının ve VM'lerin oluşturulup yapılandırılması birkaç dakika sürer.

Disk şifrelemesi için etkin bir Azure Anahtar Kasası 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.

Kendi benzersiz keyvault_name tanımlayın. Daha sonra, ölçek kümesiyle aynı abonelikte ve bölgede az keykasatıon Create Ile bir keykasa oluşturun ve --Enabled-for-disk şifrelemesi erişim ilkesini ayarlayın.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

# Create Key Vault
az keyvault create --resource-group myResourceGroup --name $keyvault_name --enabled-for-disk-encryption

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.

Kendi benzersiz keyvault_name tanımlayın. Ardından, az keykasatıon Update Ile keykasalarınızı güncelledi ve --Enabled-for-disk şifrelemesi erişim ilkesini ayarlayın.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

# Create Key Vault
az keyvault update --name $keyvault_name --enabled-for-disk-encryption

Şifrelemeyi etkinleştir

Bir ölçek kümesindeki sanal makine örneklerini şifrelemek için, öncelikle Key Vault kaynak KIMLIĞIYLE ilgili bazı bilgileri az keykasashowkomutuyla alın. Bu değişkenler daha sonra az VMSS ENCRYPTION Enableile şifreleme işlemini başlatmak için kullanılır:

# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)

# Enable encryption of the data disks in a scale set
az vmss encryption enable \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --disk-encryption-keyvault $vaultResourceId \
    --volume-type DATA

Şifreleme işleminin başlaması bir veya iki dakika sürebilir.

Ölçek kümesi, önceki bir adımda oluşturulan ölçek kümesindeki yükseltme ilkesi Otomatik olarak ayarlandığından, sanal makine örnekleri otomatik olarak şifreleme işlemini başlatır. Yükseltme ilkesinin el ile olduğu ölçek kümelerinde, az VMSS Update-Instancesile sanal makine örneklerinde şifreleme ilkesini başlatı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.

# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)

# Enable encryption of the data disks in a scale set
az vmss encryption enable \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --disk-encryption-keyvault $vaultResourceId \
    --key-encryption-key myKEK \
    --key-encryption-keyvault $vaultResourceId \
    --volume-type DATA

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 az VMSS ENCRYPTION Showkomutunu kullanın:

az vmss encryption show --resource-group myResourceGroup --name myScaleSet

VM örnekleri şifrelendiğinde, aşağıdaki örnek çıktıda gösterildiği gibi durum kodu EncryptionState/ encrypı bildirir:

[
  {
    "disks": [
      {
        "encryptionSettings": null,
        "name": "myScaleSet_myScaleSet_0_disk2_3f39c2019b174218b98b3dfae3424e69",
        "statuses": [
          {
            "additionalProperties": {},
            "code": "EncryptionState/encrypted",
            "displayStatus": "Encryption is enabled on disk",
            "level": "Info",
            "message": null,
            "time": null
          }
        ]
      }
    ],
    "id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/virtualMachines/0",
    "resourceGroup": "MYRESOURCEGROUP"
  }
]

Şifrelemeyi devre dışı bırak

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

az vmss encryption disable --resource-group myResourceGroup --name myScaleSet

Sonraki adımlar

  • Bu makalede, Azure CLı 'yi bir sanal makine ölçek kümesini şifrelemek için kullandınız. Azure PowerShell veya Azure Resource Manager şablonlarınıda kullanabilirsiniz.
  • Başka bir uzantı sağlandıktan sonra Azure disk şifrelemesi 'nin uygulanmasını istiyorsanız uzantı sıralamasınıkullanabilirsiniz.
  • Linux ölçek kümesi veri diski şifrelemesi için uçtan uca toplu iş dosyası örneği buradabulunabilir. Bu örnek, bir kaynak grubu, Linux ölçek kümesi oluşturur, 5 GB 'lık bir veri diski bağlar ve sanal makine ölçek kümesini şifreler.