使用 Azure CLI 在 Azure VM 上設定 Azure 資源的受控識別
Azure 資源的受控識別是 Microsoft Entra ID 的功能。 每個支援適用於 Azure 資源的受控識別 Azure 服務均受限於其本身的時間表。 開始之前,請務必檢閱 資源受控識別的可用性 狀態和 已知問題 。
Azure 資源受控識別會在 Microsoft Entra ID 中為 Azure 服務提供自動受控識別。 您可以使用此身分識別向任何支援 Microsoft Entra 驗證的服務進行驗證,而不需要在程式碼中具有認證。
在本文中,您會使用 Azure CLI,瞭解如何在 Azure VM 上針對 Azure 資源作業執行下列受控識別:
- 在 Azure VM 上啟用和停用系統指派的受控識別
- 在 Azure VM 上新增和移除使用者指派的受控識別
如果您還沒有 Azure 帳戶, 請先註冊免費帳戶 ,再繼續進行。
必要條件
- 如果您不熟悉 Azure 資源的受控識別,請參閱 什麼是 Azure 資源的受控識別? 。 若要瞭解系統指派和使用者指派的受控識別類型,請參閱 受控識別類型 。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
系統指派的受控識別
在本節中,您將瞭解如何使用 Azure CLI 在 Azure VM 上啟用和停用系統指派的受控識別。
在建立 Azure VM 期間啟用系統指派的受控識別
若要建立已啟用系統指派受控識別的 Azure VM,您的帳戶需要 虛擬機器參與者 角色指派。 不需要其他 Microsoft Entra 目錄角色指派。
使用 az group create ,為您的 VM 及其相關資源建立內含專案和部署的資源群組 。 如果您已經有想要改用的資源群組,則可以略過此步驟:
az group create --name myResourceGroup --location westus
使用 az vm create 建立 VM。 下列範例會建立名為 myVM 的 VM,其中包含系統指派的受控識別,如 參數所要求
--assign-identity
,且具有指定的--role
和--scope
。--admin-username
和--admin-password
參數會指定虛擬機器登入的系統管理使用者名稱和密碼帳戶。 根據您的環境更新這些值:az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
在現有的 Azure VM 上啟用系統指派的受控識別
若要在 VM 上啟用系統指派的受控識別,您的帳戶需要 虛擬機器參與者 角色指派。 不需要其他 Microsoft Entra 目錄角色指派。
如果您在本機主控台中使用 Azure CLI,請先使用 az login 登入 Azure。 使用與包含 VM 的 Azure 訂用帳戶相關聯的帳戶。
az login
使用 az vm identity assign 搭配
identity assign
命令,將系統指派的身分識別啟用至現有的 VM:az vm identity assign -g myResourceGroup -n myVm
從 Azure VM 停用系統指派的身分識別
若要在 VM 上停用系統指派的受控識別,您的帳戶需要 虛擬機器參與者 角色指派。 不需要其他 Microsoft Entra 目錄角色指派。
如果您的虛擬機器不再需要系統指派的身分識別,但仍需要使用者指派的身分識別,請使用下列命令:
az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned'
如果您有不再需要系統指派身分識別且沒有使用者指派身分識別的虛擬機器,請使用下列命令:
注意
此值 none
會區分大小寫。 它必須是小寫。
az vm update -n myVM -g myResourceGroup --set identity.type="none"
使用者指派的受控識別
在本節中,您將瞭解如何使用 Azure CLI 從 Azure VM 新增和移除使用者指派的受控識別。 如果您在與 VM 不同的 RG 中建立使用者指派的受控識別。 您必須使用受控識別的 URL,將它指派給 VM。 例如:
--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"
在建立 Azure VM 期間指派使用者指派的受控識別
若要在建立期間將使用者指派的身分識別指派給 VM,您的帳戶需要 虛擬機器參與者 和 受控識別操作員 角色指派。 不需要其他 Microsoft Entra 目錄角色指派。
如果您已經有想要使用的資源群組,則可以略過此步驟。 使用 az group create 建立 資源群組 ,以包含和部署使用者指派的受控識別。 請務必將 和
<LOCATION>
參數值取代<RESOURCE GROUP>
為您自己的值。 :az group create --name <RESOURCE GROUP> --location <LOCATION>
使用 az identity create 建立使用者指派的受控識別。
-g
參數會指定建立使用者指派受控識別的資源群組,而-n
參數會指定其名稱。重要
當您建立使用者指派的受控識別時,僅支援英數位元 (0-9、a-z 和 A-Z) 和連字號 (-) 。 若要將指派給虛擬機器或虛擬機器擴展集正常運作,名稱限制為 24 個字元。 如需詳細資訊,請參閱 常見問題和已知問題 。
az identity create -g myResourceGroup -n myUserAssignedIdentity
回應包含所建立之使用者指派受控識別的詳細資料,如下所示。 在下列步驟中使用指派給使用者指派的受控識別的資源識別碼值。
{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
使用 az vm create 建立 VM。 下列範例會建立與新的使用者指派身分識別相關聯的 VM,如 參數所
--assign-identity
指定,具有指定的--role
和--scope
。 請務必將<RESOURCE GROUP>
、<VM NAME>
、、<PASSWORD>
<USER NAME>
、<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
若要將使用者指派的身分識別指派給 VM,您的帳戶需要 虛擬機器參與者 和 受控識別操作員 角色指派。 不需要其他 Microsoft Entra 目錄角色指派。
使用 az identity create 建立使用者指派的身分識別。 參數
-g
會指定建立使用者指派身分識別的資源群組,而-n
參數會指定其名稱。 請務必將 和<USER ASSIGNED IDENTITY NAME>
參數值取代<RESOURCE GROUP>
為您自己的值:重要
目前不支援在名稱中建立具有特殊字元(亦即底線)的使用者指派受控識別。 請使用英數位元。 因此請定期回來查看是否有更新。 如需詳細資訊,請參閱 常見問題和已知問題
az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
回應包含所建立之使用者指派受控識別的詳細資料,如下所示。
{ "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
使用 az vm identity assign 將使用者指派的身分識別指派給 VM。 請務必將 和
<VM NAME>
參數值取代<RESOURCE GROUP>
為您自己的值。<USER ASSIGNED IDENTITY NAME>
是使用者指派的受控識別資源name
屬性,如上一個步驟中所建立。 如果您在與 VM 不同的 RG 中建立使用者指派的受控識別。 您必須使用受控識別的 URL。az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
從 Azure VM 移除使用者指派的受控識別
若要將使用者指派的身分識別移除至 VM,您的帳戶需要 虛擬機器參與者 角色指派。
如果這是指派給虛擬機器的唯一使用者指派受控識別, UserAssigned
將會從識別類型值中移除。 請務必將 和 <VM NAME>
參數值取代 <RESOURCE GROUP>
為您自己的值。 <USER ASSIGNED IDENTITY>
將會是使用者指派的身 name
分識別屬性,您可以在虛擬機器的身分識別區段中使用 az vm identity show
找到:
az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
如果您的 VM 沒有系統指派的受控識別,而且您想要從中移除所有使用者指派的身分識別,請使用下列命令:
注意
此值 none
會區分大小寫。 它必須是小寫。
az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null
如果您的 VM 同時具有系統指派和使用者指派的身分識別,您可以切換為僅使用系統指派來移除所有使用者指派的身分識別。 使用下列命令:
az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null
下一步
- 適用于 Azure 資源的受控識別概觀
- 如需完整的 Azure VM 建立快速入門,請參閱: