Azure着陆区评估引擎
基于人工智能推理的确定性治理评估
Azure着陆区治理审查通常通过手动研讨会、幻灯片和清单访谈进行。 这些参与难以扩展,在架构师之间不一致,很少产生可重复的治理见解。
该项目是一个具有多阶段AI推理层的确定性Azure着陆区评估引擎。它被设计为一个现场可用的架构评估工具,而不是一个实验性的人工智能助手。该引擎使用实时平台遥测技术评估企业Azure环境,并生成可重复、可审核和可信任的确定性治理结果。AI仅用作权威平台证据之上的推理和编排层,为现实环境提供可扩展和一致的Azure着陆区治理审查。
该平台分为两层:
确定性评估引擎
使用实时Azure遥测和官方数据评估Azure着陆区姿态 Azure着陆区审查清单.评分控制、计算成熟度并生成客户就绪的交付成果——所有这些都没有人工智能。
AI推理层
消耗确定性输出并执行结构化的多步推理:
- 依赖图影响分析
- 基于结构约束的主动排序
- 因果“为什么风险”链构建
- 使用Microsoft Learn MCP进行基础修复
AI没有得分。它对得分过高的证据进行了推理。
结果是 由真实Azure遥测技术支持的可重复、证据驱动的治理评估。
此工具仅使用只读访问。 它需要Azure Reader角色(RBAC),并且不会对您的环境进行任何更改——无需写入、无需部署、无需修改配置。在生产租户中安全运行。
运行一个命令——获得评分评估、高管简报和可追溯的30-60-90转型计划。
______________________________________________________________________
发动机产生什么
| 工件 | 描述 |
|---|---|
| HTML报告 | 交互式CSA决策驱动平台准备报告,包括设计区域细分 |
| CSA工作簿 | 3页Excel工作簿(.xlsm)为客户参与做好准备 |
| 30-60-90路线图 | 具有检查表ID可追溯性的依赖排序转换计划 |
| 评估JSON | 完整的可追溯评估数据(控制、分数、AI输出、执行上下文) |
| 目标体系结构 | 参考Microsoft Learn的推荐体系结构 |
📸 演示走查
以下屏幕截图显示了使用以下命令对真实Azure测试租户执行的完整Azure着陆区评估的输出 只读访问.
______________________________________________________________________
评估执行环境
扫描程序在收集平台信号之前会发现租户范围、管理组和订阅。
这验证了访问权限,确认了范围,并确保了评估开始前的信号可用性。
______________________________________________________________________
企业准备门
确定性就绪门决定了平台基础是否为企业级着陆区的采用做好了准备。
该闸门汇总了关键控制故障和平台成熟度指标。
______________________________________________________________________
企业就绪阻止程序
结构差距阻碍了企业规模着陆区的采用。
这些阻断器直接来源于失败的控制和依赖图分析。
______________________________________________________________________
主要商业风险
通过根本原因分析和支持性控制证据对平台风险进行确定性排名。
______________________________________________________________________
转型路线图
依赖关系已排序 30-60-90项补救措施 由控制图生成。
每项举措都解决了多个失败的控制问题,并解锁了平台功能。
______________________________________________________________________
ALZ设计区域细分
在治理、网络、身份、安全和平台设计领域进行详细的成熟度评分。
______________________________________________________________________
车间决策漏斗
CSA研讨会便利化视图,连接:
平台阻断器→ 商业风险→ 补救措施
______________________________________________________________________
关键问题和行动方案
推理引擎识别最关键的平台风险,并提供与架构一致的补救指导。
______________________________________________________________________
CSA工作簿交付成果
评估自动生成客户就绪的Excel输出。
执行摘要
30-60-90转型计划
完全控制可追溯性
______________________________________________________________________
交互式报告
打开完整的交互式演示报告
由真实的Azure测试/实验室生成 Contoso租户 使用只读访问。
建筑特征
| 原理 | 实施 |
|---|---|
| 确定性优先 | 所有评分、风险等级和控制判断都是在AI执行之前根据实时Azure信号计算的 |
| 检查表已接地 | 每个补救项目都映射到一个官方的Azure审查清单ID——没有合成标识符 |
| 单向数据流 | AI消耗评分结果,但无法修改确定性输出 |
| 模式强制输出 | 所有AI响应在接受之前都会根据JSON模式进行验证 |
| 文件基础 | Microsoft Learn MCP集成通过官方实施指南丰富了输出 |
| 可追溯的交付成果 | CSA工作簿、HTML报告和Run JSON端到端保持引用完整性 |
______________________________________________________________________
端到端架构
架构原理——单向数据流 确定性评估 动态 AI推理层。在人工智能执行之前,控制判断和风险评分是最终的。
Azure Tenant / Demo
|
v
Deterministic ALZ Assessment
(Resource Graph + Policy + Defender)
|
v
Control Scoring Engine
|
|------- one-way feed ------+
| v
+---------> CSA Workbook AI Reasoning Engine
| |
| v
| MCP Grounding Layer
| (Microsoft Learn retrieval + patterns)
| |
| v
| WHY Reasoning Layer
|
+---------------------------+
|
v
Traceable Deliverables数据收集
- Azure资源图(28个批处理查询)
- 政策+合规
- 云+安全评估卫士
- 身份+RBAC(通过Microsoft Graph)
- 成本管理+顾问
- 监测+诊断
- 管理组层次结构
评估引擎
- 信号总线路由平台遥测控制评估器
- ALZ控制包评分:通过/失败/部分/手动
- 加权到期+风险模型
AI推理引擎
| 传递 | 名称 | 输出 |
|---|---|---|
| 1 | 路线图和倡议 | 30-60-90计划+倡议依赖图 |
| 2 | 高管简报 | 顶级风险+成熟度叙述 |
| 3 | 执行决定 | 每个倡议的ALZ实施模式选择 |
| 4 | 序列合理性 | 倡议订购理由+参与建议 |
| 5 | 企业规模就绪 | ALZ设计区域的准备情况评估 |
| 6 | 聪明的问题 | 针对客户的有针对性的发现问题 |
| 7 | 实施积压 | 按计划执行计划 |
| 8 | 微软学习基础 | MCP SDK检索+ALZ感知上下文化 |
| 9 | 目标体系结构 | 推荐的具有执行单元的架构 |
| 10 | 关键问题 | 顶级失败控制建议及行动方案 |
| 11 | 阻断器解决方案 | 企业就绪阻止解决方案摘要 |
为什么是风险代理(确定性推理层)
- 失败的控制->依赖关系图影响
- 根本原因->级联效应
- 解决该问题的路线图行动
- Microsoft学习修正参考
______________________________________________________________________
先决条件
| 要求 | 详细信息 |
|---|---|
| python | 3.12或更高版本 |
| Azure命令行界面 | 已安装并验证(az login) |
| Azure权限 | 目标订阅上的读者角色(最低)。管理组阅读器,实现完整的层次结构可见性。 |
| Azure OpenAI | AI功能所需。需要a gpt-4.1 部署(或任何聊天完成模型)。设置环境变量(请参见 配置). |
| Git | 用于克隆存储库 |
所需的Azure资源提供程序
该工具使用以下命令查询Azure资源图和ARM API 只读 电话。必须在目标订阅上注册以下资源提供程序,所有信号才能返回数据。默认情况下,大多数都是在使用过该服务的任何订阅上注册的,但如果信号返回空,则最常见的原因是缺少提供商注册。
| 资源提供程序 | 信号 | 是否默认注册? |
|---|---|---|
Microsoft.ResourceGraph | 所有资源图查询 | 是 |
Microsoft.Network | 防火墙、DNS、公共IP、NSG、路由表、专用端点、DDoS | 是 |
Microsoft.Storage | 存储帐户姿态 | 是 |
Microsoft.KeyVault | 密钥库姿势 | 是 |
Microsoft.Sql | SQL Server姿态 | 仅当使用SQL时 |
Microsoft.Web | 应用服务姿态 | 仅当使用应用服务时 |
Microsoft.ContainerRegistry | 容器注册表姿态 | 仅当使用ACR时 |
Microsoft.ContainerService | AKS集群姿态 | 仅当使用AKS时 |
Microsoft.RecoveryServices | VM备份覆盖率 | 仅当配置了备份时 |
Microsoft.Compute | VM清单(用于备份覆盖) | 是 |
Microsoft.Security | Defender计划,安全评分 | 是 |
Microsoft.Authorization | RBAC卫生、资源锁、策略分配 | 是(内置) |
Microsoft.PolicyInsights | 策略合规性摘要 | 是 |
Microsoft.Management | 管理组层次结构 | 是 |
Microsoft.Insights | 诊断覆盖范围 | 是 |
要查看注册状态:
az provider show -n Microsoft.RecoveryServices --query "registrationState" -o tsv要注册缺少的提供程序(需要参与者或所有者):
az provider register -n Microsoft.RecoveryServices注: 如果订阅中不存在资源类型(例如,没有AKS集群),评估器将返回 不适用 --不是错误。缺少提供商注册只在您 *有* 这些资源,但信号返回为空。
______________________________________________________________________
快速开始
1.克隆存储库
git clone https://github.com/rebmid/Reasoning-Agent-Azure-Landing-Zone-Assessment-Advisor.git
cd Reasoning-Agent-Azure-Landing-Zone-Assessment-Advisor2.创建虚拟环境
Windows(PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1macOS/Linux:
python3 -m venv .venv
source .venv/bin/activate3.安装依赖项
pip install -r requirements.txt4.配置环境变量
创建一个 .env 项目根目录中的文件(此文件被git忽略):
AZURE_OPENAI_ENDPOINT=https://.openai.azure.com/
AZURE_OPENAI_KEY=该工具需要一个 gpt-4.1 Azure OpenAI资源上的部署(或任何聊天完成模型)。
没有这些凭据,评估仍在运行——所有确定性评分、控制评估和数据收集工作正常。但是,将跳过11遍AI推理管道,这意味着这些报告部分将为空: - 30-60-90转型路线图 - 高管简报和主要商业风险 - 企业级准备和阻断 - 关键问题和行动方案 - 研讨会决策漏斗智能问题 - Microsoft Learn MCP接地 使用--no-ai明确跳过AI,或省略.env文件自动跳过。
5.使用Azure进行身份验证
az login如果您有多个租户,请选择正确的租户:
az login --tenant 6.运行评估
python scan.py # scans the default subscription
python scan.py --demo # demo mode -- no Azure connection required
python scan.py --mg-scope # scope to a management group (recommended for CSA)
python scan.py --tenant-wide # all visible subscriptions (large tenants: use --mg-scope instead)请参阅 CLI参考 适用于所有可用模式和标志。
该工具将:
- 发现您的Azure执行上下文(租户、订阅、身份)
- 从GitHub获取最新的ALZ检查表(~255个控件)
- 针对您的环境运行所有评估器
- 使用加权域评分对每个控件进行评分
- 运行11遍AI推理流水线(需要
.env--参见步骤4) - 通过MCP获取Microsoft Learn文档中的基本建议
- 将所有工件输出到
out/目录
______________________________________________________________________
配置
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
AZURE_OPENAI_ENDPOINT | 对于AI功能 | 您的Azure OpenAI资源端点URL |
AZURE_OPENAI_KEY | 对于AI功能 | Azure OpenAI资源的API密钥 |
所有变量都可以在 .env 项目根目录中的文件(通过自动加载 python-dotenv)或者作为系统环境变量。
Azure OpenAI模型
该工具默认为 gpt-4.1 部署名称。要使用其他模型,请修改 AOAIClient 初始化中 ai/engine/aoai_client.py.
API版本
违约: 2024-02-15-preview.可配置 AOAIClient.__init__().
______________________________________________________________________
输出工件
所有输出都写入 out/ 目录:
| 文件 | 描述 |
|---|---|
run-YYYYMMDD-HHMM.json | 完整的评估数据——控制、分数、人工智能输出、增量、执行上下文 |
report.html | 交互式执行HTML报告,包含设计领域细分和差距分析 |
run-YYYYMMDD-HHMM_CSA_Workbook.xlsm | 3页CSA可交付成果工作簿(见 CSA工作簿深度学习) |
target_architecture.json | 目标架构推荐,包括组件推荐和学习参考 |
preflight.json | *(仅限飞行前模式)* 访问探测结果 |
另外, assessment.json 作为便利副本写入项目根目录。
______________________________________________________________________
运作原理
1.数据收集
这 收藏家 模块通过资源图、Defender、策略、标识、成本管理、监控和管理组端点查询Azure API:
- 资源图 --ViewModel、防火墙、公共IP、NSG、路由表、存储帐户、密钥库、私有端点、诊断设置、Contoso对等、网关、Bastion、WAF/Front Door、私有DNS区域、磁盘加密、标签、自定义角色、策略豁免
- 防御者 --安全计划、安全评分、安全评估
- 政策 --政策定义、分配、合规状态、豁免
- 身份 --RBAC卫生、PIM使用和成熟度、破玻璃账户、条件访问、Entra ID日志、服务主体风险
- 成本管理 --预算、成本警报、预测准确性、闲置资源
- 监控 --工作空间拓扑、警报操作映射、操作组、可用性信号、更改跟踪、更新管理器
- 顾问 --跨支柱建议(安全性、成本、可靠性、性能)
- 管理组 --完整层次树
所有查询都使用 AzureCliCredential --与您通过验证的身份相同 az login.
2.评估与评分
这 信号总线 架构通过注册评估人员对收集的数据进行路由:
- ALZ检查表从GitHub实时获取(8个设计领域约255个控件)
- 每个控件都与一个评估器(59个自动)匹配或标记
Manual如果不存在自动检查 - 评估人员发出
Pass,Fail,Partial,或Info有证据的判决 - 这 评分引擎 应用域权重和严重性乘数来生成综合风险评分
- 自动化覆盖范围 经过计算——59个控件有自动评估器(约23%),其余控件需要与客户对话
3.人工智能推理引擎
AI层是一个 消费者 确定性评分输出——它通过以下方式接收评分控制、风险等级和证据 build_advisor_payload() 并制作咨询内容。它从不修改或反馈确定性的判断。
当AI启用时 11道推理流水线 针对Azure OpenAI运行:
| 传递 | 提示 | 输出 | max_tokens |
|---|---|---|---|
| 1 | roadmap.txt | 30-60-90转型路线图+命名计划 | 8000 |
| 2 | exec.txt | 包含业务风险叙述的高管简报 | 8000 |
| 3 | implementation_decision.txt | 每个倡议的ALZ实施模式选择 | 8000 |
| 4 | sequence_justification.txt | 倡议订购理由+参与建议 | 8000 |
| 5 | readiness.txt | 企业级着陆区技术准备 | 8000 |
| 6 | smart_questions.txt | 每个域的客户发现问题 | 8000 |
| 7 | implementation.txt x N | 实施积压(每个计划一个项目) | 4000 |
| 8 | *(MCP接地)* | 学习文档参考、代码示例、整页内容丰富 | -- |
| 9 | target_architecture.txt | 目标架构+ grounding.txt 浓缩 | 8000 |
| 10 | critical_issues.txt | 顶级失败控制咨询及行动方案 | 8000 |
| 11 | blocker_resolution.txt | 企业就绪阻止解决方案摘要 | 8000 |
这 AOAIClient 包括内置弹性:
- JSON围栏剥离 --从模型输出中删除markdown代码围栏
- 截断修复 --当输出被切断时,关闭悬挂的括号和字符串
- 重试循环 --对无效JSON响应最多重试2次
4.通过Microsoft Learn MCP接地
该工具使用 官方MCP Python SDK (可流式HTTP传输)连接到Microsoft文档API:
| MCP工具 | 目的 |
|---|---|
microsoft_docs_search | 为每个计划检索精心策划的500个令牌内容块 |
microsoft_code_sample_search | 获取二头肌/地形代码示例以获取基础设施建议 |
microsoft_docs_fetch | 下载完整的文档页面作为标记,以深入了解 |
如果无法访问MCP 后备方案 使用公共学习搜索REST API提供标题+URL+描述。
接地线路用于:
- 转型路线图中的每一项举措
- 每个已识别的差距
- 目标架构
5.报告生成
HTML报告 (report.html):
- Foundation Gate——具有通过/失败阻断器的企业级就绪
- 顶级商业风险——通过根本原因分析进行确定性排名
- 30-60-90转型路线图及成熟度轨迹
- 设计区域细分——按8个官方ALZ设计区域(A-H)分组的控制
- 研讨会决策漏斗——每个领域的拦截器、风险和智能问题
- 关键问题和行动方案
CSA工作簿 (CSA_Workbook_v1.xlsm):
- 看 CSA工作簿深度学习 在......下面
______________________________________________________________________
CSA工作簿深度学习
该工作簿作为HTML报告的补充 面向客户的交付成果 --准备用于CSA业务的3页Excel文件:
第0页: 0_Executive_Summary
| 第节 | 内容 |
|---|---|
| CSA参与框架 | 参与目标、关键信息、客户成果 |
| 评估指标 | 总控制、自动百分比、通过/失败/部分计数、风险评分 |
| 主要商业风险 | 人工智能确定了风险的严重程度、受影响的领域和建议的缓解措施 |
表1: 1_30-60-90_Roadmap
分阶段转型计划,其中每个行动项包括:
- 阶段 (30/60/90天)
- 行动 和 检查表ID (标准ALZ检查表ID,例如。
A01.01) - CAF纪律 对齐
- 所有者 和 成功标准
- 依赖项
- 相关控制 --映射自
checklist_id从项目控制到检查表ID - 相关风险 --反向映射通过
top_business_risks[].affected_controls
第2页: 2_Control_Details
平板中的所有~255个控件:
| 列 | 说明 |
|---|---|
| A:ID | ALZ检查表ID(例如。 D07.01) |
| B:设计区 | ALZ官方设计区名称 |
| C:分区 | ALZ分区 |
| D:WAF支柱 | 架构良好的框架对齐 |
| E:服务 | Azure服务 |
| F:检查表项目 | 原始检查表文本 |
| G:严重性 | 高/中/低/信息 |
| H:状态 | 已完成/打开/未验证/N/A |
| I:评论 | 评估员的证据说明 |
| J-L | AMMP,学习链接,培训链接 |
| M-O | 覆盖范围:合规百分比、受子公司影响、范围级别 |
______________________________________________________________________
为什么要进行风险推理(--why)
经过全面评估后,深入了解 为什么 特定域被标记为最高风险:
python scan.py --why Networking --demo这运行a 6步因果推理流程 根据现有的评估数据:
| Step | 它的作用 |
|---|---|
| 1. 发现风险 | 将域与执行摘要中的顶级业务风险相匹配 |
| 2. 控制失败 | 提取与风险相关的每个失败/部分控制 |
| 3. 依赖性影响 | 查询知识图中因故障而受阻的下游控制 |
| 4. 路线图倡议 | 查找解决受影响控制的转换计划操作 |
| 5. 学习接地 | 通过MCP为每个计划附上Microsoft Learn参考 |
| 6. AI因果解释 | 将收集到的证据发送到推理模型进行根本原因分析 |
AI输出包括:
- 根本原因 --为什么域名是最高风险
- 业务影响 --与证据相关的具体后果
- 修复序列 --基于依赖关系原理和学习URL的有序补救步骤
- 级联效应 --哪些下游控制将自动改进
输出保存到 out/why-{domain}.json.使用 --no-ai 在没有人工智能叙述的情况下获得原始证据有效载荷。
______________________________________________________________________
飞行前模式
在运行完整评估之前,请验证您的Azure权限:
python scan.py --preflight飞行前探头检查:
- 订阅可见性
- 资源图查询访问
- 管理组读取权限
- 路虎卫士API访问
- 策略读取权限
结果保存到 out/preflight.json 并打印到带有通过/失败指示器的控制台上。
______________________________________________________________________
评分模型
域权重
| 域 | 权重 | 基本原理 |
|---|---|---|
| 安全性 | 1.5倍 | 对违规风险的影响最大 |
| 网络 | 1.4x | 网络细分是基础 |
| 身份 | 1.4x | 身份是新的边界 |
| 治理 | 1.3x | 政策执行和合规性 |
| 数据保护 | 1.3x | 法规一致性 |
| 弹性 | 1.2倍 | 业务连续性 |
| 管理 | 1.1x | 运营可见性 |
| 成本 | 1.0倍 | 财务治理 |
严重性权重
| 严重性 | 分数 |
|---|---|
| 高 | 5 |
| 中等 | 3 |
| 低 | 1 |
| 信息 | 0 |
状态乘数
| 状态 | 乘数 | 含义 |
|---|---|---|
| 失败 | 1.0x | 已应用全部风险权重 |
| 部分 | 0.6x | 重量减轻——一些缓解措施到位 |
| 传递 | 0x | 无风险贡献 |
| 手册 | 0x | 未评分--需要客户讨论 |
综合风险评分 =所有控件的(严重性_重量x状态_乘数x域_重量)之和
______________________________________________________________________
ALZ设计区域测绘
| 信函 | 设计领域 | 目标 |
|---|---|---|
| A. | Azure计费和Microsoft Entra ID租户 | 正确的租户创建、注册和计费设置是重要的早期步骤。 |
| B | 身份和访问管理是公共云中的主要安全边界。 | |
| C | 资源组织 | 订阅设计和管理组层次结构会影响治理、运营和采用模式。 |
| D | 网络拓扑和连接性 | 网络和连接性决策是任何云架构中同样重要的基础方面。 |
| E | 治理 | 自动化治理策略的审计和执行。 |
| F | 管理 | 需要一个管理基线来提供可见性、操作合规性以及保护和恢复能力。 |
| G | 安全性 | 实施控制和流程以保护您的云环境。 |
| H | 平台自动化和DevOps | 对齐最佳工具和模板来部署您的着陆区和支持资源。 |
这些ID与 checklist_ids 在ALZ控制包和CSA工作簿中的ID列中。
______________________________________________________________________
故障排除
| 问题 | 解决方案 |
|---|---|
AZURE_OPENAI_KEY / AZURE_OPENAI_ENDPOINT not set | 创建一个 .env 使用您的Azure OpenAI凭据文件,或使用 --no-ai |
No subscriptions found | 确保 az login 成功,并且您的身份至少有一个订阅上有Reader |
Management group hierarchy not visible | 您的身份需要管理组阅读器——该工具仍然有效,但MG相关的控制将 Manual |
Unterminated string /JSON解析错误 | 该工具会自动修复截断的JSON。如果问题持续存在,请检查您的Azure OpenAI配额和模型部署 |
MCP connection failed | 该工具自动返回到公共学习搜索API。无需采取任何行动。 |
ModuleNotFoundError | 确保您的虚拟环境已激活 pip install -r requirements.txt 已成功完成 |
az: command not found | 安装 Azure命令行界面 |
| 执行缓慢 | 大型租户需要更长的时间。使用 --mg-scope 限制范围而不是 --tenant-wide.AI通行证增加~60-90s。对于50多个订阅,预计在没有人工智能的情况下需要3-5分钟 |
______________________________________________________________________
借助AI辅助构建
该项目是使用GitHub Copilot作为AI对程序员开发的,用于代码生成、重构和测试脚手架。
所有架构、控制逻辑、Azure集成和推理工作流均由作者Rebekah Midkiff设计和实现。
