Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure przy użyciu wywołań interfejsu API REST
Tożsamości zarządzane dla zasobów platformy Azure to funkcja identyfikatora Entra firmy Microsoft. Każda usługa platformy Azure obsługująca tożsamości zarządzane dla zasobów platformy Azure ma własną oś czasu. Pamiętaj, aby przed rozpoczęciem sprawdzić stan dostępności tożsamości zarządzanych dla swojego zasobu i znane problemy.
Tożsamości zarządzane dla zasobów platformy Azure zapewniają usługom platformy Azure automatycznie zarządzaną tożsamość systemu w usłudze Microsoft Entra ID. Za pomocą tej tożsamości można uwierzytelnić się w dowolnej usłudze obsługującej uwierzytelnianie usługi Microsoft Entra bez konieczności przechowywania poświadczeń w kodzie.
W tym artykule, używając narzędzia CURL do wykonywania wywołań do punktu końcowego REST usługi Azure Resource Manager, dowiesz się, jak wykonywać następujące tożsamości zarządzane dla operacji zasobów platformy Azure na maszynie wirtualnej platformy Azure:
- Włączanie i wyłączanie tożsamości zarządzanej przypisanej przez system na maszynie wirtualnej platformy Azure
- Dodawanie i usuwanie tożsamości zarządzanej przypisanej przez użytkownika na maszynie wirtualnej platformy Azure
Jeśli nie masz jeszcze konta platformy Azure, utwórz bezpłatne konto przed kontynuowaniem.
Wymagania wstępne
- Jeśli nie znasz tożsamości zarządzanych dla zasobów platformy Azure, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure?. Aby dowiedzieć się więcej o typach tożsamości zarządzanych przypisanych przez system i przypisanych przez użytkownika, zobacz Typy tożsamości zarządzanych.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Tożsamość zarządzana przypisana przez system
W tej sekcji dowiesz się, jak włączyć i wyłączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej platformy Azure przy użyciu narzędzia CURL w celu wykonywania wywołań do punktu końcowego REST usługi Azure Resource Manager.
Włączanie tożsamości zarządzanej przypisanej przez system podczas tworzenia maszyny wirtualnej platformy Azure
Aby utworzyć maszynę wirtualną platformy Azure z włączoną tożsamością zarządzaną przypisaną przez system, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.
Utwórz grupę zasobów w celu uwzględnienia i wdrożenia maszyny wirtualnej i jej powiązanych zasobów przy użyciu polecenia az group create. Ten krok możesz pominąć, jeśli masz już grupę zasobów, której chcesz użyć w zamian:
az group create --name myResourceGroup --location westus
Utwórz interfejs sieciowy dla maszyny wirtualnej:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Pobierz token dostępu elementu nośnego, który zostanie użyty w następnym kroku w nagłówku Autoryzacja w celu utworzenia maszyny wirtualnej z tożsamością zarządzaną przypisaną przez system.
az account get-access-token
Za pomocą usługi Azure Cloud Shell utwórz maszynę wirtualną przy użyciu narzędzia CURL w celu wywołania punktu końcowego REST usługi Azure Resource Manager. Poniższy przykład tworzy maszynę wirtualną o nazwie myVM z tożsamością zarządzaną przypisaną przez system zgodnie z wartością
"identity":{"type":"SystemAssigned"}
w treści żądania. Zastąp<ACCESS TOKEN>
ciąg wartością otrzymaną w poprzednim kroku, gdy zażądano tokenu dostępu elementu nośnego i<SUBSCRIPTION ID>
wartość odpowiednią dla danego środowiska.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "location":"westus", "name":"myVM", "identity":{ "type":"SystemAssigned" }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
Włączanie tożsamości przypisanej przez system na istniejącej maszynie wirtualnej platformy Azure
Aby włączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej, która została pierwotnie aprowizowana bez niej, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.
Pobierz token dostępu elementu nośnego, który zostanie użyty w następnym kroku w nagłówku Autoryzacja w celu utworzenia maszyny wirtualnej z tożsamością zarządzaną przypisaną przez system.
az account get-access-token
Użyj następującego polecenia CURL, aby wywołać punkt końcowy REST usługi Azure Resource Manager, aby włączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej zgodnie z opisem w treści żądania przez wartość
{"identity":{"type":"SystemAssigned"}
maszyny wirtualnej o nazwie myVM. Zastąp<ACCESS TOKEN>
ciąg wartością otrzymaną w poprzednim kroku, gdy zażądano tokenu dostępu elementu nośnego i<SUBSCRIPTION ID>
wartość odpowiednią dla danego środowiska.Ważne
Aby upewnić się, że nie usuniesz żadnych istniejących tożsamości zarządzanych przypisanych przez użytkownika przypisanych do maszyny wirtualnej, musisz wyświetlić listę tożsamości zarządzanych przypisanych przez użytkownika przy użyciu tego polecenia CURL:
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>"
. Jeśli masz przypisane przez użytkownika tożsamości zarządzane przypisane do maszyny wirtualnej zgodnie z wartością widentity
odpowiedzi, przejdź do kroku 3, który pokazuje, jak zachować tożsamości zarządzane przypisane przez użytkownika podczas włączania tożsamości zarządzanej przypisanej przez system na maszynie wirtualnej.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "identity":{ "type":"SystemAssigned" } }
Aby włączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej z istniejącymi tożsamościami zarządzanymi przypisanymi przez użytkownika, należy dodać
SystemAssigned
tętype
wartość.Jeśli na przykład maszyna wirtualna ma przypisane przez użytkownika tożsamości
ID1
zarządzane iID2
do niej przypisane, i chcesz dodać tożsamość zarządzaną przypisaną przez system do maszyny wirtualnej, użyj następującego wywołania CURL. Zastąp<ACCESS TOKEN>
wartości i<SUBSCRIPTION ID>
odpowiednimi dla danego środowiska.Wersja
2018-06-01
interfejsu API przechowuje tożsamości zarządzane przypisane przez użytkownika wuserAssignedIdentities
wartości w formacie słownika, w przeciwieństwie doidentityIds
wartości w formacie tablicy używanym w wersji2017-12-01
interfejsu API .INTERFEJS API W WERSJI 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "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":{ } } } }
INTERFEJS API W WERSJI 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "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" ] } }
Wyłączanie tożsamości zarządzanej przypisanej przez system z maszyny wirtualnej platformy Azure
Aby wyłączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.
Pobierz token dostępu elementu nośnego, który zostanie użyty w następnym kroku w nagłówku Autoryzacja w celu utworzenia maszyny wirtualnej z tożsamością zarządzaną przypisaną przez system.
az account get-access-token
Zaktualizuj maszynę wirtualną przy użyciu narzędzia CURL, aby wywołać punkt końcowy REST usługi Azure Resource Manager, aby wyłączyć tożsamość zarządzaną przypisaną przez system. Poniższy przykład wyłącza tożsamość zarządzaną przypisaną przez system zgodnie z opisem w treści żądania przez wartość
{"identity":{"type":"None"}}
z maszyny wirtualnej o nazwie myVM. Zastąp<ACCESS TOKEN>
ciąg wartością otrzymaną w poprzednim kroku, gdy zażądano tokenu dostępu elementu nośnego i<SUBSCRIPTION ID>
wartość odpowiednią dla danego środowiska.Ważne
Aby upewnić się, że nie usuniesz żadnych istniejących tożsamości zarządzanych przypisanych przez użytkownika przypisanych do maszyny wirtualnej, musisz wyświetlić listę tożsamości zarządzanych przypisanych przez użytkownika przy użyciu tego polecenia CURL:
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>"
. Jeśli masz przypisane przez użytkownika tożsamości zarządzane przypisane do maszyny wirtualnej zgodnie z wartością widentity
odpowiedzi, przejdź do kroku 3, który pokazuje, jak zachować tożsamości zarządzane przypisane przez użytkownika podczas wyłączania tożsamości zarządzanej przypisanej przez system na maszynie wirtualnej.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "identity":{ "type":"None" } }
Aby usunąć tożsamość zarządzaną przypisaną przez system z maszyny wirtualnej, która ma przypisane przez użytkownika tożsamości zarządzane, usuń
SystemAssigned
z wartości przy zachowaniuUserAssigned
wartości iuserAssignedIdentities
wartości słownika, jeśli używasz interfejsu API w wersji 2018-06-01{"identity":{"type:" "}}
. Jeśli używasz interfejsu API w wersji 2017-12-01 lub starszej, zachowaj tablicęidentityIds
.
Tożsamość zarządzana przypisana przez użytkownika
W tej sekcji dowiesz się, jak dodawać i usuwać tożsamość zarządzaną przypisaną przez użytkownika na maszynie wirtualnej platformy Azure przy użyciu narzędzia CURL w celu wykonywania wywołań do punktu końcowego REST usługi Azure Resource Manager.
Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika podczas tworzenia maszyny wirtualnej platformy Azure
Aby przypisać tożsamość przypisaną przez użytkownika do maszyny wirtualnej, twoje konto wymaga przypisań ról Współautor maszyny wirtualnej i Operator tożsamości zarządzanej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.
Pobierz token dostępu elementu nośnego, który zostanie użyty w następnym kroku w nagłówku Autoryzacja w celu utworzenia maszyny wirtualnej z tożsamością zarządzaną przypisaną przez system.
az account get-access-token
Utwórz interfejs sieciowy dla maszyny wirtualnej:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Pobierz token dostępu elementu nośnego, który zostanie użyty w następnym kroku w nagłówku Autoryzacja w celu utworzenia maszyny wirtualnej z tożsamością zarządzaną przypisaną przez system.
az account get-access-token
Utwórz tożsamość zarządzaną przypisaną przez użytkownika, korzystając z instrukcji podanych tutaj: Tworzenie tożsamości zarządzanej przypisanej przez użytkownika.
Utwórz maszynę wirtualną przy użyciu narzędzia CURL w celu wywołania punktu końcowego REST usługi Azure Resource Manager. W poniższym przykładzie utworzono maszynę wirtualną o nazwie myVM w grupie zasobów myResourceGroup z tożsamością zarządzaną przypisaną przez użytkownika, zgodnie z opisem
ID1
w treści żądania o wartości"identity":{"type":"UserAssigned"}
. Zastąp<ACCESS TOKEN>
ciąg wartością otrzymaną w poprzednim kroku, gdy zażądano tokenu dostępu elementu nośnego i<SUBSCRIPTION ID>
wartość odpowiednią dla danego środowiska.INTERFEJS API W WERSJI 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
INTERFEJS API W WERSJI 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika do istniejącej maszyny wirtualnej platformy Azure
Aby przypisać tożsamość przypisaną przez użytkownika do maszyny wirtualnej, twoje konto wymaga przypisań ról Współautor maszyny wirtualnej i Operator tożsamości zarządzanej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.
Pobierz token dostępu elementu nośnego, który zostanie użyty w następnym kroku w nagłówku Autoryzacja w celu utworzenia maszyny wirtualnej z tożsamością zarządzaną przypisaną przez system.
az account get-access-token
Utwórz tożsamość zarządzaną przypisaną przez użytkownika, korzystając z instrukcji podanych tutaj: Tworzenie tożsamości zarządzanej przypisanej przez użytkownika.
Aby upewnić się, że nie usuniesz istniejących tożsamości zarządzanych przypisanych przez użytkownika ani przypisane przez system do maszyny wirtualnej, musisz wyświetlić listę typów tożsamości przypisanych do maszyny wirtualnej przy użyciu następującego polecenia CURL. Jeśli masz tożsamości zarządzane przypisane do zestawu skalowania maszyn wirtualnych, są one wymienione w obszarze w
identity
wartości .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>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Jeśli masz tożsamości zarządzane przypisane przez użytkownika lub system przypisane do maszyny wirtualnej zgodnie
identity
z wartością w odpowiedzi, przejdź do kroku 5, który pokazuje, jak zachować tożsamość zarządzaną przypisaną przez system podczas dodawania tożsamości zarządzanej przypisanej przez użytkownika na maszynie wirtualnej.Jeśli nie masz przypisanych przez użytkownika tożsamości zarządzanych do maszyny wirtualnej, użyj następującego polecenia CURL, aby wywołać punkt końcowy REST usługi Azure Resource Manager, aby przypisać pierwszą tożsamość zarządzaną przypisaną przez użytkownika do maszyny wirtualnej.
W poniższym przykładzie przypisano tożsamość
ID1
zarządzaną przypisaną przez użytkownika do maszyny wirtualnej o nazwie myVM w grupie zasobów myResourceGroup. Zastąp<ACCESS TOKEN>
ciąg wartością otrzymaną w poprzednim kroku, gdy zażądano tokenu dostępu elementu nośnego i<SUBSCRIPTION ID>
wartość odpowiednią dla danego środowiska.INTERFEJS API W WERSJI 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "identity":{ "type":"UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } } }
INTERFEJS API W WERSJI 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Jeśli masz przypisaną przez użytkownika lub przypisaną przez system tożsamość zarządzaną przypisaną do maszyny wirtualnej:
INTERFEJS API W WERSJI 2018-06-01
Dodaj tożsamość zarządzaną przypisaną przez użytkownika do wartości słownika
userAssignedIdentities
.Jeśli na przykład masz tożsamość zarządzaną przypisaną przez system i tożsamość
ID1
zarządzaną przypisaną przez użytkownika do maszyny wirtualnej i chcesz dodać do niej tożsamośćID2
zarządzaną przypisaną przez użytkownika:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "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":{ } } } }
INTERFEJS API W WERSJI 2017-12-01
Zachowaj tożsamości zarządzane przypisane przez użytkownika, które chcesz zachować w
identityIds
wartości tablicy podczas dodawania nowej tożsamości zarządzanej przypisanej przez użytkownika.Jeśli na przykład masz tożsamość zarządzaną przypisaną przez system i tożsamość
ID1
zarządzaną przypisaną przez użytkownika do maszyny wirtualnej i chcesz dodać do niej tożsamośćID2
zarządzaną przypisaną przez użytkownika:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "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" ] } }
Usuwanie tożsamości zarządzanej przypisanej przez użytkownika z maszyny wirtualnej platformy Azure
Aby usunąć tożsamość przypisaną przez użytkownika do maszyny wirtualnej, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej.
Pobierz token dostępu elementu nośnego, który zostanie użyty w następnym kroku w nagłówku Autoryzacja w celu utworzenia maszyny wirtualnej z tożsamością zarządzaną przypisaną przez system.
az account get-access-token
Aby upewnić się, że nie usuniesz żadnych istniejących tożsamości zarządzanych przypisanych przez użytkownika, które chcesz zachować przypisane do maszyny wirtualnej lub usuń tożsamość zarządzaną przypisaną przez system, musisz wyświetlić listę tożsamości zarządzanych przy użyciu następującego polecenia CURL:
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>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Jeśli masz tożsamości zarządzane przypisane do maszyny wirtualnej, są one wymienione w odpowiedzi w
identity
wartości .Jeśli na przykład masz przypisane przez użytkownika tożsamości
ID1
zarządzane iID2
przypisane do maszyny wirtualnej, a chcesz zachowaćID1
przypisaną i zachowaną tożsamość przypisaną przez system:INTERFEJS API W WERSJI 2018-06-01
Dodaj
null
do tożsamości zarządzanej przypisanej przez użytkownika, którą chcesz usunąć:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
INTERFEJS API W WERSJI 2017-12-01
Zachowaj tylko tożsamości zarządzane przypisane przez użytkownika, które mają być przechowywane w tablicy
identityIds
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania opis Typ zawartości Wymagany. Ustaw wartość application/json
.Autoryzacja Wymagany. Ustaw prawidłowy Bearer
token dostępu.Treść żądania
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Jeśli maszyna wirtualna ma tożsamości zarządzane przypisane przez system i przypisane przez użytkownika, możesz usunąć wszystkie tożsamości zarządzane przypisane przez użytkownika, przełączając się na użycie tylko przypisanej przez system tożsamości zarządzanej przy użyciu następującego polecenia:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania | opis |
---|---|
Typ zawartości | Wymagany. Ustaw wartość application/json . |
Autoryzacja | Wymagany. Ustaw prawidłowy Bearer token dostępu. |
Treść żądania
{
"identity":{
"type":"SystemAssigned"
}
}
Jeśli maszyna wirtualna ma tylko tożsamości zarządzane przypisane przez użytkownika i chcesz je usunąć, użyj następującego polecenia:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?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/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Nagłówki żądań
Nagłówek żądania | opis |
---|---|
Typ zawartości | Wymagany. Ustaw wartość application/json . |
Autoryzacja | Wymagany. Ustaw prawidłowy Bearer token dostępu. |
Treść żądania
{
"identity":{
"type":"None"
}
}
Następne kroki
Aby uzyskać informacje na temat tworzenia, wyświetlania listy lub usuwania tożsamości zarządzanych przypisanych przez użytkownika przy użyciu interfejsu REST, zobacz: