배치 풀의 관리 ID 구성

Azure 리소스에 대한 관리 ID는 Microsoft Entra ID(Azure AD ID)에서 Azure 리소스에 대한 ID를 제공하여 복잡한 ID 및 자격 증명 관리를 제거합니다. 이 ID는 Azure의 대상 리소스를 인증하기 위해 Microsoft Entra 토큰을 가져오는 데 사용됩니다.

이 항목에서는 배치 풀에서 사용자가 할당한 관리 ID를 사용하도록 설정하는 방법과 노드 내에서 관리 ID를 사용하는 방법에 대해 설명합니다.

Important

관리 ID를 사용하려면 가상 머신 구성을 사용하여 풀을 구성해야 합니다.

관리 ID로 풀을 만드는 작업은 Batch .NET 관리 라이브러리를 사용하여 수행할 수 있지만, 현재 Batch .NET 클라이언트 라이브러리에서는 지원되지 않습니다.

사용자 할당 관리 ID 만들기

먼저 배치 계정과 동일한 테넌트에서 사용자가 할당한 관리 ID 만들기를 수행합니다. Azure Portal, Azure CLI(Azure 명령줄 인터페이스), PowerShell, Azure Resource Manager 또는 Azure REST API를 사용하여 ID를 만들 수 있습니다. 이 관리 ID는 동일한 리소스 그룹 또는 동일한 구독에 있을 필요는 없습니다.

고객 데이터 암호화를 위해 Batch 계정용으로 만들어진 시스템 할당 관리 ID는 이 문서에 설명된 대로 Batch 풀에서 사용자 지정 관리 ID로 사용할 수 없습니다. 배치 계정과 Batch 풀 모두에서 동일한 관리 ID를 사용하려고 하면 대신 일반 사용자가 할당한 관리 ID를 사용합니다.

사용자가 할당한 관리 ID를 사용하여 배치 풀 만들기

하나 이상의 사용자가 할당한 관리 ID를 만든 후에는 해당 ID로 Batch 풀을 만들 수 있습니다. 마케팅 목록의 구성원을 관리할 수 있습니다.

Warning

풀에 활성 노드가 있는 동안에는 풀 관리 ID의 현재 위치 업데이트가 지원되지 않습니다. 기존 컴퓨팅 노드는 변경 내용으로 업데이트되지 않습니다. 모든 VM에 동일한 ID 집합이 할당되도록 ID 컬렉션을 수정하기 전에 풀을 컴퓨팅 노드 0으로 축소하는 것이 좋습니다.

Azure Portal에서 Batch 풀 만들기

Azure Portal을 통해 사용자가 할당한 관리 ID를 사용하여 Batch 풀을 만들려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.
  2. 검색 창에 배치 계정을 입력하고 선택합니다.
  3. 배치 계정 페이지에서 Batch 풀을 만들 배치 계정을 선택합니다.
  4. 배치 계정 메뉴의 기능 아래에서 을 선택합니다.
  5. 메뉴에서 추가를 선택하여 새 Batch 풀을 추가합니다.
  6. 풀 ID의 경우 풀의 식별자를 입력합니다.
  7. ID의 경우 설정을 사용자 할당으로 변경합니다.
  8. 사용자 할당 관리 ID 아래에서 추가를 선택합니다.
  9. 사용하려는 사용자가 할당한 관리 ID 또는 ID를 선택합니다. 그런 후 추가를 선택합니다.
  10. 운영 체제에서 사용할 게시자, 제품 및 SKU를 선택합니다.
  11. 필요에 따라 컨테이너 레지스트리에서 관리 ID를 활성화합니다.
    1. 컨테이너 구성의 경우 설정을 사용자 지정으로 변경합니다. 그런 다음, 사용자 지정 구성을 선택합니다.
    2. 시작 태스크의 경우 사용을 선택합니다. 그런 다음, 리소스 파일을 선택하고 스토리지 컨테이너 정보를 추가합니다.
    3. 컨테이너 설정을 활성화합니다.
    4. 컨테이너 레지스트리사용자 지정으로 변경합니다.
    5. ID 참조의 경우 스토리지 컨테이너를 선택합니다.

.NET을 사용하여 Batch 풀 만들기

Batch .NET 관리 라이브러리를 사용하여 사용자가 할당한 관리 ID로 Batch 풀을 만들려면 다음 예제 코드를 사용합니다.

var poolParameters = new Pool(name: "yourPoolName")
    {
        VmSize = "standard_d2_v3",
        ScaleSettings = new ScaleSettings
        {
            FixedScale = new FixedScaleSettings
            {
                TargetDedicatedNodes = 1
            }
        },
        DeploymentConfiguration = new DeploymentConfiguration
        {
            VirtualMachineConfiguration = new VirtualMachineConfiguration(
                new ImageReference(
                    "Canonical",
                    "0001-com-ubuntu-server-jammy",
                    "22_04-lts",
                    "latest"),
                "batch.node.ubuntu 22.04")
        },
        Identity = new BatchPoolIdentity
        {
            Type = PoolIdentityType.UserAssigned,
            UserAssignedIdentities = new Dictionary<string, UserAssignedIdentities>
            {
                ["Your Identity Resource Id"] =
                    new UserAssignedIdentities()
            }
        }
    };

var pool = await managementClient.Pool.CreateWithHttpMessagesAsync(
    poolName:"yourPoolName",
    resourceGroupName: "yourResourceGroupName",
    accountName: "yourAccountName",
    parameters: poolParameters,
    cancellationToken: default(CancellationToken)).ConfigureAwait(false);

배치 노드에서 사용자가 할당한 관리 ID 사용

Azure Storage 또는 Azure Container Registry와 같은 컴퓨팅 노드에서 직접 다른 Azure 리소스에 액세스하는 많은 Azure Batch 함수는 관리 ID를 지원합니다. Azure Batch에서 관리 ID를 사용하는 방법에 대한 자세한 내용은 다음 링크를 참조하세요.

관리 ID가 관리 ID를 지원하는 Azure 리소스에 직접 액세스할 수 있도록 작업을 수동으로 구성할 수도 있습니다.

Batch 노드 내에서 관리 ID 토큰을 가져오고 이를 사용하여 Azure Instance Metadata Service를 통해 Microsoft Entra 인증을 통해 인증할 수 있습니다.

Windows의 경우 인증할 액세스 토큰을 가져오는 PowerShell 스크립트는 다음과 같습니다.

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -Method GET -Headers @{Metadata="true"}

Linux의 경우 Bash 스크립트는 다음과 같습니다.

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -H Metadata:true

자세한 내용은 Azure VM에서 Azure 리소스에 대한 관리 ID를 사용하여 액세스 토큰을 획득하는 방법을 참조하세요.

다음 단계