Erstellen eines Pools mit aktivierter Datenträgerverschlüsselung

Wenn Sie einen Azure Batch-Pool mithilfe einer VM-Konfiguration erstellen, können Sie Computeknoten im Pool mit einem plattformseitig verwalteten Schlüssel verschlüsseln, indem Sie die Datenträgerverschlüsselungskonfiguration angeben.

In diesem Artikel wird erläutert, wie ein Batch-Pool mit aktivierter Datenträgerverschlüsselung erstellt wird.

Wichtig

Azure Disk Encryption (ADE) für Azure Batch Pools wird am 15. September 2028 eingestellt. Migrieren Sie vor diesem Datum Pool-Konfigurationen, die auf ADE für die Verschlüsselung temporärer Datenträger angewiesen sind, zu Verschlüsselung auf Hostebene. Die Außerbetriebnahme beeinflusst nicht die standardmäßige serverseitige Verschlüsselung von verwalteten Festplatten.

Gründe für die Verwendung eines Pools mit Disk Encryption-Konfiguration

Wenn Sie über einen Batch-Pool verfügen, können Sie Daten auf den Betriebssystem- und temporären Datenträgern des Computeknotens speichern und dort auf die Daten zugreifen. Diese Daten lassen sich mit geringem Aufwand schützen, indem Sie den serverseitigen Datenträger mit einem plattformseitig verwalteten Schlüssel verschlüsseln.

Batch wendet basierend auf der Poolkonfiguration und der regionalen Unterstützung eine dieser Datenträgerverschlüsselungstechnologien auf Computeknoten an.

Die Ziele für die Datenträgerverschlüsselung wählen keine Verschlüsselungstechnologie direkt aus. Du gibst die Zielfestplatten an, die du verschlüsseln möchtest, und Batch wählt basierend auf der Pool-Konfiguration eine passende Technologie aus. Sie können explizit die Verschlüsselung am Host im Sicherheitsprofil der virtuellen Maschine anfordern. Das folgende Bild zeigt, wie Batch die Auswahl trifft.

Wichtig

Wenn du deinen Pool mit einem benutzerdefinierten Linux-Image erstellst, kannst du die Festplattenverschlüsselung nur aktivieren, wenn dein Pool eine VM-Größe verwendet, die Verschlüsselung am Host unterstützt.

Für einen Benutzer-Abonnement-Pool registrieren Sie die Microsoft.Compute/EncryptionAtHost Funktion im Abonnement, die die Pool-Ressourcen enthält, und setzen Sie securityProfile.encryptionAtHost explizit auf true. Weitere Informationen finden Sie unter Voraussetzungen für Verschlüsselung am Host.

Screenshot: Poolerstellung im Azure-Portal.

Einige Datenträgerverschlüsselungskonfigurationen erfordern, dass die VM-Familie des Pools die Verschlüsselung auf dem Host unterstützt. Informationen dazu, welche VM-Familien die Verschlüsselung auf dem Host unterstützen, finden Sie unter End-to-End-Verschlüsselung mit Verschlüsselung auf dem Host.

Note

Die temporäre Festplattenverschlüsselung bei VM-Größen, die keine Verschlüsselung am Host unterstützen, erfordert Azure Disk Encryption (ADE). ADE wird nicht auf Basic-, A-Series-, v6-Series-, v7-Serie (und späteren) VM-Größen oder auf VMs mit weniger als 2 GB Speicher unterstützt. Wenn du temporäre Festplattenverschlüsselung auf einer dieser nicht unterstützten Größen aktivierst, lehnt Batch die Poolerstellung mit einem AzureDiskEncryptionNotSupportedOnVMSize Fehler ab. Um temporäre Festplattenverschlüsselung ohne ADE zu verwenden, wählen Sie eine VM-Größe und ein Abonnement, das Verschlüsselung am Host unterstützt. Bei einem Batch-Service-Pool sollte die Verschlüsselung am Host nicht explizit deaktiviert werden. Für einen Benutzerabonnement-Pool setzen Sie true explizit auf securityProfile.encryptionAtHost.

Einstellung von Azure Disk Encryption

Azure Disk Encryption (ADE) für Batch-Pools wird am 15. September 2028 eingestellt. Nach dem Außerbetriebnahmedatum unterstützen Batch-Pools kein ADE. Poolkonfigurationen, die weiterhin von ADE abhängig sind, können beim Batchbereitstellen oder Ersetzen von Rechenknoten Störungen erleiden.

Schließen Sie die Migration vor dem Datum der Außerbetriebnahme ab, wenn Ihre Pool-Konfiguration temporäre Festplattenverschlüsselung anfordert und ADE auswählen kann. Verwenden Sie die Hostverschlüsselung als Ersatz. Die Verschlüsselung am Host verschlüsselt die temporäre Festplatte, die ephemeren Betriebssystemdatenträger sowie die Caches der Betriebssystem- und Datenfestplatten am VM-Host.

Die Einstellung von ADE beeinträchtigt die serverseitige Verschlüsselung ruhender Daten verwalteter Datenträger mit plattformverwalteten Schlüsseln nicht, was für von Azure verwaltete Datenträger standardmäßig aktiviert ist.

Bestimmen Sie, ob Ihr Pool Maßnahmen benötigt

Die Eigenschaften des Batch-Pools zeigen die von Ihnen angeforderten Festplattenverschlüsselungsziele an, aber sie identifizieren nicht die von Batch ausgewählte Verschlüsselungstechnologie für die Knoten. Verwenden Sie die folgende Tabelle, um zu beurteilen, ob eine Poolkonfiguration von ADE abhängen kann.

Poolkonfiguration ADE-Abhängigkeit Action
diskEncryptionConfiguration ist nicht festgelegt oder TemporaryDisk nicht in seinen Zielen enthalten ist Die Konfiguration hängt nicht von ADE für temporäre Festplattenverschlüsselung ab. Für diese Stilllegung ist keine Maßnahme erforderlich.
Der Batch-Service-Pool-Zuweisungsmodus TemporaryDisk wird angefordert, die VM-Größe unterstützt Verschlüsselung am Host, und die Verschlüsselung am Host ist nicht explizit deaktiviert Stapelverarbeitung wählt die Verschlüsselung auf dem Host aus. Es ist keine Migration erforderlich. Verwenden Sie weiterhin eine VM-Größe, die Verschlüsselung am Host unterstützt.
Der Zuweisungsmodus des Batch-Servicepools, TemporaryDisk, wird angefordert, und die VM-Größe unterstützt keine Verschlüsselung auf dem Host Die Konfiguration kann von ADE abhängen. Migriere auf eine VM-Größe, die Verschlüsselung am Host unterstützt.
Der Zuweisungsmodus für Benutzer-Abonnement-Pools TemporaryDisk wird angefordert und securityProfile.encryptionAtHost ist nicht auf true festgelegt Die Konfiguration kann von ADE abhängen. Batch aktiviert die Verschlüsselung am Host für Abonnementpools für Benutzer nicht automatisch. Registrieren Sie die Hostverschlüsselung im Pool-Abonnement und aktivieren Sie die Hostverschlüsselung explizit.
securityProfile.encryptionAtHost ist explizit auf false gesetzt und TemporaryDisk wird angefordert Die Konfiguration kann von ADE abhängen. Verwenden Sie eine unterstützte VM-Größe und setzen Sie encryptionAtHost auf true.

Um festzustellen, ob eine VM-Größe Verschlüsselung am Host unterstützt, siehe Unterstützte VM-Größen.

Neue Pools konfigurieren

Für neue Pools, die temporäre Festplattenverschlüsselung erfordern, wählen Sie eine VM-Größe aus, die die Verschlüsselung am Host unterstützt. Deaktiviere die Verschlüsselung am Host nicht ausdrücklich.

Für Benutzer-Abonnementpools registrieren Sie auch die Microsoft.Compute/EncryptionAtHost Funktion im Abonnement, die die Pool-Ressourcen enthält, und setzen Sie securityProfile.encryptionAtHost auf true.

Migriere einen bestehenden Pool zur hostbasierten Verschlüsselung

Du kannst einen bestehenden Pool aktualisieren, ohne den Batch-Pool zu löschen. Das Update ersetzt die zugrunde liegende Compute-Deployment, wenn du den Pool erneut skalierst.

  1. Hör auf, neue Aufgaben im Pool zu planen, und warte, bis die laufenden Aufgaben abgeschlossen sind, oder verschiebe sie in einen anderen Pool.
  2. Legen Sie sowohl die Anzahl der dedizierten als auch der Spot- oder niedrigprioritären Zielknoten auf null fest.
  3. Warte, bis der Zuweisungszustand des Pools Steady ist und die aktuellen Knotenzählungen null sind.
  4. Verwenden Sie die Batch Management Plane Pool - Update API Version 2024-07-01 oder höher, um:
    • Wählen Sie eine VM-Größe aus, die Verschlüsselung am Host unterstützt, falls die aktuelle Größe dies nicht unterstützt.
    • Setze deploymentConfiguration.virtualMachineConfiguration.securityProfile.encryptionAtHost auf true.
    • Behalten Sie die erforderlichen Festplattenverschlüsselungsziele und die anderen Konfigurationseigenschaften der virtuellen Maschine bei.
  5. Dimensionieren Sie den Pool auf die erforderliche Anzahl der Zielknoten. Batch erstellt eine neue zugrundeliegende Compute-Bereitstellung durch die Verwendung der aktualisierten Konfiguration.

Zum Beispiel ist der relevante Teil einer Management-Plane-Anfrage PATCH :

{
  "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

Fügen Sie die vorhandenen Konfigurationseigenschaften der virtuellen Maschine hinzu, die der Pool behalten muss, wie z. B. seine Image-Referenz, die Node-Agent-SKU, die Einstellungen der Betriebssystem-Festplatten, die Containerkonfiguration, Erweiterungen und Datenfestplatten. Bevor Sie einen Produktionspool aktualisieren, rufen Sie die aktuelle Konfiguration ab und erstellen Sie die Anfrage mit allen erforderlichen Werten.

Weitere Informationen zu Null-Knoten-Updates und Update-Verhalten finden Sie unter Update Batch Pool-Eigenschaften.

Azure-Portal

Wählen Sie beim Erstellen eines Batch-Pools im Azure-Portal unter Datenträgerverschlüsselungskonfiguration entweder OsDisk, TemporaryDisk oder OsAndTemporaryDisk aus.

Screenshot der Disk Encryption-Konfigurationsoption im Azure-Portal.

Nachdem der Pool erstellt wurde, werden die Disk Encryption-Konfigurationsziele im Abschnitt Eigenschaften des Pools angezeigt.

Screenshot mit den Disk Encryption-Konfigurationszielen im Azure-Portal.

Beispiele

Die folgenden Beispiele zeigen, wie Sie das Betriebssystem und temporäre Datenträger in einem Batchpool mithilfe des Azure.ResourceManager.Batch SDK, der Batch-REST-API und der Azure CLI verschlüsseln.

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);
}

Batch-REST-API

REST-API-URL:

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

Anforderungstext:

"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

Nächste Schritte