REST API 호출을 사용하여 가상 머신 확장 집합에서 Azure 리소스에 대한 관리 ID 구성

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

이 문서에서는 CURL을 통해 Azure Resource Manager REST 엔드포인트를 호출하여 가상 머신 확장 집합에서 다음과 같은 Azure 리소스 관리 ID 작업을 수행하는 방법을 알아봅니다.

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

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

필수 조건

  • Azure 리소스에 대한 관리 ID에 익숙하지 않은 경우 Azure 리소스에 대한 관리 ID란?을 참조하세요. 시스템 할당 및 사용자 할당 관리 ID 형식에 대한 자세한 내용은 관리 ID 형식을 참조하세요.

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

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

    • 관리 ID 참가자 역할: 사용자 할당 관리 ID를 만듭니다.

    • 관리 ID 운영자 역할: 가상 머신 확장 집합에 사용자가 할당한 ID를 할당하거나 이 집합에서 사용자 할당 ID를 제거합니다.

    참고 항목

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

시스템 할당 관리 ID

이 섹션에서는 CURL을 통해 Azure Resource Manager REST 엔드포인트를 호출하여 가상 머신 확장 집합에서 시스템 할당 관리 ID를 사용하거나 사용하지 않도록 설정하는 방법을 알아봅니다.

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

시스템 할당 관리 ID를 사용할 수 있는 가상 머신 확장 집합을 만들려면 가상 머신 확장 집합을 만들고 액세스 토큰을 검색하여 CURL을 통해 시스템 할당 관리 ID 유형 값으로 Resource Manager 엔드포인트를 호출해야 합니다.

  1. az group create를 사용하여 가상 머신 확장 집합 및 관련 리소스를 포함하고 배포하기 위한 리소스 그룹을 만듭니다. 대신 사용하려는 리소스 그룹이 이미 있다면 이 단계를 건너뛰어도 됩니다.

    az group create --name myResourceGroup --location westus
    
  2. 가상 머신 확장 집합의 네트워크 인터페이스를 만듭니다.

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. 인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 가상 머신 확장 집합을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.

    az account get-access-token
    
  4. Azure Cloud Shell을 통해 CURL을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하는 가상 머신 확장 집합을 만듭니다. 다음 예제에서는 요청 본문에서 "identity":{"type":"SystemAssigned"} 값으로 식별된 시스템 할당 관리 ID를 사용하여 myResourceGroup에서 myVMSS라는 가상 머신 확장 집합을 만듭니다. 전달자 액세스 토큰을 요청한 이전 단계에서 받은 값 및 사용자 환경에 적절한 <SUBSCRIPTION ID> 값으로 <ACCESS TOKEN>을 바꿉니다.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"SystemAssigned"},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "sku":{
           "tier":"Standard",
           "capacity":3,
           "name":"Standard_D1_v2"
        },
        "location":"eastus",
        "identity":{
           "type":"SystemAssigned"
        },
        "properties":{
           "overprovision":true,
           "virtualMachineProfile":{
              "storageProfile":{
                 "imageReference":{
                    "sku":"2016-Datacenter",
                    "publisher":"MicrosoftWindowsServer",
                    "version":"latest",
                    "offer":"WindowsServer"
                 },
                 "osDisk":{
                    "caching":"ReadWrite",
                    "managedDisk":{
                       "storageAccountType":"StandardSSD_LRS"
                    },
                    "createOption":"FromImage"
                 }
              },
              "osProfile":{
                 "computerNamePrefix":"myVMSS",
                 "adminUsername":"azureuser",
                 "adminPassword":"myPassword12"
              },
              "networkProfile":{
                 "networkInterfaceConfigurations":[
                    {
                       "name":"myVMSS",
                       "properties":{
                          "primary":true,
                          "enableIPForwarding":true,
                          "ipConfigurations":[
                             {
                                "name":"myVMSS",
                                "properties":{
                                   "subnet":{
                                      "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
                                   }
                                }
                             }
                          ]
                       }
                    }
                 ]
              }
           },
           "upgradePolicy":{
              "mode":"Manual"
           }
        }
     }  
    

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

기존 가상 머신 확장 집합에 시스템 할당 관리 ID를 사용하려면 액세스 토큰을 얻은 후 CURL을 통해 Resource Manager REST 엔드포인트를 호출하여 ID 유형을 업데이트합니다.

  1. 인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 가상 머신 확장 집합을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.

    az account get-access-token
    
  2. 다음 CURL 명령을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하면 요청 본문에서 myVMSS라는 가상 머신 확장 집합의 {"identity":{"type":"SystemAssigned"} 값으로 식별된 시스템 할당 관리 ID를 가상 머신 확장 집합에서 사용할 수 있습니다. 전달자 액세스 토큰을 요청한 이전 단계에서 받은 값 및 사용자 환경에 적절한 <SUBSCRIPTION ID> 값으로 <ACCESS TOKEN>을 바꿉니다.

    Important

    가상 머신 확장 집합에 할당된 기존 사용자 할당 관리 ID를 삭제하지 않는지 확인하려면 다음 CURL 명령을 사용하여 사용자 할당 관리 ID를 나열해야 합니다. curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 응답에서 identity 값으로 식별된 사용자 할당 관리 ID가 가상 머신 확장 집합에 할당되어 있는 경우에는 가상 머신 확장 집합에서 시스템 할당 관리 ID를 사용하면서 사용자 할당 관리 ID를 유지하는 방법을 보여주는 3단계로 건너뜁니다.

     curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"SystemAssigned"
        }
     }
    
  3. 기존 사용자 할당 관리 ID와 함께 시스템 할당 관리 ID를 가상 머신 확장 집합에서 사용하려면 SystemAssignedtype 값에 추가해야 합니다.

    예를 들어, 가상 머신 확장 집합에 사용자 할당 관리 ID ID1ID2가 할당되어 있고 시스템 할당 관리 ID를 가상 머신 확장 집합에 추가하려면 다음 CURL 호출을 사용합니다. <ACCESS TOKEN><SUBSCRIPTION ID>를 사용자 환경에 적절한 값으로 바꿉니다.

    API 버전 2018-06-01은 API 버전 2017-12-01에서 사용된 배열 형식의 identityIds 값과 달리 사전 형식의 userAssignedIdentities 값에 사용자 할당 관리 ID를 저장합니다.

    API 버전 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{
    
              }
           }
        }
     }
    

    API 버전 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

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

기존 가상 머신 확장 집합에 시스템 할당 ID를 사용하지 않으려면 액세스 토큰을 얻은 후 CURL을 통해 Resource Manager REST 엔드포인트를 호출하여 ID 유형을 None으로 업데이트합니다.

  1. 인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 가상 머신 확장 집합을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.

    az account get-access-token
    
  2. CURL을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하도록 가상 머신 확장 집합을 업데이트하여 시스템 할당 관리 ID를 사용하지 않도록 설정합니다. 다음 예제에서는 요청 본문에서 myVMSS라는 가상 머신 확장 집합의 {"identity":{"type":"None"}} 값으로 식별되는 시스템 할당 관리 ID를 사용하지 않도록 설정합니다. 전달자 액세스 토큰을 요청한 이전 단계에서 받은 값 및 사용자 환경에 적절한 <SUBSCRIPTION ID> 값으로 <ACCESS TOKEN>을 바꿉니다.

    Important

    가상 머신 확장 집합에 할당된 기존 사용자 할당 관리 ID를 삭제하지 않는지 확인하려면 다음 CURL 명령을 사용하여 사용자 할당 관리 ID를 나열해야 합니다. curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 사용자 할당 관리 ID가 가상 머신 확장 집합에 할당되어 있는 경우에는 가상 머신 확장 집합에서 시스템 할당 관리 ID를 제거하면서 사용자 할당 관리 ID를 유지하는 방법을 보여주는 3단계로 건너뜁니다.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"None"
        }
     }
    

    사용자 할당 관리 ID가 있는 가상 머신 확장 집합에서 시스템 할당 관리 ID를 제거하려면 API 버전 2018-06-01을 사용 중인 경우 UserAssigned 값 및 userAssignedIdentities 사전 값을 유지하면서 {"identity":{"type:" "}} 값에서 SystemAssigned를 제거합니다. API 버전 2017-12-01 이전 버전을 사용 중인 경우 identityIds 배열을 유지합니다.

사용자 할당 관리 ID

이 섹션에서는 CURL을 통해 Azure Resource Manager REST 엔드포인트를 호출하여 가상 머신 확장 집합에서 사용자 할당 관리 ID를 추가 및 제거하는 방법을 알아봅니다.

가상 머신 확장 집합을 만드는 동안 사용자 할당 관리 ID를 할당합니다.

  1. 인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 가상 머신 확장 집합을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.

    az account get-access-token
    
  2. 가상 머신 확장 집합의 네트워크 인터페이스를 만듭니다.

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. 인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 가상 머신 확장 집합을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.

    az account get-access-token
    
  4. 사용자 할당 관리 ID 만들기의 지침에 따라 사용자 할당 관리 ID를 만듭니다.

  5. CURL을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하는 가상 머신 확장 집합을 만듭니다. 다음 예제에서는 요청 본문에서 "identity":{"type":"UserAssigned"} 값으로 식별된 사용자 할당 관리 ID ID1을 사용하여 리소스 그룹 myResourceGroup에서 myVMSS라는 가상 머신 확장 집합을 만듭니다. 전달자 액세스 토큰을 요청한 이전 단계에서 받은 값 및 사용자 환경에 적절한 <SUBSCRIPTION ID> 값으로 <ACCESS TOKEN>을 바꿉니다.

    API 버전 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"UserAssigned","userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "sku":{
           "tier":"Standard",
           "capacity":3,
           "name":"Standard_D1_v2"
        },
        "location":"eastus",
        "identity":{
           "type":"UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              }
           }
        },
        "properties":{
           "overprovision":true,
           "virtualMachineProfile":{
              "storageProfile":{
                 "imageReference":{
                    "sku":"2016-Datacenter",
                    "publisher":"MicrosoftWindowsServer",
                    "version":"latest",
                    "offer":"WindowsServer"
                 },
                 "osDisk":{
                    "caching":"ReadWrite",
                    "managedDisk":{
                       "storageAccountType":"StandardSSD_LRS"
                    },
                    "createOption":"FromImage"
                 }
              },
              "osProfile":{
                 "computerNamePrefix":"myVMSS",
                 "adminUsername":"azureuser",
                 "adminPassword":"myPassword12"
              },
              "networkProfile":{
                 "networkInterfaceConfigurations":[
                    {
                       "name":"myVMSS",
                       "properties":{
                          "primary":true,
                          "enableIPForwarding":true,
                          "ipConfigurations":[
                             {
                                "name":"myVMSS",
                                "properties":{
                                   "subnet":{
                                      "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
                                   }
                                }
                             }
                          ]
                       }
                    }
                 ]
              }
           },
           "upgradePolicy":{
              "mode":"Manual"
           }
        }
     }
    

    API 버전 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "sku":{
           "tier":"Standard",
           "capacity":3,
           "name":"Standard_D1_v2"
        },
        "location":"eastus",
        "identity":{
           "type":"UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{
           "overprovision":true,
           "virtualMachineProfile":{
              "storageProfile":{
                 "imageReference":{
                    "sku":"2016-Datacenter",
                    "publisher":"MicrosoftWindowsServer",
                    "version":"latest",
                    "offer":"WindowsServer"
                 },
                 "osDisk":{
                    "caching":"ReadWrite",
                    "managedDisk":{
                       "storageAccountType":"StandardSSD_LRS"
                    },
                    "createOption":"FromImage"
                 }
              },
              "osProfile":{
                 "computerNamePrefix":"myVMSS",
                 "adminUsername":"azureuser",
                 "adminPassword":"myPassword12"
              },
              "networkProfile":{
                 "networkInterfaceConfigurations":[
                    {
                       "name":"myVMSS",
                       "properties":{
                          "primary":true,
                          "enableIPForwarding":true,
                          "ipConfigurations":[
                             {
                                "name":"myVMSS",
                                "properties":{
                                   "subnet":{
                                      "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"
                                   }
                                }
                             }
                          ]
                       }
                    }
                 ]
              }
           },
           "upgradePolicy":{
              "mode":"Manual"
           }
        }
     }
    

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

  1. 인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 가상 머신 확장 집합을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.

    az account get-access-token
    
  2. 사용자 할당 관리 ID 만들기의 지침에 따라 사용자 할당 관리 ID를 만듭니다.

  3. 가상 머신 확장 집합에 할당된 기존 사용자 또는 시스템 할당 관리 ID를 삭제하지 않는지 확인하려면 다음 CURL 명령을 사용하여 가상 머신 확장 집합에 할당된 ID 유형을 나열해야 합니다. 가상 머신 확장 집합에 할당된 관리 ID가 있는 경우, 해당 ID가 identity 값에 나열됩니다.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.
  4. 가상 머신 확장 집합에 할당된 사용자 또는 시스템 할당 관리 ID가 없는 경우에는 다음 CURL 명령을 통해 Azure Resource Manager REST 엔드포인트를 호출하여 첫 번째 사용자 할당 관리 ID를 가상 머신 확장 집합에 할당합니다. 가상 머신 확장 집합에 할당된 사용자 또는 시스템 할당 관리 ID가 있는 경우, 시스템 할당 관리 ID를 유지하면서 여러 사용자 할당 관리 ID를 가상 머신 확장 집합에 추가하는 방법을 보여주는 5단계로 건너뜁니다.

    다음 예제에서는 리소스 그룹 myResourceGroup의 가상 머신 확장 집합 myVMSS에 사용자 할당 관리 ID ID1을 할당합니다. 전달자 액세스 토큰을 요청한 이전 단계에서 받은 값 및 사용자 환경에 적절한 <SUBSCRIPTION ID> 값으로 <ACCESS TOKEN>을 바꿉니다.

    API 버전 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-12-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"userAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              }
           }
        }
     }
    

    API 버전 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"userAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    
  5. 기존 사용자 할당 또는 시스템 할당 관리 ID가 가상 머신 확장 집합에 할당된 경우:

    API 버전 2018-06-01

    사용자 할당 관리 ID를 userAssignedIdentities 사전 값에 추가합니다.

    예를 들어, 현재 가상 머신 확장 집합에 시스템 할당 관리 ID 및 사용자 할당 관리 ID ID1가 할당되어 있고 사용자 할당 관리 ID ID2를 추가하려면 다음을 입력합니다.

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{
    
              }
           }
        }
     }
    

    API 버전 2017-12-01

    새 사용자 할당 관리 ID를 추가하면서 identityIds 배열 값에 유지하려는 사용자 할당 관리 ID를 유지합니다.

    예를 들어, 현재 가상 머신 확장 집합에 시스템 할당 관리 ID 및 사용자 할당 관리 ID ID1가 할당되어 있고 사용자 할당 관리 ID ID2를 추가하려면 다음을 입력합니다.

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

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

  1. 인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 가상 머신 확장 집합을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.

    az account get-access-token
    
  2. 가상 머신 확장 집합에 할당된 상태를 유지할 기존 사용자 할당 관리 ID를 삭제하거나 시스템 할당 관리 ID를 제거하지 않는지 확인하려면 다음 CURL 명령을 사용하여 관리 ID를 나열해야 합니다.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    VM에 관리 ID가 할당되어 있는 경우, identity 값의 응답으로 해당 ID가 나열됩니다.

    예를 들어 사용자 할당 관리 ID ID1ID2가 가상 머신 확장 집합에 할당되고 ID1의 할당 상태 및 시스템 할당 관리 ID를 유지하려는 경우,

    API 버전 2018-06-01

    제거하려는 사용자 할당 관리 ID에 null을 추가합니다.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null
           }
        }
     }
    

    API 버전 2017-12-01

    identityIds 배열에 유지하려는 사용자 할당 관리 ID만 유지합니다.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
    

    요청 헤더

    요청 헤더 설명
    Content-Type 필수입니다. application/json로 설정합니다.
    Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

    요청 본문

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    

가상 머신 확장 집합에 시스템 할당 및 사용자 할당 관리 ID가 모두 있는 경우, 다음 명령을 사용하여 시스템 할당만 사용하도록 전환하여 모든 사용자 할당 관리 ID를 제거할 수 있습니다.

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1

요청 헤더

요청 헤더 설명
Content-Type 필수입니다. application/json로 설정합니다.
Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

요청 본문

{
   "identity":{
      "type":"SystemAssigned"
   }
}

가상 머신 확장 집합에 사용자 할당 관리 ID만 있고 이를 모두 제거하려면 다음 명령을 사용합니다.

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1

요청 헤더

요청 헤더 설명
Content-Type 필수입니다. application/json로 설정합니다.
Authorization 필수입니다. 유효한 Bearer 액세스 토큰으로 설정합니다.

요청 본문

{
   "identity":{
      "type":"None"
   }
}

다음 단계

REST를 사용하여 사용자 할당 관리 ID를 만들거나, 나열하거나, 삭제하는 방법에 대한 자세한 내용은 다음을 참조하세요.