试用 AWS Key Management Service

AWS Certificate Manager
或登录到控制台

创建您的 Amazon Web Services 免费账户,并接收 12 个月的免费产品和服务访问权

查看 AWS 免费套餐详细信息 »


AWS KMS 是一项托管的加密服务,可让您轻松加密您的数据。AWS KMS 为您提供可用性高的密钥存储、管理和审计解决方案,从而在 AWS 服务之间与您自己的应用程序内加密您的数据。

如果您是一个需要加密应用程序中的数据的开发人员,您应该将 AWS 软件开发工具包用于 AWS KMS 支持,以轻松使用和保护加密密钥。如果您是一个 IT 管理员,您想找到一个可扩展的密钥管理基础设施来支持您的开发人员以及越来越多的应用程序,您应该使用 AWS KMS 降低您的许可成本和运营负担。如果您负责证明数据安全性以实现法规或合规性之目的,您应该使用 AWS KMS 来验证数据在所使用和存储的应用程序间进行了一致加密。

开始使用 AWS KMS 的最简单的方式是选中复选框以在受支持的 AWS 服务中加密您的数据,并为每项服务使用您的账户中创建的默认密钥。如果您想进一步控制这些密钥的管理,您可以在 AWS KMS 中创建密钥,对它们进行分配以在创建加密资源时将其用于受支持的 AWS 服务,并将它们直接用于您自己的应用程序中。可以通过 AWS Identity and Access Management (IAM) 控制台的“加密密钥”部分访问 AWS KMS 以进行基于 Web 的访问,并且可以通过 AWS KMS 命令行接口或 AWS 软件开发工具包访问 AWS KMS 以进行编程访问。访问入门页面了解更多。

可用性如我们的全球按区域产品和服务页面所列。

您可以在 AWS KMS 中执行以下密钥管理功能:

  • 利用唯一的别名和描述创建密钥
  • 导入您自己的密钥
  • 定义哪些 IAM 用户和角色可以管理密钥
  • 定义哪些 IAM 用户和角色可以使用密钥加密和解密数据
  • 选择让 AWS KMS 按年自动轮换密钥
  • 临时禁用密钥,使其不能被任何人使用
  • 重新启用已禁用的密钥
  • 删除不再使用的密钥
  • 通过检查 AWS CloudTrail 中的日志审计密钥的使用

AWS KMS 可使您集中管理和安全存储您的密钥。您可以在 KMS 中生成密钥,或者从自己的密钥管理基础设施中导入。您可以在应用程序和受支持的 AWS 服务中使用这些密钥来保护自己的数据,但该密钥不会脱离 KMS AWS。您在由您控制的密钥下提交数据至 AWS KMS 中以进行加密或解密。您在这些密钥上设置使用策略,以决定哪些用户可以用它们来加密和解密数据。使用这些密钥的所有请求都记录在 AWS CloudTrail 中,因此您可以了解谁在何时用了哪个密钥。

您可以使用 AWS KMS 帮助在您自己的应用程序中本地加密数据,或在受支持的 AWS 服务内加密数据。您可以将 AWS 软件开发工具包与 AWS KMS 支持配合使用,以在您的应用程序运行的任何地方进行加密。您还可以请求受支持的 AWS 服务在存储数据时加密该数据。AWS CloudTrail 提供访问日志,从而使您能够审计您的密钥在任一场景中的使用方式。

AWS Key Management Service 与许多其他 AWS 服务无缝集成,使在这些服务中加密数据就像打勾和选择要使用的主密钥一样简单。有关当前与 KMS 集成的 AWS 服务的列表,请参阅产品详情页面。AWS CloudTrail 日志记录了所有在集成服务中使用密钥的行为。有关集成服务如何使用 AWS KMS 的更多信息,请参阅 AWS KMS 开发人员指南

与 AWS KMS 集成的 AWS 云服务使用一个称为信封加密的方法来保护您的数据。信封加密是一种优化方法,使用两种不同的密钥加密数据。为加密每一份数据或资源,AWS 服务会生成和使用一个数据密钥。该数据密钥根据您在 AWS KMS 中定义的主密钥加密。然后,已加密的数据密钥会由 AWS 服务进行存储。当您需要该 AWS 服务解密数据时,已加密的数据密钥会传输到 AWS KMS 中并在原先进行加密的主密钥下进行解密,然后该服务便会解密您的数据。

由于 AWS KMS 支持发送小于 4 KB 的数据进行加密,信封加密可提供巨大的性能优势。当您使用 KMS 直接加密数据时,数据必须通过网络传输。信封加密可为您的应用程序或 AWS 云服务降低网络负载。只有通过 KMS 对数据密钥的请求和履行必须通过网络。由于数据密钥始终以加密形式存储,因此在您需要它进行操作时可轻松安全地分配该密钥,而无需担心它会被泄露。加密的数据密钥会发送到 AWS KMS 中并使用主密钥进行解密,从而最终允许您解密数据。数据密钥直接提供在应用程序中,您不必将整个数据块发送到 AWS KMS 中和忍受网络延迟。

当您希望 AWS 服务为您加密数据时,可以选择使用特定的主密钥。各项服务的特定默认主密钥在您的账户中创建,为方便您第一次尝试创建加密的资源。此密钥受 AWS KMS 管理,但您可以一直在 AWS CloudTrail 中审计其使用情况。或者,您可以在 AWS KMS 中创建客户主密钥,然后将其用于您自己的应用程序或受支持的 AWS 服务中。AWS 将在需要时更新默认主密钥的策略,以自动启用受支持服务的新功能。AWS 不修改您所创建密钥的策略。

在 AWS KMS 中创建一个密钥会让您拥有的控制权比默认服务主密钥给您的高。在创建客户主密钥时,您可以选择使用由 KMS 代表您生成的密钥材料或者导入自己的密钥材料,定义别名、描述,并选择让该密钥每年自动轮换一次(如果该密钥受 KMS 生成的密钥材料支持)。您还可以规定该密钥的权限,以对谁能使用和管理该密钥予以控制。该密钥的管理和使用活动可提供到 AWS CloudTrail 中进行审计。

可以。您可以从自己的密钥管理基础设施中向 KMS 导入密钥副本,并通过任意集成的 AWS 服务或在自己的应用程序中对其加以使用。

您可以使用导入的密钥更好地控制 KMS 中密钥的创建、生命周期管理和持久性。导入的密钥设计用于帮助您满足合规性要求,其中可能包括能够在您的基础设施中生成或保留安全的密钥副本,以及能够在不需要密钥时按需从 AWS 基础设施中删除导入的密钥副本。

您可以导入 256 位对称密钥。

在导入过程中,您必须使用两种 RSA PKCS#1 方案之一将密钥用 KMS 提供的公有密钥包裹。这可确保您的加密密钥仅能被 KMS 解密。

您导入的密钥和 KMS 为您创建的密钥有两大区别:
  1. 您必须在您的密钥管理基础设施中安全地保留一份导入密钥的副本,以便随时重新导入这些密钥。在您计划删除密钥之前,AWS 可一直确保 KMS 代表您生成的密钥的可用性、安全性和持久性。
  2. 您可以为导入的密钥设置到期时间,当到期时间过后,系统会自动从 KMS 中删除该密钥。您也可以按需删除导入的密钥,而无需删除底层客户主密钥。另外,您也可以随时使用导入的密钥手动禁用或删除客户主密钥。KMS 生成的密钥仅可予以禁用或计划删除,而无法设置到期时间。

有。您可以选择让 KMS 每年自动轮换由 KMS 代表您生成的密钥。导入的密钥不支持自动密钥轮换。如果您选择将密钥导入 KMS,则可以随时按需手动轮换这些密钥。

如果您选择让 KMS 自动轮换由 KMS 代表您生成的密钥,则无需重新加密数据。AWS KMS 会保留旧版密钥,以用于根据旧版密钥解密已加密的数据。对 AWS KMS 中密钥的所有新加密请求都会按照最新版密钥加密。

如果您手动轮换密钥,根据您应用程序的配置,您可能需要重新加密数据。 

能。您可以设定计划以删除在 KMS 中创建的客户主密钥和相关元数据,可配置的等待期为 7 到 30 天。该等待期让您能够验证删除密钥会对依赖它的应用程序和用户产生何种影响。默认的等待期为 30 天。在等待期内,您可以取消删除操作。计划删除的密钥将无法使用,直到您在等待期内取消删除操作。如果您不取消删除操作,在可配置的等待期结束时,密钥会被删除。一旦密钥被删除,您就无法再使用它。使用被删除的主密钥保护的所有数据将无法访问。

对于使用导入密钥材料的客户主密钥,您可以通过两种方式删除密钥材料,而无需删除客户主密钥 ID 或元数据。第一,您可以按需删除无等待期的导入密钥材料。第二,在将密钥材料导入客户主密钥中时,您可以规定一个到期时间,设定 AWS 在删除您导入的密钥材料前可以使用其多久。如果您需要再次使用,则可以将密钥材料重新导入客户主密钥。

您可以在原客户主密钥下重新将设有有效到期时间的密钥材料副本重新导入 KMS,以便使用。

会。将密钥导入客户主密钥之后,您每隔几分钟便会收到一项 Amazon CloudWatch 指标,倒计时导入密钥的到期时间。如果客户主密钥下的导入密钥到期,您还会收到一个 Amazon CloudWatch 事件。您可以构建逻辑来响应这些指标或事件,自动重新导入使用新到期时间的密钥,以免出现可用性风险。 

有。AWS KMS 在 AWS 软件开发工具包、AWS 加密软件开发工具包和 Amazon S3 加密客户端中均受支持,可促进您自己的应用程序(无论其在何处运行)内的数据加密。Java、Ruby、.NET 和 PHP 平台中的 AWS 软件开发工具包支持 AWS KMS API。访问 AWS 上的开发网站了解更多信息。

对于每个区域的每个账户,您最多可以创建 1000 个客户主密钥。启用和禁用的客户主密钥都会被计入该限制,因此,我们建议您删除不再使用的禁用密钥。代您创建的用于受支持的 AWS 服务的默认主密钥不在此限值之列。对于可使用主密钥传送并用于您的应用程序中或被 AWS 服务用于代您加密数据的数据密钥,其数量没有限制。您可以通过访问 AWS 支持中心请求提高客户主密钥的数量限制。

使用 AWS KMS,您仅需按用量付费,而且没有最低费用。开始使用服务时,没有安装费,用户无需对服务的使用签订任何长期使用期限合约。每个月底将自动向您的信用卡收取当月使用费。

您要为您创建的所有客户主密钥和每月超出免费套餐的提交给服务的 API 请求支付费用。

要了解当前定价信息,请访问 AWS KMS 定价页面

有。使用 AWS 免费使用套餐,您可以在所有区域免费开始使用 AWS KMS。代您创建的默认主密钥免费存储在您的账户中。同时还有每月提供至 AWS KMS 的免费请求数量的免费使用套餐。要了解当前定价信息,包括免费套餐,请访问 AWS KMS 定价页面

除非另行说明,否则我们的价格不包括适用的税费和关税 (包括增值税和适用销售税)。使用日本账单地址的客户若要使用 AWS,则需缴纳日本消费税。您可以在此了解更多信息。

AWS KMS 执行您规定的使用和管理策略。您选择允许您账户或其他账户中的 AWS Identity and Access Management (IAM) 用户和角色使用并管理您的密钥。

AWS KMS 的设计确保没人能访问您的主密钥。该服务构建于设计用于通过大量固化技术保护您的主密钥的系统上,例如,从不将明文主密钥存储在磁盘中,不将它们持续存储在内存中,以及限制哪些系统可以连接设备。该服务上更新软件的所有访问权都通过多级审批过程控制,该过程由 Amazon 内部独立的小组审计和审查。

有关安全控件的更多详细信息,请查看 AWS KMS 加密详情白皮书。此外,您还可以请求获得一份由 AWS Compliance 提供的服务组织控制 (SOC) 报告,以了解 AWS 用于保护您的数据和主密钥的安全控件。

 

能。经过验证,KMS 拥有功能和安全控件,可帮助您满足加密和密钥管理要求(主要涉及 PCI DSS 3.1 的第 3.5 和 3.6 节)。

要详细了解 AWS 中符合 PCI DSS 规定的服务,您可以阅读 PCI DSS 常见问题

您可以请求 AWS KMS 生成可返回用于您自己的应用程序的数据密钥。数据密钥按照您在 AWS KMS 中定义的主密钥加密,从而使您可以安全地存储加密的数据密钥与您的加密数据。您的加密数据密钥(以及您的源数据)只能由有权使用加密数据密钥时所用的原主密钥的用户解密。

AWS KMS 中的主密钥长度为 256 位。数据密钥的生成长度可为 128 位或 256 位,并可按照您定义的主密钥加密。AWS KMS 还让您能够生成您定义的任何长度的随机数据,以供加密使用。

不能。为帮助确保主密钥的安全,使您的策略能得到一致性实施并提供集中化的该密钥使用日志,只能在 AWS KMS 中创建和使用主密钥。

密钥只存储并使用在其创建的区域。它们无法传输到另一区域。例如,创建于中欧(法兰克福)区域的密钥只能存储并使用于中欧(法兰克福)区域。

AWS CloudTrail 中的日志将告诉您有关您的主密钥的请求,包括管理请求(例如创建、轮换、禁用和策略编辑)和加密请求(例如加密/解密)。在您的账户中启用 AWS CloudTrail 以查看这些日志。

AWS CloudHSM 在 Amazon Virtual Private Cloud (VPC) 中提供了一个 FIPS 140-2 等级 3 验证单租户 HSM,以存储和使用您的密钥。您对您的密钥和将密钥与 AWS CloudHSM 配合使用的应用程序软件有完全控制权。此外,您还可以使用 AWS CloudHSM 来支持各种使用案例和应用程序,如数字版权管理 (DRM)、公钥基础设施 (PKI)、非对称加密功能,文档签名和高性能 VPC 内部加密加速。

AWS KMS 可使您控制您的应用程序和受支持 AWS 服务通过单个控制台在全世界多个区域使用的加密密钥。在 AWS KMS 中对您所有的密钥进行集中化管理可使您实施谁能使用您的密钥,它们何时轮换以及谁能管理它们的策略。AWS KMS 与 AWS CloudTrail 的集成使您能够审计您的密钥使用情况,以支持法规和合规性活动。