Een pool maken met schijfversleuteling ingeschakeld

Wanneer u een Azure Batch-pool maakt met behulp van configuratie van virtuele machines, kunt u rekenknooppunten in de pool versleutelen met een door het platform beheerde sleutel door de configuratie van schijfversleuteling op te geven.

In dit artikel wordt uitgelegd hoe u een Batch-pool maakt waarvoor schijfversleuteling is ingeschakeld.

Belangrijk

Azure Disk Encryption (ADE) voor Azure Batch pools gaat met pensioen op 15 september 2028. Voor die datum migreer je poolconfiguraties die afhankelijk zijn van ADE voor tijdelijke schijfencryptie naar encryptie bij de host. De uitfasering beïnvloedt de standaard server-side encryptie van beheerde schijven niet.

Waarom een pool met schijfversleutelingsconfiguratie gebruiken?

Met een Batch-pool kunt u gegevens openen en opslaan op het besturingssysteem en tijdelijke schijven van het rekenknooppunt. Door de schijf aan de serverzijde te versleutelen met een door het platform beheerde sleutel, worden deze gegevens beveiligd met weinig overhead en gemak.

Batch past een van deze schijfversleutelingstechnologieën toe op rekenknooppunten, op basis van poolconfiguratie en regionale ondersteuning.

De doelen voor schijfversleuteling selecteren niet rechtstreeks een encryptietechnologie. Je specificeert de doelschijven die je wilt versleutelen, en Batch selecteert een toepasselijke technologie op basis van de poolconfiguratie. Je kunt expliciet hostversleuteling aanvragen in het beveiligingsprofiel van de virtuele machine. De volgende afbeelding laat zien hoe Batch de selectie maakt.

Belangrijk

Als je je pool aanmaakt met een Linux custom image, kun je schijfencryptie alleen inschakelen als je pool een VM-grootte gebruikt die encryptie ondersteunt bij host.

Voor een gebruikersabonnementspool registreer je de Microsoft.Compute/EncryptionAtHost functieonderdeel in het abonnement dat de poolresources bevat, en stel je securityProfile.encryptionAtHost expliciet in op true. Voor meer informatie, zie Vereisten voor hostversleuteling.

Schermopname van het maken van een pool in Azure Portal.

Voor sommige schijfversleutelingsconfiguraties is vereist dat de VM-familie van de pool versleuteling op de host ondersteunt. Zie End-to-end-versleuteling met behulp van versleuteling op de host om te bepalen welke VM-families versleuteling ondersteunen op de host.

Note

Tijdelijke schijfversleuteling op VM-groottes die geen encryptie op de host ondersteunen, vereist Azure Disk Encryption (ADE). ADE wordt niet ondersteund op Basic-, A-series, v6-series, v7-series (en latere) VM-formaten, of op VM's met minder dan 2 GB geheugen. Als je tijdelijke schijfencryptie inschakelt op een van deze niet-ondersteunde groottes, wijst Batch het aanmaken van een pool af met een AzureDiskEncryptionNotSupportedOnVMSize foutmelding. Om tijdelijke schijfencryptie zonder ADE te gebruiken, kies je een VM-grootte en abonnement die encryptie op de host ondersteunen. Voor een batch service pool moet je de encryptie niet expliciet bij de host uitschakelen. Voor een gebruikersabonnementspool, stel securityProfile.encryptionAtHost expliciet in op true.

Azure Disk Encryption retirement

Azure Disk Encryption (ADE) voor batchpools wordt op 15 september 2028 uitgefaseerd. Na de buitengebruikstellingsdatum ondersteunen batchpools geen ADE. Poolconfiguraties die nog steeds afhankelijk zijn van ADE kunnen verstoringen ervaren wanneer Batch compute-knooppunten provisioneert of vervangt.

Voltooi de migratie vóór de uitfaseringsdatum als je poolconfiguratie tijdelijke schijfencryptie aanvraagt en ADE kan selecteren. Gebruik encryptie op de host als vervanger. Versleuteling op de host versleutelt de tijdelijke schijf, de ephemeral OS-schijven en de caches van OS- en datadisks op de VM-host.

De buitengebruikstelling van ADE heeft geen invloed op de versleuteling van beheerde schijven in rust met platformbeheerde sleutels, die standaard is ingeschakeld voor door Azure beheerde schijven.

Bepaal of uw pool actie vereist

De eigenschappen van de Batch pool tonen de schijfencryptiedoelen die je hebt aangevraagd, maar ze identificeren niet de encryptietechnologie die Batch voor de nodes heeft geselecteerd. Gebruik de volgende tabel om te beoordelen of een poolconfiguratie afhankelijk kan zijn van ADE.

Poolconfiguratie ADE-afhankelijkheid Action
diskEncryptionConfiguration niet is ingesteld, of TemporaryDisk niet is opgenomen in zijn targets De configuratie is niet afhankelijk van ADE voor tijdelijke schijfversleuteling. Voor deze pensionering is geen actie nodig.
De allocatiemodus van de Batch-servicepool, TemporaryDisk, is aangevraagd, de VM-grootte ondersteunt encryptie op hostniveau en encryptie op hostniveau is niet expliciet uitgeschakeld Batch selecteert versleuteling op de host. Er is geen migratie vereist. Blijf een VM-formaat gebruiken dat hostversleuteling ondersteunt.
De batch service pool allocatiemodus TemporaryDisk is aangevraagd en de VM-grootte ondersteunt geen encryptie op de host De configuratie kan afhangen van ADE. Migreren naar een VM-grootte die encryptie op de host ondersteunt.
De toewijzingsmodus van de pool voor gebruikersabonnementen, wanneer TemporaryDisk is aangevraagd en securityProfile.encryptionAtHost niet is ingesteld op true De configuratie kan afhangen van ADE. Batch schakelt de encryptie bij de host niet automatisch in voor gebruikersabonnementspools. Registreer de functie Encryption at host in het poolabonnement en schakel Encryption at host expliciet in.
securityProfile.encryptionAtHost is expliciet ingesteld op false en TemporaryDisk wordt gevraagd De configuratie kan afhangen van ADE. Gebruik een ondersteunde VM-grootte en stel encryptionAtHost in op true.

Om te bepalen of een VM-grootte encryptie ondersteunt op host, zie Ondersteunde VM-groottes.

Configureer nieuwe pools

Voor nieuwe pools die tijdelijke schijfversleuteling vereisen, kies een VM-grootte die encryptie op de host ondersteunt. Schakel de encryptie niet expliciet uit bij de host.

Voor gebruikersabonnementspools registreert u ook de Microsoft.Compute/EncryptionAtHost-functie in het abonnement dat de poolresources bevat en zet u securityProfile.encryptionAtHost op true.

Migreer een bestaande pool naar encryptie bij de host

Je kunt een bestaande pool bijwerken zonder de Batch pool te verwijderen. De update vervangt de onderliggende compute-deployment wanneer je de pool opnieuw uitschaalt.

  1. Stop met het plannen van nieuw werk in de pool en wacht tot uitvoerende taken klaar zijn of verplaats ze naar een andere pool.
  2. Wijzig zowel de toegewijde als de Spot- of laag-prioriteit aantallen doelknooppunten naar nul.
  3. Wacht tot de poolallocatiestatus Steady is en het huidige aantal knopen nul is.
  4. Gebruik de Batch Management Plane Pool - Update API-versie2024-07-01 of hoger om:
    • Kies een VM-grootte die versleuteling ondersteunt bij de host, als de huidige grootte dat niet ondersteunt.
    • Stel deploymentConfiguration.virtualMachineConfiguration.securityProfile.encryptionAtHost in op true.
    • Bebehoud de vereiste schijfversleutelingsdoelen en de andere configuratie-eigenschappen van de virtuele machine.
  5. Verander de grootte van de pool naar de vereiste doelknoopaantallen. Batch maakt een nieuwe onderliggende compute-deployment aan door gebruik te maken van de bijgewerkte configuratie.

Bijvoorbeeld, het relevante onderdeel van een Management Plane-verzoek PATCH is:

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

Neem de bestaande configuratie-eigenschappen van de virtuele machine op die de pool moet behouden, zoals de imagereferentie, node-agent SKU, OS-diskinstellingen, containerconfiguratie, extensies en datadisks. Voordat je een productiepool bijwerkt, haal je de huidige configuratie op en bouw je het verzoek op met alle vereiste waarden.

Voor meer informatie over zero-node-updates en updategedrag, zie Update Batch pool-eigenschappen.

Azure Portal

Wanneer u een Batch-pool maakt in Azure Portal, selecteert u OsDisk, TemporaryDisk of OsAndTemporaryDisk onder Schijfversleutelingsconfiguratie.

Schermopname van de optie Schijfversleutelingsconfiguratie in Azure Portal.

Nadat de pool is gemaakt, ziet u de configuratiedoelen voor schijfversleuteling in de sectie Eigenschappen van de groep.

Schermopname van de configuratiedoelen voor schijfversleuteling in Azure Portal.

Voorbeelden

In de volgende voorbeelden ziet u hoe u het besturingssysteem en tijdelijke schijven in een Batch-pool versleutelt met behulp van de Azure.ResourceManager.Batch SDK, de Batch REST API en de 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);
}

Batch-REST API

REST API-URL:

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

Lichaam van het verzoek:

"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

Volgende stappen