共用方式為


將受控識別存取權指派給 Azure 資源或另一項資源

Azure 資源受控識別是 Microsoft Entra ID 的一項功能。 每個支援適用於 Azure 資源的受控識別 Azure 服務均受限於其本身的時間表。 在開始之前,請務必先檢閱資源的受控識別可用性狀態和已知問題

本文說明如何為 Azure 虛擬機器 (VM) 受控識別提供對 Azure 儲存體帳戶的存取權。 以受控識別設定 Azure 資源後,您便可以為此受控識別提供對另一項資源的存取權,就像任何安全性主體一樣。

必要條件

使用 Azure 入口網站的 Azure RBAC,將受控識別存取權指派給其他資源

提示

本文中的步驟可能略有不同,具體取決於您從哪個入口網站展開作業。

重要

以下所述的步驟顯示如何使用 Azure RBAC 來授與服務存取權。 請參閱如何授與存取權的特定服務文件 -例如,請參閱 Azure 資料總管的相關指示。 某些 Azure 服務正在資料平面上採用 Azure RBAC。

  1. 使用與您設定受控識別的 Azure 訂用帳戶相關聯的帳戶,登入 Azure 入口網站

  2. 瀏覽至您要修改其存取控制的資源。 在此範例中,您會為 Azure 虛擬機器 (VM) 提供對儲存體帳戶的存取權,然後您可以瀏覽至儲存體帳戶。

  3. 選取 [存取控制 (IAM)]。

  4. 選取 [新增]> [新增角色指派],開啟 [新增角色指派] 頁面。

  5. 選取 [角色] 與 [受控識別]。 如需詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色

    螢幕擷取畫面,顯示新增角色指派的頁面。

使用 Azure CLI 以 Azure RBAC 對其他資源指派受控識別存取權

  1. 在此範例中,您會為儲存體帳戶提供 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)
    
  2. 一旦您有服務主體 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。
  1. 您在 Azure 資源 (例如 Azure VM) 上啟用受控識別。

  2. 為 Azure 虛擬機器 (VM) 提供儲存體帳戶的存取權。

    1. 使用 Get-AzVM 取得 VM myVM 的服務主體,這是在您啟用受控識別時所建立的。
    2. 使用 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>"
    

下一步