前置知识: 云计算

云安全服务

6 min高级

共享责任模型、身份与访问管理、数据加密与密钥管理、网络安全、合规与审计、安全运营与事件响应。

1. 共享责任模型

1.1 模型概述

云安全遵循共享责任模型,云厂商和客户各负责不同层面的安全:

责任共担

IaaS

云厂商:物理安全、基础设施、网络

客户:OS、应用、数据

PaaS

云厂商:物理、基础设施、OS、运行时

客户:应用代码、数据

SaaS

云厂商:几乎全部

客户:数据、访问控制

责任共担

IaaS

云厂商:物理安全、基础设施、网络

客户:OS、应用、数据

PaaS

云厂商:物理、基础设施、OS、运行时

客户:应用代码、数据

SaaS

云厂商:几乎全部

客户:数据、访问控制

mermaid diagram

1.2 各云厂商模型差异

责任领域AWSAzure阿里云
物理数据中心云厂商云厂商云厂商
网络基础设施云厂商云厂商云厂商
虚拟化层云厂商云厂商云厂商
操作系统客户客户客户
应用与数据客户客户客户
身份与访问客户客户客户

2. 身份与访问管理(IAM)

2.1 IAM 核心概念

Principal 谁

Role 角色

Policy 权限

Resource 什么资源

Principal 谁

Role 角色

Policy 权限

Resource 什么资源

mermaid diagram

认证(AuthN):你是谁?授权(AuthZ):你能做什么?审计(Audit):你做了什么?

2.2 IAM 策略

基于身份的策略(附加到用户/角色):

json
{
  "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 最小权限原则

最小权限实施策略:

  1. 从拒绝所有开始:默认拒绝,逐步放行
  2. 使用 AWS Access Analyzer:识别过度权限
  3. 权限边界(Permissions Boundary):设置角色权限上限
  4. 服务控制策略(SCP):组织级权限限制
  5. 会话策略:临时会话的权限缩小

2.4 联合身份

SAML/OIDC 联合认证

企业 IdP AD/LDAP

IAM Role 临时凭证

AWS 资源

SAML/OIDC 联合认证

企业 IdP AD/LDAP

IAM Role 临时凭证

AWS 资源

mermaid diagram

联合身份优势:

  • 无需管理 IAM 用户
  • 使用现有企业身份体系
  • 临时凭证自动轮换
  • 集中审计

2.5 临时安全凭证

STS(Security Token Service)提供临时凭证:

临时凭证有效期=min⁡(请求时长,角色最大会话时长)\text{临时凭证有效期} = \min(\text{请求时长}, \text{角色最大会话时长})
凭证类型有效期用途
AssumeRole15min-12h跨账户访问
GetFederationToken15min-36h联合身份
GetSessionToken15min-36hMFA 场景

3. 数据加密与密钥管理

3.1 加密层次

应用层加密

应用代码实现,最灵活

存储层加密

数据库/文件系统透明加密

磁盘层加密

EBS 加密,操作系统不可见

网络层加密

TLS/IPsec,传输中保护

应用层加密

应用代码实现,最灵活

存储层加密

数据库/文件系统透明加密

磁盘层加密

EBS 加密,操作系统不可见

网络层加密

TLS/IPsec,传输中保护

mermaid diagram

3.2 KMS(Key Management Service)

KMS 提供密钥的创建、管理和审计:

AWS 托管密钥 aws/*

HSM 硬件安全模块

密钥在 HSM 中生成和存储

客户托管密钥 alias/*

客户自带密钥 ext/*

AWS 托管密钥 aws/*

HSM 硬件安全模块

密钥在 HSM 中生成和存储

客户托管密钥 alias/*

客户自带密钥 ext/*

mermaid diagram

信封加密:

KMS 使用信封加密保护数据,避免每次请求都访问 KMS:

plaintext
1. 请求数据密钥 → KMS 返回明文 DK + 密文 DK
2. 使用明文 DK 加密数据
3. 存储密文 DK + 密文数据
4. 丢弃明文 DK

解密:
1. 发送密文 DK → KMS 解密 → 返回明文 DK
2. 使用明文 DK 解密数据

信封加密性能优势:

KMS 调用次数=数据量4KB (直接加密)\text{KMS 调用次数} = \frac{\text{数据量}}{\text{4KB}} \text{ (直接加密)} KMS 调用次数=1 (信封加密)\text{KMS 调用次数} = 1 \text{ (信封加密)}

3.3 密钥轮换

  • 自动轮换:每年自动轮换(AWS 托管密钥)
  • 按需轮换:手动创建新密钥版本
  • 别名轮换:更新别名指向的密钥

密钥轮换不影响已加密数据(旧密钥版本仍可解密)。

4. 网络安全

4.1 深度防御

边界防护

WAF / Shield / CloudFront

网络防护

VPC / 安全组 / NACL / VPC Endpoint

主机防护

OS 加固 / 漏洞修补 / 运行时保护

应用防护

输入验证 / 认证授权 / 会话管理

数据防护

加密 / 脱敏 / 访问控制

边界防护

WAF / Shield / CloudFront

网络防护

VPC / 安全组 / NACL / VPC Endpoint

主机防护

OS 加固 / 漏洞修补 / 运行时保护

应用防护

输入验证 / 认证授权 / 会话管理

数据防护

加密 / 脱敏 / 访问控制

mermaid diagram

4.2 WAF(Web Application Firewall)

WAF 保护 Web 应用免受常见攻击:

规则类型防护内容
SQL 注入恶意 SQL 语句
XSS跨站脚本攻击
RFC 违规不合规 HTTP 请求
机器人自动化攻击
IP 信誉已知恶意 IP
速率限制DDoS 防护

WAF 规则优先级:

plaintext
规则1 (Allow: 已知好IP) → 规则2 (Block: 已知坏IP) → 规则3 (Rate Limit) → 规则4 (SQLi检测) → 默认动作

4.3 DDoS 防护

服务防护层级特点
AWS Shield StandardL3/L4自动免费防护
AWS Shield AdvancedL3/L4/L7付费,$3000/月,DDoS 响应团队
CloudFrontL7分布式吸收流量
Route 53DNSDNS 层防护
WAFL7应用层规则

DDoS 攻击类型与防御:

攻击流量=攻击包速率×包大小\text{攻击流量} = \text{攻击包速率} \times \text{包大小}
攻击类型层级防御策略
SYN FloodL4SYN Cookie、限速
UDP FloodL4限速、Geo 屏蔽
DNS 放大L3DNSSEC、限速
HTTP FloodL7WAF 速率限制、CAPTCHA
SlowlorisL7连接超时、并发限制

4.4 VPC Endpoint

VPC Endpoint 允许私有网络访问云服务,不经公网:

Interface Endpoint(PrivateLink):

plaintext
VPC ── ENI ── PrivateLink ── 云服务
       (私有IP)

Gateway Endpoint(S3/DynamoDB 专用):

plaintext
VPC ── 路由表 ── Gateway Endpoint ── S3/DynamoDB
       (免费)

5. 合规与审计

5.1 合规框架

框架行业核心要求
SOC 2通用安全性、可用性、机密性
PCI DSS支付卡数据保护
HIPAA医疗健康信息保护
GDPR隐私个人数据保护
ISO 27001通用信息安全管理体系
等保 2.0中国网络安全等级保护

5.2 AWS Config

Config 持续记录资源配置变更,评估合规性:

资源变更

Config Recorder

配置项

合规规则

COMPLIANT

NON_COMPLIANT

自动修正

资源变更

Config Recorder

配置项

合规规则

COMPLIANT

NON_COMPLIANT

自动修正

mermaid diagram

常用合规规则:

  • 加密 EBS 卷
  • S3 Bucket 禁止公开访问
  • 安全组不允许 22/3389 端口入站
  • IAM 用户必须启用 MFA
  • RDS 实例必须开启加密

5.3 CloudTrail

CloudTrail 记录所有 API 调用,用于安全审计:

plaintext
API 调用 → CloudTrail → S3 (长期存储)
                      → CloudWatch Logs (实时监控)
                      → EventBridge (事件驱动)

关键审计场景:

  • 谁创建了/删除了资源?
  • 何时修改了 IAM 策略?
  • 哪些 API 调用失败?
  • 是否有异常的登录行为?

6. 安全运营与事件响应

6.1 安全运营中心

检测

GuardDuty/SecurityHub/Config

分析

上下文/取证

遏制

隔离/撤销权限

根除

修补/清除恶意

恢复

验证/恢复服务

复盘

改进/文档/策略

检测

GuardDuty/SecurityHub/Config

分析

上下文/取证

遏制

隔离/撤销权限

根除

修补/清除恶意

恢复

验证/恢复服务

复盘

改进/文档/策略

mermaid diagram

6.2 GuardDuty

GuardDuty 是托管的威胁检测服务:

检测类型示例
异常 API 调用来自异常地域的 API 调用
凭证泄露GitHub 上发现 AWS 凭证
恶意 IP 交互与已知 C2 服务器通信
挖矿行为异常高的 CPU 使用 EC2
暴力破解多次登录失败
权限提升异常的 IAM 操作

6.3 自动化响应

安全事件自动化响应架构:

GuardDuty 发现

EventBridge

Lambda 自动动作

撤销 IAM 凭证

隔离 EC2 实例

阻止恶意 IP

通知安全团队

创建 JIRA 工单

GuardDuty 发现

EventBridge

Lambda 自动动作

撤销 IAM 凭证

隔离 EC2 实例

阻止恶意 IP

通知安全团队

创建 JIRA 工单

mermaid diagram

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 点钟的攻击。