且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

云上数据安全实践:使用 KMS 一键保护 ECS 工作负载

更新时间:2022-05-19 09:53:57

本文介绍如何利用阿里云 KMS,对 ECS 上的工作负载进行保护。

为什么需要保护工作负载

在讨论工作负载的保护之前,我们先来了解一下更原始的数据安全需求:保护业务机密和个人隐私。这类数据是企业的核心价值所在,而且通常也受到监管合规的约束,例如广泛所知的 GDPR 会要求企业保护个人的隐私数据。

这类数据通常存储在数据库,那么应用系统应当在存储之前将其加密,降低数据库面临撞库拖库等攻击之后泄露的风险。

为了保证加密的安全性与合规性,应用系统可以使用 KMS 或者 加密服务 完成业务数据的加密。关于应用层加密业务数据,可以参考 KMS 信封加密 做了解更多,本文不做展开。

我们假定您已经做了上述保护手段,那么处理加解密的工作负载,就替代了数据库,成为了您的系统中新的薄弱环节。考虑以下几种情况:

  1. 您的 ECS 应用中,有访问 KMS 或者 密码机,以及访问其他微服务、子系统的关键凭证;
  2. 您的 ECS 系统盘,可能产生一些临时文件,包含网络传输、本地处理过程中,接触到的敏感数据;
  3. 为了系统稳定可恢复,您对 ECS 云盘开启了基于自动快照的“云盘备份”,对敏感数据进行大量冗余存储;

实际的业务系统部署会面临比以上三点更多的问题,而更本质的问题是:

在研发(DevOps)自治的应用部署和生命周期变更机制下,运维与安全负责人并不知道工作负载是否产生了新的敏感数据类型,是否引入新的业务逻辑处理敏感数据。

KMS 带来的价值

明确了工作负载所携带的风险,因此阿里云 ECS 基于 KMS 加密,提供保护工作负载所属资源的能力,这包括:ECS 的系统盘、数据盘,以及和它们相关的镜像、快照。

您可以授权 ECS 使用您在 KMS 中的用户主密钥(CMK),一键加密这些资源,把已知和未知的,临时和持久性的敏感数据都保护起来,防范它们被恶意者获取。由于您同时具备撤销 ECS 使用 KMS 解密的能力,因此可以在特定的时候,通过撤销授权、禁用密钥等手段,获得应急响应的能力。

对负责运维和安全的团队来说,加密 ECS 工作负载的资源是 DevOps 研发模式下,简单而有效的安全兜底方案。

一键加密 系统盘

由于系统盘实际上包含了操作系统,以及业务所需要的应用软件,因此它通常被打包为一个镜像。

当您制作好这个具备在生产环境运行的自定义镜像作为基线之后,就可以通过拷贝镜像的方式,产生一个加密镜像。
云上数据安全实践:使用 KMS 一键保护 ECS 工作负载

随后基于此加密镜像(Golden Image)创建 ECS 实例 系统盘时,则可以自动使用相应的 KMS CMK 完成对系统盘的加密。

而基于加密系统盘创造出来的其他资源(例如快照)也都是加密的。

总结:先制作基线镜像;然后一键加密基线镜像。基于加密镜像创建的系统盘自动被加密。

一键加密 数据盘

数据盘的加密则更直接一点,您可以在创建实例或者创建数据盘时完成加密。

创建 ECS 实例时

云上数据安全实践:使用 KMS 一键保护 ECS 工作负载

创建云盘时

云上数据安全实践:使用 KMS 一键保护 ECS 工作负载

同样,基于加密数据盘创建出来的其他资源也都是加密的。

总结:找到并且勾选“加密”,随后选择用于加密的CMK

小结和***实践

本文探讨了 ECS 工作负载的保护需求,并且介绍了如何利用 KMS 对其一键保护。虽然本文以保护敏感的“企业机密”和“个人隐私”为切入介绍了其必要性,实际的生产部署中,需要保护的机密信息类型更加广泛。

长期的安全研究指向以下两个结论:

  • 实际的生产环境部署中,几乎所有的应用都会涉及到某种类型的机密信息,尤其是广泛存在的访问密钥、口令、证书等
  • “预发布”环境或者测试环境的部署中,往往包含了一些可以推导生产环境机密信息的其他信息

因此在越来越多的企业生产实践中,逐步倾向于制定和实施一种 默认加密 的安全策略,对工作负载涉及到的敏感信息进行保护,而基于 KMS 的 ECS 透明加密正是为了满足这一需求量身定制,让您可以高效、低成本的构建安全的云上计算环境。

参考资料

阿里云官网用户指南:
ECS云盘加密
云产品集成KMS透明加密