Infrastructure — 03-13 Azure NSG安全加固¶
事件背景¶
收到 ICM 安全事件工单:liwei_mcservice 下多台 VM 的端口直接暴露在公网上,违反 CnAI 安全策略。这是一个高风险端口暴露事件,需要限期修复。
Bot 关键判断:不建议"跳过"安全检查,否则 ICM 不处理会升级,7 天后可能重复生成工单。
Azure CLI 环境准备¶
本地未安装 az CLI,Dad 要求安装。
- [10:57]
azCLI 安装完成,版本v2.84.0 - [10:57] 切换到 AzureChinaCloud
- [11:06] 使用 device code 完成 Azure 登录
NSG 规则修复¶
Dad 的决策¶
对相关机器添加 18822 入站规则,源 IP 仅允许当前服务器出口 IP:4.194.153.244。
关键发现¶
检查 8 个 NSG 时发现:很多规则把 18822 与其他端口(如 80/443)混在同一条规则中。
Bot 决策:不能简单新增规则,需要拆分混合端口规则,避免影响其他端口策略,满足最小暴露原则。
修复方案¶
- 遍历 NIC 关联的 NSG
- 检查现有入站规则
- 拆分包含
18822的混合规则 - 将
18822来源限制为单一公网 IP
[11:09] 全部 8 个 NSG 修改完成 ✅
端口 389 合规验证¶
Dad 要求检查 389 (LDAP) 端口是否已修复。
[11:11] 经检查确认:389 端口没有在任何入站规则中开放,无需进一步修复。
优先级迁移¶
踩坑:NSG 规则优先级不可原地修改¶
ICM 要求:NSG 规则不要用 100-119 优先级。
- 问题:Azure NSG rule priority 不支持原地修改
- Dad 决策:按 ICM 要求调整,避开
100-119 - 解决方案:删除原规则,以新优先级
200重建
[11:19] 全部 4 条规则优先级迁移完成 ✅
ICM 关闭¶
Dad 的合规审查¶
要求逐条对照 ICM 原文确认修复动作是否一致,而不是仅凭经验判断。
生成的修复说明¶
We mitigated the incident by updating the affected Azure NSG
inbound rules and restricting port 18822 access to the authorized
source IP only.
We also verified that port 389 is not exposed and recreated the
relevant NSG rules to move priorities out of the 100-119 range
in accordance with the security guidance.
修复总结¶
关键参数¶
| 项目 | 值 |
|---|---|
| Cloud 环境 | AzureChinaCloud |
| 授权源 IP | 4.194.153.244 |
| 管理端口 | 18822 |
| 验证端口 | 389(已确认未开放) |
| 优先级迁移 | 100-119 → 200 |
| 受影响 NSG 数 | 8 |
| 优先级调整规则数 | 4 |
关键经验¶
- 混合端口规则要拆分:不能为了省事把管理端口和服务端口混在一条规则里
- 优先级不可原地改:Azure NSG 需要 delete + recreate
- 修完要对照原文复核:不要仅凭经验判断合规,逐条对照 ICM 要求
- 不要绕过安全检查:ICM 工单不处理会自动升级