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, 可视化, 后端开发, 多模态安全, 数据可视化, 权限管理, 模型越狱, 运维工具