Criar um conjunto com a encriptação de disco ativada

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

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

Importante

Azure Disk Encryption (ADE) para pools Azure Batch encerra-se a 15 de setembro de 2028. Antes dessa data, migre configurações de pool que dependam do ADE para encriptação do disco temporário para encriptação no host. A aposentação não afeta a encriptação padrão do lado do servidor dos discos geridos.

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

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

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

Os alvos de encriptação de disco não selecionam diretamente uma tecnologia de encriptação. Especifique os discos-alvo que pretende encriptar, e o Batch seleciona uma tecnologia aplicável com base na configuração do pool. Pode solicitar explicitamente encriptação no host no perfil de segurança da máquina virtual. A imagem seguinte mostra como o Batch faz a seleção.

Importante

Se criares o teu pool com uma imagem personalizada Linux, só podes ativar a encriptação de disco se o teu pool usar um tamanho de VM que suporte encriptação no anfitrião.

Para um pool de subscrições de utilizador, regista a Microsoft.Compute/EncryptionAtHost funcionalidade na subscrição que contém os recursos do pool, e define securityProfile.encryptionAtHost explicitamente para true. Para mais informações, consulte Pré-requisitos para encriptação no host.

Captura de tela da Criação de Pool no portal do Azure.

Algumas configurações de criptografia de disco exigem que a família VM do pool ofereça suporte à criptografia no host. Consulte Criptografia de ponta a ponta usando criptografia no host para determinar quais famílias de VM oferecem suporte à criptografia no host.

Note

A encriptação do disco temporário em tamanhos de VM que não suportam encriptação no anfitrião requer Azure Disk Encryption (ADE). O 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 ativar a encriptação temporária do disco num destes tamanhos não suportados, o Batch rejeita a criação do pool com um AzureDiskEncryptionNotSupportedOnVMSize erro. Para usar a encriptação de disco temporário sem o Azure Disk Encryption (ADE), escolha um tamanho de VM e uma subscrição que suportem a encriptação no anfitrião. Para um pool de serviços Batch, não desative explicitamente a encriptação no host. Para um pool de subscrições de utilizadores, defina securityProfile.encryptionAtHost explicitamente como true.

Descontinuação do Azure Disk Encryption

Azure Disk Encryption (ADE) para pools de lotes será retirado a 15 de setembro de 2028. Após a data de descontinuação, os Batch pools deixam de suportar ADE. Configurações de pool que continuam a depender do ADE podem sofrer interrupções quando o Batch fornece ou substitui nós de computação.

Complete a migração antes da data de descontinuação se a configuração do seu pool solicitar encriptação do disco temporário e puder selecionar ADE. Utilize a encriptação no anfitrião como substituição. A encriptação no host encripta o disco temporário, os discos efémeros do sistema operativo e as caches dos discos do sistema operativo e de dados no host da VM.

A aposentação do ADE não afeta a encriptação em repouso de discos geridos com chaves geridas pela plataforma, que está ativada por defeito para discos geridos no Azure.

Verifique se a sua piscina requer intervenção

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

Configuração do pool Dependência de ADE Action
diskEncryptionConfiguration não está definido, nem TemporaryDisk está incluído nos seus destinos A configuração não depende do ADE para encriptação do disco temporário. Não é necessária qualquer ação para esta descontinuação.
É solicitado o modo TemporaryDisk de alocação de pool de serviços por lote, o tamanho da VM suporta encriptação no host, e a encriptação no host não está explicitamente desativada O batch seleciona a encriptação no lado do host. Não é necessária migração. Continue a usar um tamanho de VM que suporte encriptação no host.
É solicitado o modo TemporaryDisk de alocação de pool de serviços por lote, e o tamanho da VM não suporta encriptação no host A configuração pode depender do ADE. Migrar para um tamanho de VM que suporte encriptação no host.
O modo de alocação de pool de subscrições de utilizadores TemporaryDisk é solicitado e securityProfile.encryptionAtHost não está definido para true A configuração pode depender do ADE. O Batch não ativa automaticamente a encriptação no host para pools de subscrições de utilizadores. Registe a funcionalidade de encriptação no anfitrião na subscrição do pool e ative explicitamente a encriptação no anfitrião.
securityProfile.encryptionAtHost é explicitamente definido como false e é feito um pedido de TemporaryDisk A configuração pode depender do ADE. Utilize um tamanho de VM suportado e defina encryptionAtHost para true.

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

Configurar novos pools

Para novos pools que requerem encriptação temporária de disco, selecione um tamanho de VM que suporte encriptação no anfitrião. Não desatives explicitamente a encriptação no anfitrião.

Para pools de subscrições de utilizadores, também regista a Microsoft.Compute/EncryptionAtHost funcionalidade na subscrição que contém os recursos do pool e define securityProfile.encryptionAtHost para true.

Migrar um pool existente para encriptação no host

Podes atualizar um pool existente sem apagar o pool Batch. A atualização substitui a implementação de computação subjacente quando o pool voltar a aumentar horizontalmente.

  1. Pare de agendar novos trabalhos no pool e espere que as tarefas em execução terminem ou mude-as para outro pool.
  2. Redimensione tanto as contagens dedicadas como as contagens de nós alvo 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. Utilize a versão 2024-07-01 ou posterior da API Pool - Update API para:
    • Selecione um tamanho de VM que suporte encriptação no anfitrião, se o tamanho atual não o suportar.
    • Defina deploymentConfiguration.virtualMachineConfiguration.securityProfile.encryptionAtHost como true.
    • Preservar os alvos de encriptação de disco necessários e as outras propriedades de configuração da máquina virtual.
  5. Redimensione o pool para os números de nós de destino necessários. O Batch cria uma nova implementação subjacente de computação usando a configuração atualizada.

Por exemplo, a parte relevante de um pedido 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 a sua referência de imagem, SKU do agente de nó, definições do disco do sistema operativo, configuração do contentor, extensões e discos de dados. Antes de atualizares um pool de produção, recupera a sua configuração atual e constrói o pedido com todos os valores necessários.

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

portal do Azure

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

Captura de ecrã da opção Configuração de Encriptação de Disco no portal do Azure.

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

Captura de ecrã a mostrar os destinos de configuração de encriptação de disco no portal do Azure.

Exemplos

Os exemplos seguintes mostram como encriptar o sistema operativo e discos temporários num pool Batch usando o SDK Azure.ResourceManager.Batch, a API REST Batch 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 de processamento em lote

URL da API REST:

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

Corpo do pedido:

"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óximos passos