在启用磁盘加密的情况下创建池

在使用虚拟机配置创建 Azure Batch 池时,可以通过指定磁盘加密配置,使用平台管理的密钥来加密池中的计算节点。

本文介绍了如何创建启用了磁盘加密的 Batch 池。

为什么使用带有磁盘加密配置的池?

使用 Batch 池,可以在计算节点的 OS 和临时磁盘上访问并存储数据。 使用平台管理的密钥对服务器端磁盘进行加密,将会以较低的开销方便地对这些数据实施保护。

Batch 将会根据池配置和区域的可支持性在计算节点上应用这些磁盘加密技术之一。

你无法指定将哪种加密方法应用于池中的节点。 而是需要提供要在其节点上加密的目标磁盘,然后 Batch 可以选择适当的加密方法,从而确保在计算节点上对指定的磁盘进行加密。 下图描绘了 Batch 如何做出该选择。

重要

如果你使用 Linux 自定义映像创建池,则仅当池使用以主机支持的 VM 大小加密时,才能启用磁盘加密。 用户订阅池目前不支持主机加密,直到该功能在 Azure 中公开可用

Azure 门户

在 Azure 门户中创建 Batch 池时,请选择“磁盘加密配置”下的“TemporaryDisk”或“OsAndTemporaryDisk” 。

Azure 门户中磁盘加密配置选项的屏幕截图。

创建池后,可在池的“属性”部分中看到磁盘加密配置目标。

显示 Azure 门户中磁盘加密配置目标的屏幕截图。

示例

以下示例演示了如何使用 Batch .NET SDK、Batch REST API 和 Azure CLI 来加密 Batch 池中的 OS 和临时磁盘。

Batch .NET SDK

pool.VirtualMachineConfiguration.DiskEncryptionConfiguration = new DiskEncryptionConfiguration(
    targets: new List<DiskEncryptionTarget> { DiskEncryptionTarget.OsDisk, DiskEncryptionTarget.TemporaryDisk }
    );

Batch REST API

REST API URL:

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

后续步骤