Создание пула с включенным шифрованием дисков

При создании пула пакетной службы Azure с помощью конфигурации виртуальной машины можно зашифровать вычисленные узлы в пуле с помощью ключа, управляемого платформой, указав конфигурацию шифрования диска.

В этой статье объясняется, как создать пул Batch с включенным шифрованием дисков.

Зачем использовать пул с конфигурацией шифрования дисков?

С помощью пула пакетной обработки вы можете получать доступ и хранить данные на ОС и временных дисках вычислительного узла. Шифрование серверного диска ключом, управляемым платформой, защитит эти данные с низкими накладными расходами и удобством.

Служба Batch применяет одну из этих технологий шифрования дисков на вычислительных узлах в зависимости от конфигурации пула и региональной поддержки.

Вы не сможете указать, какой метод шифрования будет применяться к узлам в вашем пуле. Вместо этого вы указываете целевые диски, которые хотите зашифровать на их узлах, и Batch может выбрать соответствующий метод шифрования, так что указанные диски будут зашифрованы на вычислительном узле. На следующем рисунке показано, как Batch принимает этот выбор.

Внимание

При создании пула с пользовательским образом Linux можно включить шифрование дисков только в том случае, если пул использует размер виртуальной машины, поддерживающий шифрование на узле. Шифрование на узле в настоящее время не поддерживается в пулах подписок пользователей, пока эта функция не станет общедоступной в Azure.

Снимок экрана создания пула в портале Azure.

Для некоторых конфигураций шифрования дисков требуется, чтобы семейство виртуальных машин пула поддерживало шифрование на узле. См. сквозное шифрование с использованием шифрования на узле, чтобы определить, какие семейства виртуальных машин поддерживают шифрование на узле.

Note

Шифрование временного диска на размерах виртуальных машин, не поддерживающих шифрование на узле, требует использования Шифрование дисков Azure (ADE). ADE не поддерживается на форматах Basic, A-series, v6-series, v7-серии (и более поздних) VM, а также на виртуальных машинах с объёмом памяти менее 2 ГБ. Если вы включите временное шифрование диска на одном из этих неподдерживаемых размеров, Batch отклоняет создание пула с AzureDiskEncryptionNotSupportedOnVMSize ошибкой. Чтобы использовать временное шифрование на диске, когда ADE не поддерживается, выберите размер виртуальной машины и подписку, поддерживающую шифрование на хоста, и не отключайте шифрование прямо на хосте в профиле безопасности пула.

Портал Azure

При создании пула Batch в портале Azure выберите OsDisk, TemporaryDisk или OsAndTemporaryDisk в разделе «Конфигурация шифрования дисков».

Снимок экрана с параметром конфигурации шифрования диска на портале Azure.

После создания пула можно увидеть целевые объекты конфигурации шифрования дисков в разделе Свойства пула.

Снимок экрана, на котором изображены целевые объекты конфигурации шифрования диска на портале Azure.

Примеры

В следующих примерах показано, как шифровать ОС и временные диски в пуле пакетной службы с помощью пакета SDK Azure.ResourceManager.Batch, REST API пакетной службы и 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);
}

REST API для пакетной обработки

URL-АДРЕС REST API:

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

Текст запроса:

"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

Следующие шаги