本节摘要:云上业务面临多种安全威胁,需要分层防护。网络层的 DDoS 攻击要用 DDoS 防护产品清洗流量;应用层的 Web 攻击(SQL 注入、XSS)用 WAF(Web 应用防火墙)拦截;主机层的入侵和恶意软件用主机安全产品检测;数据层的泄露用 KMS(密钥管理服务)做加密。这些产品各防一类威胁,组合起来构成纵深防御。合规方面,等保(网络安全等级保护)和数据安全法对云上系统有明确要求——数据加密、访问日志、安全审计是基本项。本节讲这些安全产品和合规要求。
阅读完本节,你应当能够:
假设你的业务上线了,Web 服务跑在 CVM 上,前面挂了 CLB。某天突然服务不可用——监控显示流量是平时的 100 倍,全是垃圾请求。这是 DDoS 攻击,攻击者用海量流量冲垮你的入口带宽。你的 CLB 和 CVM 根本扛不住这种量,服务直接瘫痪。
又或者,你的网站被黑了。攻击者通过一个有漏洞的表单,注入了 SQL 拿走了数据库里的用户数据。这是 Web 应用层的攻击,DDoS 防护挡不住(它不是流量攻击),需要 WAF 来识别和拦截恶意的 Web 请求。
还可能,你的某台 CVM 被植入了挖矿程序,CPU 跑满。这是主机层的入侵,需要主机安全产品检测异常进程。
这三个例子说明:威胁来自不同层级(网络、应用、主机、数据),单一安全产品挡不住所有。必须按层级部署对应的防护,构成纵深防御——就像城堡有护城河、城墙、卫兵、宝箱锁,层层设防。
合规是另一条线。很多行业(金融、政务、医疗)有法规要求系统达到某个安全等级(等保),数据要加密、操作要有日志、要能审计。不满足合规,业务都不能开展。
各层防护产品和它们挡的威胁:
| 防护层 | 产品 | 挡什么威胁 | 工作原理 |
|---|---|---|---|
| 网络层 | DDoS防护 | DDoS流量攻击 | 清洗恶意流量,只放行正常请求 |
| 应用层 | WAF | SQL注入、XSS、CC | 分析HTTP请求,拦截恶意模式 |
| 主机层 | 主机安全 | 入侵、恶意软件、漏洞 | 检测异常进程、文件、登录 |
| 数据层 | KMS+权限 | 数据窃取、泄露 | 加密数据、控制访问权限 |
DDoS 防护:DDoS(分布式拒绝服务)攻击用海量流量或请求冲垮目标,让正常用户访问不了。防护的原理是"清洗"——在流量到达你的服务器之前,先经过清洗中心,把恶意流量过滤掉,只把正常流量转发给你。腾讯云的 DDoS 防护有基础版(免费,防护量有限)和高防版(付费,能扛大流量攻击)。如果你的业务可能被 DDoS(公开 Web 服务、有竞争或结怨),高防是必要的。
WAF(Web Application Firewall,Web 应用防火墙):挡应用层的攻击。它分析进来的 HTTP 请求,识别恶意模式(SQL 注入的特征、XSS 的脚本、CC 攻击的高频请求),拦截它们。WAF 和 DDoS 防护的区别:DDoS 防护挡"流量过大",WAF 挡"请求恶意"。一个超大的合法请求 DDoS 防护不会拦,但一个小的恶意 SQL 注入 WAF 会拦。
主机安全:保护服务器本身。它检测主机上的异常——有没有可疑进程(挖矿、后门)、有没有异常登录(暴力破解 SSH)、有没有已知漏洞没打补丁、有没有文件被篡改。相当于给每台服务器装了个"杀毒加监控"。
KMS(Key Management Service,密钥管理服务):管理加密用的密钥。数据加密(存在数据库或对象存储的数据加密成密文)需要密钥,密钥本身要安全保管(密钥泄露等于数据泄露)。KMS 集中管理密钥,提供加密解密接口,密钥不出 KMS(应用调 KMS 接口加解密,但拿不到密钥本身)。这比把密钥硬编码在应用里安全得多。
为什么不能只靠一层防护?因为每层都有绕过的可能:
纵深防御的价值不是"层数越多越好",而是"各层机制不同,攻击者要全部绕过成本极高"。攻击者研究透了 WAF 的规则能绕过,但还要再对付主机安全的行为检测,再对付数据的加密。每多一层,攻击成本指数级上升。
💡 关键直觉:安全是"木桶的短板"决定整体水平。花重金买了高配 DDoS 防护,却开着弱密码的 SSH、数据没加密,攻击者根本不走 DDoS 这条路,直接从主机或数据层突破。防护要均衡,别某层特别强而别的层裸奔。
中国云上业务最常涉及的合规要求:
等保 2.0(网络安全等级保护):国家对信息系统安全分等级的要求。多数企业业务涉及二级或三级。三级等保对系统有明确的技术要求——身份鉴别、访问控制、安全审计、入侵防范、数据完整性保密性等。云厂商通常提供"等保合规"的套餐或指导,帮你满足这些要求。
数据安全法和个人信息保护法:对数据的收集、存储、使用、传输有规定。核心要求:数据分类分级(不同敏感程度的数据不同保护)、个人信息要告知并取得同意、数据出境要评估、重要数据要加密存储。
行业特定合规:金融(PCI-DSS 支付安全、银保监会要求)、医疗(病历数据保护)、政务(政务数据安全)等行业有额外的合规要求。
合规的核心共同点:数据要加密、访问要有日志和审计、要有安全管理制度。技术上对应 KMS(加密)、安全审计(日志)、安全中心(统一管理)这些产品。
把各层防护组合起来,一个基本的生产级安全架构:
从外到内:DDoS 高防挡流量攻击 → WAF 挡 Web 攻击 → CLB 分发 → 安全组控制端口 → 主机安全检测入侵 → KMS 加密数据 → 全程审计日志。这套架构能挡住绝大多数常见攻击。
不是每个业务都要全套。小项目可能只需要基础 DDoS 防护加安全组配置就够;金融、政务等高敏感业务才需要全套加高配。根据业务的重要性和威胁模型选配,别过度也别不足。
数据加密的核心是密钥管理,几个原则:
密钥不能硬编码:别把加密密钥写在代码里、配置文件明文里。密钥泄露等于加密失效。用 KMS 集中管理,应用通过 API 调用。
密钥轮换:定期换密钥。即使旧密钥泄露,轮换后泄露的密钥也失效。KMS 通常支持自动轮换。
最小权限:谁能用哪个密钥要严格控制。不是所有应用都能用所有密钥,按需授权。
密钥分离:主密钥(加密数据的密钥)和数据密钥(实际加密用的)分离。主密钥永不出 KMS,数据密钥用主密钥加密后分发。这样即使数据密钥泄露,没有主密钥也解不开。
# 概念性:正确的密钥使用方式 class SecureDataAccess: def __init__(self, kms): self.kms = kms # KMS客户端 def save_secret(self, plaintext): # 不要 自己持有密钥 # 要 调KMS加密后存密文 ciphertext = self.kms.encrypt(plaintext, key_id="master-key") return self.db.save(ciphertext) # 存密文 def load_secret(self, id): ciphertext = self.db.load(id) # 解密时也调KMS 密钥不出KMS return self.kms.decrypt(ciphertext)
⚠️ 常见坑:把加密密钥和加密数据存在同一个地方(比如同一个数据库、同一个配置文件)。一旦这个存储被攻破,密钥和数据一起泄露,加密形同虚设。密钥必须在 KMS 这类专门保护的系统里,和数据物理/逻辑分离。
审计日志记录"谁在什么时候做了什么操作"。它的价值在事后追溯——出问题了能查到是谁、什么时候、怎么干的。等保等合规也明确要求审计日志。
要审计的关键操作:数据访问(谁查了敏感数据)、配置变更(谁改了安全组、谁改了权限)、管理操作(谁登录了服务器、谁创建了删除了资源)。审计日志要保护起来(攻击者会想删日志掩盖痕迹),最好存到独立的、只追加不能篡改的存储。
腾讯云的安全中心类产品提供统一的审计和安全态势感知——把各处的日志汇总分析,发现异常行为(比如某账号突然大量下载敏感数据),统一告警。
下一节讲面向具体行业的解决方案,以及监控、成本管理这些日常运营支撑产品。

理解纵深防御,最有效的方式是切换到攻击者视角走一遍:侦察阶段扫暴露面(看哪些端口和服务直接挂在公网——所以有 VPC 和安全组的"最小暴露"原则);拿到入口后尝试注入和越权(所以有 WAF 和网关的鉴权限流);攻陷一台主机后横向移动(所以主机安全要盯异常进程和提权行为);最后拖走数据(所以数据要加密、密钥分离、访问有审计)。四层防护分别打断这条攻击链的四个环节,任何单层被绕过都不至于全线崩溃——这就是"纵深"二字的含义。做安全自查时也按这条链走:每层问一句"这环节我断了没有",比对照产品清单打钩有效得多。
下一节讲面向具体行业的解决方案,以及监控、成本管理这些日常运营支撑产品。