템플릿을 사용하여 Azure 가상 머신 확장에서 Azure 리소스에 대한 관리 ID 구성

Azure 리소스에 대한 관리 ID는 Microsoft Entra ID의 기능입니다. Azure 리소스에 대한 관리 ID를 지원하는 각 Azure 서비스는 자체 타임라인을 따릅니다. 시작하기 전에 리소스의 관리 ID 가용성 상태와 알려진 문제를 검토하세요.

Azure 리소스의 관리 ID는 Microsoft Entra ID에서 자동으로 관리되는 ID를 Azure 서비스에 제공합니다. 이 ID를 사용하면 코드에 자격 증명이 없어도 Microsoft Entra 인증을 지원하는 모든 서비스에 인증할 수 있습니다.

이 문서에서는 Azure Resource Manager 배포 템플릿을 사용하여 Azure 가상 머신 확장 집합에서 Azure 리소스에 대한 다음과 같은 관리 ID 작업을 수행하는 방법을 알아봅니다.

  • Azure 가상 머신 확장 집합에서 시스템 할당 관리 ID를 사용하거나 사용하지 않도록 설정
  • Azure 가상 머신 확장 집합에서 사용자 할당 관리 ID 추가 및 제거

필수 조건

  • Azure 리소스에 대한 관리 ID를 잘 모르는 경우 개요 섹션을 확인하세요. 시스템 할당 ID와 사용자 할당 관리 ID의 차이점을 반드시 검토하세요.

  • 아직 Azure 계정이 없으면 계속하기 전에 평가판 계정에 등록해야 합니다.

  • 이 문서의 관리 작업을 수행하려면 계정에 다음과 같은 Azure 역할 기반 액세스 제어가 할당되어야 합니다.

    참고 항목

    추가 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.

    • 가상 머신 참가자: 가상 머신 확장 집합을 만들고, 가상 머신 확장 집합에서 시스템 및/또는 사용자가 할당한 관리 ID를 사용하도록 설정하고 제거합니다.
    • 관리 ID 참가자 역할: 사용자 할당 관리 ID를 만듭니다.
    • 관리 ID 운영자 역할: 가상 머신 확장 집합에 사용자 할당 관리 ID를 할당하거나 이 집합에서 사용자 할당 관리 ID를 제거합니다.

Azure 리소스 관리자 템플릿

Azure Portal 및 스크립팅을 사용할 때와 마찬가지로, Azure Resource Manager 템플릿에서도 Azure 리소스 그룹으로 정의된 새 리소스 또는 수정된 리소스를 배포하는 기능을 제공합니다. 다음을 비롯한 로컬 및 포털 기반 템플릿 편집 및 배포에 여러 가지 옵션이 제공됩니다.

선택한 옵션에 관계 없이 초기 배포 및 재배포 시 템플릿 구문은 동일합니다. 새 VM이나 기존 VM에서 Azure 리소스에 대한 관리 ID를 사용하도록 설정하는 작업은 동일한 방식으로 수행됩니다. 또한 기본적으로 Azure Resource Manager는 배포에 대해 증분 업데이트를 수행합니다.

시스템 할당 관리 ID

이 섹션에서는 Azure Resource Manager 템플릿을 사용하여 시스템 할당 관리 ID를 사용하거나 사용하지 않도록 설정합니다.

가상 머신 확장 집합 또는 기존 가상 머신 확장 집합을 만드는 동안 시스템 할당 관리 ID를 사용하도록 설정

  1. Azure에 로컬로 로그인하든지, 아니면 Azure Portal을 통해 로그인하든지 간에 가상 머신 확장 집합이 포함된 Azure 구독과 연결된 계정을 사용합니다.

  2. 시스템 할당 관리 ID를 사용하도록 설정하려면 편집기에 템플릿을 로드하고 리소스 섹션 내에서 관심이 있는 Microsoft.Compute/virtualMachinesScaleSets 리소스를 찾아서 "type": "Microsoft.Compute/virtualMachinesScaleSets" 속성과 같은 수준으로 identity 속성을 추가합니다. 다음 구문을 사용합니다.

    "identity": {
        "type": "SystemAssigned"
    }
    
  3. 완료되면 아래 표시된 예제와 유사한 모양으로 템플릿의 리소스 섹션에 다음 섹션을 추가해야 합니다.

     "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachineScaleSets",
             "name": "[variables('vmssName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "SystemAssigned",
             },
            "properties": {
                 //other resource provider properties...
                 "virtualMachineProfile": {
                     //other virtual machine profile properties...
    
                 }
             }
         }
     ]
    

Azure 가상 머신 확장 집합에서 시스템 할당 관리 ID를 사용하지 않도록 설정

시스템 할당 관리 ID가 더 이상 필요하지 않은 가상 머신 확장 집합이 있는 경우 다음을 수행합니다.

  1. Azure에 로컬로 로그인하든지, 아니면 Azure Portal을 통해 로그인하든지 간에 가상 머신 확장 집합이 포함된 Azure 구독과 연결된 계정을 사용합니다.

  2. 템플릿을 편집기에 로드하고 resources 섹션 내에서 관심 있는 Microsoft.Compute/virtualMachineScaleSets 리소스를 찾습니다. VM에 시스템 할당 관리 ID만 있는 경우, ID 형식을 None으로 변경하여 VM을 사용하지 않도록 설정할 수 있습니다.

    Microsoft.Compute/virtualMachineScaleSets API 버전 2018-06-01

    apiVersion이 2018-06-01이고 VM에 시스템 할당 ID와 사용자 할당 관리 ID가 둘 다 있는 경우, ID 유형에서 SystemAssigned를 제거하고 userAssignedIdentities 사전 값과 함께 UserAssigned를 유지합니다.

    Microsoft.Compute/virtualMachineScaleSets API 버전 2018-06-01

    apiVersion이 2017-12-01이고 가상 머신 확장 집합에 시스템 할당 관리 ID와 사용자 할당 ID가 둘 다 있는 경우 ID 형식에서 SystemAssigned를 제거하고 사용자 할당 관리 ID의 identityIds 배열과 함께 UserAssigned를 유지합니다.

    다음 예제에서는 사용자 할당 관리 ID가 없는 가상 머신 확장 집합에서 시스템 할당 관리 ID를 제거하는 방법을 보여줍니다.

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2018-06-01",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "None"
         }
    
    }
    

사용자 할당 관리 ID

이 섹션에서는 Azure Resource Manager 템플릿을 사용하여 가상 머신 확장 집합에 사용자 할당 관리 ID를 할당합니다.

참고 항목

Azure Resource Manager 템플릿을 사용하여 사용자 할당 관리 ID를 만들려면 사용자 할당 관리 ID 만들기를 참조하세요.

가상 머신 확장 집합에 사용자 할당 관리 ID 할당

  1. resources 요소 아래에 다음 항목을 추가하여 사용자 할당 관리 ID를 가상 머신 확장 집합에 할당합니다. <USERASSIGNEDIDENTITY>를 직접 만든 사용자 할당 관리 ID의 이름으로 바꿔야 합니다.

    Microsoft.Compute/virtualMachineScaleSets API 버전 2018-06-01

    apiVersion이 2018-06-01이고 사용자 할당 관리 ID가 userAssignedIdentities 사전 형식으로 저장되는 경우에는 템플릿의 variables 섹션에 정의된 변수에 <USERASSIGNEDIDENTITYNAME> 값이 저장되어야 합니다.

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2018-06-01",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "userAssigned",
            "userAssignedIdentities": {
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
            }
        }
    
    }
    

    Microsoft.Compute/virtualMachineScaleSets API 버전 2017-12-01

    apiVersion2017-12-01 또는 이전 버전이고 사용자 할당 관리 ID가 identityIds 배열에 저장되는 경우에는 템플릿의 변수 섹션에 정의된 변수에 <USERASSIGNEDIDENTITYNAME> 값이 저장되어야 합니다.

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2017-03-30",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]"
            ]
        }
    }
    
  2. 완료되면 템플릿은 다음과 같이 표시됩니다.

    Microsoft.Compute/virtualMachineScaleSets API 버전 2018-06-01

    "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachineScaleSets",
             "name": "[variables('vmssName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "UserAssigned",
                 "userAssignedIdentities": {
                     "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
                 }
             },
            "properties": {
                 //other virtual machine properties...
                 "virtualMachineProfile": {
                     //other virtual machine profile properties...
                 }
             }
         }
     ]
    

    Microsoft.Compute/virtualMachines API 버전 2017-12-01

    "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2017-12-01",
             "type": "Microsoft.Compute/virtualMachineScaleSets",
             "name": "[variables('vmssName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "UserAssigned",
                 "identityIds": [
                     "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
                 ]
             },
            "properties": {
                 //other virtual machine properties...
                 "virtualMachineProfile": {
                     //other virtual machine profile properties...
                 }
             }
         }
     ]
    

Azure 가상 머신 확장 집합에서 사용자 할당 관리 ID 제거

사용자 할당 관리 ID가 더 이상 필요하지 않은 가상 머신 확장 집합이 있는 경우 다음을 수행합니다.

  1. Azure에 로컬로 로그인하든지, 아니면 Azure Portal을 통해 로그인하든지 간에 가상 머신 확장 집합이 포함된 Azure 구독과 연결된 계정을 사용합니다.

  2. 템플릿을 편집기에 로드하고 resources 섹션 내에서 관심 있는 Microsoft.Compute/virtualMachineScaleSets 리소스를 찾습니다. 가상 머신 확장 집합에 사용자 할당 관리 ID만 있는 경우 ID 형식을 None으로 변경하여 VM을 사용하지 않도록 설정할 수 있습니다.

    다음 예제에서는 시스템 할당 관리 ID가 없는 VM에서 모든 사용자 할당 관리 ID를 제거하는 방법을 보여줍니다.

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2018-06-01",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "None"
         }
    }
    

    Microsoft.Compute/virtualMachineScaleSets API 버전 2018-06-01

    가상 머신 확장 집합에서 단일 사용자 할당 관리 ID를 제거하려면 userAssignedIdentities 사전에서 제거합니다.

    시스템 할당 ID가 있는 경우에는 identity 값 아래 type 값에 보관합니다.

    Microsoft.Compute/virtualMachineScaleSets API 버전 2017-12-01

    가상 머신 확장 집합에서 단일 사용자 할당 관리 ID를 제거하려면 identityIds 배열에서 제거합니다.

    시스템 할당 관리 ID가 있는 경우에는 identity 값 아래 type 값에 보관합니다.

다음 단계