CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
이 섹션에서는 Azure CLI를 사용하여 Azure VM에서 시스템 할당 관리 ID를 사용 및 사용하지 않도록 설정하는 방법을 알아봅니다.
Azure VM 생성 중에 시스템 할당 관리 ID를 사용하도록 설정
시스템 할당 관리 ID를 사용하도록 설정된 Azure VM을 만들려면 계정에 Virtual Machine 기여자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
az group create를 사용하여 VM 및 관련 리소스를 포함하고 배포하는 데 사용할 리소스 그룹을 만듭니다. 대신 사용하려는 리소스 그룹이 이미 있다면 이 단계를 건너뛰어도 됩니다.
az group create --name myResourceGroup --location westus
az vm create를 사용하여 VM을 만듭니다. 다음 예제는 --role 및 --scope가 지정된 --assign-identity 매개 변수의 요청에 따라 시스템 할당 관리 ID를 사용하여 myVM이라는 VM을 만듭니다.
--admin-username 및 --admin-password 매개 변수는 가상 머신 로그인을 위한 관리자 이름 및 암호 계정을 지정합니다. 환경에 맞게 이러한 값을 업데이트하세요.
az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope /Subscriptions/mySubscriptionId/resourceGroups/myResourceGroup --admin-username azureuser --admin-password myPassword12
기존 Azure VM에서 시스템 할당 관리 ID를 사용하도록 설정
VM에서 시스템 할당 관리 ID를 사용하도록 설정하려면 계정에 가상 머신 기여자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
Azure CLI를 로컬 콘솔에서 사용하는 경우 az login을 사용하여 먼저 Azure에 로그인합니다. VM을 포함하는 Azure 구독과 연결된 계정을 사용합니다.
VM을 만드는 중 VM에 사용자 할당 ID를 할당하려면 계정에 가상 머신 기여자 및 관리 ID 운영자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
사용하려는 리소스 그룹이 이미 있다면 이 단계를 건너뛰어도 됩니다.
az group create를 사용하여 사용자 할당 관리 ID를 포함하고 배포하는 데 사용할 리소스 그룹을 만듭니다.
<RESOURCE GROUP> 및 <LOCATION> 매개 변수 값을 원하는 값으로 바꾸세요. :
az group create --name <RESOURCE GROUP> --location <LOCATION>
az identity create를 사용하여 사용자 할당 관리 ID를 만듭니다.
-g 매개 변수는 사용자 할당 관리 ID가 만들어진 리소스 그룹을 지정하고 -n 매개 변수는 그 이름을 지정합니다.
중요
사용자 할당 관리 ID를 만들 때 이름은 문자나 숫자로 시작해야 하며 영숫자, 하이픈(-), 밑줄(_)의 조합을 포함할 수 있습니다. 가상 머신 또는 가상 머신 확장 집합에 대한 할당이 제대로 작동하려면 이름이 24자로 제한됩니다. 자세한 내용은 FAQ 및 알려진 문제를 참조하세요.
az identity create -g myResourceGroup -n myUserAssignedIdentity
응답에는 다음과 같이 생성된 사용자가 할당한 관리 ID에 대한 세부 정보가 포함됩니다. 사용자 할당 관리 ID에 할당된 리소스 ID 값은 다음 단계에서 사용됩니다.
az vm create를 사용하여 VM을 만듭니다. 다음 예제에서는 --assign-identity 매개 변수에 따라 지정된 --role 및 --scope와 함께 새 사용자 할당 ID와 연결된 VM을 만듭니다.
<RESOURCE GROUP>, <VM NAME>, <USER NAME>, <PASSWORD>, <USER ASSIGNED IDENTITY NAME>, <ROLE> 및 <SUBSCRIPTION> 매개 변수 값을 사용자 고유의 값으로 바꾸세요.
az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image> --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION>
기존 Azure VM에 사용자 할당 관리 ID를 할당합니다.
VM에 사용자 할당 ID를 할당하려면 계정에 가상 머신 기여자 및 관리 ID 운영자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
az identity create를 사용하여 사용자 할당 ID를 만듭니다.
-g 매개 변수는 사용자 할당 ID가 만들어진 리소스 그룹을 지정하고 -n 매개 변수는 그 이름을 지정합니다.
<RESOURCE GROUP> 및 <USER ASSIGNED IDENTITY NAME> 매개 변수 값을 원하는 값으로 바꾸세요.
중요
이름에 특수 문자(즉, 밑줄)가 있는 사용자 할당 관리 ID를 만드는 기능은 현재 지원되지 않습니다. 영숫자 문자를 사용하세요. 따라서 정기적으로 다시 업데이트를 확인하십시오. 자세한 내용은 FAQ 및 알려진 문제를 참조하세요.
az vm identity assign을 사용하여 VM에 사용자 할당 ID를 할당합니다.
<RESOURCE GROUP> 및 <VM NAME> 매개 변수 값을 원하는 값으로 바꾸세요.
<USER ASSIGNED IDENTITY NAME>은 이전 단계에서 만든 대로 사용자 할당 관리 ID의 리소스 name 속성입니다. VM과 다른 RG에서 사용자 할당 관리 ID를 만든 경우 관리 ID의 URL을 사용해야 합니다.
az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
가상 머신에 할당된 유일한 사용자 할당 관리 ID인 경우 UserAssigned는 ID 유형 값에서 제거됩니다.
<RESOURCE GROUP> 및 <VM NAME> 매개 변수 값을 원하는 값으로 바꾸세요.
<USER ASSIGNED IDENTITY>는 사용자 할당 ID의 name 속성이며 az vm identity show를 사용하여 가상 머신의 ID 섹션에서 찾을 수 있습니다.
az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
VM에 시스템 할당 관리 ID가 없고 모든 사용자 할당 ID를 제거하려는 경우 다음 명령을 사용합니다.
참고
none 값은 대소문자를 구분합니다. 소문자여야 합니다.
az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null
VM에 시스템 할당 및 사용자 할당 ID가 모두 있는 경우 시스템 할당만 사용하도록 전환하여 모든 사용자 할당 ID를 제거할 수 있습니다. 다음 명령을 사용합니다.
az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null
이 섹션에서는 Azure PowerShell을 사용하여 VM에서 사용자 할당 관리 ID를 추가하고 제거하는 방법을 알아봅니다.
생성 중에 VM에 사용자 할당 관리 ID를 부여
VM에 사용자 할당 ID를 할당하려면 계정에 가상 머신 기여자 및 관리 ID 운영자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
다음 Azure VM 빠른 시작 중 하나를 참조하여 필요한 섹션만 완료하세요("Azure에 로그인", "리소스 그룹 만들기", "네트워킹 그룹 만들기", "VM 만들기").
“VM 만들기” 섹션으로 이동할 때 New-AzVMConfig cmdlet 구문을 조금 수정합니다. 사용자 할당 ID가 있는 VM을 프로비전하려면 -IdentityType UserAssigned 및 -IdentityID 매개 변수를 추가합니다.
<VM NAME>,<SUBSCRIPTION ID>, <RESROURCE GROUP> 및 <USER ASSIGNED IDENTITY NAME>을 사용자 고유의 값을 바꿉니다. 예시:
사용자 할당 관리 ID 만들기는 영숫자, 밑줄 및 하이픈(0-9 또는 a-z 또는 A-Z, _ 또는 -) 문자만 지원합니다. 또한 VM/VMSS에 대한 할당이 제대로 작동하려면 이름의 길이가 3~128자로 제한되어야 합니다. 자세한 내용은 FAQ 및 알려진 문제를 참조하세요.
Get-AzVM cmdlet을 사용하여 VM 속성을 검색합니다. 그런 다음, Update-AzVM cmdlet에서 -IdentityType 및 -IdentityID 스위치를 사용하여 Azure VM에 사용자 할당 관리 ID를 할당합니다.
-IdentityId 매개 변수의 값은 이전 단계에서 메모해 둔 Id입니다.
<VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> 및 <USER ASSIGNED IDENTITY NAME>을 사용자 고유의 값으로 바꿉니다.
경고
VM에 할당된 이전에 사용자가 할당된 관리 ID를 유지하려면 VM 개체의 Identity 속성(예: $vm.Identity)을 쿼리합니다. 사용자가 할당한 관리 ID가 반환되면 이 관리 ID와 VM에 할당하려는 새 사용자 할당 관리 ID를 함께 다음 명령에 포함합니다.
$vm = Get-AzVM -ResourceGroupName <RESOURCE GROUP> -Name <VM NAME>
# Get the list of existing identity IDs and then append to it
$identityIds = $vm.Identity.UserAssignedIdentities.Keys
$uid = "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
$identityIds = $identityIds + $uid
# Update the VM with added identity IDs
Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID $uid
VM에 여러 사용자 할당 관리 ID가 있는 경우 다음 명령을 사용하여 마지막 것을 제외하고 모두 제거할 수 있습니다.
<RESOURCE GROUP> 및 <VM NAME> 매개 변수 값을 원하는 값으로 바꾸세요.
<USER ASSIGNED IDENTITY NAME>은 사용자 할당 관리 ID의 이름 속성으로, VM에 남아 있어야 합니다. 이 정보는 VM 개체의 Identity 속성을 발견하는 쿼리를 사용하여 발견할 수 있습니다. 예: $vm.Identity
Azure Portal 및 스크립팅을 사용할 때와 마찬가지로, Azure Resource Manager 템플릿에서도 Azure 리소스 그룹으로 정의된 새 리소스 또는 수정된 리소스를 배포할 수 있습니다. 다음을 비롯한 로컬 및 포털 기반 템플릿 편집 및 배포에 여러 가지 옵션이 제공됩니다.
선택한 옵션에 관계 없이 초기 배포 및 재배포 시 템플릿 구문은 동일합니다. 새 VM이나 기본 VM에서 시스템 또는 사용자 할당 관리 ID를 사용하도록 설정하는 작업은 동일한 방식으로 수행됩니다. 또한 기본적으로 Azure Resource Manager는 배포에 대해 증분 업데이트를 수행합니다.
시스템 할당 관리 ID
이 섹션에서는 Azure Resource Manager 템플릿을 사용하여 시스템 할당 관리 ID를 사용하거나 사용하지 않도록 설정합니다.
Azure VM 생성 중에 또는 기존 VM에서 시스템 할당 관리 ID 사용
VM에서 시스템 할당 관리 ID를 사용하도록 설정하려면 계정에 가상 머신 기여자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
Azure에 로컬로 로그인하든지 또는 Azure Portal을 통해 로그인하든지 상관없이 VM을 포함하는 Azure 구독과 연결된 계정을 사용합니다.
시스템 할당 관리 ID를 사용하도록 설정하려면 편집기에 템플릿을 로드하고 Microsoft.Compute/virtualMachines 섹션 내에서 관심이 있는 resources 리소스를 찾아서 "identity" 속성과 같은 수준으로 "type": "Microsoft.Compute/virtualMachines" 속성을 추가합니다. 다음 구문을 사용합니다.
"identity": {
"type": "SystemAssigned"
},
완료되면 템플릿의 resource 섹션에 다음 섹션을 추가해야 하며 이는 다음과 유사해야 합니다.
VM에서 시스템 할당 관리 ID를 사용하도록 설정한 후 해당 VM이 만들어진 리소스 그룹에 대한 읽기 권한자 액세스 등의 역할을 ID에 부여하는 것이 좋습니다.
Azure Resource Manager 템플릿을 사용하여 Azure 역할 할당 문서에서 이 단계를 수행하는 데 도움이 되는 자세한 정보를 찾을 수 있습니다.
Azure VM에서 시스템 할당 관리 ID를 사용하지 않도록 설정
VM에서 시스템 할당 관리 ID를 제거하려면 계정에 가상 머신 기여자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
Azure에 로컬로 로그인하든지 또는 Azure Portal을 통해 로그인하든지 상관없이 VM을 포함하는 Azure 구독과 연결된 계정을 사용합니다.
템플릿을 편집기에 로드하고 Microsoft.Compute/virtualMachines 섹션 내에서 관심 있는 resources 리소스를 찾습니다. VM에 시스템 할당 관리 ID만 있는 경우, ID 형식을 None으로 변경하여 VM을 사용하지 않도록 설정할 수 있습니다.
Microsoft.Compute/virtualMachines API 버전 2018-06-01
VM에 시스템 할당 관리 ID와 사용자 할당 관리 ID가 둘 다 있는 경우, ID 유형에서 SystemAssigned를 제거하고 UserAssigned 사전 값과 함께 userAssignedIdentities를 유지합니다.
Microsoft.Compute/virtualMachines API 버전 2018-06-01
apiVersion이 2017-12-01이고 VM에 시스템 할당 ID와 사용자 할당 관리 ID가 둘 다 있는 경우, ID 유형에서 SystemAssigned를 제거하고 사용자 할당 관리 ID의 UserAssigned 배열과 함께 identityIds를 유지합니다.
다음 예제에서는 사용자 할당 관리 ID가 없는 VM에서 시스템 할당 관리 ID를 제거하는 방법을 보여줍니다.
VM에서 사용자 할당 ID를 제거하려면 계정에 가상 머신 기여자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
Azure에 로컬로 로그인하든지 또는 Azure Portal을 통해 로그인하든지 상관없이 VM을 포함하는 Azure 구독과 연결된 계정을 사용합니다.
템플릿을 편집기에 로드하고 Microsoft.Compute/virtualMachines 섹션 내에서 관심 있는 resources 리소스를 찾습니다. VM에 사용자 할당 관리 ID만 있는 경우, ID 형식을 None으로 변경하여 VM을 사용하지 않도록 설정할 수 있습니다.
다음 예제에서는 시스템 할당 관리 ID가 없는 VM에서 모든 사용자 할당 관리 ID를 제거하는 방법을 보여줍니다.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 VM을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.
az account get-access-token
Azure Cloud Shell을 통해 CURL을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하는 VM을 만듭니다. 다음 예제에서는 요청 본문에서 값으로 식별된 시스템 할당 관리 ID를 사용하여 "identity":{"type":"SystemAssigned"}이라는 VM을 만듭니다.
<ACCESS TOKEN>를 전달자 액세스 토큰을 요청했을 때 받은 값으로 대체하고, <SUBSCRIPTION ID>은 사용자 환경에 적절한 값으로 바꿉니다.
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
원래 시스템 할당 관리 ID 없이 프로비전된 VM에서 해당 ID를 사용하도록 설정하려면 계정에 가상 머신 기여자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 VM을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.
az account get-access-token
다음 CURL 명령을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하면, 요청 본문에서 {"identity":{"type":"SystemAssigned"} 값으로 식별되는 VM인 myVM에 시스템 할당 관리 ID를 활성화할 수 있습니다. 이전 단계에서 획득한 전달자 액세스 토큰의 값으로 <ACCESS TOKEN>을 대체하고, 사용자 환경에 적합한 값으로 <SUBSCRIPTION ID>을 대체하십시오.
중요
VM에 할당된 기존 사용자 할당 관리 ID를 삭제하지 않는지 확인하려면 다음 CURL 명령을 사용하여 사용자 할당 관리 ID를 나열해야 합니다. curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 응답에서 identity 값으로 식별된 사용자 할당 관리 ID가 VM에 할당되어 있는 경우에는 VM에서 시스템 할당 관리 ID를 사용하면서 사용자 할당 관리 ID를 유지하는 방법을 보여주는 3단계로 건너뜁니다.
VM에서 시스템 할당 관리 ID를 사용하지 않도록 설정하려면 계정에 가상 머신 기여자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 VM을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.
az account get-access-token
CURL을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하도록 VM을 업데이트하여 시스템 할당 관리 ID를 사용하지 않도록 설정합니다. 다음 예제에서는 요청 본문의 값 {"identity":{"type":"None"}}으로 식별된 myVM이라는 VM에서 시스템 할당 관리 ID를 사용하지 않도록 설정합니다. Bearer 액세스 토큰을 요청한 이전 단계에서 받은 값으로 <ACCESS TOKEN>을(를) 교체하고, 사용자 환경에 적합한 값으로 <SUBSCRIPTION ID>을(를) 교체합니다.
중요
VM에 할당된 기존 사용자 할당 관리 ID를 삭제하지 않는지 확인하려면 다음 CURL 명령을 사용하여 사용자 할당 관리 ID를 나열해야 합니다. curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 응답에서 identity 값으로 식별된 사용자 할당 관리 ID가 VM에 할당되어 있는 경우에는 VM에서 시스템 할당 관리 ID를 사용하지 않도록 설정하면서 사용자 할당 관리 ID를 유지하는 방법을 보여주는 3단계로 건너뜁니다.
사용자 할당 관리 ID가 있는 가상 머신에서 시스템 할당 관리 ID를 제거하려면, API 버전 2018-06-01을 사용하는 경우, {"identity":{"type:" "}} 값과 UserAssigned 사전 값을 유지하면서 SystemAssigned을 userAssignedIdentities 값에서 제거하십시오.
API 버전 2017-12-01 이전 버전을 사용 중인 경우 identityIds 배열을 유지합니다.
사용자 할당 관리 ID
이 섹션에서는 CURL을 통해 Azure Resource Manager REST 엔드포인트를 호출하여 Azure VM에서 사용자 할당 관리 ID를 추가 및 제거하는 방법을 알아봅니다.
Azure VM을 생성할 때 사용자 할당 관리 ID를 할당합니다.
VM에 사용자 할당 ID를 할당하려면 계정에 가상 머신 기여자 및 관리 ID 운영자 역할 할당이 필요합니다. 다른 Microsoft Entra 디렉터리 역할 할당은 필요하지 않습니다.
인증 헤더의 다음 단계에서 시스템 할당 관리 ID로 VM을 만드는 데 사용할 전달자 액세스 토큰을 검색합니다.
CURL을 사용하여 Azure Resource Manager REST 엔드포인트를 호출하는 VM을 만듭니다. 다음 예제에서는 "identity":{"type":"UserAssigned"}로 명명된 VM을 리소스 그룹 myResourceGroup에 요청 본문에서 myVM 값으로 식별된 사용자 할당 관리 ID ID1을 사용하여 만듭니다.
<ACCESS TOKEN>를 전달자 액세스 토큰을 요청한 이전 단계에서 받은 값으로, 그리고 <SUBSCRIPTION ID>을 사용자 환경에 적절한 값으로 바꿉니다.
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1