AWS KMS:我需要多少个密钥? 安全博客
  • 14

AWS KMS 密钥管理:我需要多少密钥?

by Ishva Kanani 和 Hardik Thakkar 2024年12月16日 高级(300),最佳实践,客户解决方案,安全、身份与合规 永久链接 评论 分享

关键要点

在云迁移的过程中,数据安全始终是组织的首要任务。无论是保护客户信息、知识产权,还是满足合规要求的数据,加密均是基本的安全控制手段。AWS 密钥管理服务AWS KMS为 AWS 上的加密密钥管理提供了坚实的基础。

通常,客户首要关心的问题是:“我实际需要多少个密钥?”虽然这看似是一个简单的问题,但需要仔细考虑多个因素。管理策略的选择,包括使用 AWS 管理密钥、客户管理密钥或自带密钥BYOK,以及决定使用集中式或分散式的密钥管理方法等,都是不可忽视的关键点。

通过理解这些选择以及它们与组织需求之间的契合度,您可以制定出有效且高效的密钥管理策略。

在这篇文章中,我们将探讨影响 AWS KMS 密钥策略的主要因素,包括组织结构和合规要求。您的密钥管理策略是选择一个集中的团队管理所有密钥,还是让各个团队各自管理自己的密钥?这些决定至关重要,因为它们与 AWS 的 共享责任模型 紧密相连,其中 AWS 负责云的安全,而客户则负责云中的安全,包括加密密钥的正确管理和使用。

简介:什么是 AWS 密钥管理服务?

AWS 密钥管理服务AWS KMS 是一项 AWS 托管服务,使您能够方便地创建和控制用于加密数据的加密密钥。您在 AWS KMS 中创建的密钥由 FIPS 140 级别 3 验证的硬件安全模块 (HSM) 保护,密钥永远不会以未加密的形式离开 AWS KMS。要使用或管理您的 KMS 密钥,您需要与 AWS KMS 进行交互。

客户负责决定加密哪些数据,选择适当的加密密钥,并通过密钥策略在 AWS 服务中实施加密。同时,客户还负责通过 AWS CloudTrail 监控和审计加密密钥的使用。

管理密钥的一个关键方面是确定如何管理密钥及所需的 KMS 密钥数量。这一决策取决于多个因素,包括数据分类、应用架构、监管要求和操作需求。我们将在接下来的部分中详细讨论这些方面。

密钥策略的指导原则

以下是四项基于我们经验的指导性工程原则,帮助您创建安全且易于维护的系统。它们将协助您根据管理需求确定组织所需的 KMS 密钥数量。

原则 1 数据分类: 如果系统处理具有不同分类级别的数据,请使用不同的数据资源和 KMS 密钥,以便分别管理和审计对数据的访问。对于相似类别的数据或单一类型的数据,仅使用一个 KMS 密钥可能是合理的。

为什么重要: 此原则确保根据对该分类的访问,适当地保护不同敏感级别的数据,从而减少未授权访问的风险并简化治理。

原则 2 应用程序: 多个应用程序可以运行在一个 AWS 账号中。我们建议为每个应用程序使用不同的 KMS 密钥,因为当将对单个密钥的管理委托给两个或多个应用管理员时,管理访问权限可能会变得复杂。对于运行在不同 AWS 账号中的应用使用单独的 KMS 密钥,可以更好地利用账户边界,在发生安全事件时限制潜在影响。

为什么重要: 这种方法隔离了对应用程序和数据的访问,从而降低了意外访问密钥的潜在影响。

原则 3 AWS 服务: 在考虑跨多个 AWS 服务的密钥管理时,关注服务和数据性质。如果您处理的是一种类型的数据例如,客户信息,并且该数据在多个 AWS 服务中流动,建议使用一个 KMS 密钥。这简化了密钥管理,同时维持一致的访问控制。

然而,如果您在不同的 AWS 服务中处理的是不同类型的数据如财务记录和用户偏好,即便在同一应用程序内,建议依据每项服务使用不同的 KMS 密钥。这允许更细粒度的访问控制并符合最小特权原则。

为什么重要: 此原则在跨不同 AWS 服务的数据访问控制需求与简化管理之间取得平衡。

原则 4 职责分离: 密钥策略定义了谁可以管理和使用密钥。对于不同的加密用例和不同的管理员,我们建议创建独立的 KMS 密钥。另一个职责分离的方面是通过 KMS 密钥策略,可以让两个不同的主体分别负责数据治理和数据解密访问。

为什么重要: 此原则支持实施最小特权访问,并帮助在密钥管理中保持清晰的问责制。

通过应用这些原则,您可以制定出一个密钥管理策略,概述所需的 KMS 密钥数量,同时平衡安全性、合规性和操作效率。接下来的部分中,我们将探讨如何在不同场景中应用这些原则。

密钥管理策略示例以及集中式与分散式方法的比较

除了前面讨论的指导原则外,组织的结构和特定需求对于确定最合适的密钥管理方法也至关重要。实施密钥管理策略时,组织通常会选择三种主要方法:集中式、分散式或混合模型。选择的方式取决于组织的结构、需求和操作背景。每种方法为特定的组织场景提供了不同的优势。

我们推荐的分散式方法适用于以下场景:

具有自主业务单元的组织,或拥有治理控制来监督密钥使用开发团队灵活,且密钥的所有权可以进行集中审计的公司在多种监管框架中运营的公司需要在特定 AWS 区域内运营的公司

集中式 KMS 方法最适合以下场景:

需要严格合规监督和集中管理的组织拥有集中安全或数据保护职能的公司

在混合模型中,集中和分散之间的结合:

核心密钥策略集中管理日常密钥操作由团队处理

例如,组织或公司可以拥有独立的产品团队,但同时有一个集中化的安全团队。

示例 1混合: 一家零售网站,其公共产品目录数据和机密客户数据应使用两个 KMS 密钥一个用于存储在 Amazon S3 中的公共目录,另一个用于存储在 Amazon RDS 和其他 AWS 服务中的客户数据。

理由: 这一建议主要基于原则 1数据分类。公共目录数据和机密客户数据代表不同的分类级别,因此使用单独的密钥是合理的。这一方法也得到了原则 3AWS 服务的支持,因为数据驻留在不同 AWS 服务中且性质各异。

这种方法的好处:

为每个数据类型实施适当的访问控制独立管理每个数据分类的加密提升整体数据安全和合规性

示例 2分散式: 一家拥有多个应用团队的医疗公司可以为每个应用团队使用独立的 KMS 密钥,并为每个密钥根据数据和团队角色制定不同的密钥策略。

理由: 该建议主要基于原则 2应用程序。由于医疗公司中有多个应用团队,每个团队处理不同类型的数据并拥有不同的访问需求,因此使用单独的 KMS 密钥可独立管理每个团队的加密和访问。这一方法也得到了原则 4职责分离的支持,允许团队特定的密钥策略。

这种方法的好处:

维护对数据访问的细粒度控制。实施团队特定的加密策略。在组织中遵循最小特权原则。提升数据安全性:通过使用单独的密钥,公司限制了对任何给定密钥的不当访问影响,能够实现更精确的访问控制,促进独立的密钥轮换计划,并改善对每个应用的密钥使用监控和审计能力。简化与医疗合规性要求的对齐:独立密钥支持数据隔离要求,允许细粒度的基于角色的访问控制,为每个应用的数据访问提供清晰的审计轨迹,允许定制数据生命周期管理。这在遵守包括 HIPAA 在内的各种医疗合规标准时至关重要。实现与各应用团队需求相适应的高效分布式密钥管理。

这些例子展示了如何通过应用指导原则来制定一个结构合理的密钥管理策略,符合不同组织和用例的特定需求。

密钥管理的考量因素

在实施密钥管理策略时,除了考虑密钥数量外,还应考虑多项因素。本部分探讨了这些因素,以帮助您做出明智的决策。

密钥类型

AWS 提供不同类型的 KMS 密钥,每种密钥都有各自的优点和使用案例。

AWS 拥有的密钥由 AWS 在服务账号中管理,跨多个客户账号使用,且不提供客户的可见性或审计能力。当不需要对密钥进行管理或审计的要求,但需要数据加密时,请选择 AWS 拥有的密钥。

AWS 管理密钥完全由 AWS 管理,只用于您的 AWS 账号。客户可以在 AWS 管理控制台中查看这些密钥,并通过 AWS CloudTrail 日志跟踪其使用情况,但对这些密钥没有直接的控制或修改能力。当不需要管理密钥的要求,但需要审计记录时,请选择 AWS 管理密钥。值得注意的是,AWS 管理密钥每年自动轮换,这在许多用例中很便利。

客户管理密钥提供最高级别的控制和自定义,允许创建密钥策略并控制密钥轮换。然而,客户管理密钥提供了更多的灵活性,使您可以设置自己的轮换计划,甚至根据合规要求启用轮换。当您需要严格控制密钥的使用、共享密钥或通过密钥策略控制访问、详细审计能力、与特定合规要求的对齐,或者将密钥管理与现有流程和工具集成时,请选择客户管理密钥。

tk加速器免费下载

在 AWS 管理密钥与客户管理密钥之间的决策通常归结为在自动管理的便利性与对细粒度控制和自定义需求之间找到平衡。随着密钥数量的增加,管理的复杂性也随之增加。更多的密钥意味着需要创建、管理和审计更多的策略。确保适当人员能够访问正确的密钥变得更具挑战。然而,您可以使用 IAM 访问分析器来帮助审核对 KMS 密钥的访问,确定外部访问。管理多个密钥的轮换计划需要更多的精力,同时也可能会提高成本。

成本

安全性应为首要关注点,但成本也是必须考虑的因素。每个客户管理密钥会产生月度存储费用,AWS 管理密钥和客户管理 KMS 密钥也会涉及到 API 使用费用。密钥轮换可能在时间上增加成本,因为旧版本的密钥将被保留。

可管理性

找到安全性和可管理性之间的平衡至关重要。太少的密钥可能无法提供足够的职责分离或细粒度访问控制,而过多的密钥则可能导致复杂性增加、成本上升以及潜在的错误管理。

具体要求

不同行业和地区可能对密钥管理有特定要求。一些法规可能要求职责分离,从而需要多个密钥。某些合规标准可能规定了特定的密钥轮换或审计记录要求。

通过仔细考虑这些因素,以及前面讨论的指导原则,您可以制定出一项密钥管理策略,平衡安全性、合规性、成本效益和操作效率。这种策略应当全面考虑,不仅要关注当下的安全需求,同时也要关注长期的管理影响。定期审核和调整密钥管理策略能确保其持续满足发展中的需求,同时保持强有力的安全性和合规性。

AWS KMS:我需要多少个密钥? 安全博客

结论

正如我们在文章中所探讨的,确定组织所需的 AWS KMS 密钥的最佳数量是一个复杂的决策,需要在安全性、合规性、成本和操作效率之间进行平衡。我们讨论的指导原则数据分类、应用程序隔离、AWS 服务集成以及职责分离,提供了制定这些决策的坚实框架。请记住,没有一种通用的解决方案;合适的方法取决于您的具体需求和情况。

在推进实施或完善您 KMS 密钥战略时,考虑以下下一步:首先,彻底审计您当前的数据资产、其分类以及与之交互的应用和服务;其次,基于我们讨论的原则制定理想的密钥管理结构;然后,评估您提议的策略的成本和操作开销,必要时进行调整,以找到适合您组织的平衡;最后,逐步实施您的策略,从您最敏感或关键的数据资产开始。

请记住,密钥管理是一个持续的过程。随着数据环境的演变、新的合规要求的出现或 AWS 推出新功能,定期审核和更新您的策略尤为重要。通过深思熟虑地应用我们讨论的原则和考虑因素,您可以创建一个强大、可扩展且高效的密钥管理策略,增强整体安全态势,并满足组织的独特需求。

如果您对这篇文章有反馈意见,请在下面的评论部分提交。如果您对这篇文章有任何问题,请联系 AWS 支持。

Ishva KananiIshva 是 AWS 的安全顾问,帮助客户进行安全的云迁移,并通过提供创新解决方案加速他们的云旅程。她对网络安全充满热情,提供战略指导和云环境的最佳实践。在保护数字资产之余,她喜欢探索本地徒步小道和尝试新的厨艺。

Hardik ThakkarHardik 是 AWS 全球金融服务(GFS)的原型解决方案架构师,专注于安全架