2022年11月29日,AWS宣布了AWS密钥管理服务(KMS)的外部密钥存储(XKS)功能。它允许有监管需求的客户通过AWS KMS在本地或AWS云外存储和控制其加密密钥。因此,客户可以使用其现有的硬件安全模块(HSM)基础设施在本地或其选择的任何位置有效地存储和管理其AWS KMS客户管理密钥(CMK)。通过其应用程序和100多项AWS服务,使用外部管理的密钥轻松加密数据。
在上一篇题为《所有权、控制和占有——AWS云密钥管理的新功能》的博客中,我们重点介绍了AWS KMS XKS与Entrust企业密钥和机密管理解决方案KeyControl的集成。在本博客中,我们将提供有关AWS KMS XKS与Entrust nShield HSM直接集成的更多细节。
当在AWS中为客户加密数据时,会生成一个唯一的数据加密密钥,然后使用CMK按照信封加密方案进行加密。XKS使该CMK能够在外部得到保护和管理,例如在经过防篡改和FIPS 140-2 Level 3或FIPS 140-3 Level 31认证的HSM中。
XKS没有将CMK完全存储和管理在AWS KMS中,而是通过外部密钥对其进行额外加密,该外部密钥驻留并保持在AWS云之外,完全由客户组织控制。
客户负责提供和管理必要的基础结构,以便自己安全地保存和管理此类外部密钥,这确实会带来额外的操作负担,并给可用性和性能带来更大的风险。但是,这可以为多个受监管的工作负载启用云用例,在这些工作负载中,加密密钥需要由特定组织和/或特定地理管辖区直接持有。
控制对这些外部托管 CMK 的访问可为客户提供“打破玻璃”功能,以便他们可以轻松控制提供给其应用程序和其他 AWS 服务的 CMK 的访问和使用。通过禁用或删除对外部存储密钥的访问,可以暂时或永久地使云中的数据无法访问。
客户有两种选择来构建基础设施以与 AWS KMS XKS 集成:
客户可以使用 AWS KMS XKS 代理,该代理以示例代码的形式在线提供。此选项使用公钥加密标准 (PKCS)#11 接口来支持任何兼容的硬件安全模块。Entrust nShield HSM 与 PKCS#11 兼容应用程序集成,并且已部署在组织和企业中,以在本地保护其加密密钥材料。
一些组织(包括 Entrust)提供多云密钥管理系统,该系统可以与包括 AWS 在内的许多云服务提供商 (CSP) 交互,以使用自带密钥 (BYOK) 方法导入和管理 CMK,以及通过 XKS 使用持有您自己的密钥 (HYOK) 方法启用 CMK。这些为客户提供了全面的生命周期管理功能和单一平台,以实现整个组织中多种关键类型的一致操作。通常,它们还使用 HSM 来保护此类系统中的密钥。
使用引用 PKCS#11 库的合适配置文件,可以直接将 Entrust nShield HSM 与 AWS KMS XKS 代理结合使用,从而允许代理代码使用任意数量的 nShield Security World AES-256 密钥。为了提高可用性,并保持依赖于 XKS 托管 CMK 的应用程序和集成 AWS 服务的持续运行,建议在多个位置或地理位置部署 AWS KMS XKS 代理和 nShield HSM。
无论使用哪种部署类型,都需要测量、监控和适应互联网带宽要求,以确保使用 AWS KMS XKS 代理或密钥管理系统引入的任何网络瓶颈不会阻碍或影响在 AWS 上运行的应用程序的运行。
并非所有数据分类类别都需要外部存储密钥,因此 AWS 建议仅在有法规或合规性需求的情况下使用此功能,例如,保留受 XKS 保护的最少数据以满足要求,但继续将 AWS KMS CMK 用于其余数据。请务必记住,如果外部密钥永久丢失或删除,则在关联的 KMS 密钥下加密的任何密文都将无法恢复。
因此,如果您已经在使用 AWS 服务并考虑利用其 KMS XKS 功能,或者计划在不久的将来迁移到云,并且担心控制加密密钥的影响,请考虑将 Entrust nShield HSM 与 AWS KMS XKS 结合使用。