kimvaddi/azure-network-security-visualizer

GitHub: kimvaddi/azure-network-security-visualizer

VS Code 扩展,可视化 Azure 网络拓扑并基于 Microsoft Security Benchmark 检测 14 类安全配置错误,支持离线分析 Bicep/ARM 模板和实时扫描 Azure 订阅。

Stars: 0 | Forks: 0

# Azure Network Security Visualizer [![VS Code Marketplace](https://img.shields.io/visual-studio-marketplace/v/KimVaddi.azure-network-security-visualizer)](https://marketplace.visualstudio.com/items?itemName=KimVaddi.azure-network-security-visualizer) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) **在 Azure 网络配置错误演变成安全事件之前将其捕获。** ## 目录 - [这是什么?](#what-is-this) - [适用人群](#who-is-this-for) - [快速入门指南](#quick-start-guide) - [步骤 1:安装扩展](#step-1-install-the-extension) - [步骤 2:打开或创建 Bicep 文件](#step-2-open-or-create-a-bicep-file) - [步骤 3:可视化您的网络](#step-3-visualize-your-network) - [步骤 4:审查安全发现](#step-4-review-security-findings) - [步骤 5:修复问题并重新分析](#step-5-fix-issues-and-re-analyze) - [步骤 6:导出安全报告](#step-6-export-a-security-report) - [步骤 7:可视化实时 Azure 拓扑](#step-7-visualize-live-azure-topology-optional--requires-azure-account) - [功能特性](#features) - [安全规则参考](#security-rules-reference) - [命令](#commands) - [配置](#configuration) - [支持的 Azure 资源](#supported-azure-resources) - [Azure 新手?从这里开始](#new-to-azure-start-here) - [Microsoft Learn 参考资料](#microsoft-learn-references) - [贡献指南](#contributing) ## 这是什么? 当您编写 Azure 基础设施代码(称为 **Bicep** 或 **ARM 模板**)时,您需要定义防火墙、安全规则和虚拟网络等网络资源。但仅通过阅读代码几乎无法发现安全错误。 此扩展**读取您的基础设施代码**并: 1. 🌐 **绘制可视化图**,展示您的整个网络 —— VNet、子网、NSG、防火墙、私有端点 2. 🛡️ **标记安全问题** —— 开放端口、缺失防火墙、权限过宽的规则 3. 📊 **生成报告** —— HTML、Markdown 或 JSON 格式,便于与团队分享 4. ☁️ **连接到实时 Azure** —— 使用 Entra ID 登录,跨订阅扫描,并可视化您已部署的网络拓扑 **两种模式:** - **离线模式** —— 在本地分析 Bicep/ARM 文件。无需 Azure 账户。 - **实时模式** —— 通过 Entra ID 登录,选择订阅,并可视化您实际部署的网络。 ## 适用人群 | 角色 | 如何受益 | |------|-----------------| | **云工程师** | 在执行 `az deployment` 之前发现 NSG 配置错误 | | **安全团队** | 审计 Bicep/ARM 模板的合规性 | | **DevOps / 平台团队** | 将安全检查添加到您的 PR 审查流程中 | | **学生 / 初学者** | 可视化学习 Azure 网络 —— 查看 VNet、子网和 NSG 如何连接 | ## 快速入门指南 ### 步骤 1:安装扩展 **选项 A —— 从 VS Code 安装(推荐)** 1. 打开 **VS Code** 2. 点击左侧边栏的 **Extensions(扩展)** 图标(或按 `Ctrl+Shift+X`) 3. 搜索 **"Azure Network Security Visualizer"** 4. 点击 **Install(安装)** ``` ┌──────────────────────────────────────────────────┐ │ Extensions: Marketplace 🔍 │ │ ┌──────────────────────────────────────────┐ │ │ │ Azure Network Security Visualizer │ │ │ │ KimVaddi │ │ │ │ ★★★★★ [Install] │ │ │ └──────────────────────────────────────────┘ │ └──────────────────────────────────────────────────┘ ``` **选项 B —— 从命令行安装** ``` code --install-extension KimVaddi.azure-network-security-visualizer ``` 安装完成后,您会在 VS Code 状态栏中看到一个 **🛡️ 盾牌图标** —— 表示扩展已准备就绪。 ### 步骤 2:打开或创建 Bicep 文件 如果您已经有 Bicep (`.bicep`) 或 ARM 模板 (`.json`) 文件,请在 VS Code 中打开该文件夹。 **还没有 Bicep 文件?** 创建一个来试用: 1. 打开 VS Code → **File(文件)** → **Open Folder(打开文件夹)** → 创建或选择一个空文件夹 2. 创建一个名为 `main.bicep` 的新文件 3. 粘贴此示例(其中包含供扩展检测的故意设置的安全问题): ``` // main.bicep — Sample Azure network with security issues // Try it: Ctrl+Shift+P → "Azure NetSec: Visualize Network Topology" resource myVnet 'Microsoft.Network/virtualNetworks@2023-09-01' = { name: 'vnet-myapp-eastus' location: 'eastus' properties: { addressSpace: { addressPrefixes: [ '10.0.0.0/16' ] } subnets: [ { name: 'snet-web' properties: { addressPrefix: '10.0.1.0/24' networkSecurityGroup: { id: webNsg.id } } } { name: 'snet-app' properties: { addressPrefix: '10.0.2.0/24' // ⚠️ No NSG attached — the extension will flag this! } } ] } } resource webNsg 'Microsoft.Network/networkSecurityGroups@2023-09-01' = { name: 'nsg-web' location: 'eastus' properties: { securityRules: [ { name: 'AllowHTTPS' properties: { priority: 100 direction: 'Inbound' access: 'Allow' protocol: 'Tcp' sourceAddressPrefix: '*' sourcePortRange: '*' destinationAddressPrefix: '*' destinationPortRange: '443' } } { // ⚠️ BAD: SSH open to the internet — the extension will flag this as CRITICAL name: 'AllowSSH-INSECURE' properties: { priority: 200 direction: 'Inbound' access: 'Allow' protocol: 'Tcp' sourceAddressPrefix: '*' // ← This means ANY source on the internet sourcePortRange: '*' destinationAddressPrefix: '*' destinationPortRange: '22' // ← SSH port } } ] } } ``` ### 步骤 3:可视化您的网络 1. 按 `Ctrl+Shift+P` 打开 **Command Palette(命令面板)** 2. 输入 **"Visualize"** 并选择 **"Azure NetSec: Visualize Network Topology"** ``` ┌──────────────────────────────────────────────────┐ │ > Visualize │ │ ┌──────────────────────────────────────────┐ │ │ │ 🛡️ Azure NetSec: Visualize Network │ ← │ │ │ Topology │ │ │ └──────────────────────────────────────────┘ │ └──────────────────────────────────────────────────┘ ``` 一个新的面板将在您的代码旁边打开,显示: ``` ┌─────────────────────────────────┬─────────────────────┐ │ 🌐 Network Topology │ 🔍 Security Findings │ │ │ │ │ ┌─────────────────────────┐ │ 🔴 [NETSEC-001] │ │ │ 🌐 vnet-myapp-eastus │ │ SSH port 22 open │ │ │ 10.0.0.0/16 │ │ to the internet │ │ │ │ │ │ │ │ ┌──────┐ ┌──────────┐ │ │ 🟠 [NETSEC-005] │ │ │ │snet- │ │snet-app │ │ │ Overly permissive │ │ │ │web │ │ ⚠️ NO NSG│ │ │ source address │ │ │ │🛡 NSG│ │ │ │ │ │ │ │ └──────┘ └──────────┘ │ │ 🟠 [NETSEC-007] │ │ └─────────────────────────┘ │ Subnet "snet-app" │ │ │ has no NSG │ │ 🛡️ Network Security Groups │ │ │ ┌─────────────────────────┐ │ 🟡 [NETSEC-004] │ │ │ 🛡️ nsg-web (2 rules) │ │ No explicit │ │ │ Click to see rules → │ │ deny-all rule │ │ └─────────────────────────┘ │ │ └─────────────────────────────────┴─────────────────────┘ ``` **您将看到:** - **左侧面板** —— 您的网络拓扑可视化图。VNet 是蓝色方框,子网是其内部的卡片。标签显示哪些子网具有 NSG、路由表或私有端点。 - **右侧面板** —— 按严重性排序的安全发现(关键优先)。点击任何发现可查看详情和指向 Microsoft 官方修复指南的链接。 - **顶部工具栏** —— 摘要徽章(例如,“2 Critical, 1 High”)、缩放控件。 ### 步骤 4:审查安全发现 每项发现都会告诉您: - **问题所在** —— 例如,“SSH 端口 22 对互联网开放” - **为何重要** —— 例如,“这会使您的 VM 遭受暴力破解攻击” - **如何修复** —— 例如,“使用 Azure Bastion 而不是直接开放 SSH” - **了解更多** —— 指向官方 Microsoft Learn 文档的直接链接 **尝试这些交互:** | 操作 | 效果 | |--------|-------------| | **点击拓扑中的 NSG 卡片** | 查看其所有按优先级排序的安全规则 | | **点击侧边栏中的发现** | 查看完整描述、建议以及“了解更多”/“转到源代码”按钮 | | **点击“了解更多”** | 打开包含官方最佳实践的 Microsoft Learn 页面 | | **点击“转到源代码”** | 跳转到 Bicep/ARM 文件中的具体行 | 您还会注意到代码编辑器中的 **内联警告** —— 在有安全问题的行上显示黄色和红色波浪线。将鼠标悬停在它们上面以查看发现详情。 ``` ┌──────────────────────────────────────────────────────────────┐ │ main.bicep │ │ │ │ 55│ sourceAddressPrefix: '*' │ │ │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ │ │ ⚠️ [NETSEC-001] SSH port 22 open to the internet: │ │ │ NSG rule "AllowSSH-INSECURE" allows inbound SSH... │ │ │ Source: Azure NetSec │ │ │ [NETSEC-001 — Learn More ↗] │ └──────────────────────────────────────────────────────────────┘ ``` ### 步骤 5:修复问题并重新分析 使用建议修复问题。以下是修复示例的方法: **修复 1 —— 用 Azure Bastion 替换开放的 SSH (NETSEC-001):** ``` // ✅ FIXED: Restrict SSH to your corporate VPN IP only { name: 'AllowSSH-Restricted' properties: { priority: 200 direction: 'Inbound' access: 'Allow' protocol: 'Tcp' sourceAddressPrefix: '203.0.113.50/32' // ← Your office IP only sourcePortRange: '*' destinationAddressPrefix: '10.0.1.0/24' destinationPortRange: '22' } } ``` **修复 2 —— 将 NSG 附加到 snet-app (NETSEC-007):** ``` { name: 'snet-app' properties: { addressPrefix: '10.0.2.0/24' networkSecurityGroup: { id: appNsg.id // ← Now protected! } } } ``` **修复 3 —— 添加显式拒绝所有规则 (NETSEC-004):** ``` { name: 'DenyAllInbound' properties: { priority: 4096 direction: 'Inbound' access: 'Deny' protocol: '*' sourceAddressPrefix: '*' sourcePortRange: '*' destinationAddressPrefix: '*' destinationPortRange: '*' } } ``` 保存后 (`Ctrl+S`),扩展会**自动重新分析**您的文件。已修复的问题将从发现面板中消失,内联警告也会清除。 ### 步骤 6:导出安全报告 与您的团队分享发现或将它们附加到 Pull Request: 1. 点击拓扑工具栏中的 **📊 Export Report(导出报告)** 按钮,或按 `Ctrl+Shift+P` → **"Azure NetSec: Export Security Report"** 2. 选择一种格式: | 格式 | 最适合 | |--------|----------| | **📊 CSV (Excel)** | 直接在 Excel 中打开 —— 排序、筛选、数据透视。最适合安全团队。 | | **🌐 HTML** | 丰富的可视化报告 —— 可从浏览器打印为 PDF (Ctrl+P)。最适合管理层。 | | **📝 Markdown** | 添加到 Pull Request、Wiki 或 Git 仓库。最适合 DevOps。 | | **🔧 JSON** | 输入到 CI/CD 流水线或自动化合规工具。最适合自动化。 | 3. 选择保存位置 4. 打开报告 —— 它包含拓扑摘要、所有带有建议的发现以及 Microsoft Learn 链接 ### 步骤 7:可视化实时 Azure 拓扑(可选 —— 需要 Azure 账户) 连接到您真实的 Azure 环境,并在一个租户中可视化**所有订阅**的已部署资源: 1. 按 `Ctrl+Shift+P` → **"Azure NetSec: Sign In to Azure (Entra ID)"** ``` ┌──────────────────────────────────────────────────┐ │ > Sign In │ │ ┌──────────────────────────────────────────┐ │ │ │ 🛡️ Azure NetSec: Sign In to Azure │ ← │ │ │ (Entra ID) │ │ │ └──────────────────────────────────────────┘ │ └──────────────────────────────────────────────────┘ ``` 2. 将打开一个浏览器窗口进行 **Microsoft Entra ID** 身份验证。使用您的 Azure 凭据登录。 3. 登录后,您会看到:`"Signed in to Azure. Found 5 subscription(s)."` —— 点击 **"Visualize Live Topology"**(或随时运行 `Ctrl+Shift+P` → **"Azure NetSec: Visualize Live Azure Topology"**) 4. **选择要扫描的订阅**(默认全选): ``` ┌──────────────────────────────────────────────────┐ │ Azure Subscriptions │ │ Select subscriptions to scan │ │ ┌──────────────────────────────────────────┐ │ │ │ ☑ Production (abc123-...) │ │ │ │ ☑ Staging (def456-...) │ │ │ │ ☑ Development (ghi789-...) │ │ │ │ ☐ Sandbox (jkl012-...) │ │ │ └──────────────────────────────────────────┘ │ │ [OK] [Cancel] │ └──────────────────────────────────────────────────┘ ``` 5. 扩展将跨所有选定的订阅查询 **Azure Resource Graph** 并构建实时拓扑。同样的安全分析将在您部署的资源上运行 —— 您将看到同样的发现面板、拓扑图,并且可以导出报告。 **它会获取:** - VNet、子网及其 NSG 和路由表关联 - 包含所有安全规则的 NSG - 包含路由的路由表 - 开启了威胁情报模式的 Azure Firewall - 私有端点及其连接的服务 - VNet 之间的 Peering(甚至跨订阅) **它不会做的:** - 它**不**会对您的 Azure 资源进行任何更改(只读) - 它**不**访问存储、数据库或计算资源 - 它至少需要您要扫描的订阅上的 **Reader(读者)** 角色 ## 功能特性 ### 🌐 交互式网络拓扑 - 整个 Azure 网络架构的可视化图 - VNet、子网、NSG、路由表、防火墙、私有端点、VNet Peering - 显示关系的连接线(子网→NSG、Peering、私有端点) - 点击任何 NSG 以检查其按优先级排序的安全规则 - 缩放、平移和浏览拓扑 ### 🛡️ 安全分析引擎(14 条规则) 基于 [Microsoft Security Benchmark](https://learn.microsoft.com/security/benchmark/azure/overview) 自动检测配置错误。离线运行 —— 无需 Azure 订阅。 - **安全态势评估** —— 即时摘要:“需要立即采取行动” vs “态势良好” - **按操作分组的发现** —— “立即修复”、“审查并修复”、“最佳实践改进”、“可安全确认” - **每条规则的可操作指南** —— 准确告诉您该做什么,而不仅仅是哪里错了 - **按规则去重** —— 29 条 NETSEC-001 发现变成一张卡片,显示“12 个受影响资源” - **可点击的 MS Learn 链接** —— “📖 如何修复”打开官方 Microsoft 修复指南 ### 📊 安全报告 通过 **📊 Export Report(导出报告)** 按钮直接从 webview 导出发现: - **CSV (Excel)** —— 直接在 Excel 中打开,列可排序、筛选 - **HTML** —— 丰富的可视化报告 —— 可从浏览器打印为 PDF (Ctrl+P) - **Markdown** —— 用于 Pull Request、Wiki、Git 仓库 - **JSON** —— 机器可读,用于 CI/CD 流水线 ### ☁️ 实时 Azure 拓扑(跨订阅) - 通过 **Microsoft Entra ID** (Azure AD) 登录 —— 使用 VS Code 内置身份验证 - **多订阅** —— 选择租户内要扫描的订阅 - 查询 **Azure Resource Graph** 以进行高效的跨订阅发现 - 同样的可视化、同样的安全分析、同样的报告 —— 针对您的实时部署资源 - **只读** —— 永远不会修改您的 Azure 资源 ### ⚡ 实时分析 - **保存时自动分析** —— 无需手动重新运行 - **内联诊断** —— 问题行上的黄色/红色波浪线 - **状态栏指示器** —— 一目了然地显示 `🛡️ NetSec: 2 Critical` - **活动栏面板** —— 所有发现的树状视图,点击以导航到源代码 ## 安全规则参考 所有规则均基于 [Microsoft Security Benchmark](https://learn.microsoft.com/security/benchmark/azure/mcsb-v2-network-security) 和 [Azure Network Security Best Practices](https://learn.microsoft.com/azure/security/fundamentals/network-best-practices): | 规则 ID | 严重性 | 检测内容 | 修复指南 | |---------|----------|-----------------|-----------| | NETSEC-001 | 🔴 严重 | SSH 端口 22 对互联网开放 | [使用 Azure Bastion](https://learn.microsoft.com/azure/bastion/bastion-overview) | | NETSEC-002 | 🔴 严重 | RDP 端口 3389 对互联网开放 | [使用 JIT Access](https://learn.microsoft.com/azure/defender-for-cloud/enable-just-in-time-access) | | NETSEC-003 | 🟠 高危 | Any-to-any 允许规则 | [筛选网络流量](https://learn.microsoft.com/azure/virtual-network/tutorial-filter-network-traffic) | | NETSEC-004 | 🟡 警告 | 缺少显式拒绝所有入站规则 | [NSG 默认规则](https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview#default-security-rules) | | NETSEC-005 | 🟠 高危 | 源地址权限过宽 (0.0.0.0/0) | [使用 Service Tags](https://learn.microsoft.com/azure/virtual-network/service-tags-overview) | | NETSEC-006 | 🟠 高危 | 出站目标权限过宽 | [网络分段](https://learn.microsoft.com/azure/security/fundamentals/network-best-practices#logically-segment-subnets) | | NETSEC-007 | 🟠 高危 | 子网未附加 NSG | [管理 NSG]() | | NETSEC-008 | 🟡 警告 | 端口范围过宽 | [网络最佳实践](https://learn.microsoft.com/azure/security/fundamentals/network-best-practices) | | NETSEC-009 | 🟡 警告 | 低优先级全部允许规则 | [JIT 访问](https://learn.microsoft.com/azure/defender-for-cloud/just-in-time-access-overview) | | NETSEC-010 | 🟠 高危 | 防火墙威胁情报已禁用 | [防火墙威胁情报](https://learn.microsoft.com/azure/firewall/threat-intel) | | NETSEC-011 | 🔵 信息 | 缺少 NSG/VNet 流日志 | [流量分析](https://learn.microsoft.com/azure/network-watcher/traffic-analytics-usage-scenarios) | | NETSEC-012 | 🔵 信息 | 硬编码 IP(改用 Service Tags) | [Service Tags](https://learn.microsoft.com/azure/virtual-network/service-tags-overview) | | NETSEC-013 | 🔵 信息 | 操作冲突的重叠规则 | [NSG 规则评估](https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview#security-rules) | | NETSEC-014 | 🟡 警告 | 默认路由指向 Internet(绕过防火墙) | [UDR 概述](https://learn.microsoft.com/azure/virtual-network/virtual-networks-udr-overview) | ## 命令 | 命令 | 快捷键 | 描述 | |---------|----------|-------------| | `Azure NetSec: Visualize Network Topology` | `Ctrl+Shift+P` → 输入 "Visualize" | 从本地 Bicep/ARM 文件打开交互式拓扑 | | `Azure NetSec: Analyze Current File` | | 分析活动的 Bicep/ARM 文件并显示内联诊断 | | `Azure NetSec: Analyze Workspace Security` | | 扫描工作区中的所有网络文件 | | `Azure NetSec: Export Security Report` | | 将发现导出为 CSV (Excel)、HTML、Markdown 或 JSON | | `Azure NetSec: Show Effective Rules for Resource` | | 选择一个 NSG 并查看其按优先级排序的所有规则 | | `Azure NetSec: Sign In to Azure (Entra ID)` | | 向 Azure 进行身份验证并列出可用订阅 | | `Azure NetSec: Visualize Live Azure Topology` | | 获取并可视化选定订阅中的已部署资源 | ## 配置 | 设置 | 默认值 | 描述 | |---------|---------|-------------| | `azureNetSec.severityThreshold` | `warning` | 显示的最低严重性(`critical`、`high`、`warning`、`info`) | | `azureNetSec.autoAnalyzeOnSave` | `true` | 保存 Bicep/ARM 文件时自动重新分析 | | `azureNetSec.showInlineDecorations` | `true` | 在问题行上显示黄色/红色波浪线 | | `azureNetSec.reportFormat` | `html` | 默认格式:`html`、`markdown`、`json`、`csv` | 更改设置:**File(文件)** → **Preferences(首选项)** → **Settings(设置)** → 搜索 **"azureNetSec"**。 ## 支持的 Azure 资源 | 资源类型 | 它是什么(初学者友好说明) | |---------------|-------------------------------| | `Microsoft.Network/virtualNetworks` | **Virtual Network (VNet)** —— 您在 Azure 中的专用网络,就像一栋包含房间(子网)的大楼 | | `Microsoft.Network/networkSecurityGroups` | **NSG** —— 类似防火墙的筛选器,控制哪些流量可以进入或离开子网 | | `Microsoft.Network/routeTables` | **Route Table(路由表)** —— 流量指引:“通过 Y 将流量发送到 X” | | `Microsoft.Network/privateEndpoints` | **Private Endpoint(私有端点)** —— 通过您的专用网络而不是公共互联网连接到 Azure 服务(数据库、存储) | | `Microsoft.Network/azureFirewalls` | **Azure Firewall** —— 云托管防火墙,检查并筛选所有流量 | | `Microsoft.Network/virtualNetworks/virtualNetworkPeerings` | **VNet Peering** —— 连接两个 VNet 以便它们通信,就像在两栋大楼之间架桥 | ## Azure 新手?从这里开始 如果您从未接触过 Azure,以下是充分利用此扩展的学习路径: ### 1. 了解基础(15 分钟) - 📖 [什么是 Azure?](https://learn.microsoft.com/azure/cloud-adoption-framework/get-started/what-is-azure) —— 如果您从未使用过云计算,请从这里开始 - 📖 [什么是虚拟网络?](https://learn.microsoft.com/azure/virtual-network/virtual-networks-overview) —— Azure 网络的基础 - 📖 [什么是网络安全组?](https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview) —— 流量筛选的工作原理 ### 2. 学习 Bicep(30 分钟) - 📖 [什么是 Bicep?](https://learn.microsoft.com/azure/azure-resource-manager/bicep/overview) —— Azure 的基础设施即代码 - 📖 [Bicep 快速入门](https://learn.microsoft.com/azure/azure-resource-manager/bicep/quickstart-create-bicep-use-visual-studio-code) —— 在 VS Code 中编写您的第一个 Bicep 文件 - 📖 [安装 Bicep 扩展](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep) —— Bicep 文件的语法高亮和 IntelliSense ### 3. 安全基础(20 分钟) - 📖 [Azure 网络安全最佳实践](https://learn.microsoft.com/azure/security/fundamentals/network-best-practices) —— 此扩展所执行的规则 - 📖 [云采用框架 —— 网络分段](https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-landing-zone-network-segmentation) —— 如何像专业人士一样构建您的网络 - 📖 [良好架构框架 —— 安全支柱](https://learn.microsoft.com/azure/well-architected/security/) —— Microsoft 安全云架构蓝图 ### 4. 动手实践 1. 安装此扩展([步骤 1](#step-1-install-the-extension)) 2. 粘贴示例 Bicep 代码([步骤 2](#step-2-open-or-create-a-bicep-file)) 3. 可视化并修复安全问题([步骤 3-5](#step-3-visualize-your-network)) 4. 探索每个发现中的 Microsoft Learn 链接 —— 它们经过精心筛选,旨在教您所需的知识 ## Microsoft Learn 参考资料 此扩展的安全规则基于官方 Microsoft 最佳实践: - [Azure Security Benchmark —— 网络安全](https://learn.microsoft.com/security/benchmark/azure/mcsb-v2-network-security) - [Azure 网络安全最佳实践](https://learn.microsoft.com/azure/security/fundamentals/network-best-practices) - [NSG 概述与默认规则](https://learn.microsoft.com/azure/virtual-network/network-security-groups-overview) - [安全 VNet 部署](https://learn.microsoft.com/azure/virtual-network/secure-virtual-network) - [流量分析](https://learn.microsoft.com/azure/network-watcher/traffic-analytics-usage-scenarios) - [Azure Bastion(替代开放的 SSH/RDP)](https://learn.microsoft.com/azure/bastion/bastion-overview) - [Service Tags](https://learn.microsoft.com/azure/virtual-network/service-tags-overview) - [Private Link](https://learn.microsoft.com/azure/private-link/private-link-overview) - [Azure Firewall 威胁情报](https://learn.microsoft.com/azure/firewall/threat-intel) - [云采用框架 —— 网络分段](https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-landing-zone-network-segmentation) - [良好架构框架 —— 安全](https://learn.microsoft.com/azure/well-architected/security/) ## 贡献指南 欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 许可证 [MIT](LICENSE) © KimVaddi
标签:ARM 模板, Azure, Bicep, CISA项目, DevSecOps, DInvoke, EC2, Entra ID, IaC, Microsoft Security Benchmark, NSG, 上游代理, 云基础设施, 云安全监控, 安全合规, 安全报告, 开放端口检测, 拓扑可视化, 网络代理, 网络安全, 自动化攻击, 防火墙规则, 隐私保护, 静态分析