將受控識別存取權指派給 Azure 資源或另一項資源
Azure 資源受控識別是 Microsoft Entra ID 的一項功能。 每個支援適用於 Azure 資源的受控識別 Azure 服務均受限於其本身的時間表。 在開始之前,請務必先檢閱資源的受控識別可用性狀態和已知問題。
本文說明如何為 Azure 虛擬機器 (VM) 受控識別提供對 Azure 儲存體帳戶的存取權。 以受控識別設定 Azure 資源後,您便可以為此受控識別提供對另一項資源的存取權,就像任何安全性主體一樣。
必要條件
- 確保您已在 Azure 資源 (例如 Azure 虛擬機器或 Azure 虛擬機器擴展集) 上啟用受控識別。 如需 Azure 資源受控識別的詳細資訊,請參閱什麼是適用於 Azure 資源的受控識別?。
- 請檢閱系統指派和使用者指派受控識別之間的差異。
- 如果您還沒有 Azure 帳戶,請先註冊免費帳戶,再繼續進行。
使用 Azure 入口網站的 Azure RBAC,將受控識別存取權指派給其他資源
提示
根據您開始使用的入口網站,本文中的步驟可能略有不同。
重要
以下所述的步驟顯示如何使用 Azure RBAC 來授與服務存取權。 請參閱如何授與存取權的特定服務文件 -例如,請參閱 Azure 資料總管的相關指示。 某些 Azure 服務正在資料平面上採用 Azure RBAC。
使用與您設定受控識別的 Azure 訂用帳戶相關聯的帳戶,登入 Azure 入口網站。
瀏覽至您要修改其存取控制的資源。 在此範例中,您會為 Azure 虛擬機器 (VM) 提供對儲存體帳戶的存取權,然後您可以瀏覽至儲存體帳戶。
選取 [存取控制 (IAM)]。
選取 [新增] > [新增角色指派],開啟 [新增角色指派] 頁面。
選取 [角色] 與 [受控識別]。 如需詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色。
使用 Azure CLI 以 Azure RBAC 對其他資源指派受控識別存取權
在 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 虛擬機器 (VM) 受控存取權。 首先,使用 az resource list 來取得名為 myVM 的 VM 服務主體:
spID=$(az resource list -n myVM --query [*].identity.principalId --out tsv)
用於 Azure 虛擬機器 (VM) 擴展集的命令是相同的,不同的是您會取得名為 "DevTestVMSS" 的 VM 服務主體:
spID=$(az resource list -n DevTestVMSS --query [*].identity.principalId --out tsv)
一旦您有服務主體 ID 後,請使用 az role assignment create 將虛擬機器或虛擬機器擴展集讀者存取權提供給名為 "myStorageAcct" 的儲存體帳戶:
az role assignment create --assignee $spID --role 'Reader' --scope /subscriptions/<mySubscriptionID>/resourceGroups/<myResourceGroup>/providers/Microsoft.Storage/storageAccounts/myStorageAcct
使用 PowerShell 以 Azure RBAC 對其他資源指派受控識別存取權
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
若要在此範例中執行指令碼,您有兩個選項:
- 使用 Azure Cloud Shell,您可以使用程式碼區塊右上角的 [試用] 按鈕來開啟此服務。
- 藉由安裝最新版本的 Azure PowerShell,在本機執行指令碼,然後使用
Connect-AzAccount
來登入 Azure。
您在 Azure 資源 (例如 Azure VM) 上啟用受控識別。
為 Azure 虛擬機器 (VM) 提供儲存體帳戶的存取權。
- 使用 Get-AzVM 取得 VM
myVM
的服務主體,這是在您啟用受控識別時所建立的。 - 使用 New-AzRoleAssignment 為 VM 提供儲存體帳戶
myStorageAcct
的讀者存取權:
$spID = (Get-AzVM -ResourceGroupName myRG -Name myVM).identity.principalid New-AzRoleAssignment -ObjectId $spID -RoleDefinitionName "Reader" -Scope "/subscriptions/<mySubscriptionID>/resourceGroups/<myResourceGroup>/providers/Microsoft.Storage/storageAccounts/<myStorageAcct>"
- 使用 Get-AzVM 取得 VM
下一步
- 若要在 Azure 虛擬機器上啟用受控識別,請參閱設定 Azure 資源的受控識別。
- 若要在 Azure 虛擬機器擴展集上啟用受控識別,請參閱在虛擬機器擴展集上設定 Azure 資源的受控識別。