Tworzenie puli z włączonym szyfrowaniem dysków

Podczas tworzenia puli usługi Azure Batch przy użyciu konfiguracji maszyny wirtualnej można szyfrować węzły obliczeniowe w puli przy użyciu klucza zarządzanego przez platformę, określając konfigurację szyfrowania dysku.

W tym artykule wyjaśniono, jak utworzyć pulę usługi Batch z włączonym szyfrowaniem dysków.

Ważne

Usługa Azure Disk Encryption (ADE) dla pul usługi Azure Batch zostanie wycofana 15 września 2028 r. Przed tą datą zmigruj konfiguracje puli, które opierają się na ADE na potrzeby szyfrowania dysku tymczasowego, do szyfrowania na hoście. Wycofanie nie wpływa na domyślne szyfrowanie zarządzanych dysków po stronie serwera.

Dlaczego warto używać puli z konfiguracją szyfrowania dysków?

Za pomocą puli usługi Batch można uzyskiwać dostęp do danych i przechowywać je na dyskach systemu operacyjnego i dyskach tymczasowych węzła obliczeniowego. Szyfrowanie dysku po stronie serwera przy użyciu klucza zarządzanego przez platformę zapewni ochronę tych danych przy niskich obciążeniach i wygodzie.

Usługa Batch zastosuje jedną z tych technologii szyfrowania dysków na węzłach obliczeniowych w zależności od konfiguracji puli i dostępności regionalnej.

Obiekty docelowe szyfrowania dysku nie wybierają bezpośrednio technologii szyfrowania. Określasz docelowe dyski, które chcesz zaszyfrować, a Batch wybiera odpowiednią technologię w zależności od konfiguracji puli. Możesz wyraźnie zażądać szyfrowania na hostzie w profilu bezpieczeństwa maszyny wirtualnej. Poniższy obraz przedstawia, jak Batch dokonuje wyboru.

Ważne

Jeśli tworzysz pulę z niestandardowym obrazem Linuksa, możesz włączyć szyfrowanie dysku tylko wtedy, gdy twoja pula korzysta z rozmiaru maszyny wirtualnej, który obsługuje szyfrowanie na hoście.

Dla puli subskrypcji użytkownika zarejestruj Microsoft.Compute/EncryptionAtHost funkcję w subskrypcji zawierającej zasoby puli i wyraźnie ustaw securityProfile.encryptionAtHost na true. Więcej informacji można znaleźć w artykule Wymagania dotyczące szyfrowania na hostze.

Zrzut ekranu przedstawiający tworzenie puli w Azure Portal.

Niektóre konfiguracje szyfrowania dysków wymagają, aby rodzina maszyn wirtualnych puli obsługiwała szyfrowanie na hoście. Zobacz Szyfrowanie end-to-end przy użyciu szyfrowania na hoście aby określić, które rodziny maszyn wirtualnych obsługują szyfrowanie na hoście.

Note

Tymczasowe szyfrowanie dysku na rozmiarach maszyn wirtualnych, które nie obsługują szyfrowania na hostze, wymaga Azure Disk Encryption (ADE). ADE nie jest obsługiwane w rozmiarach maszyn wirtualnych Basic, A-series, v6, v7 (i nowszych) ani na maszynach z mniej niż 2 GB pamięci. Jeśli włączysz szyfrowanie dysku tymczasowego dla jednego z tych nieobsługiwanych rozmiarów, usługa Batch odrzuca utworzenie puli z błędem AzureDiskEncryptionNotSupportedOnVMSize. Aby używać szyfrowania dysku tymczasowego bez ADE, wybierz rozmiar maszyny wirtualnej i subskrypcję wspierającą szyfrowanie na hoście. W przypadku puli usługi Batch nie wyłączaj jawnie szyfrowania na hoście. Dla puli subskrypcyjnej użytkowników, wyraźnie ustaw securityProfile.encryptionAtHost na true.

Wycofanie usługi Azure Disk Encryption

Azure Disk Encryption (ADE) dla pul wsadowych zostanie wycofane 15 września 2028 r. Po dacie zakończenia obsługi pule wsadowe nie obsługują ADE. Konfiguracje puli, które nadal zależą od ADE, mogą doświadczać zakłóceń, gdy usługa Batch aprowizuje lub zastępuje węzły obliczeniowe.

Zakończ migrację przed datą wycofania, jeśli konfiguracja puli wymaga tymczasowego szyfrowania dysku i może wybrać ADE. Użyj szyfrowania na hoście jako zamiennika. Szyfrowanie na hoście szyfruje tymczasowy dysk, efemeryczne dyski systemu operacyjnego oraz pamięć podręczną dysku systemu operacyjnego i dysków danych na hoście VM.

Wycofanie ADE nie wpływa na zarządzane szyfrowanie dysków w spoczynku z kluczami zarządzanymi przez platformę, które jest domyślnie włączone dla zarządzanych dysków Azure.

Określ, czy Twoja pula zasobów wymaga podjęcia działań

Właściwości puli usługi Batch pokazują cele szyfrowania dysku, o które prosiłeś, ale nie identyfikują technologii szyfrowania, którą Batch wybrał dla tych węzłów. Użyj poniższej tabeli, aby ocenić, czy konfiguracja puli może zależeć od ADE.

Konfiguracja puli Zależność ADE Action
diskEncryptionConfiguration nie jest ustawione lub TemporaryDisk nie jest uwzględnione w swoich elementach docelowych Konfiguracja nie zależy od ADE dla szyfrowania tymczasowego dysku. Nie jest wymagane żadne działanie w przypadku tego wycofania.
Wymagany jest tryb alokacji puli usługi Batch, TemporaryDisk rozmiar maszyny wirtualnej obsługuje szyfrowanie na hoście, a szyfrowanie na hoście nie jest jawnie wyłączone Wsadowo wybiera szyfrowanie na hoście. Migracja nie jest wymagana. Kontynuuj używanie rozmiaru maszyny wirtualnej, który obsługuje szyfrowanie na hoście.
Zażądano trybu alokacji puli usług wsadowych TemporaryDisk, a rozmiar maszyny wirtualnej nie obsługuje szyfrowania na hoście Konfiguracja może zależeć od ADE. Migruj do rozmiaru maszyny wirtualnej, który obsługuje szyfrowanie na hoście.
Zażądano trybu alokacji puli subskrypcji użytkowników, TemporaryDisk ale securityProfile.encryptionAtHost nie jest ustawiony na true Konfiguracja może zależeć od ADE. Batch nie włącza automatycznie szyfrowania na hostze dla pul subskrypcji użytkowników. Zarejestruj funkcję szyfrowania na hoście w subskrypcji puli i wyraźnie włącz szyfrowanie na hoście.
securityProfile.encryptionAtHost jest jawnie ustawione na false, a zażądano wartości TemporaryDisk Konfiguracja może zależeć od ADE. Użyj obsługiwanego rozmiaru maszyny wirtualnej i ustaw encryptionAtHost na true.

Aby sprawdzić, czy rozmiar maszyny wirtualnej obsługuje szyfrowanie na hoście, zobacz Obsługiwane rozmiary maszyn wirtualnych.

Skonfiguruj nowe pule

W przypadku nowych pul wymagających tymczasowego szyfrowania dysku wybierz rozmiar maszyny wirtualnej wspierającej szyfrowanie na hostze. Nie jawnie wyłączaj szyfrowania na hoście.

W przypadku pul subskrypcyjnych użytkowników zarejestruj Microsoft.Compute/EncryptionAtHost także funkcję w subskrypcji zawierającej zasoby puli i ustaw securityProfile.encryptionAtHost na true.

Zmigruj istniejącą pulę do szyfrowania na hoście

Możesz zaktualizować istniejącą pulę bez usuwania puli wsadowej. Aktualizacja zastępuje bazowe wdrożenie zasobów obliczeniowych, gdy ponownie zwiększasz skalę puli.

  1. Przestań planować nową pracę na puli i poczekaj na zakończenie bieżących zadań lub przenieś je do innej puli.
  2. Zmień rozmiar zarówno dedykowanej, jak i Spot lub niskopriorytetowej liczby węzłów docelowych do zera.
  3. Poczekaj, aż stan alokacji puli będzie Stały, a bieżąca liczba węzłów będzie zerowa.
  4. Użyj interfejsu API Pool - Update API płaszczyzny zarządzania usługi Batch w wersji 2024-07-01 lub nowszej do:
    • Wybierz rozmiar maszyny wirtualnej, który obsługuje szyfrowanie na hostze, jeśli obecny rozmiar tego nie obsługuje.
    • Ustaw opcję deploymentConfiguration.virtualMachineConfiguration.securityProfile.encryptionAtHost na true.
    • Zachowaj wymagane cele szyfrowania dysku oraz inne właściwości konfiguracyjne maszyny wirtualnej.
  5. Zmień rozmiar puli do wymaganej liczby docelowych węzłów. Batch tworzy nowe bazowe wdrożenie obliczeniowe na podstawie zaktualizowanej konfiguracji.

Na przykład, odpowiednia część żądania management plane PATCH to:

{
  "properties": {
    "vmSize": "<encryption-at-host-supported-vm-size>",
    "deploymentConfiguration": {
      "virtualMachineConfiguration": {
        "imageReference": {
          "publisher": "<publisher>",
          "offer": "<offer>",
          "sku": "<sku>",
          "version": "<version>"
        },
        "nodeAgentSkuId": "<node-agent-sku-id>",
        "diskEncryptionConfiguration": {
          "targets": [
            "OsDisk",
            "TemporaryDisk"
          ]
        },
        "securityProfile": {
          "encryptionAtHost": true
        }
      }
    }
  }
}

Caution

Uwzględnić istniejące właściwości konfiguracyjne maszyny wirtualnej, które pula musi zachować, takie jak odniesienia do obrazu, SKU agenta węzła, ustawienia dysku systemu, konfiguracja kontenerów, rozszerzenia oraz dyski danych. Zanim zaktualizujesz pulę produkcyjną, pobierz jej aktualną konfigurację i skonstruuj żądanie ze wszystkimi wymaganymi wartościami.

Więcej informacji o aktualizacjach zero-node i zachowaniu aktualizacji można znaleźć w artykule Właściwości puli wsadowej usługi Batch.

Azure Portal

Podczas tworzenia puli usługi Batch w witrynie Azure Portal wybierz pozycję OsDisk, TemporaryDisk lub OsAndTemporaryDisk w obszarze Konfiguracja szyfrowania dysków.

Zrzut ekranu przedstawiający opcję Konfiguracja szyfrowania dysków w witrynie Azure Portal.

Po utworzeniu puli można zobaczyć cele konfiguracji szyfrowania dysków w sekcji Właściwości puli.

Zrzut ekranu przedstawiający cele konfiguracji szyfrowania dysków w witrynie Azure Portal.

Przykłady

W poniższych przykładach pokazano, jak zaszyfrować dyski systemu operacyjnego i dyski tymczasowe w puli usługi Batch za pomocą SDK Azure.ResourceManager.Batch, interfejsu API REST usługi Batch oraz interfejsu wiersza polecenia Azure CLI.

Azure. ResourceManager.Batch SDK

using Azure;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Batch;
using Azure.ResourceManager.Batch.Models;

//...

public async Task SetDiskEncryption()
{
    ArmClient client = new ArmClient(new DefaultAzureCredential());

    ResourceIdentifier batchAccountResourceId =
        BatchAccountResource.CreateResourceIdentifier("subscriptionId", "resourceGroupName", "accountName");
    BatchAccountResource batchAccount = client.GetBatchAccountResource(batchAccountResourceId);

    BatchAccountPoolCollection poolCollection = batchAccount.GetBatchAccountPools();

    BatchAccountPoolData poolData = new BatchAccountPoolData()
    {
        VmSize = "standard_ds1_v2",
        DeploymentConfiguration = new BatchDeploymentConfiguration()
        {
            VmConfiguration = new BatchVmConfiguration(
                imageReference: new BatchImageReference()
                {
                    Publisher = "Canonical",
                    Offer = "UbuntuServer",
                    Sku = "22.04-LTS"
                },
                nodeAgentSkuId: "batch.node.ubuntu 22.04")
            {
                 DiskEncryptionConfiguration = new BatchDiskEncryptionConfiguration()
                 {
                     Targets = { BatchDiskEncryptionTarget.OSDisk, BatchDiskEncryptionTarget.TemporaryDisk }
                 }
            }
        }
    };

    ArmOperation<BatchAccountPoolResource> pool = await poolCollection.CreateOrUpdateAsync(
        WaitUntil.Completed, "diskencryptionPool", poolData);
}

Zbiorczy interfejs API REST

Adres URL interfejsu API REST:

POST {batchURL}/pools?api-version=2020-03-01.11.0
client-request-id: 00000000-0000-0000-0000-000000000000

Treść żądania:

"pool": {
    "id": "pool2",
    "vmSize": "standard_a1",
    "virtualMachineConfiguration": {
        "imageReference": {
            "publisher": "Canonical",
            "offer": "UbuntuServer",
            "sku": "22.04-LTS"
        },
        "diskEncryptionConfiguration": {
            "targets": [
                "OsDisk",
                "TemporaryDisk"
            ]
        },
        "nodeAgentSKUId": "batch.node.ubuntu 22.04"
    },
    "resizeTimeout": "PT15M",
    "targetDedicatedNodes": 5,
    "targetLowPriorityNodes": 0,
    "taskSlotsPerNode": 3,
    "enableAutoScale": false,
    "enableInterNodeCommunication": false
}

Azure CLI

az batch pool create \
    --id diskencryptionPool \
    --vm-size Standard_DS1_V2 \
    --target-dedicated-nodes 2 \
    --image canonical:ubuntuserver:22.04-LTS \
    --node-agent-sku-id "batch.node.ubuntu 22.04" \
    --disk-encryption-targets OsDisk TemporaryDisk

Następne kroki