在公有云计算中一个很困难的过程就是密钥管理,公有云中的多租户模型造成其上运行的过程需要考虑密钥管理问题。
最简单的应用案例是在公有云中有应用程序运行,加密数据的从企业内部流到公有云中,密钥仅供企业内部使用。有的加密引擎能够在数据流出时加密,在数据流入时解密。当公有云上的其他处理过程(例如批处理)需要访问密钥去解密数据时,一个使用密钥的应用程序将变得复杂。
企业中使用者需要拥有他们自己的密钥,而不是一个能用于访问整个企业的单独的共享密钥。最简单的解决方法是采用一个加密引擎,基于实体身份信息为每一个用户或实体分配(或管理)一个密钥。以这种方式,为一个实体特别加密的任何信息将为那一实体所维护。如果一个群体内的实体需要共享数据,那么可以为管理群体访问的应用程序分配一个群体级别密钥,并在群体内的实体间共享密钥。密钥在企业内部应该像这一部分前面讨论的那样进行管理。
当数据存储在公有云环境中,在停用这一环境时,证明所有数据(尤其是PII或SPI数据或隶属于法律法规的数据)已经从公有云环境中删去,包括其他媒体如复制盘等,将存在着问题;维护当地密钥管理能够从密钥管理系统中废除(或删除或丢失)密钥,以确保任何数据残留在公有云的数据不能被解密,来提供这一保证。
如果云服务提供商和用户没有一个有效的密钥管理过程,加密数据就没有多大价值。 在服务提供方,需要关注的因素包括:服务器拥有加密的数据,同时访问密钥服务器缺少职责划分;数据库管理员能访问个人密钥;或数据库服务架构依赖于单一密钥。
使用密钥加密密钥,在内存中产生加密密钥,以及只存储密钥服务器的加密密钥,都是能控制和保护密钥本身的有效的架构解决方案。构建任何解决方案时都应该考虑这些。 客户端密钥管理,在本身并不安全的设备(如移动终端)上保护密钥,或者这一设备没有得到同等级别的控制,都是需要考虑的因素。