系列專欄:從 AWS 視角征服 Azure:AZ-900 30 天通關實戰
難度指數:★★★★☆
核心考點:Azure RBAC、Security Principal(使用者/群組/服務主體/受控身分)、Role Definition(Owner/Contributor/Reader/User Access Administrator)、Scope(Management Group/Subscription/Resource Group/Resource)、Deny Assignments、權限繼承性、AWS IAM Policy / Role 對照。
本文一樣使用的,agycli 產出及校正在 Day 22 中,我們學習了 Microsoft Entra ID(原 Azure AD)的核心驗證機制與條件式存取(Conditional Access),解決了「你是誰」(Authentication,身份驗證)的問題。然而,當使用者或服務順利通過 MFA 驗證登入系統後,隨之而來的關鍵問題是:「你可以做什麼」(Authorization,授權控管)。
如果把雲端架構比喻為一座古代要塞,Entra ID 是門口的衛兵,檢查護照並要求雙重驗證;而 Azure Role-Based Access Control (RBAC) 就是城堡內的權杖與通行證系統。即使衛兵放你進入城堡,你也不能隨意進入金庫或兵器庫——你必須出示對應特定區域(Scope)的權杖(Role)。
今天 Titan 科技面臨極具挑戰的資安治理課題:資深架構師要為新進工程師、自動化 CI/CD Pipeline 以及外包營運團隊設定存取權限。如果權限給太大(例如直接給予 Owner),工程師可能不小心刪除整個生產環境資料庫或隨意指派高權限給第三方;如果權限給太小(例如僅給予 Reader),維運人員則無法啟動與停止 VM,導致業務癱瘓。
對 AWS 背景的架構師而言,AWS 習慣將 JSON 格式的 IAM Policy 直接附加在 User、Group 或 Role 上(甚至搭配 Resource-based Policy)。而 Azure 採用嚴謹的 三要素分離模型(Role Assignment = Security Principal + Role Definition + Scope)。掌握這套抽象模型與最小權限原則(Least Privilege),不僅是 Pass AZ-900 考試的 30–35% 高頻得分區,更是避免雲端資安破口的核心功力。
┌──────────────────────────────────────────────────────────────┐
│ Titan 存取控制層:Azure RBAC 三要素 │
├──────────────────────────────────────────────────────────────┤
│ 1. 安全性主體 (Who) → User / Group / Service Principal │
│ 2. 角色定義 (What) → Owner / Contributor / Reader │
│ 3. 存取範圍 (Where)→ Management Group / Sub / RG │
├──────────────────────────────────────────────────────────────┤
│ 權限繼承方向:上層 (Subscription) ──向下繼承──► 下層 (RG) │
└──────────────────────────────────────────────────────────────┘
💡 架構師重點筆記:Azure RBAC 將「授給誰 (Principal)」、「能做什麼 (Role Definition)」與「在哪生效 (Scope)」三個維度完全解耦。權限預設由上層資源容器向下自動繼承;任何在父層設定的 Role Assignment,都會影響其底下所有的子資源。
| 概念/名詞 | 核心定義與說明 | AWS 對照 | AZ-900 考點識別 |
|---|---|---|---|
| Azure RBAC | 以角色為基礎的存取控制,用來管理「誰」在「什麼範圍」內可以執行「什麼操作」。 | AWS IAM Role / Policy | 授權 (Authorization) 的核心工具。 |
| Security Principal | 安全性主體。存取 Azure 資源的個體,包含使用者 (User)、群組 (Group)、服務主體 (Service Principal) 或受控身分 (Managed Identity)。 | IAM User / Group / Role | 代表請求者身分。自動化系統應用 Managed Identity。 |
| Role Definition | 角色定義。包含一系列可執行 (Actions) 與不可執行 (NotActions) 操作的權限集合。 | IAM Policy Definition | 分為內建角色 (Built-in) 與自訂角色 (Custom)。 |
| Scope | 存取範圍。定義角色指派生效的資源階層邊界。 | IAM Policy Resource ARNs | 四層階層:Management Group > Subscription > RG > Resource。 |
| Owner | 內建角色:擁有一切資源的完全存取權,且包含指派權限給他人的能力。 | AdministratorAccess | 權限極大,AZ-900 常考「能否指派權限」的差異。 |
| Contributor | 內建角色(官方繁中譯名「參與者」,亦稱貢獻者):可建立與管理各類 Azure 資源,但不能指派權限給他人,亦不能管理權限。 | PowerUserAccess | 最常用的工程師角色;無權限管理能力。 |
| Reader | 內建角色:僅能檢視現有 Azure 資源,無法建立、修改或刪除任何資源。 | ReadOnlyAccess | 審計與監控人員最佳角色,遵循最小權限。 |
| User Access Admin | 內建角色:專門用來管理使用者存取權限,不能管理實際資源內容。 | IAM Policy Management | 專司權限指派,無法建立 VM 或 Storage。 |
| Deny Assignment | 拒絕指派。明確阻止主體執行特定操作,即使有 Allow 角色亦無效。 | Explicit Deny ("Effect": "Deny") |
一般使用者無法手動建立,由系統服務(如 Blueprints)建立。 |
在 Azure 中,若要給予某人存取權限,必須建立一個 Role Assignment(角色指派)。一個完整的 Role Assignment 由三個要素組合而成:
Who(安全性主體 Security Principal):
alice@titan.com)。What(角色定義 Role Definition):
Where(存取範圍 Scope):
Management Group ➔ Subscription ➔ Resource Group ➔ Resource
┌──────────────────────────────────────────────────────────────┐
│ AWS IAM Policy vs Azure RBAC 結構比較 │
├──────────────────────────────────────────────────────────────┤
│ [AWS IAM Policy] 策略綁定身分 │
│ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } │
├──────────────────────────────────────────────────────────────┤
│ [Azure RBAC] 角色、主體與範圍三者分離 │
│ Principal (誰) + Role Definition (權限) + Scope (範圍) │
└──────────────────────────────────────────────────────────────┘
AZ-900 考試中最高頻的試題之一,就是要求架構師根據給定的業務需求,選出最適切的內建角色。最常見的四大內建角色比較如下:
| 內建角色名稱 | 管理資源 (Create/Read/Update/Delete) | 管理權限 (Grant/Revoke Access) | 適用場景與最小權限考量 |
|---|---|---|---|
| Owner (所有者) | ✅ 完全控制 | ✅ 完全控制 | 訂用帳戶或資源群組的高階負責人。因為能開權限給他人,必須嚴格控管人數。 |
| Contributor (參與者/貢獻者) | ✅ 完全控制 | ❌ 無權限 | 每日開發與維運的雲端工程師。能新建 VM、刪除磁碟,但絕對無法提升自己或別人的權限。 |
| Reader (讀取者) | ❌ 僅能檢視 | ❌ 無權限 | 外部審計師、財務人員、僅需監控 Dashboard 的人員。 |
| User Access Administrator | ❌ 無權限 | ✅ 完全控制 | 資安與權限管理專員。只能幫別人加角色,不能自己建立 VM 或修改資料庫。 |
⚠️ 考題陷阱一:「新進工程師需要部署與維修 Web App,但不應該擁有改動權限設定的能力。」
👉 正解是 Contributor(參與者)。許多考生會誤選 Owner(以為做事情需要 Owner)或 User Access Administrator(以為叫 Administrator 就很萬能)。
Azure RBAC 遵循嚴格的父層向下繼承原則:
Reader,則該使用者對該 Subscription 底下的所有 Resource Group 與所有 Resource 自動擁有 Reader 權限。RG-App 被另外指派為 Contributor,則在 RG-App 內擁有 Contributor 權限,在其他 RG 仍為 Reader。在 AWS IAM 中,我們隨時可以在 Policy 中寫 "Effect": "Deny" 來蓋過 Allow。但在 Azure RBAC 中:
雖然 Azure 提供了超過 100 種涵蓋運算、儲存與網路的內建角色,但在大型企業中常有「特定工程師只能重啟 VM,但不能刪除 VM 或變更網路」的極細緻資安要求:
Actions 與 NotActions 組合成專屬角色。┌──────────────────────────────────────────────────────────────┐
│ 企業多層級存取控制邊界:AWS 組織治理 vs Azure RBAC 範圍 │
├──────────────────────────────────────────────────────────────┤
│ [AWS 組織治理模型 (cxcxc-io 圖16 觀點)] │
│ AWS Organization ➔ OU (Organizational Unit) ➔ AWS Account │
│ • 邊界控制:SCP (Service Control Policy) 限制最高權限 │
│ • 存取指派:IAM Identity Center / IAM Role 跨帳號 Assume │
├──────────────────────────────────────────────────────────────┤
│ [Azure 階層存取控制模型] │
│ Management Group ➔ Subscription ➔ Resource Group ➔ Resource │
│ • 邊界控制:Azure Policy 限制資源合規性 │
│ • 存取指派:Azure RBAC 在特定 Scope 綁定 Role 與 Principal │
└──────────────────────────────────────────────────────────────┘
💡 來源:改編自 cxcxc-io diagram_16(多帳號治理與企業級安全架構),已對照 Azure 服務調整。
在 AWS 企業級安全實務中(如 cxcxc-io 圖16 所展示的治理架構),多帳號邊界與跨帳號 AssumeRole 是核心隔離機制;而在 Azure 中,管理群組(Management Group)與訂用帳戶(Subscription)提供了天然的階層架構,RBAC 權限與 Azure Policy 沿著 Scope 自動向下繼承,使大型組織的最小權限控制能以一致的宣告式語法集中落實。
Titan 科技正在加速其混合雲專案的維運部署。DevOps 隊長提報了三個極需規範的權限管理情境:
Chief Cloud Architect 必須為這三個情境選出最符成本與資安標準的 RBAC 設定。
針對情境 A(新進工程師 Leo 的權限配置),應在目標 Resource Group 上指派哪個角色?
Owner 角色。Contributor 角色。User Access Administrator 角色。Reader 角色,搭配系統手動賦予的 Admin 權限。✅ 正解:B
Contributor 角色擁有完全管理資源(建立、修改、刪除 VM、VNet、AKS)的能力,滿足 Leo 建立維運資源的需求。Contributor 完全不具備權限管理(Microsoft.Authorization/*)的能力,無法指派角色給其他人或提升自己權限,完美符合 CSO 的要求與「最小權限原則」。Microsoft.Authorization/* 權限,Leo 將能隨意將自己或外部人員指派為 Owner,打破資安防線。Titan 科技的系統管理員希望授權給維運主管 Alice,讓她可以建立 Resource Group 並管理其中的 VM,同時 Alice 還需要能夠將小組成員納入該 Resource Group 的存取清單中。應給予 Alice 哪種內建角色?
Owner 與 User Access Administrator 具備指派權限的能力;而要同時管理 VM 資源與指派權限,只有 Owner。Contributor 可以管理 VM,但無法將成員加入存取清單(無法指派權限)。examtopics-az900-search skill 定向覆核);並經 Microsoft Learn:Azure 內建角色 交叉驗證。Titan 科技在 Azure 上有一個名為 Sub-Production 的訂用帳戶。資安主管在 Sub-Production 範圍將工程師 Bob 指派為 Reader 角色。請問 Bob 對該訂用帳戶內名為 RG-Data 的資源群組擁有什麼權限?
RG-Data 重新指派權限。Reader 權限,可檢視 RG-Data 內的所有資源。Contributor 權限。RG-Data 本身,無法檢視內部的資源。examtopics-az900-search skill 定向覆核);並經 Microsoft Learn:瞭解 Azure RBAC 的範疇 交叉驗證。Titan 的開發生態系需要讓運行在 Azure VM 上的 Python 程式自動存取 Azure Key Vault 讀取金鑰。為符合資安最佳實務,應使用何種身分並搭配 RBAC?
examtopics-az900-search skill 定向覆核);並經 Microsoft Learn:什麼是 Azure 資源的受控識別 交叉驗證。⚠️ 來源說明:本題改寫自 2020 年 gratisexam AZ-900 題庫(歷史題型改編),屬歷史題庫層,已與 Microsoft Learn 交叉驗證;題目觀念符合現行考綱。
判斷以下敘述是否正確:
「Titan 科技的 Subscription Owner 可以手動建立自訂的 Deny Assignment,以明確禁止特定團隊存取核心財務資源。」
Deny 效果,而非 RBAC Deny Assignment。⚠️ 來源說明:本題改寫自 2020 年 gratisexam AZ-900 題庫(歷史題型改編),屬歷史題庫層,已與 Microsoft Learn 交叉驗證;題目觀念符合現行考綱。
Titan 科技希望限制所有員工只能在「East US」區域建立資源。請問這項規則應該透過 Azure RBAC 還是 Azure Policy 來實施?
在 AWS 認證(CLF-C02 / SAA-C03)中,IAM 的靈魂是將 JSON 策略(Policy)附加至 User/Group/Role,或透過 Organizations SCP (Service Control Policy) 進行跨帳號限制。而在 Azure 觀念轉換時,請務必掌握以下連動邏輯:
題目: 某企業在 AWS 擁有多個 AWS Account,需要讓 Dev 帳號中的 EC2 能夠存取 Prod 帳號中的 S3 Bucket。AWS 的最佳實踐是讓 EC2 透過 AssumeRole 取得暫時性金鑰。請問在 Azure 中,若要讓訂用帳戶 A 的 VM 存取訂用帳戶 B 的 Storage Account,應如何設計?
答案:B。
Azure 知識映射:Azure RBAC 的 Scope 具備高度彈性。Managed Identity 屬於 Entra ID 租戶層級,可以被直接指派給同租戶下任何 Subscription 的任何資源,無需像 AWS 一樣編寫複雜的跨帳號 Trust Policy 信任鏈。
題目: AWS IAM 中,PowerUserAccess 策略與 AdministratorAccess 策略的主要差異在於後者包含 IAM 的管理權限。請問這與 Azure 中的哪一對內建角色完全對應?
Contributor(對應 PowerUserAccess)與 Owner(對應 AdministratorAccess)。Reader 與 Contributor。User Access Administrator 與 Owner。Custom Role 與 Built-in Role。答案:A。
雙雲考場口訣:
AWS PowerUserAccess = Azure Contributor(能管資源、不能管權限);
AWS AdministratorAccess = Azure Owner(資源與權限雙管)。
| 項目 | 內容 |
|---|---|
| 對應課程章節 | 第 2 章 ▸ Azure RBAC(p110,課程僅 1 頁,本文大幅擴充) |
| 官方考綱領域 | Describe Azure Management & Governance(占比 30–35%) |
| 課程涵蓋範圍 | 介紹 Azure RBAC 的基本觀念與主要內建角色(Owner, Contributor, Reader)。 |
| 本文補充範圍 | 1. 深度拆解 RBAC 三要素(Security Principal, Role Definition, Scope)與運作邏輯。2. 比較四內建角色(含 User Access Administrator)的 Actions/NotActions 與 Microsoft.Authorization/* 邊界。3. 講解 Scope 階層繼承性與 Deny Assignments 的系統限定機制。4. 整合 Managed Identity 自動化驗證、Azure Policy 與 RBAC 差異,以及 AWS IAM Policy/Role 與 Azure RBAC 的雙雲架構對照。 |
Role Assignment = Security Principal (誰) + Role Definition (權限) + Scope (範圍)。Microsoft.Authorization/*)。掌握了 RBAC 的權限邊界後,我們將進一步築起縱深防禦網路!明天 Titan 科技將面臨網路邊界失效後的終極考驗:進入 Day 24 Zero Trust Model & Defender for Cloud(零信任架構與資安中心),剖析「永不信任,始終驗證」的零信任三大支柱,以及如何透過 Microsoft Defender for Cloud 自動掃描並修補雲端資安漏洞!