本文介绍如何利用阿里云 KMS,对 ECS 上的工作负载进行保护。
为什么需要保护工作负载
在讨论工作负载的保护之前,我们先来了解一下更原始的数据安全需求:保护业务机密和个人隐私。这类数据是企业的核心价值所在,而且通常也受到监管合规的约束,例如广泛所知的 GDPR 会要求企业保护个人的隐私数据。
这类数据通常存储在数据库,那么应用系统应当在存储之前将其加密,降低数据库面临撞库拖库等攻击之后泄露的风险。
为了保证加密的安全性与合规性,应用系统可以使用 KMS 或者 加密服务完成业务数据的加密。关于应用层加密业务数据,可以参考 KMS 信封加密 做了解更多,本文不做展开。
我们假定您已经做了上述保护手段,那么处理加解密的工作负载,就替代了数据库,成为了您的系统中新的薄弱环节。考虑以下几种情况:
- 您的 ECS 应用中,有访问 KMS 或者 密码机,以及访问其他微服务、子系统的关键凭证;
- 您的 ECS 系统盘,可能产生一些临时文件,包含网络传输、本地处理过程中,接触到的敏感数据;
- 为了系统稳定可恢复,您对 ECS 云盘开启了基于自动快照的“云盘备份”,对敏感数据进行大量冗余存储;
实际的业务系统部署会面临比以上三点更多的问题,而更本质的问题是:
在研发(DevOps)自治的应用部署和生命周期变更机制下,运维与安全负责人并不知道工作负载是否产生了新的敏感数据类型,是否引入新的业务逻辑处理敏感数据。
KMS 带来的价值
明确了工作负载所携带的风险,因此阿里云 ECS 基于 KMS 加密,提供保护工作负载所属资源的能力,这包括:ECS 的系统盘、数据盘,以及和它们相关的镜像、快照。
您可以授权 ECS 使用您在 KMS 中的用户主密钥(CMK)
,一键加密这些资源,把已知和未知的,临时和持久性的敏感数据都保护起来,防范它们被恶意者获取。由于您同时具备撤销 ECS 使用 KMS 解密的能力,因此可以在特定的时候,通过撤销授权、禁用密钥等手段,获得应急响应的能力。
对负责运维和安全的团队来说,加密 ECS 工作负载的资源是 DevOps 研发模式下,简单而有效的安全兜底方案。
一键加密 系统盘
由于系统盘实际上包含了操作系统,以及业务所需要的应用软件,因此它通常被打包为一个镜像。
当您制作好这个具备在生产环境运行的自定义镜像作为基线之后,就可以通过拷贝镜像的方式,产生一个加密镜像。
随后基于此加密镜像(Golden Image)创建 ECS 实例 系统盘时,则可以自动使用相应的 KMS CMK
完成对系统盘的加密。
而基于加密系统盘创造出来的其他资源(例如快照)也都是加密的。
总结:先制作基线镜像;然后一键加密基线镜像。基于加密镜像创建的系统盘自动被加密。
一键加密 数据盘
数据盘的加密则更直接一点,您可以在创建实例或者创建数据盘时完成加密。
创建 ECS 实例时
创建云盘时
同样,基于加密数据盘创建出来的其他资源也都是加密的。
总结:找到并且勾选“加密”,随后选择用于加密的CMK
。
小结和最佳实践
本文探讨了 ECS 工作负载的保护需求,并且介绍了如何利用 KMS 对其一键保护。虽然本文以保护敏感的“企业机密”和“个人隐私”为切入介绍了其必要性,实际的生产部署中,需要保护的机密信息类型更加广泛。
长期的安全研究指向以下两个结论:
- 实际的生产环境部署中,几乎所有的应用都会涉及到某种类型的机密信息,尤其是广泛存在的访问密钥、口令、证书等
- “预发布”环境或者测试环境的部署中,往往包含了一些可以推导生产环境机密信息的其他信息
因此在越来越多的企业生产实践中,逐步倾向于制定和实施一种 默认加密 的安全策略,对工作负载涉及到的敏感信息进行保护,而基于 KMS 的 ECS 透明加密正是为了满足这一需求量身定制,让您可以高效、低成本的构建安全的云上计算环境。
参考资料
阿里云官网用户指南:
ECS云盘加密
云产品集成KMS透明加密