charlychien/azure-rbac-overview
GitHub: charlychien/azure-rbac-overview
以只读账户离线收集并以可视化网页界面总览 Azure 多订阅 RBAC 角色分配的开源工具。
Stars: 0 | Forks: 0
# Azure RBAC 概览工具 · Azure RBAC 权限总览工具
## 英语
使用 Azure 只读账户枚举每个订阅、资源组和角色分配,然后在**离线**的 Web UI 中审查整个权限全貌。可按订阅 / 资源组切换和过滤,并查看每个分配是 **直接** 还是 **继承**。
### 两种使用方式
#### 方式 A:一键启动器(推荐 —— 全程按钮,无需命令行)
最适合不使用 CLI 的用户。双击一个文件,浏览器就会打开一个由按钮驱动的 UI。
1. 双击 **`Start-RbacTool.cmd`**(会自动打开浏览器页面)。
2. 点击 **“登录”** → 会打开 Microsoft 官方登录窗口(支持 MFA);完成登录。
3. 点击 **“收集”** → 自动读取订阅和 RBAC 分配。
4. 概览、图表和层次结构视图将显示在下方;可进行过滤并导出为 CSV。
5. 完成后,点击页面上的 **“退出”** 或关闭黑色的控制台窗口以停止服务。
#### 方式 B:手动脚本 + 离线查看器(进阶 / 离线分享)
首先生成一个 JSON 文件,然后使用单文件 HTML 打开它 —— 非常适合在单独的离线环境中审查结果。
| 文件 | 说明 |
|------|-------------|
| `Collect-AzureRbac.ps1` | 收集脚本;登录并将数据导出为 JSON |
| `rbac-viewer.html` | 离线查看器(单文件,加载 JSON) |
| `sample-data.json` | 用于先预览 UI 的示例数据 |
1. `az login`(只读账户)
2. `.\Collect-AzureRbac.ps1`(可选 `-Subscription`, `-OutFile`)→ 生成 `azure-rbac-data.json`
3. 在浏览器中打开 `rbac-viewer.html` 并加载该 JSON。
### 前置条件
- Windows PowerShell 5.1 或 PowerShell 7+
- [Azure CLI](https://aka.ms/installazurecli)
- 一个只读账户(推荐使用 **Reader**)
### UI 功能
- **中文 / 英文切换**:右上角的语言按钮(中 ⇄ EN);会记住您的选择 (localStorage)。
- **浅色 / 深色主题**:右上角的主题按钮;会记住您的选择并跟随系统偏好。
- **五种视图模式**(在过滤栏下方切换):
- **仪表板** — KPI 卡片 + 四个图表(角色分布、Principal 类型占比、Top 指派对象、各订阅的指派数)。
- **层次结构** — 可展开的 订阅 › 资源组 › 资源 树,标记为 **直接** 或 **继承**。
- **表格** — 可排序的列,支持 **导出 CSV**。
- **按 Principal** — 按每个账户 / service principal / group 分组的角色。
- **按角色** — 按每个角色分组的指派对象。
- **点击图表查看详情**:点击任意图表会打开一个完整的排名列表,支持切换
**Top 10 / Top 20 / 前 20% / 全部**;百分比和条形图始终以总数为基准。
- **过滤栏**:订阅、资源组(联动)、角色、Principal 类型和关键字搜索
(全局应用于所有模式)。
### 数据范围(轻量化)
仅包含与 RBAC 相关的级别:所有订阅及其资源组、订阅和资源组范围的角色分配,以及具有**直接**角色分配的资源。资源的“继承”权限由查看器根据 scope 前缀计算得出。
### 备注
- 如果 service principal / group 缺少目录读取权限,指派对象可能会显示为对象 ID (GUID) 而不是名称 —— 这是预期行为。
- **不**使用直接的用户名/密码登录 (ROPC):它会被 MFA / Conditional Access 阻止,并且存在安全风险。本工具始终使用 Microsoft 官方登录窗口。
### 隐私
所有处理均在本地完成;不会上传任何数据到服务器。
请妥善保管生成的 `azure-rbac-data.json`(其中包含权限配置详情)。
## 繁體中文
以 Azure 唯讀帳號撈出所有訂閱、資源群組與角色指派,並用一個**離線**的網頁介面
總覽權限分配情況,可依訂閱、資源群組切換與篩選,並顯示每筆指派是「直接」或「繼承」。
### 兩種使用方式
#### 方式 A:一鍵啟動器(推薦,全程按鈕、不碰 cmd)
適合不熟悉命令列的人。雙擊一個檔案,瀏覽器就會開啟按鈕介面。
1. 雙擊 **`Start-RbacTool.cmd`**(會自動開啟瀏覽器頁面)。
2. 在頁面上按 **「登入」** → 跳出微軟官方登入視窗(支援 MFA),完成登入。
3. 按 **「撈取」** → 自動讀取訂閱與 RBAC 指派。
4. 下方即顯示總覽、圖表、階層檢視,可篩選與匯出 CSV。
5. 用完按頁面上的 **「結束工具」** 或關閉那個黑色視窗即停止服務。
#### 方式 B:手動腳本 + 離線檢視器(進階/離線分享)
先產生 JSON,再用單檔 HTML 開啟;適合把結果檔案帶到別的離線環境檢視。
| 檔案 | 說明 |
|------|------|
| `Collect-AzureRbac.ps1` | 收集腳本,登入後撈資料輸出 JSON |
| `rbac-viewer.html` | 離線檢視器(單檔,載入 JSON) |
| `sample-data.json` | 範例資料,可先載入體驗介面 |
1. `az login`(唯讀帳號)
2. `.\Collect-AzureRbac.ps1`(可加 `-Subscription`、`-OutFile`)→ 產生 `azure-rbac-data.json`
3. 用瀏覽器開 `rbac-viewer.html`,載入該 JSON。
### 前置需求
- Windows PowerShell 5.1 或 PowerShell 7+
- [Azure CLI](https://aka.ms/installazurecli)
- 一組唯讀帳號(建議 **Reader**)
### 介面功能
- **中/英切換**:右上角語言按鈕(中 ⇄ EN),會記住選擇(localStorage)。
- **淺色/深色主題**:右上角主題按鈕,會記住選擇並跟隨系統偏好。
- **五種檢視模式**(篩選列下方切換):
- **總覽儀表板** — KPI 卡片 + 四張圖表(角色分布、Principal 類型占比、Top 指派對象、各訂閱指派數)。
- **階層檢視** — 訂閱 › 資源群組 › 資源 樹狀展開,標示 **直接** 或 **繼承**。
- **明細表** — 可點欄位排序,並可**匯出 CSV**。
- **依對象** — 以每個帳號/服務主體/群組彙整其擁有的角色。
- **依角色** — 以每個角色彙整被指派的對象。
- **圖表點擊查看細節**:點任一圖表會彈出完整排名清單,可切換 **Top 10 / Top 20 / 前 20% / 全部**;
百分比與長條比例皆以全體為基準。
- **篩選列**:訂閱、資源群組(連動)、角色、Principal 類型、關鍵字搜尋(全域套用於所有模式)。
### 資料範圍(輕量化)
只納入與 RBAC 相關的層級:所有訂閱與其資源群組、訂閱層與資源群組層的角色指派、
以及**有直接角色指派**的資源。資源的「繼承」權限由檢視器依 scope 前綴自動計算。
### 備註
- 服務主體 / 群組若無目錄讀取權限,指派對象可能顯示物件 ID (GUID) 而非名稱,屬正常現象。
- 帳密直接登入 (ROPC) 因會被 MFA / 條件式存取封鎖且有資安風險,本工具不採用;
一律走微軟官方登入視窗。
### 隱私
所有處理都在本機完成,資料不會上傳到任何伺服器。
建議妥善保管產生的 `azure-rbac-data.json`(內含權限配置資訊)。
标签:AI合规, Azure, IPv6, Mutation, PowerShell, RBAC, 可视化, 后端开发, 多模态安全, 数据可视化, 权限管理, 模型越狱, 运维工具