安全智能巡检
更新时间 2026-07-02 16:58:32
最近更新时间: 2026-07-02 16:58:32
本场景为智能体中调用天翼云CLI,实现自动发现网络和访问控制中的高风险配置,重点检查安全组规则、EIP 暴露、SNAT/DNAT 规则、ELB 监听器和子网访问边界。
适用对象
安全合规巡检。
公网暴露面排查。
生产环境上线前检查。
定期网络安全治理。
巡检项
安全组是否开放 0.0.0.0/0 的 SSH、RDP、数据库端口
安全组是否存在过宽端口范围
安全组是否存在无用或重复规则
EIP 是否直接绑定关键 ECS
SNAT 是否覆盖过大网段
DNAT 是否把高危端口暴露公网
ELB 是否对公网开放敏感端口
子网 ACL 是否过宽
智能体自动化流程
1. 分页查询安全组和规则
2. 查询 EIP 及绑定关系
3. 查询 NAT 网关、SNAT、DNAT 规则
4. 查询 ELB 监听器和后端服务
5. 关联 ECS、VPC、子网和公网入口
6. 按风险规则生成风险清单
7. 给出最小权限修复建议
8. 用户确认后执行修复
9. 修复后再次查询验证
智能体执行CLI细节
以华南2为例:
❯ 帮我巡检下华南2,发现网络和访问控制中的高风险配置,重点检查安全组规则、EIP 暴露、SNAT/DNAT 规则、ELB 监听器和子网访问边界。
Thought for 4s (ctrl+o to expand)
⏺ Bash(echo "=== 1/5 安全组规则 ===" && ctyun-cli vpc QueryVpcSecurityGroupsNew --regionID "200000002530" --pageNo 1 --pageSize 50 2>&1 | python3 -c "
import json,sys…)
⎿ === 1/5 安全组规则 ===
Traceback (most recent call last):
File "<string>", line 8, in <module>
… +12 lines (ctrl+o to expand)
⏺ Bash(echo "=== 3/5 NAT + SNAT/DNAT ===" && ctyun-cli nat DescribeInternetnatGateways --regionID "200000002530" 2>&1 | python3 -c "
import json,sys…)
⎿ === 3/5 NAT + SNAT/DNAT ===
NAT网关总数: 2
nat-cn2 | natgw-3kdkicwibv | spec=None | vpc=vpc-4s7wjfnuyo | desc=''
… +14 lines (ctrl+o to expand)
⎿ (timeout 1m)
⏺ Bash(echo "=== 4/5 ELB 监听器 ===" && ctyun-cli elb ListLoadbalancers --regionID "200000002530" 2>&1 | python3 -c "
import json,sys…)
⎿ Error: Exit code 1
(eval):24: unmatched "
⏺ Bash(echo "=== 5/5 子网访问边界 ===" && echo "--- ACL ---" && ctyun-cli vpc ListAclNew --regionID "200000002530" --pageNo 1 --pageSize 200 2>&1 | python3 -c "
import json,…)
⎿ === 5/5 子网访问边界 ===
--- ACL ---
Traceback (most recent call last):
… +35 lines (ctrl+o to expand)
Thought for 5s (ctrl+o to expand)
⏺ Bash(echo "=== 安全组高危规则 ==="
ctyun-cli vpc QueryVpcSecurityGroupsNew --regionID "200000002530" --pageNo 1 --pageSize 50 2>&1 | python3 -c "…)
⎿ === 安全组高危规则 ===
总SG数: 17
[Default-Security-Group] sg-ffwqrn428b vpc=web-01-vpc vmNum=0
… +49 lines (ctrl+o to expand)
⏺ Bash(echo "=== SNAT 规则 ==="
for natgw in natgw-3kdkicwibv natgw-hlslgtaye5; do…)
⎿ === SNAT 规则 ===
--- natgw-3kdkicwibv ---
SNAT规则数: 0
… +2 lines (ctrl+o to expand)
⏺ Bash(echo "=== ELB 监听器 ==="
for elb in lb-ftgjxzh146 lb-s4pwzmjvhf lb-yvf4o0dcgz lb-0id7hpshei lb-qk759ms5hz; do…)
⎿ === ELB 监听器 ===
--- lb-ftgjxzh146 ---
k8s-arangodb-producti-f698a7191b | TCP : 8529 | ACL=Close ❌
… +11 lines (ctrl+o to expand)
Thought for 9s (ctrl+o to expand)
⏺ Bash(echo "=== SNAT规则原始响应 ==="
ctyun-cli nat ListInternetnatSnats --regionID "200000002530" --natGatewayID "natgw-3kdkicwibv" 2>&1 | head -60…)
⎿ === SNAT规则原始响应 ===
{
"description": "成功",
… +63 lines (ctrl+o to expand)
⏺ Bash(echo "=== ACL列表 ==="
ctyun-cli vpc ListAclNew --regionID "200000002530" --pageNo 1 --pageSize 200 2>&1 | python3 -c "…)
⎿ === ACL列表 ===
ACL总数: 0
… +7 lines (ctrl+o to expand)
⎿ (timeout 30s)
Thought for 6s (ctrl+o to expand)
⏺ Bash(echo "=== nat-internet SNAT规则 ==="
ctyun-cli nat ListInternetnatSnats --regionID "200000002530" --natGatewayID "natgw-hlslgtaye5" 2>&1 | python3 -c "…)
⎿ === nat-internet SNAT规则 ===
SNAT规则数: 3
ngwsr-fuqz74t6mo | subnet=subnet-lfasf93b7p | cidr=172.30.128.0/20 | eip=14.22.89.70
… +2 lines (ctrl+o to expand)
Thought for 7s (ctrl+o to expand)