Criar um pool com a criptografia de disco habilitada

Ao criar um pool de Lote do Azure usando a Configuração de máquina virtual, você pode criptografar nós de computação no pool com uma chave gerenciada por plataforma especificando a configuração de criptografia de disco.

Este artigo explica como criar um pool de lote com a criptografia de disco habilitada.

Importante

Azure Disk Encryption (ADE) para Lote do Azure pools será aposentado em 15 de setembro de 2028. Antes dessa data, migre configurações de pool que dependem de ADE para criptografia do disco temporário para a criptografia no host. A descontinuação não afeta a criptografia padrão do lado do servidor dos discos gerenciados.

Por que usar um pool com a configuração de criptografia de disco?

Com um "Batch pool", você pode acessar e armazenar dados no sistema operacional e nos discos temporários do nó de computação. Criptografar o disco do lado do servidor com uma chave gerenciada por plataforma protegerá esses dados com baixa sobrecarga e conveniência.

Batch aplicará uma dessas tecnologias de criptografia de disco em nós de computação, com base na configuração do pool e no suporte regional.

Os alvos de criptografia de disco não selecionam diretamente uma tecnologia de criptografia. Você especifica os discos de destino que deseja criptografar, e o Batch seleciona uma tecnologia aplicável com base na configuração do pool. Você pode solicitar explicitamente a criptografia no host no perfil de segurança da máquina virtual. A imagem a seguir mostra como o Batch faz a seleção.

Importante

Se você criar seu pool com uma imagem personalizada do Linux, só pode ativar a criptografia de disco se seu pool usar um tamanho de VM que suporte criptografia no host.

Para um pool de assinaturas de usuários, registre a funcionalidade Microsoft.Compute/EncryptionAtHost na assinatura que contém os recursos do pool e defina securityProfile.encryptionAtHost explicitamente como true. Para mais informações, veja Pré-requisitos para criptografia no host.

Captura de tela da criação do pool no portal do Azure.

Algumas configurações de criptografia de disco exigem que a família de VMs do pool dê suporte à criptografia no host. Confira Criptografia de ponta a ponta usando a criptografia no host para determinar quais famílias de VM dão suporte à criptografia no host.

Note

Criptografia temporária de disco em VMs que não suportam criptografia no host requer Azure Disk Encryption (ADE). ADE não é suportado em VMs Basic, A-series, v6-series, v7-series (e posteriores), nem em VMs com menos de 2 GB de memória. Se você ativar a criptografia temporária de disco em um desses tamanhos não suportados, o Batch rejeita a criação do pool com um AzureDiskEncryptionNotSupportedOnVMSize erro. Para usar criptografia de disco temporário sem ADE, escolha um tamanho de VM e uma subscrição que deem suporte à criptografia no host. Para um pool de serviços em lote, não desabilite explicitamente a criptografia no host. Para um pool de assinaturas de usuários, defina securityProfile.encryptionAtHost explicitamente como true.

Desativação do Azure Disk Encryption

Azure Disk Encryption (ADE) para pools do Batch será aposentado em 15 de setembro de 2028. Após a data de aposentadoria, os Batch pools não suportam ADE. Configurações de pool que continuam dependendo do ADE podem sofrer interrupções quando o Batch provisiona ou substitui nós de computação.

Conclua a migração antes da data de desativação se a configuração do seu pool solicitar criptografia de disco temporário e puder selecionar ADE. Use a criptografia no host como substituição. A criptografia no host criptografa o disco temporário, os discos efêmeros do sistema operacional e os caches dos discos do sistema operacional e de dados no host da VM.

A desativação do ADE não afeta a criptografia gerenciada de disco em repouso com chaves gerenciadas pela plataforma, que é ativada por padrão para discos gerenciados no Azure.

Verifique se sua piscina requer alguma ação

As propriedades do pool do Batch mostram os alvos de criptografia de disco que você solicitou, mas não identificam a tecnologia de criptografia que o Batch selecionou para os nós. Use a tabela a seguir para avaliar se a configuração de um pool pode depender do ADE.

Configuração de pool Dependência de ADE Action
diskEncryptionConfiguration não está definido, ou TemporaryDisk não está incluído em seus destinos A configuração não depende do ADE para criptografia de disco temporário. Nenhuma ação é necessária para esta desativação.
O modo TemporaryDisk de alocação de pool de serviços em lote é solicitado, o tamanho da VM suporta criptografia no host, e a criptografia no host não é explicitamente desativada O lote seleciona a criptografia no host. Nenhuma migração é necessária. Continue usando um tamanho de VM que suporte criptografia no host.
O modo TemporaryDisk de alocação de pool de serviços em lote é solicitado, e o tamanho da VM não suporta criptografia no host A configuração pode depender do ADE. Migre para um tamanho de VM que suporte criptografia no host.
O modo de alocação de pool de assinaturas de usuários TemporaryDisk é solicitado, e securityProfile.encryptionAtHost não está definido como true A configuração pode depender do ADE. O Batch não habilita automaticamente a criptografia no nível do host para pools de assinaturas de usuários. Registre o recurso de criptografia no host na assinatura do pool e ative explicitamente a criptografia no host.
securityProfile.encryptionAtHost é explicitamente definido como false e TemporaryDisk é solicitado A configuração pode depender do ADE. Use um tamanho de VM compatível e defina encryptionAtHost como true.

Para determinar se o tamanho de uma VM suporta criptografia no host, veja Tamanhos de VM suportados.

Configurar novos pools

Para novos pools que exigem criptografia temporária de disco, selecione um tamanho de VM que suporte criptografia no host. Não desative explicitamente a criptografia no host.

Para pools de assinaturas de usuários, também registre o recurso Microsoft.Compute/EncryptionAtHost na assinatura que contém os recursos do pool e defina securityProfile.encryptionAtHost para true.

Migre um pool existente para criptografia no host

Você pode atualizar um pool existente sem deletar o pool Batch. A atualização substitui a implantação de computação subjacente quando você aumenta a escala do pool novamente.

  1. Pare de agendar novos trabalhos no pool e espere as tarefas em execução terminarem ou mova para outro pool.
  2. Redimensione as contagens de nós de destino dedicada e Spot ou de baixa prioridade para zero.
  3. Espere até que o estado de alocação do pool seja Estável e as contagens atuais de nós sejam zero.
  4. Use a versão 2024-07-01 ou posterior da API Batch Management Plane Pool - Update API para:
    • Selecione um tamanho de VM que suporte criptografia no host, se o tamanho atual não suportar.
    • Defina deploymentConfiguration.virtualMachineConfiguration.securityProfile.encryptionAtHost como true.
    • Preserve os alvos de criptografia de disco necessários e as outras propriedades de configuração da máquina virtual.
  5. Redimensione o pool para a contagem de nós alvo necessária. O Batch cria uma nova implantação de computação subjacente usando a configuração atualizada.

Por exemplo, a parte relevante de uma solicitação de Management Plane 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

Inclua as propriedades existentes de configuração da máquina virtual que o pool deve manter, como referência de imagem, SKU do agente de nó, configurações do disco do sistema operacional, configuração de contêiner, extensões e discos de dados. Antes de atualizar um pool de produção, recupere sua configuração atual e construa a requisição com todos os valores necessários.

Para mais informações sobre atualizações de zero nós e comportamento de atualização, veja Atualizar propriedades do pool do Batch.

portal do Azure

Ao criar um pool de Batch no portal do Azure, selecione em Configuração de Criptografia de Disco entre OsDisk, TemporaryDisk ou OsAndTemporaryDisk.

Captura de tela da opção Configuração de Criptografia de Disco no portal do Azure.

Depois que o pool é criado, você pode ver os destinos de configuração de criptografia de disco na seção Propriedades do pool.

Captura de tela mostrando os destinos de configuração de criptografia de disco na portal do Azure.

Exemplos

Os exemplos a seguir mostram como criptografar o sistema operacional e os discos temporários em um pool do Lote usando o SDK do Azure.ResourceManager.Batch, a API REST do Lote e a CLI do Azure.

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

API REST do Lote

URL DA API REST:

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

Corpo da solicitação:

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

CLI do Azure

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

Próximas etapas