AWS 云上安全最佳实践
目录
一、账号及访问管理
1.1、多 VPC 还是多账号模式
- 单个团可以使用多 VPC 模式来管理和创建您的应用环境;
- 多个团队可以使用多账户模式来管理和隔离您的应用环境。
1.2、多账户模式,选择主 master 账号
使用一个专门的主(root)账号,其上不启用任何 AWS 资源;
对这个主账户,启用 MFA。
可以使用 AWS Control Tower 服务。
二、系统架构安全
2.1、子网建议
- 从每个可用区至少 2 个子网开始;
- 使用子网来限制因特网的访问,如私有子网;
- 考虑使用更大的子网(/24 或者更大)。
2.2、每个可用区子网划分
- 从每个可用区至少 1 个公有子网,1 个私有子网开始;
- 如果采用 3 层架构,建议使用 3 层子网结构,即公有子网、私有子网、敏感子网。
2.3、安全组的建议
- 安全组默认允许所以出流量的规则;
- 在安全组上修改这条缺省的出流量规则会增加复杂性,因此不推荐,除非有合规的要求;
- 大多数企业为每类应用在安全组中配置入站规则;
- 优先考虑使用安全组作为源;
- 如果要安全组内实例通讯,请将源设为自己。
2.4、NACL 什么时候启用
- 当需要禁止来自某特定源或者端口的流量时;
- 当子网无需访问因特网时。
2.5、VPC 互联建议
- 大多数的应用并不需要转移链路,或者数据传输带宽要求小于4Gbps,建议使用 ×××;
- 如果应用需要更加稳定的链路,更大的带宽,更低的访问延时,考虑使用 Direct Connect。
2.6、IAM 建议
- 将 IAM 策略应用到组,避免应用到单个用户;
- 使用 IAM 角色可以避免在代码中硬编码用户访问秘钥;
- 重要用户启用 MFA;
- 务必配置密码策略,定期轮换秘钥和密码。
三、数据分级及保护
3.1、KMS 存储加密建议
根据企业需求或合规需求,对数据进行分级;
根据不同的数据级别制定不同的加密策略。
3.2、传输中的数据加密 TLS
- 使用 ××× 对传输中的数据进行加密。
- 使用 HTTPS 证书对传输中的数据进行加密,建议在 ELB 上卸载证书,ELB 至后端 EC2 明文传输;
- 如果希望端到端加密,建议选择由 ELB 先卸载 TLS 证书,再同后端的 EC2 建立加密通道。
四、安全运维,监控及日志管理
4.1、CloudTrail 审计日志
- 永远在所有的区域启用 CloudTrail;
- 将 CloudTrail 日志存储到独立的审计账户 S3 存储桶中,并利用 S3 生命周期管理,长期保存。
4.2、VPC Flow Logs
- 在 Trouble Shooting 时启用 Flow Logs;
- 在应用测试,调试,试运行以及上线初期启用 Flow Logs;
- 配合 Splunk 等商业软件使用。
4.3、AWS Config
建议启用 AWS Config。
4.4、Config Rule 启用建议
- 从启用 AWS 托管规则开始;
- 根据企业自身安全基线要求,或者合规要求,自己编写规则,实现 Compliance as Code。