一般性问题

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

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

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

问:KMS 在哪些区域提供?
可用性如我们的全球按区域列出的产品和服务页面所列。

问:AWS KMS 提供哪些密钥管理功能?
您可以在 AWS KMS 中执行以下密钥管理功能:

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

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

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

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

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

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

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

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

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

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

问:我可以导入什么类型的密钥?
您可以导入 256 位对称密钥。

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

问:我导入的密钥和 AWS KMS 为我生成的密钥有什么区别?
您导入的密钥和 AWS KMS 为您创建的密钥有两大区别:

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

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

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

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

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

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

问:如果我导入的密钥材料到期,或者被我意外删除,应该怎么办?
您可以在原客户主密钥下将设有有效到期时间的密钥材料副本重新导入 AWS KMS,以便使用。

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

问:我能否使用 AWS KMS 帮助加密 AWS 云服务之外的数据?
可以。AWS KMS 在 AWS 开发工具包、AWS 加密开发工具包和 Amazon S3 加密客户端中均受支持,可促进您自己的应用程序(无论其在何处运行)内的数据加密。Java、Ruby、.NET 和 PHP 平台中的 AWS 开发工具包支持 AWS KMS API。访问 AWS 上的开发网站了解更多信息。

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

计费

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

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

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

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

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

安全性

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

问:AWS 如何保护我在 AWS KMS 内部创建的主密钥?
AWS KMS 旨在确保包括 AWS 员工在内的任何人都无法从该服务中检索您的纯文本密钥。该服务使用经 FIPS 140-2 验证的硬件安全模块 (HSM) 保护您的密钥的机密性和完整性,无论您是请求 AWS KMS 代表您创建密钥,还是将密钥导入该服务中。您的纯文本密钥永远不会被写入磁盘中,只会在执行您请求的加密操作期间在 HSM 的易失性内存中使用它。AWS KMS 密钥从不会传输到创建其所在的 AWS 区域之外。对服务主机上软件及 AWS KMS HSM 固件的更新由 Amazon 中独立小组查看和审核的多方访问控件来控制。

有关安全控件的更多详细信息,请查看 AWS KMS 加密详情白皮书。您还可以查看适用于 AWS KMS HSM 的 FIPS 140-2 证书以及相关联的安全策略,以详细了解 AWS KMS HSM 对 FIPS 140-2 的安全要求的满足情况。此外,您还可以请求下载一份由 AWS Artifact 提供的服务组织控制 (SOC) 报告,以详细了解 AWS KMS 用于保护您的主密钥的安全控件。

问:如何迁移现有的 AWS KMS 主密钥以使用经 FIPS 140-2 验证的 HSM?
对于 AWS KMS 中的所有主密钥,都自动使用经 FIPS 140-2 验证的 HSM 来保护,无论其创建日期或来源如何。您不需要执行任何操作即可使用经 FIPS 140-2 验证的 HSM。

问:哪些 AWS 区域拥有经 FIPS 140-2 验证的 HSM?
在所有提供 AWS KMS 的 AWS 区域,经 FIPS 140-2 验证的 HSM 均可用。

问:FIPS 140-2 对 AWS KMS HSM 的验证中包括什么?
有关此验证的详细信息,请参阅适用于 AWS KMS HSM 的 FIPS 140-2 证书以及相关的安全策略

问:经 FIPS 140-2 验证的终端节点和 AWS KMS 中经 FIPS 140-2 验证的 HSM 有何区别?
AWS KMS 是两层式服务。API 终端仅使用支持完全正向保密的 TLS 密码套件通过 HTTPS 连接接受客户端请求。这些 API 终端会先验证并授权请求,然后将加密操作请求传递至 AWS KMS HSM。

问:如何使用经 FIPS 140-2 验证的终端节点向 AWS KMS 发出 API 请求?
应将您的应用程序配置为连接到独特区域的经 FIPS 140-2 验证的 HTTPS 终端节点。AWS KMS 的经 FIPS 140-2 验证的 HTTPS 终端节点由 OpenSSL FIPS 对象模块提供技术支持。您可以在以下位置查看 OpenSSL 模块的安全策略:https://www.openssl.org/docs/fips/SecurityPolicy-2.0.13.pdf。经 FIPS 140-2 验证的 API 终端节点在所有提供 AWS KMS 的商业区域均可用。

问:使用 AWS KMS 就能符合支付卡行业数据安全标准 (PCI DSS 3.1) 中的加密和密钥管理要求吗?
是的。经过验证,AWS KMS 拥有功能和安全控件,可帮助您满足加密和密钥管理要求(主要涉及 PCI DSS 3.1 的第 3.5 和 3.6 节)。

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

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

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

问:我能否从 AWS KMS 中导出一个主密钥并将其用于我自己的应用程序中?
不能。为帮助确保主密钥的安全,使您的策略能得到一致性实施并提供集中化的该密钥使用日志,只能在 AWS KMS 中创建和使用主密钥。

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

问:我怎么知道谁在 AWS KMS 中使用或更改了我的密钥的配置?
AWS CloudTrail 中的日志将告诉您有关您的主密钥的请求,包括管理请求(例如创建、轮换、禁用和策略编辑)和加密请求(例如加密/解密)。在您的账户中启用 AWS CloudTrail 以查看这些日志。

问:AWS KMS 与 AWS CloudHSM 相比如何?
AWS CloudHSM 在 Amazon Virtual Private Cloud (VPC) 中提供了一个经 FIPS 140-2 等级 3 验证的单租户 HSM 集群,以存储和使用您的密钥。您对如何通过独立于 AWS 的身份验证机制使用您的密钥拥有独家控制权。您与 AWS CloudHSM 集群中密钥的交互方式与您与 Amazon EC2 中运行的应用程序的交互方式相似。您可以通过 PKCS#11、Java JCE 或 Microsoft CNG 界面使用 AWS CloudHSM 支持各种使用案例,如数字权限管理 (DRM)、公有密钥基础设施 (PKI)、文档签名和加密函数。

AWS KMS 使您可以控制您的应用程序和受支持 AWS 产品通过单个控制台在全世界多个区域使用的加密密钥。该服务使用经 FIPS 140-2 验证的 HSM 保护您密钥的安全。在 AWS KMS 中对您所有的密钥进行集中化管理使您可以实施关于谁能在何种条件下使用您的密钥、它们何时轮换以及谁能管理它们的策略。AWS KMS 与 AWS CloudTrail 的集成使您能够审计您的密钥使用情况,以支持法规和合规性活动。如果您要直接调用服务 API,请使用 AWS 开发工具包通过您的应用程序与 AWS KMS 交互,如果您要执行客户端加密,请使用 AWS 加密 SDK 通过您的应用程序与 AWS KMS 交互。

Product-Page_Standard-Icons_01_Product-Features_SqInk
了解有关定价的更多信息

查看定价示例并计算成本。

了解更多 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
注册免费账户

立即享受 AWS 免费套餐。 

注册 
Product-Page_Standard-Icons_03_Start-Building_SqInk
开始在控制台中构建

在 AWS 控制台中使用 AWS Key Management Service 开始构建。

登录