什麼是 Azure RBAC?

已完成

談到身分識別與存取時,考慮使用公用雲端的組織都關心兩件事:

  1. 確保當使用者離開組織之後,就無法存取雲端中的資源。
  2. 在自治與集中治理之間取得平衡 - 例如賦予專案小組在雲端中建立及管理虛擬機器的能力,同時集中控制那些 VM 用於與其他資源通訊的網路。

Microsoft Entra ID 與 Azure 角色型存取控制 (Azure RBAC) 會共同運作,讓您能夠輕鬆達成這些目標。

Azure 訂用帳戶

首先,請記住,每個 Azure 訂用帳戶都會與單一 Microsoft Entra 目錄相關聯。 該目錄中的使用者、群組與應用程式皆可以管理 Azure 訂用帳戶中的資源。 訂用帳戶會使用 Microsoft Entra ID 進行單一登入 (SSO) 與存取管理。 您可以使用 Microsoft Entra Connect,將內部部署的 Active Directory 延伸到雲端。 此功能可讓您的員工使用其現有的公司身分識別來管理其 Azure 訂用帳戶。 當您停用內部部署的 Active Directory 帳戶時,其會自動失去對與 Microsoft Entra ID 連結之所有 Azure 訂用帳戶的存取權。

什麼是 Azure RBAC?

Azure 角色型存取控制 (Azure RBAC) 是建置於 Azure Resource Manager 上的授權系統,可提供更細緻的 Azure 資源存取管理。 使用 Azure RBAC 時,您可以為使用者授與執行其工作時所需的精確存取權。 例如,您可以使用 Azure RBAC 讓一位員工管理某個訂用帳戶中的虛擬機器,而讓另一位員工管理相同訂用帳戶中的 SQL 資料庫。

下列影片詳細說明 Azure RBAC:

您可以透過在特定範圍將適當的 Azure 角色指派給使用者、群組與應用程式,以授與存取權。 角色指派的範圍可以是管理群組、訂用帳戶、資源群組或單一資源。 在父範圍指派的角色也會將存取權授與其內含的子範圍。 例如,具有資源群組存取權的使用者可以管理其內含的所有資源,例如網站、虛擬機器和子網路。 您指派的 Azure 角色會指定使用者、群組或應用程式可以在該範圍內管理的資源。

下圖概略描繪傳統訂用帳戶管理員角色、Azure 角色及 Microsoft Entra 角色之間的關聯。 在較高範圍 (例如整個訂用帳戶) 指派的角色會由子範圍 (例如服務執行個體) 繼承。

Diagram that depicts how the classic subscription administrator roles, Azure roles, and Microsoft Entra roles are related at a high level.

在上圖中,一個訂用帳戶僅會與一個 Microsoft Entra 租用戶相關聯。 另請注意,資源群組可以有多個資源,但僅與一個訂用帳戶相關聯。 雖然在圖表中並不明顯,資源只能繫結至一個資源群組。

我能用 Azure RBAC 來做什麼?

Azure RBAC 可讓您將存取權授與您所控制的 Azure 資源。 假設您需要管理開發、工程和行銷團隊的 Azure 資源存取權。 您已經開始收到存取要求,因此需要快速了解 Azure 資源的存取管理運作方式。

以下是一些您可使用 Azure RBAC 實作的案例:

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

Azure 入口網站的 Azure RBAC

在 Azure 入口網站中的數個區域,您會看到名稱為 [存取控制 (IAM)] 的窗格,也就是身分識別和存取權管理。 在此窗格中,您可以看到誰可以存取該區域,以及他們的角色。 您可以使用相同的窗格來授與或移除存取權。

下面顯示資源群組的 [存取控制 (IAM)] 窗格範例。 在此範例中,Alain 已獲指派為此資源群組的「備份操作員」角色。

Screenshot of the Azure portal showing the Access control Role assignment pane with the Backup operator section highlighted.

Azure RBAC 如何運作?

若要使用 Azure RBAC 控制對資源的存取,您可以建立角色指派,控制如何強制執行權限。 您需要安全性主體、角色定義和範圍這三個項目,來建立角色指派。 您可以將這些項目理解為「對象」、「用途」和「位置」。

1. 安全性主體 (對象)

「安全性主體」只是一個好聽的名稱,用於泛稱您想要授與存取權的使用者、群組或應用程式。

An illustration showing security principal including user, group, and service principal.

2. 角色定義 (用途)

角色定義是一個權限集合。 它有時簡稱為「角色」。 角色定義會列出角色可執行的權限,例如讀取、寫入及刪除。 角色可以概稱 (例如「擁有者」) 也可以具體 (例如「虛擬機器參與者」)。

An illustration listing different built-in and custom roles with zoom-in on the definition for the contributor role.

Azure 包含數個供您使用的內建角色。 以下列出四個基本內建角色:

  • 擁有者:具有所有資源的完整存取權,包括將存取權委派給其他人的權限
  • 參與者:可以建立及管理所有類型的 Azure 資源,但是不能將存取權授與其他人
  • 讀者:可以檢視現有的 Azure 資源
  • 使用者存取管理員:讓您管理使用者對 Azure 資源的存取權

如果內建角色無法滿足組織的特定需求,您可以建立自己的自訂角色。

3. 範圍 (位置)

範圍是要套用存取權的層級。 如果您想要讓某位使用者成為「網站參與者」,但僅限於某個資源群組,這會很實用。

在 Azure 中,您可以在多個層級指定範圍:管理群組、訂閱、資源群組或資源。 範圍會採用父子式關聯性的結構。 當您在父範圍授與存取權時,子範圍將會繼承那些權限。 比方說,如果您將「參與者」角色指派給訂用帳戶範圍中的群組,則訂用帳戶中的所有資源群組和資源都會繼承該角色。

An illustration showing a hierarchical representation of different Azure levels to apply scope. The hierarchy, starting with the highest level, is in this order: Management group, subscription, resource group, and resource.

角色指派

一旦您決定對象、用途和位置之後,即可結合這些元素來授與存取權。 「角色指派」是一個將角色繫結至特定範圍的安全性主體,進而授與存取權的程序。 若要授與存取權,您將建立角色指派。 若要撤銷存取權,您將移除角色指派。

下列範例顯示「行銷」群組已獲指派銷售資源群組範圍的「參與者」角色。

An illustration showing a sample role assignment process for Marketing group, which is a combination of security principal, role definition, and scope. The Marketing group falls under the Group security principal and has a Contributor role assigned for the Resource group scope.

Azure RBAC 是允許模型

Azure RBAC 是允許模型。 這表示當您獲指派角色時,Azure RBAC 允許您執行特定動作,例如讀取、寫入或刪除。 因此,如果有一個角色指派授與您資源群組的讀取權限,而另一個不同的角色指派授與您相同資源群組的寫入權限,則您會擁有該資源群組的讀取與寫入權限。

Azure RBAC 具有所謂的 NotActions 權限。 您可以使用 NotActions 來建立一組不受允許的權限。 角色授與的存取權:「有效權限」計算方式是將 NotActions 作業從 Actions 作業減去。 例如,「參與者」角色同時具有 ActionsNotActionsActions 中的萬用字元 (*) 表示其可以在控制平面上執行所有作業。 然後您可以在 NotActions 中減去下列作業,以計算有效權限:

  • 刪除角色和角色指派
  • 建立角色和角色指派
  • 授與呼叫者租用戶範圍的使用者存取系統管理員存取權
  • 建立或更新任何藍圖成品
  • 刪除任何藍圖成品