云安全服务
00:00
共享责任模型、身份与访问管理、数据加密与密钥管理、网络安全、合规与审计、安全运营与事件响应。
1. 共享责任模型
1.1 模型概述
云安全遵循共享责任模型,云厂商和客户各负责不同层面的安全:
┌──────────────────────────────────────────────────────┐
│ 云厂商责任 │ 客户责任 │
├──────────────────────────────────────────────────────┤
│ IaaS: │ │
│ 物理安全、基础设施、网络 │ OS、应用、数据 │
├──────────────────────────────────────────────────────┤
│ PaaS: │ │
│ 物理安全、基础设施、OS、运行时 │ 应用代码、数据 │
├──────────────────────────────────────────────────────┤
│ SaaS: │ │
│ 几乎全部 │ 数据、访问控制 │
└──────────────────────────────────────────────────────┘
1.2 各云厂商模型差异
| 责任领域 | AWS | Azure | 阿里云 |
|---|---|---|---|
| 物理数据中心 | 云厂商 | 云厂商 | 云厂商 |
| 网络基础设施 | 云厂商 | 云厂商 | 云厂商 |
| 虚拟化层 | 云厂商 | 云厂商 | 云厂商 |
| 操作系统 | 客户 | 客户 | 客户 |
| 应用与数据 | 客户 | 客户 | 客户 |
| 身份与访问 | 客户 | 客户 | 客户 |
2. 身份与访问管理(IAM)
2.1 IAM 核心概念
┌──────────────────────────────────────────────────┐
│ IAM 模型 │
│ │
│ Principal ──► Role ──► Policy ──► 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 联合身份
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 企业 IdP │───►│ SAML/OIDC│───►│ IAM Role │───► AWS 资源
│ (AD/LDAP)│ │ 联合认证 │ │ (临时凭证)│
└──────────┘ └──────────┘ └──────────┘
联合身份优势:
- 无需管理 IAM 用户
- 使用现有企业身份体系
- 临时凭证自动轮换
- 集中审计
2.5 临时安全凭证
STS(Security Token Service)提供临时凭证:
| 凭证类型 | 有效期 | 用途 |
|---|---|---|
| AssumeRole | 15min-12h | 跨账户访问 |
| GetFederationToken | 15min-36h | 联合身份 |
| GetSessionToken | 15min-36h | MFA 场景 |
3. 数据加密与密钥管理
3.1 加密层次
┌──────────────────────────────────────────────────┐
│ 加密层次 │
├──────────────────────────────────────────────────┤
│ 应用层加密 ← 应用代码实现,最灵活 │
│ 存储层加密 ← 数据库/文件系统透明加密 │
│ 磁盘层加密 ← EBS 加密,操作系统不可见 │
│ 网络层加密 ← TLS/IPsec,传输中保护 │
└──────────────────────────────────────────────────┘
3.2 KMS(Key Management Service)
KMS 提供密钥的创建、管理和审计:
┌──────────────────────────────────────────────┐
│ KMS 架构 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ AWS 托管 │ │ 客户托管 │ │ 客户自带 │ │
│ │ 密钥 │ │ 密钥 │ │ 密钥 │ │
│ │ (aws/*) │ │ (alias/*)│ │ (ext/*) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │
│ ┌─────▼─────────────▼─────────────▼───────┐ │
│ │ HSM (硬件安全模块) │ │
│ │ 密钥在 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 深度防御
┌──────────────────────────────────────────────────┐
│ 深度防御层级 │
│ │
│ 边界防护: WAF / Shield / CloudFront │
│ │ │
│ 网络防护: VPC / 安全组 / NACL / VPC Endpoint │
│ │ │
│ 主机防护: OS 加固 / 漏洞修补 / 运行时保护 │
│ │ │
│ 应用防护: 输入验证 / 认证授权 / 会话管理 │
│ │ │
│ 数据防护: 加密 / 脱敏 / 访问控制 │
└──────────────────────────────────────────────────┘
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 持续记录资源配置变更,评估合规性:
┌──────────────────────────────────────────────┐
│ AWS Config │
│ │
│ 资源变更 ──► Config Recorder ──► 配置项 │
│ │ │
│ 合规规则 ◄────────────────────────┘ │
│ │ │
│ ├── COMPLIANT │
│ └── NON_COMPLIANT ──► 自动修正 │
└──────────────────────────────────────────────┘
常用合规规则:
- 加密 EBS 卷
- S3 Bucket 禁止公开访问
- 安全组不允许 22/3389 端口入站
- IAM 用户必须启用 MFA
- RDS 实例必须开启加密
5.3 CloudTrail
CloudTrail 记录所有 API 调用,用于安全审计:
API 调用 → CloudTrail → S3 (长期存储)
→ CloudWatch Logs (实时监控)
→ EventBridge (事件驱动)
关键审计场景:
- 谁创建了/删除了资源?
- 何时修改了 IAM 策略?
- 哪些 API 调用失败?
- 是否有异常的登录行为?
6. 安全运营与事件响应
6.1 安全运营中心
┌──────────────────────────────────────────────────┐
│ 安全运营流程 │
│ │
│ 检测 → 分析 → 遏制 → 根除 → 恢复 → 复盘 │
│ │ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ ▼ │
│ GuardDuty 分析 隔离 修补 验证 改进 │
│ SecurityHub 上下文 撤销 清除 恢复 文档 │
│ Config 取证 权限 恶意 服务 策略 │
└──────────────────────────────────────────────────┘
6.2 GuardDuty
GuardDuty 是托管的威胁检测服务:
| 检测类型 | 示例 |
|---|---|
| 异常 API 调用 | 来自异常地域的 API 调用 |
| 凭证泄露 | GitHub 上发现 AWS 凭证 |
| 恶意 IP 交互 | 与已知 C2 服务器通信 |
| 挖矿行为 | 异常高的 CPU 使用 EC2 |
| 暴力破解 | 多次登录失败 |
| 权限提升 | 异常的 IAM 操作 |
6.3 自动化响应
安全事件自动化响应架构:
GuardDuty 发现 ──► EventBridge ──► Lambda ──► 自动动作
│
├── 撤销 IAM 凭证
├── 隔离 EC2 实例
├── 阻止恶意 IP
├── 通知安全团队
└── 创建 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 启用
- 安全告警通知配置