共用方式為


什麼是 Azure 角色型存取控制 (Azure RBAC)?

對於使用雲端的任何組織而言,雲端資源的存取管理是非常重要的功能。 Azure 角色型存取控制 (Azure RBAC) 可協助您管理可存取 Azure 資源的人員、這些人員如何使用資源,以及他們存取的區域。

Azure RBAC 是以 Azure Resource Manager 為基礎的授權系統,可為 Azure 資源提供更細緻的存取管理。

這段影片提供 Azure RBAC 的快速概觀。

Azure RBAC 用途為何?

以下是 Azure RBAC 用途的一些範例:

  • 允許一個使用者管理訂用帳戶中的虛擬機器,而另一個使用者管理虛擬網路
  • 允許 DBA 群組管理訂用帳戶中的 SQL 資料庫
  • 允許使用者管理資源群組中的所有資源,例如虛擬機器、網站和子網路
  • 允許應用程式存取資源群組中的所有資源

Azure RBAC 的運作方式

您使用 Azure RBAC 來控制資源存取的方式就是指派 Azure 角色。 這是瞭解如何強制執行權限的重要概念。 角色指派由三項元素所組成:安全性主體、角色定義和範圍。

安全性主體

安全性主體是物件,代表要求存取 Azure 資源的使用者、群組、服務主體或受控識別。 您可以將角色指派給其中任何一個安全性主體。

此圖顯示角色指派的安全性主體類型。

角色定義

角色定義是一個權限集合。 一般會直接稱之為角色。 角色定義會列出可執行的動作,例如讀取、寫入和刪除。 角色可以為高階 (例如「擁有者」) 或特定 (例如「虛擬機器讀取者」)。

顯示角色指派角色定義範例的圖表

Azure 包含數個您可使用的內建角色。 例如,虛擬機器參與者角色可讓使用者建立和管理虛擬機器。 如果內建的角色無法滿足您組織的特定需求,您可以建立自己的 Azure 自訂角色

這段影片提供內建角色和自定義角色的快速概觀。

Azure 具有資料動作,可讓您授與對象內資料的存取權。 例如,如果使用者有儲存體帳戶的讀取資料存取權,則他們可讀取該儲存體帳戶中的 Blob 或訊息。

如需詳細資訊,請參閱 瞭解 Azure 角色定義

範圍

範圍是要套用存取權的一組資源。 當您指派角色時,您可以藉由定義範圍來進一步限制允許的動作。 如果您想要讓某人成為 網站參與者,但僅適用於一個資源群組,這會很有説明。

在 Azure 中,您可以指定四個層級的範圍: 管理群組、訂用帳戶、 資源群組或資源。 範圍會採用父子式關聯性的結構。 您可以在這裡的任何層級範圍當中指派角色。

顯示角色指派範圍層級的圖表。

如需範圍的詳細資訊,請參閱了解範圍

角色指派

角色指派是一個連結流程,其為了授與存取權,而將角色定義連結至特定範圍的使用者、群組、服務主體或受控識別。 存取權可藉由建立角色指派來授與,並可藉由移除角色指派來撤銷。

下圖顯示角色指派的範例。 在此範例中,行銷群組已獲指派 製藥銷售資源群組的參與者 角色。 這代表行銷群組中的使用者可以建立或管理醫藥銷售資源群組中的任何 Azure 資源。 營銷用戶無法存取製藥銷售資源群組以外的資源,除非他們是另一個角色指派的一部分。

顯示安全性主體、角色定義和範圍如何建立角色指派的圖表。

您可以使用 Azure 入口網站、Azure CLI、Azure PowerShell、Azure SDK 或 REST API 指派角色。

如需詳細資訊,請參閱指派 Azure 角色的步驟

群組

角色指派是群組的可轉移,這表示如果使用者是群組的成員,而該群組是另一個具有角色指派的群組成員,則使用者具有角色指派的許可權。

顯示角色指派如何轉移群組的圖表。

多個角色指派

所以,如果您有多個重疊的角色指派會發生什麼事? Azure RBAC 是加法模型,所以您的有效權限就是角色指派的總和。 考慮下列範例,其中使用者在訂用帳戶範圍中被授與參與者角色,且在資源群組中被授與讀者角色。 「參與者」權限與「讀者」權限的總和實際上就是訂閱的「參與者」角色。 因此,在此情況下,讀者角色指派沒有影響。

顯示多個角色指派重疊方式的圖表。

Azure RBAC 如何判斷使用者是否可存取資源

以下是 Azure RBAC 用來判斷您是否具有資源存取權的高階步驟。 這些步驟適用於與 Azure RBAC 整合的 Azure Resource Manager 或資料平面服務。 這有助於瞭解您是否嘗試針對存取問題進行疑難解答。

  1. 使用者 (或服務主體) 可取得 Azure Resource Manager 的權杖。

    權杖包含使用者的群組成員資格 (包括可轉移的群組成員資格)。

  2. 使用者會使用附加的權杖,對 Azure Resource Manager 進行 REST API 呼叫。

  3. Azure Resource Manager 會擷取適用於採取動作之資源的所有角色指派和拒絕指派。

  4. 如果拒絕指派適用,則會封鎖存取權。 否則,評估會繼續進行。

  5. Azure Resource Manager 會縮小適用於此使用者或其群組的角色指派,並決定針對此資源,使用者擁有哪些角色。

  6. Azure Resource Manager 會判斷 API 呼叫中的動作是否包含在使用者針對此資源所具備的角色中。 如果角色包含Actions具有通配符 (*),則會藉由從允許Actions的 減去 NotActions 來計算有效許可權。 同樣地,針對任何資料動作,系統會執行相同的減法。

    Actions - NotActions = Effective management permissions

    DataActions - NotDataActions = Effective data permissions

  7. 如果使用者在要求的範圍沒有動作的角色,則不允許存取。 否則,系統會評估任何條件。

  8. 如果角色指派包含條件,則會評估這些條件。 否則,會允許存取。

  9. 如果符合條件,則允許存取。 否則不允許存取。

下圖是評估邏輯的摘要。

用於判斷資源存取權的評估邏輯流程圖。

Azure RBAC 資料儲存在何處?

角色定義、角色指派和拒絕指派會在全域範圍內進行儲存,以確保不論您建立的資源區域為何,您都能存取資源。

刪除角色指派或任何其他 Azure RBAC 資料時,會在全域範圍內刪除資料。 具有透過 Azure RBAC 資料存取資源的主體將會失去其存取權。

為什麼 Azure RBAC 資料是全域性?

Azure RBAC 數據是全域數據,以確保客戶可以及時存取資源,而不論其存取位置為何。 Azure Resource Manager 會強制執行 Azure RBAC,其具有全域端點,且要求會路由傳送至最接近的區域,以提高速度和彈性。 因此,必須在所有區域中強制執行 Azure RBAC,並將資料復寫到所有區域。 如需詳細資訊,請參閱 Azure Resource Manager 的復原。

請思考一下下列範例。 Arina 在東亞建立虛擬機器。 Bob 是 Arina 團隊的成員,在美國工作。 Bob 需要存取在東亞建立的虛擬機器。 若要授與 Bob 對虛擬機器的及時存取權,Azure 必須全域複寫角色指派,以授與 Bob 從任何位置存取虛擬機器的權限。

顯示多個區域中 Azure RBAC 資料的圖表。

授權需求

這項功能可免費使用,且包含在您的 Azure 訂用帳戶中。

下一步