Udostępnij przez


Szyfrowanie dysków systemu operacyjnego i dołączonych dysków danych w zestawie skalowalnych maszyn wirtualnych przy użyciu Azure CLI

Ważne

Usługa Azure Disk Encryption ma zostać wycofana 15 września 2028 r. Do tej pory można nadal korzystać z usługi Azure Disk Encryption bez zakłóceń. 15 września 2028 r. obciążenia z obsługą programu ADE będą nadal działać, ale zaszyfrowane dyski nie będą mogły zostać odblokowane po ponownym uruchomieniu maszyny wirtualnej, co spowoduje przerwy w działaniu usługi.

Użyj szyfrowania na hoście dla nowych maszyn wirtualnych. Wszystkie maszyny wirtualne z obsługą programu ADE (w tym kopie zapasowe) muszą migrować do szyfrowania na hoście przed datą wycofania, aby uniknąć przerw w działaniu usługi. Aby uzyskać szczegółowe informacje, zobacz Migrowanie z usługi Azure Disk Encryption do szyfrowania na hoście .

Interfejs wiersza polecenia platformy Azure służy do tworzenia zasobów platformy Azure i zarządzania nimi z poziomu wiersza polecenia lub skryptów. W tym szybkim przewodniku pokazano, jak za pomocą Azure CLI utworzyć i zaszyfrować skalowany zestaw maszyn wirtualnych. Aby uzyskać więcej informacji na temat stosowania szyfrowania dysków platformy Azure do zestawu skalowania maszyn wirtualnych, zobacz Usługa Azure Disk Encryption dla zestawów skalowania maszyn wirtualnych.

Wymagania wstępne

  • Ten artykuł wymaga wersji 2.0.31 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Tworzenie zestawu skalowania

Przed utworzeniem zestawu skalowania, utwórz grupę zasobów za pomocą komendy az group create. Poniższy przykład tworzy grupę zasobów o nazwie myResourceGroup w lokalizacji eastus :

az group create --name myResourceGroup --location eastus

Teraz utwórz zestaw skalowania maszyn wirtualnych za pomocą az vmss create. Poniższy przykład tworzy zestaw skalowania o nazwie myScaleSet , który jest ustawiony na automatyczne aktualizowanie w miarę stosowania zmian, i generuje klucze SSH, jeśli nie istnieją w pliku ~/.ssh/id_rsa. Do każdego wystąpienia maszyny wirtualnej jest dołączony dysk danych o rozmiarze 32 GB, a Azure Custom Script Extension jest używane do przygotowania dysków danych za pomocą az vmss extension set:.

Ważne

Upewnij się, że wybrano system operacyjny obsługiwany za pomocą ADE. Obsługiwany system operacyjny dla usługi ADE.

# Create a scale set with attached data disk
az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode Flexible \
  --image <SKU Linux Image> \
  --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"}'

Utworzenie i skonfigurowanie wszystkich zasobów i maszyn wirtualnych zestawu skalowania trwa kilka minut.

Tworzenie magazynu kluczy platformy Azure włączonego na potrzeby szyfrowania dysków

Usługa Azure Key Vault może przechowywać klucze, wpisy tajne lub hasła, które umożliwiają bezpieczne implementowanie ich w aplikacjach i usługach. Klucze kryptograficzne są przechowywane w usłudze Azure Key Vault przy użyciu ochrony oprogramowania lub można zaimportować lub wygenerować klucze w sprzętowych modułach zabezpieczeń (HSM) certyfikowanych przez standard FIPS 140 . Te klucze kryptograficzne służą do szyfrowania i odszyfrowywania dysków wirtualnych dołączonych do maszyny wirtualnej. Zachowasz kontrolę nad tymi kluczami kryptograficznymi i możesz przeprowadzić inspekcję ich użycia.

Zdefiniuj własne wyjątkowe keyvault_name. Następnie utwórz KeyVault za pomocą polecenia az keyvault create w tej samej subskrypcji i regionie co zestaw skalujący, i ustaw zasady dostępu --enabled-for-disk-encryption.

# 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

Korzystanie z istniejącej usługi Key Vault

Ten krok jest wymagany tylko wtedy, gdy masz istniejącą usługę Key Vault, której chcesz używać z szyfrowaniem dysków. Pomiń ten krok, jeśli utworzono usługę Key Vault w poprzedniej sekcji.

Zdefiniuj własne wyjątkowe keyvault_name. Następnie zaktualizuj KeyVault, używając polecenia az keyvault update, i ustaw zasady dostępu --enabled-for-disk-encryption.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

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

Włączanie szyfrowania

Uwaga / Notatka

W przypadku korzystania z zestawów skalowania maszyn wirtualnych w elastycznym trybie orkiestracji tylko nowe instancje będą szyfrowane. Instancje w zestawie skalowania będą musiały zostać zaszyfrowane indywidualnie lub usunięte i zastąpione.

Aby zaszyfrować wystąpienia maszyn wirtualnych w zestawie skalowania, najpierw zdobądź kilka informacji na temat identyfikatora zasobu usługi Key Vault za pomocą az keyvault show. Polecenie az vmss encryption enable jest używane do rozpoczęcia procesu szyfrowania za pomocą tych zmiennych.

# 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

Rozpoczęcie procesu szyfrowania może potrwać minutę lub dwie.

Ponieważ zasady uaktualniania w zestawie skalowania utworzonym we wcześniejszym kroku są ustawione na automatyczne, instancje maszyn wirtualnych automatycznie rozpoczynają proces szyfrowania. W zestawach skalowania, gdzie zasada aktualizacji jest ustawiona na ręczną, włącz zasady szyfrowania w wystąpieniach maszyn wirtualnych za pomocą az vmss update-instances.

Włączanie szyfrowania przy użyciu klucza KEK w celu zawinięcia klucza

Dla dodatkowego zabezpieczenia możesz również użyć klucza szyfrującego podczas szyfrowania zestawu skalowania maszyn wirtualnych.

# 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

Uwaga / Notatka

Składnia wartości parametru disk-encryption-keyvault jest pełnym ciągiem identyfikatora:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]

Składnia wartości parametru key-encryption-key jest pełnym identyfikatorem URI dla KEK, w formacie:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Sprawdzanie postępu szyfrowania

Aby sprawdzić stan szyfrowania dysków, użyj az vmss encryption show:

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

Gdy wystąpienia maszyn wirtualnych są szyfrowane, kod stanu zgłasza wartość EncryptionState/encrypted, jak pokazano w następujących przykładowych wynikach.

[
  {
    "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"
  }
]

Wyłączanie szyfrowania

Jeśli nie chcesz już używać zaszyfrowanych dysków wystąpień maszyn wirtualnych, możesz wyłączyć szyfrowanie za pomocą polecenia az vmss encryption disable następujący sposób:

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

Dalsze kroki

  • W tym artykule użyto Azure CLI do zaszyfrowania skalowanego zestawu maszyn wirtualnych. Możesz również użyć programu Azure PowerShell lub szablonów usługi Azure Resource Manager.
  • Jeśli chcesz zastosować usługę Azure Disk Encryption po aprowizacji innego rozszerzenia, możesz użyć sekwencjonowania rozszerzeń.
  • W tym miejscu można znaleźć kompleksowy przykład pliku wsadowego dla szyfrowania danych na dyskach zbioru skalowania Linux. W tym przykładzie tworzona jest grupa zasobów, zestaw skalowania systemu Linux, instalacja dysku danych o rozmiarze 5 GB i szyfrowanie zestawu skalowania maszyn wirtualnych.