本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
密钥存储
密钥存储是用于存储和使用加密密钥的安全位置。中的标准密钥存储区 AWS KMS 还支持生成和管理其存储的密钥的方法。您创建的 KMS 密钥的加密密钥材料是在经 FIPS 140-3
为了满足特殊要求, AWS KMS 还支持自定义密钥存储。有两种类型:由客户拥有的专用 AWS CloudHSM 集群支持的 AWS CloudHSM 密钥存储和由外部的 HSM 或密钥管理系统支持的外部密钥存储库。 AWS 云以下各节可帮助您根据自己的特定要求选择正确的密钥库。
选择正确的钥匙库
对于大多数客户而言, AWS KMS 标准密钥存储在安全性、性能、成本和操作简便性之间取得了最佳平衡。 AWS KMS HSM 会根据全球范围内的各种安全标准和合规性认证持续接受审计和审查,涵盖全球、区域、政府和行业特定计划。有关详细信息,请参阅AWS KMS 合规性。
对于许多合规性要求,您通过 KMS 密钥策略对密钥访问的控制就足够了。如果您需要证明对密钥材料本身的控制权,可以考虑在 AWS KMS 标准密钥库中使用AWS KMS 导入的密钥。这种方法提供了客户控制的关键材料的合规优势,同时保持了 AWS KMS 基础架构的运营优势,包括高性能和可用性。
下表比较了 AWS KMS 密钥库选项的相对操作复杂性。所有选项都同样安全;区别在于操作上的权衡。
只有当您的组织有明确要求在单租户 HSM 或您在外部控制的 HSM 中保护密钥材料时,才考虑创建自定义密钥存储库。 AWS即便如此,也只能在不满足这些要求的风险超过自定义密钥存储库的额外成本、操作复杂性和性能降低时才创建一个。
AWS KMS 标准密钥库
每个 KMS 密钥都是硬件支持的密钥,其密钥材料由标准 AWS KMS HSM 生成和保护。这种 HSM 类型可以看作是与租户无关的 HSM 队伍,它允许使用可扩展性最强、成本最低且最易于管理的密钥存储。如果您要创建一个用于一个或多个 KMS 密钥, AWS 服务 以便服务可以代表您加密您的数据,则需要创建一个对称密钥。如果您在自己的应用程序设计中使用 KMS 密钥,则可以选择创建对称加密密钥、非对称密钥或 HMAC 密钥。
在标准密钥存储选项中, AWS KMS 创建您的密钥,然后使用服务内部管理的密钥对其进行加密。 AWS KMS 然后将密钥的多个加密副本存储在专为耐用性而设计的系统中。在标准密钥库类型中生成和保护密钥材料可让您充分利用密 AWS 钥库的可扩展性、可用性和耐久性, AWS KMS 同时将操作负担和成本降至最低。
功能
标准密钥库支持所有 AWS KMS 功能。
操作
标准密钥存储提供最高的每秒交易量 (TPS) 速率和最低的延迟,非常适合高吞吐量应用程序和 AWS 服务集成。 AWS KMS 在标准密钥库中密钥的可用性提供 99.999% 的公共 SLA
责任模型
AWS 管理所有基础架构、扩展和维护。这为您带来了零运营负担,同时具有全面的可扩展性、可用性和耐久性。您仍需对 IAM 和 KMS 密钥策略负责,这些策略控制每个密钥的使用时间、地点、用户和方式。您还负责密钥标签、别名和生命周期事件,例如轮换、启用或禁用密钥以及安排其删除。
AWS KMS 带有导入密钥材料的标准密钥库
在标准密钥存储中,KMS 密钥使用 FIPS-validated AWS KMS HSM 生成其密钥材料。但是,您可以在没有密钥材料的情况下创建 KMS 密钥并导入自己的密钥(有时称为自带密钥 (BYOK))。这使您可以控制密钥材料的生成方式 AWS KMS、其可用时间以及何时删除。您可以在导入时设置到期时间,也可以立即调DeleteImportedKeyMaterial用撤消访问权限。
当您需要使用特定的系统或熵源生成密钥、在外部保留备份副本或按规定的时间表删除密钥材料时 AWS,导入密钥材料非常有用。
功能
导入的密钥材料支持除自动密钥轮换和后量子 (ML-DSA) 密钥之外的所有 AWS KMS 功能。
操作
就性能而言,具有导入密钥材料的密钥与标准密钥库中的密钥没有区别,因此它们适用于高吞吐量应用程序和服务集成。 AWS AWS KMS 针对密钥的可用性提供 99.999% 的公共 SLA
责任模型
除了前面描述的标准密钥存储责任外,您还要对导入的密钥材料的耐用性负责。 AWS 管理基础架构和扩展以提高可用性。您可以使用 DeleteImportedKeyMaterial API 立即删除密钥材料;删除与 KMS 密钥关联的任何密钥材料后,在重新导入与该密钥关联的密钥材料之前,密钥材料将无法用于加密操作。
AWS KMS 自定义密钥库
如果您需要直接拥有和管理用于存储和保护您的密钥材料的 HSM,则可以创建自定义密钥存储库。自定义密钥存储库是内部的密钥存储库 AWS KMS ,由外部的密钥管理器提供支持 AWS KMS,您拥有并管理该密钥管理器。自定义密钥存储将熟悉的密钥管理界面 AWS KMS 与在您自己的 HSM 中生成和使用密钥材料的功能相结合和扩展。当您在自定义密钥存储中使用 KMS 密钥时,将使用保存在您的 HSM 或密钥管理器中的密钥材料执行加密操作。
自定义密钥存储并不比标准密钥存储更安全,但它们具有不同(且更高)的管理和成本影响。无论您使用的是标准密钥存储库还是自定义密钥存储库,该服务都旨在确保任何人(包括 AWS 员工)都无法在未经您许可的情况下检索或使用您的纯文本密钥。
AWS KMS 支持两种类型的自定义密钥存储库:密 AWS CloudHSM 钥存储库和外部密钥存储库。
支持的功能
自定义密钥存储仅支持对称加密 KMS 密钥。其他 AWS KMS 功能(例如非对称密钥、HMAC 密钥、自动密钥轮换、多区域密钥和导入的密钥材料)在自定义密钥存储中不可用。
AWS CloudHSM 钥匙库
AWS 最初推出该 AWS CloudHSM 产品是为了帮助客户从本地 HSM 迁移到云中的单租户 HSM。通过扩展, AWS KMS 后来引入了自定义密钥存储库,供这些客户继续 AWS CloudHSM 在自己的应用程序中使用并通过 AWS 服务 集成 AWS KMS。
您可以配置 AWS KMS 为使用密 AWS CloudHSM 钥存储,在您拥有和管理的 AWS CloudHSM 集群中生成、存储和使用密钥。对的 AWS KMS 请求将转发到您的 AWS CloudHSM 集群。尽管 AWS CloudHSM 集群托管在内部 AWS,但它们提供由您拥有和管理的单租户 HSM 实例。由于 AWS CloudHSM 集群由您在外部管理 AWS KMS,因此 AWS CloudHSM 密钥存储可提供低 TPS,可用性、持久性和性能一致性取决于您的 AWS CloudHSM 集群。
如果您必须使用自定义密钥存储库,则 AWS CloudHSM 密钥存储比外部密钥存储更受青睐: AWS KMS 和您的 HSM 之间的连接保留在 AWS 网络内,因此 AWS 拥有其可用性和一致性,而不是 AWS 通过 XKS 代理在外部运行的路径。无论哪种方式,您仍然可以控制隔离钥匙材料并可以锁定对钥匙的访问权限的功能。
操作
AWS CloudHSM 密钥库提供比标准密钥更低的 TPS 和更高的延迟,可用性取决于您的集群配置,没有 SLA 覆盖范围。它们仅适用于低每秒交易量 (TPS) 工作负载,例如 Amazon Elastic Block Store 卷加密或 Amazon RDS 数据库加密,不得用于高 TPS 场景,包括数据分析服务、大容量亚马逊简单存储服务操作或 DynamoDB 工作负载。
责任模型
除了前面描述的标准密钥存储职责外,您还负责加密密钥的可用性和持久性以及 AWS CloudHSM 集群中操作的可扩展性。从设计上讲, AWS CloudHSM 对客户拥有的集群的配置和日志的可见性有限。这限制了代表您 AWS 解决密钥访问问题的能力。
外部密钥存储
您可以配置 AWS KMS 为使用外部密钥存储 (XKS),即在外部 AWS密钥管理系统中生成、存储和使用密钥材料。对 AWS KMS 的请求将通过网络中的 XKS 代理转发到外部托管系统。XKS 代理 API 规范是开放的,许多商业密钥管理供应商都支持该规范。由于 XKS 代理由您或外部第三方托管,因此在所有密钥存储选项中 AWS,外部密钥存储提供最低的 TPS 和最高的延迟,可用性、耐用性和性能一致性取决于您的外部基础架构。
不建议使用外部密钥存储。只有当你有明确且不可更改的要求将密钥材料保存在外面时,才考虑使用外部 AWS密钥存储。
操作
在所有密钥存储选项中,外部密钥存储提供最低的 TPS 和最高的延迟,可用性、耐用性和性能一致性取决于您的外部基础架构,并且没有 SLA 覆盖范围。它们仅适用于低每秒交易量 (TPS) 工作负载,例如 Amazon Elastic Block Store 卷加密或 Amazon RDS 数据库加密,不得用于高 TPS 场景,包括数据分析服务、大容量亚马逊简单存储服务操作或 DynamoDB 工作负载。
责任模型
除了前面描述的标准密钥存储职责外,您还负责加密密钥的可用性和持久性以及包括 XKS 代理和 HSM 在内的外部密钥管理器的可扩展性。由于与您的 XKS 代理 AWS 之间的通信路径在 AWS 网络之外运行,因此对该路径上的网络问题的可见性 AWS 有限,并且无法代表您进行故障排除。