云安全指南
IAM 最佳实践
- 日常任务绝不使用 root 账号;创建 IAM 用户/角色
- 所有人员账号启用 MFA,尤其是 root
- 应用最小权限原则:仅授予所需的最小权限
- EC2/Lambda/容器使用角色而非访问密钥
- 访问密钥每 90 天轮换;删除未使用的密钥
- 使用 AWS SCPs / Azure Policy 强制执行组织级护栏
- 每季度审查和审计权限
- 委托管理时使用权限边界
IAM 策略示例(最小权限 S3)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-specific-bucket",
"arn:aws:s3:::my-specific-bucket/*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-east-1"
}
}
}
]
}
网络安全
| 控制 | 目的 | 最佳实践 |
|---|---|---|
| 安全组 | 实例级防火墙(有状态) | 仅白名单必要端口/来源;SSH/RDP 不允许 0.0.0.0/0 |
| NACL | 子网级防火墙(无状态) | 额外防御层;封锁已知恶意 IP 段 |
| VPC | 隔离网络环境 | 每个环境独立 VPC(生产/预发布/开发) |
| 私有子网 | 无直接互联网访问 | 数据库和内部服务放入私有子网 |
| NAT 网关 | 私有子网出站访问 | 出站使用 NAT;内部服务绝不直接暴露 |
| VPC 流日志 | 网络流量记录 | 所有 VPC 启用流日志用于安全分析和合规 |
数据加密
- 为所有存储启用静态加密(S3、EBS、RDS、DynamoDB)
- 敏感数据使用客户托管 KMS 密钥
- 所有传输数据强制使用 TLS 1.2+
- S3 存储桶默认启用加密并阻止公开访问
- 每年轮换加密密钥或按策略要求
- DB 凭据使用密钥管理器,不要硬编码在代码中