本文說明如何為 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。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 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 資源的受控識別。