指派 Azure 角色的步驟

Azure 角色型存取控制 (Azure RBAC) 是您用來管理 Azure 資源存取權的授權系統。 若要授與存取權,您可以在特定範圍內將角色指派給使用者、群組、服務主體或受控識別。 本文描述使用 Azure 入口網站、Azure PowerShell、Azure CLI 或 REST API 指派 Azure 角色的高階步驟。

步驟 1:判斷誰需要存取

您必須先判斷誰需要存取。 您可以將角色指派給使用者、群組、服務主體或受控識別。 這也稱作安全性主體。

角色指派的安全性主體

  • 使用者 - 在 Microsoft Entra ID 中有設定檔的個人。 您也可以將角色指派給其他租用戶中的使用者。 如需其他組織使用者的相關資訊,請參閱 Microsoft Entra B2B。
  • 群組 - 已在 Microsoft Entra ID 建立的一組使用者。 當您指派角色給群組時,該群組內的所有使用者都會擁有該角色。
  • 服務主體 - 應用程式或服務用來存取特定 Azure 資源的安全性身分識別。 您可以將它視為應用程式的「使用者身分識別」(使用者名稱和密碼或憑證)。
  • 受控識別 - Microsoft Entra ID 中由 Azure 自動管理的身分識別。 您通常會在開發雲端應用程式來管理 Azure 服務驗證所需的認證時,使用受控識別。

步驟 2:選取適當角色

權限會群組在一起成為「角色定義」。 一般會直接稱之為角色。 您可以從數個內建角色的清單中選取。 如果內建角色無法滿足組織的特定需求,您可以建立自己的自訂角色。

角色指派的角色定義

角色會分類為工作職能角色與特殊權限系統管理員角色。

工作職能角色

工作職能角色允許管理特定 Azure 資源。 例如,虛擬機器參與者角色可讓使用者建立和管理虛擬機器。 若要選取適當工作職能角色,請使用下列步驟:

  1. 首先請參閱 Azure 內建角色這篇內容豐富的文章。 文章頂端表格是文章稍後詳細資料的索引。

  2. 在該篇文章中,瀏覽至您想要授予權限之資源所屬的服務類別(例如運算、儲存體和資料庫)。 若要尋找您欲尋找的內容,最簡單方式通常是搜尋網頁的相關關鍵字,例如「Blob」、「虛擬機器」等等。

  3. 檢閱服務類別所列角色,並識別您需要的特定動作。 再次強調,一律從最嚴格的角色開始。

    例如,如果安全性主體需要讀取 Azure 儲存體帳戶中的 Blob,但不需要寫入/存取權,則應選擇儲存體 Blob 資料讀取者,而不是儲存體 Blob 資料參與者 (當然,更不應選擇管理員層級的儲存體 Blob 資料擁有者角色)。 之後您可隨時視需要更新角色指派。

  4. 如果您找不到適合的角色,您可以建立自訂角色。

具特殊權限的系統管理員角色

特殊權限系統管理員角色是授與特殊權限系統管理員存取權的角色,例如其可管理 Azure 資源或指派角色給其他使用者。 下列角色被視為具特殊權限,並適用於所有資源類型。

Azure 角色 權限
負責人
  • 授與管理所有資源的完整存取權
  • 在 Azure RBAC 中指派角色
參與者
  • 授與管理所有資源的完整存取權
  • 無法在 Azure RBAC 中指派角色
  • 無法在 Azure 藍圖中管理指派或共用映像資源庫
保留系統管理員
  • 管理租用戶中的所有保留
  • 在 Azure RBAC 中為保留項目指派角色
角色型存取控制系統管理員
  • 管理 Azure 資源的使用者存取
  • 在 Azure RBAC 中指派角色
  • 將擁有者角色指派給自己或他人
  • 無法使用其他方式來管理存取,例如 Azure 原則
使用者存取系統管理員
  • 管理 Azure 資源的使用者存取
  • 在 Azure RBAC 中指派角色
  • 將自己或他人指派為 Owner 角色

如需使用特殊權限系統管理員角色指派時的最佳做法,請參閱 Azure RBAC 的最佳做法。 如需詳細資訊,請參閱特殊權限系統管理員角色定義。

步驟 3:識別所需的範圍

範圍是此存取權所適用的一組資源。 Azure 有下列四個層級可讓您指定範圍:管理群組、訂閱、資源群組和資源。 範圍的結構為父子式關聯性。 階層中的每個層級都會讓範圍更具體。 您可以在這些範圍的任何層級指派角色。 角色套用範圍依您選取的層級而定。 較低層級會繼承較高層級的角色權限。

角色指派的範圍

當您在父系範圍指派角色時,子系範圍將會繼承那些權限。 例如:

  • 如果您在管理群組範圍將讀者角色指派給使用者,該使用者可以讀取管理群組中所有訂用帳戶的一切。
  • 如果您將帳單讀者角色指派給訂用帳戶範圍的群組,則該群組的成員可以讀取訂用帳戶中每個資源群組和資源的帳單資料。
  • 如果您將參與者角色指派給資源群組範圍的應用程式,則該應用程式可以管理該資源群組中所有類型的資源,但是無法管理訂用帳戶中的其他資源群組。

最佳實務是僅授予安全性主體完成其工作所需的最低權限。 即使一開始看似較方便,仍應避免在較大範圍內指派較高權限的角色。 藉由限制角色和範圍,一旦安全性主體遭到入侵,您就能限制面臨風險的資源。 如需詳細資訊,請參閱了解範圍。

步驟 4:檢查必要條件

若要指派角色,您必須使用已獲指派具備角色指派寫入權限之角色的使用者帳戶登入,例如在您嘗試指派角色的範圍內具有角色型存取控制管理員角色的使用者。 若要移除角色指派,您同樣必須擁有角色指派刪除權限。

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.Authorization/roleAssignments/delete

如果您的使用者帳戶沒有足夠權限可在訂用帳戶中指派角色,您會看到錯誤訊息,這表示您的帳戶「沒有執行 'Microsoft.Authorization/roleAssignments/write' 動作的權限」。在此情況下,請洽詢訂用帳戶的管理員,因為他們可以代表您指派權限。

如果您使用服務主體來指派角色,您可能會收到「權限不足,無法完成此作業」的錯誤。會發生此錯誤可能是因為 Azure 正嘗試在 Microsoft Entra ID 中查閱被指派者的身分識別,而且服務主體預設為無法讀取 Microsoft Entra ID。 在此情況,您必須授與服務主體權限,以便讀取目錄資料。 或者,如果您使用 Azure CLI,您可使用受託人物件識別碼來建立角色指派,跳過 Microsoft Entra 查閱。 如需詳細資訊,請參閱針對 Azure RBAC 進行疑難排解。

步驟 5:指派角色

只要知道安全性主體、角色和範圍,您就可以指派角色。 您可以使用 Azure 入口網站、Azure PowerShell、Azure CLI、Azure SDK 或 REST API 指派角色。

每個訂閱最多可以有 5000 個角色分配。 此限制包括訂用帳戶、資源群組和資源範圍的角色指派。 合格的角色指派以及排定在未來的角色指派不計入此限制。 在每個管理群組中,您最多可以有 500 個角色指派。 如需詳細資訊,請參閱針對 Azure RBAC 限制進行疑難排解。

如需如何指派角色的詳細步驟,請參閱下列文章。

下一步