云安全服务
共享责任模型、身份与访问管理、数据加密与密钥管理、网络安全、合规与审计、安全运营与事件响应。
1. 共享责任模型
1.1 模型概述
云安全遵循共享责任模型,云厂商和客户各负责不同层面的安全:
flowchart TD
subgraph Shared[责任共担]
I[IaaS<br/>云厂商:物理安全、基础设施、网络<br/>客户:OS、应用、数据]
P[PaaS<br/>云厂商:物理、基础设施、OS、运行时<br/>客户:应用代码、数据]
S[SaaS<br/>云厂商:几乎全部<br/>客户:数据、访问控制]
end
1.2 各云厂商模型差异
| 责任领域 | AWS | Azure | 阿里云 |
|---|---|---|---|
| 物理数据中心 | 云厂商 | 云厂商 | 云厂商 |
| 网络基础设施 | 云厂商 | 云厂商 | 云厂商 |
| 虚拟化层 | 云厂商 | 云厂商 | 云厂商 |
| 操作系统 | 客户 | 客户 | 客户 |
| 应用与数据 | 客户 | 客户 | 客户 |
| 身份与访问 | 客户 | 客户 | 客户 |
2. 身份与访问管理(IAM)
2.1 IAM 核心概念
flowchart LR
P[Principal 谁] --> R[Role 角色] --> PL[Policy 权限] --> Res[Resource 什么资源]
认证(AuthN):你是谁?授权(AuthZ):你能做什么?审计(Audit):你做了什么?
2.2 IAM 策略
基于身份的策略(附加到用户/角色):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": ["10.0.0.0/8"]
},
"StringEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
}
]
}
基于资源的策略(附加到资源,如 S3 Bucket Policy)。
2.3 最小权限原则
最小权限实施策略:
- 从拒绝所有开始:默认拒绝,逐步放行
- 使用 AWS Access Analyzer:识别过度权限
- 权限边界(Permissions Boundary):设置角色权限上限
- 服务控制策略(SCP):组织级权限限制
- 会话策略:临时会话的权限缩小
2.4 联合身份
flowchart LR
IdP[企业 IdP AD/LDAP] -->|SAML/OIDC 联合认证| IAM[IAM Role 临时凭证] --> AWS[AWS 资源]
联合身份优势:
- 无需管理 IAM 用户
- 使用现有企业身份体系
- 临时凭证自动轮换
- 集中审计
2.5 临时安全凭证
STS(Security Token Service)提供临时凭证:
| 凭证类型 | 有效期 | 用途 |
|---|---|---|
| AssumeRole | 15min-12h | 跨账户访问 |
| GetFederationToken | 15min-36h | 联合身份 |
| GetSessionToken | 15min-36h | MFA 场景 |
3. 数据加密与密钥管理
3.1 加密层次
flowchart TD
A[应用层加密<br/>应用代码实现,最灵活] --> S[存储层加密<br/>数据库/文件系统透明加密]
S --> D[磁盘层加密<br/>EBS 加密,操作系统不可见]
D --> N[网络层加密<br/>TLS/IPsec,传输中保护]
3.2 KMS(Key Management Service)
KMS 提供密钥的创建、管理和审计:
flowchart TD
AWS[AWS 托管密钥 aws/*] --> HSM[HSM 硬件安全模块<br/>密钥在 HSM 中生成和存储]
CUST[客户托管密钥 alias/*] --> HSM
BYOK[客户自带密钥 ext/*] --> HSM
信封加密:
KMS 使用信封加密保护数据,避免每次请求都访问 KMS:
1. 请求数据密钥 → KMS 返回明文 DK + 密文 DK
2. 使用明文 DK 加密数据
3. 存储密文 DK + 密文数据
4. 丢弃明文 DK
解密:
1. 发送密文 DK → KMS 解密 → 返回明文 DK
2. 使用明文 DK 解密数据
信封加密性能优势:
3.3 密钥轮换
- 自动轮换:每年自动轮换(AWS 托管密钥)
- 按需轮换:手动创建新密钥版本
- 别名轮换:更新别名指向的密钥
密钥轮换不影响已加密数据(旧密钥版本仍可解密)。
4. 网络安全
4.1 深度防御
flowchart TD
B[边界防护<br/>WAF / Shield / CloudFront] --> N[网络防护<br/>VPC / 安全组 / NACL / VPC Endpoint]
N --> H[主机防护<br/>OS 加固 / 漏洞修补 / 运行时保护]
H --> A[应用防护<br/>输入验证 / 认证授权 / 会话管理]
A --> D[数据防护<br/>加密 / 脱敏 / 访问控制]
4.2 WAF(Web Application Firewall)
WAF 保护 Web 应用免受常见攻击:
| 规则类型 | 防护内容 |
|---|---|
| SQL 注入 | 恶意 SQL 语句 |
| XSS | 跨站脚本攻击 |
| RFC 违规 | 不合规 HTTP 请求 |
| 机器人 | 自动化攻击 |
| IP 信誉 | 已知恶意 IP |
| 速率限制 | DDoS 防护 |
WAF 规则优先级:
规则1 (Allow: 已知好IP) → 规则2 (Block: 已知坏IP) → 规则3 (Rate Limit) → 规则4 (SQLi检测) → 默认动作
4.3 DDoS 防护
| 服务 | 防护层级 | 特点 |
|---|---|---|
| AWS Shield Standard | L3/L4 | 自动免费防护 |
| AWS Shield Advanced | L3/L4/L7 | 付费,$3000/月,DDoS 响应团队 |
| CloudFront | L7 | 分布式吸收流量 |
| Route 53 | DNS | DNS 层防护 |
| WAF | L7 | 应用层规则 |
DDoS 攻击类型与防御:
| 攻击类型 | 层级 | 防御策略 |
|---|---|---|
| SYN Flood | L4 | SYN Cookie、限速 |
| UDP Flood | L4 | 限速、Geo 屏蔽 |
| DNS 放大 | L3 | DNSSEC、限速 |
| HTTP Flood | L7 | WAF 速率限制、CAPTCHA |
| Slowloris | L7 | 连接超时、并发限制 |
4.4 VPC Endpoint
VPC Endpoint 允许私有网络访问云服务,不经公网:
Interface Endpoint(PrivateLink):
VPC ── ENI ── PrivateLink ── 云服务
(私有IP)
Gateway Endpoint(S3/DynamoDB 专用):
VPC ── 路由表 ── Gateway Endpoint ── S3/DynamoDB
(免费)
5. 合规与审计
5.1 合规框架
| 框架 | 行业 | 核心要求 |
|---|---|---|
| SOC 2 | 通用 | 安全性、可用性、机密性 |
| PCI DSS | 支付 | 卡数据保护 |
| HIPAA | 医疗 | 健康信息保护 |
| GDPR | 隐私 | 个人数据保护 |
| ISO 27001 | 通用 | 信息安全管理体系 |
| 等保 2.0 | 中国 | 网络安全等级保护 |
5.2 AWS Config
Config 持续记录资源配置变更,评估合规性:
flowchart TD
RC[资源变更] --> CR[Config Recorder] --> CI[配置项]
CR --> RULE[合规规则]
RULE --> COMP[COMPLIANT]
RULE --> NON[NON_COMPLIANT] --> FIX[自动修正]
常用合规规则:
- 加密 EBS 卷
- S3 Bucket 禁止公开访问
- 安全组不允许 22/3389 端口入站
- IAM 用户必须启用 MFA
- RDS 实例必须开启加密
5.3 CloudTrail
CloudTrail 记录所有 API 调用,用于安全审计:
API 调用 → CloudTrail → S3 (长期存储)
→ CloudWatch Logs (实时监控)
→ EventBridge (事件驱动)
关键审计场景:
- 谁创建了/删除了资源?
- 何时修改了 IAM 策略?
- 哪些 API 调用失败?
- 是否有异常的登录行为?
6. 安全运营与事件响应
6.1 安全运营中心
flowchart LR
D[检测<br/>GuardDuty/SecurityHub/Config] --> A[分析<br/>上下文/取证] --> C[遏制<br/>隔离/撤销权限]
C --> E[根除<br/>修补/清除恶意] --> R[恢复<br/>验证/恢复服务] --> X[复盘<br/>改进/文档/策略]
6.2 GuardDuty
GuardDuty 是托管的威胁检测服务:
| 检测类型 | 示例 |
|---|---|
| 异常 API 调用 | 来自异常地域的 API 调用 |
| 凭证泄露 | GitHub 上发现 AWS 凭证 |
| 恶意 IP 交互 | 与已知 C2 服务器通信 |
| 挖矿行为 | 异常高的 CPU 使用 EC2 |
| 暴力破解 | 多次登录失败 |
| 权限提升 | 异常的 IAM 操作 |
6.3 自动化响应
安全事件自动化响应架构:
flowchart LR
GD[GuardDuty 发现] --> EB[EventBridge] --> L[Lambda 自动动作]
L --> A1[撤销 IAM 凭证]
L --> A2[隔离 EC2 实例]
L --> A3[阻止恶意 IP]
L --> A4[通知安全团队]
L --> A5[创建 JIRA 工单]
6.4 安全基线检查
云账户安全基线检查清单:
身份与访问:
- Root 账户无 AK/SK
- Root 账户启用 MFA
- 所有 IAM 用户启用 MFA
- 无 IAM 访问密钥超过 90 天
- 最小权限策略
网络:
- 安全组不允许 0.0.0.0/0 入站
- VPC 流日志已开启
- S3 Bucket 禁止公开访问
数据保护:
- EBS 卷加密
- RDS 实例加密
- S3 对象加密
- CloudTrail 日志加密
监控:
- CloudTrail 全区域启用
- Config 合规规则配置
- GuardDuty 启用
- 安全告警通知配置
小结
- 初学者要点:共享责任模型决定了”哪些事云厂商不管”;IAM 三问(你是谁/能做什么/ 做过什么)对应认证、授权、审计;数据安全优先做好传输加密(TLS)与静态加密(KMS)。
- 进阶注意:信封加密是性能与安全的平衡术——数据密钥加密数据、KMS 只解密 数据密钥;人类用户尽量走联合身份 + 临时凭证,长期 AccessKey 只留给机器并配轮换; 安全不是状态而是流程:基线检查清单 + 自动化响应(GuardDuty → EventBridge → Lambda) 才能覆盖 3 点钟的攻击。