디스크 암호화가 사용된 풀 생성

가상 머신 구성을 사용하여 Azure Batch 풀을 만들 때 디스크 암호화 구성을 지정하여 플랫폼 관리형 키를 통해 풀의 컴퓨팅 노드를 암호화할 수 있습니다.

이 문서에서는 디스크 암호화를 활성화한 Batch 풀을 만드는 방법에 대해 설명합니다.

중요한

Azure Disk Encryption (ADE) for Azure Batch pools는 2028년 9월 15일에 종료됩니다. 해당 날짜 이전에 임시 디스크 암호화를 위해 ADE에 의존하는 풀 구성을 호스트 내 암호화로 이전하세요. 지원 중단은 관리 디스크의 기본 서버 측 암호화에는 영향을 주지 않습니다.

디스크 암호화 구성이 있는 풀을 사용하는 이유는 무엇인가요?

Batch 풀을 사용하면 OS 및 컴퓨팅 노드의 임시 디스크에서 데이터에 액세스하고 데이터를 저장할 수 있습니다. 플랫폼 관리형 키로 서버 측 디스크를 암호화하면 낮은 오버헤드와 편리함으로 이 데이터를 보호할 수 있습니다.

Batch는 풀 구성 및 지역 지원 가능성에 따라 컴퓨팅 노드에 이러한 디스크 암호화 기술 중 하나를 적용합니다.

디스크 암호화 대상은 암호화 기술을 직접 선택하지 않습니다. 암호화할 대상 디스크를 지정하면, 배치가 풀 구성을 기반으로 적용 가능한 기술을 선택합니다. 가상 머신 보안 프로필에서 호스트에서 암호화를 명시적으로 요청할 수 있습니다. 다음 이미지는 Batch가 선택을 하는 과정을 보여줍니다.

중요한

리눅스 커스텀 이미지로 풀을 만들면, 호스트에서 암호화를 지원하는 VM 크기를 사용할 때만 디스크 암호화를 활성화할 수 있습니다.

사용자 구독 풀의 경우, 풀 리소스가 포함된 구독에서 Microsoft.Compute/EncryptionAtHost 기능을 등록하고 true를 securityProfile.encryptionAtHost로 명시적으로 설정합니다. 자세한 내용은 호스트 암호화 전제 조건을 참조하세요.

Azure Portal의 풀 만들기 스크린샷

일부 디스크 암호화 구성에서는 풀의 VM 제품군이 호스트에서 암호화를 지원해야 합니다. 호스트에서 암호화를 사용하여 엔드투엔드 암호화를 참조하여 호스트에서 암호화를 지원하는 VM 제품군을 확인하세요.

Note

호스트에서 암호화를 지원하지 않는 VM 크기에서 임시 디스크 암호화를 하려면 Azure Disk Encryption(ADE)이 필요합니다. ADE는 Basic, A-시리즈, v6 시리즈, v7 시리즈(및 이후) VM 크기나 2GB 미만의 VM에서는 지원되지 않습니다. 이러한 지원되지 않는 크기 중 하나에서 임시 디스크 암호화를 사용하도록 설정하면 Batch는 AzureDiskEncryptionNotSupportedOnVMSize 오류와 함께 풀 생성을 거부합니다. ADE 없이 임시 디스크 암호화를 사용하려면 호스트에서 암호화를 지원하는 VM 크기와 구독을 선택하세요. 배치 서비스 풀의 경우, 호스트에서 암호화를 명시적으로 비활성화하지 마세요. 사용자 구독 풀의 경우, 명시적으로 securityProfile.encryptionAtHost를 true(으)로 설정합니다.

Azure Disk Encryption 지원 종료

Azure Disk Encryption (ADE) for Batch pools는 2028년 9월 15일에 종료됩니다. 지원 종료일 이후에는 배치 풀이 ADE를 지원하지 않습니다. ADE에 계속 의존하는 풀 구성은 Batch가 컴퓨트 노드를 프로비전하거나 교체할 때 중단이 발생할 수 있습니다.

풀 구성에서 임시 디스크 암호화를 요청하고 ADE를 선택할 수 있다면, 서비스 종료 날짜 전에 마이그레이션을 완료하세요. 대신 호스트 측 암호화를 사용하세요. 호스트에서의 암호화는 임시 디스크, 임시적 OS 디스크, 그리고 VM 호스트의 OS 및 데이터 디스크 캐시를 암호화합니다.

ADE 은퇴는 기본적으로 Azure 관리 디스크에 활성화되어 있는 플랫폼 관리 키를 사용한 저장 데이터 암호화에 영향을 미치지 않습니다.

귀하의 풀에 조치가 필요한지 판단하세요

배치 풀 속성에는 요청하신 디스크 암호화 대상이 표시되지만, 배치가 노드에 선택한 암호화 기술이 무엇인지 식별하지 못합니다. 다음 표를 사용하여 풀 구성이 ADE에 의존할 수 있는지 평가하세요.

풀 구성 ADE 의존성 Action
diskEncryptionConfiguration이(가) 설정되지 않았거나 diskEncryptionConfiguration의 대상에 TemporaryDisk이(가) 포함되지 않습니다 이 구성은 임시 디스크 암호화에 대해 ADE에 의존하지 않습니다. 이 은퇴에는 별도의 조치가 필요하지 않습니다.
배치 서비스 풀 할당 모드로 TemporaryDisk이 요청되고, VM 크기는 호스트에서 암호화를 지원하며, 호스트 암호화가 명시적으로 비활성화되어 있지 않습니다 배치는 호스트 수준에서 암호화를 선택합니다. 마이그레이션이 필요하지 않습니다. 호스트에서 암호화를 지원하는 VM 크기를 계속 사용하세요.
배치 서비스 풀 할당 모드로 TemporaryDisk이(가) 요청되었지만, VM 크기가 호스트에서 암호화를 지원하지 않습니다 구성은 ADE에 따라 달라질 수 있습니다. 호스트에서 암호화를 지원하는 VM 크기로 마이그레이션하세요.
사용자 구독 풀 할당 모드는 TemporaryDisk이(가) 요청되었고, securityProfile.encryptionAtHost이(가) true로 설정되어 있지 않습니다 구성은 ADE에 따라 달라질 수 있습니다. Batch는 사용자 구독 풀에 대해 호스트 암호화를 자동으로 사용하도록 설정하지 않습니다. 풀 구독에서 암호화-호스트 기능을 등록하고 명시적으로 호스트 암호화를 활성화하세요.
securityProfile.encryptionAtHost이(가) false로 명시적으로 설정되어 있고 TemporaryDisk가 요청됩니다. 구성은 ADE에 따라 달라질 수 있습니다. 지원되는 VM 크기를 사용하고 encryptionAtHost를 true로 설정하세요.

VM 크기가 호스트에서 암호화를 지원하는지 확인하려면 '지원되는 VM 크기'를 참조하세요.

새 풀 구성

임시 디스크 암호화가 필요한 새로운 풀의 경우, 호스트에서 암호화를 지원하는 VM 크기를 선택하세요. 호스트에서 암호화를 명시적으로 비활성화하지 마세요.

사용자 구독 풀의 경우, 풀 리소스가 포함된 구독에 Microsoft.Compute/EncryptionAtHost 기능도 등록하고 true을 securityProfile.encryptionAtHost로 설정하세요.

기존 풀을 호스트 수준 암호화로 마이그레이션하세요

기존 Batch 풀을 삭제하지 않고 업데이트할 수 있습니다. 이 업데이트는 풀을 다시 확장할 때 기본 컴퓨트 배포를 교체합니다.

  1. 풀에서 새 작업을 스케줄링하는 것을 멈추고, 실행 중인 작업이 완료되거나 다른 풀로 옮기세요.
  2. 전용 노드와 스팟 또는 저우선순위 대상 노드 모두 0으로 크기 조정하세요.
  3. 풀 할당 상태가 안정( Steady )이고 현재 노드 수가 모두 0일 때까지 기다립니다.
  4. Batch Management Plane Pool - Update API 버전 2024-07-01 이상을 사용하여 다음을 수행합니다:
    • 현재 크기가 암호화를 지원하지 않는다면, 호스트에서 암호화를 지원하는 VM 크기를 선택하세요.
    • deploymentConfiguration.virtualMachineConfiguration.securityProfile.encryptionAtHost을 true로 설정합니다.
    • 필요한 디스크 암호화 대상과 기타 가상 머신 구성 속성을 보존합니다.
  5. 풀을 필요한 대상 노드 수에 맞게 크기 조정하세요. 배치는 업데이트된 구성을 사용하여 새로운 기본 컴퓨팅 배포를 생성합니다.

예를 들어, 관리 평면 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

풀이 유지해야 할 기존 가상 머신 구성 속성들(예: 이미지 참조, 노드 에이전트 SKU, OS 디스크 설정, 컨테이너 구성, 확장 프로그램, 데이터 디스크)을 포함하세요. 프로덕션 풀을 업데이트하기 전에 현재 구성을 가져와서 필요한 모든 값을 가진 요청을 구성하세요.

제로 노드 업데이트와 업데이트 동작에 대한 자세한 내용은 Update Batch pool 속성을 참조하세요.

Azure Portal

Azure Portal에서 Batch 풀을 만들 때 디스크 암호화 구성에서 OsDisk, TemporaryDisk 또는 OsAndTemporaryDisk를 선택합니다.

Azure Portal의 디스크 암호화 구성 옵션 스크린샷

풀이 생성되면 풀의 속성 섹션에서 디스크 암호화 구성 대상을 볼 수 있습니다.

Azure Portal의 디스크 암호화 구성 대상을 보여 주는 스크린샷

예제

다음 예제에서는 Azure.ResourceManager.Batch SDK, Batch REST API 및 Azure CLI를 사용하여 Batch 풀에서 OS 및 임시 디스크를 암호화하는 방법을 보여 줍니다.

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

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

다음 단계