一般性问题
问:什么是 Amazon Key Management Service(KMS)?
Amazon KMS 是一种托管服务,可帮助您轻松加密数据。Amazon KMS 为您提供高度可用的密钥存储、管理和审计解决方案,以加密您自己的应用程序中的数据,并控制跨亚马逊云科技服务存储数据的加密。
Amazon KMS 是一种托管服务,可帮助您轻松加密数据。Amazon KMS 为您提供高度可用的密钥存储、管理和审计解决方案,以加密您自己的应用程序中的数据,并控制跨亚马逊云科技服务存储数据的加密。
问:为什么应该使用 Amazon KMS?
如果您是需要为应用程序中数据进行加密的开发人员,则应使用配有 Amazon KMS 支持的 亚马逊云科技加密 SDK,以便轻松使用和保护加密密钥。如果您是 IT 管理员,正在寻求可扩展的密钥管理基础设施来为开发人员以及不断增多的应用程序提供支持,则应使用 Amazon KMS 来降低许可成本和运营负担。如果您负责出于监管或合规目的证明数据安全性,则应使用 Amazon KMS 来验证数据在使用和存储数据的应用程序之间是否一致地进行了加密。
问:如何开始使用 Amazon KMS?
要开始使用 Amazon KMS,最简单的方法就是选择使用亚马逊云科技托管的主密钥在受支持的亚马逊云科技服务中加密您的数据,系统会在您的账户中自动为每项服务创建这些主密钥。如果要完全控制密钥的管理(包括跨账户或服务共享访问权限的能力),您可以在 KMS 中创建自己的主密钥。您还可以直接在自己的应用程序中使用在 KMS 中创建的主密钥。您可以从 KMS 控制台访问 Amazon KMS,该控制台在亚马逊云科技控制台的 亚马逊云科技服务主页的“安全性、身份与合规性”组下。还可以通过 Amazon KMS 命令行界面或 Amazon SDK 以编程方式直接访问 KMS API。通过使用 Amazon Encryption SDK,KMS API 可间接用于加密您自己的应用程序中的数据。请访问 入门页面,了解更多信息。
问:Amazon KMS 提供了哪些密钥管理功能?
您可以在 Amazon KMS 中执行以下密钥管理功能:
• 使用唯一别名和描述创建密钥
• 定义哪些 IAM 用户和角色可以管理密钥
• 定义哪些 IAM 用户和角色可以使用密钥来加密和解密数据
• 选择让 Amazon KMS 每年自动轮换您的密钥
• 暂时禁用密钥,以便任何人都无法使用它们
• 重新启用已禁用的密钥
• 删除不再使用的密钥
• 通过在 Amazon CloudTrail 中检查日志来审核密钥的使用
问:Amazon KMS 是如何工作的?
Amazon KMS 允许您集中地管理密钥和安全地存储密钥。这些密钥称为客户主密钥或 CMK。这些主密钥由政府认可的硬件安全模块(HSM)生成并进行保护,并且仅在这些模块中以纯文本形式使用。您可以使用这些主密钥将数据直接提交给 KMS 进行加密或解密。您可以设置这些密钥的使用政策,以确定哪些用户可以使用它们在哪些情况下加密和解密数据。
Amazon KMS 与亚马逊云科技服务和客户端工具包集成,后者使用称作信封加密的方法加密数据。通过这种方法,KMS 生成用于加密数据的数据密钥,并使用 KMS 中的主密钥对其进行加密。KMS 不保留或管理数据密钥。亚马逊云科技服务对您的数据进行加密,并存储数据密钥的加密副本及其保护的数据。如果您需要亚马逊云科技服务解密您的数据,它会代表您请求 KMS 先使用正确的主密钥解密数据密钥。如果从亚马逊云科技服务请求数据的用户有权根据主密钥政策进行解密,则该服务将从用于解密数据的 KMS 接收解密后的数据密钥。所有要使用主密钥的请求都会记录在 Amazon CloudTrail 中,以便您可以了解谁在哪些情况下使用了哪个主密钥。
问:如果使用 Amazon KMS,我的数据在哪加密?
有关如何使用 Amazon KMS 加密数据的方案通常有三种。首先,您可以通过 KMS API 直接使用存储在 KMS 中的主密钥加密和解密数据。其次,您可以选择让亚马逊云科技服务使用存储在 KMS 中的主密钥加密您的数据。在这种情况下,使用受 KMS 中的主密钥保护的数据密钥对数据进行加密。第三,您可以使用与亚马逊云科技 KMS 集成的亚马逊云科技加密 SDK 在您自己的应用程序中执行加密,无论它们是否在亚马逊云科技网络中运行。
问:亚马逊云科技有哪些云服务与 Amazon KMS 实现了集成?
Amazon KMS 与一系列亚马逊云科技服务无缝集成,使得加密这些服务中的数据就像勾选方框一样简单。在某些情况下,默认使用存储在 KMS 中但由亚马逊云科技服务拥有和管理的密钥对数据进行加密。在其他情况下,主密钥由您在账户中拥有和进行管理。某些服务可以让您选择是自己管理密钥,还是让该服务代您管理密钥。请参阅当前与 KMS 集成的 亚马逊云科技服务列表。
问:为什么要使用信封加密? 为什么不直接将数据发送到 Amazon KMS 进行加密?
虽然 Amazon KMS 支持发送小于 4 KB 的数据以直接加密,但信封加密可以带来显著的性能优势。如果使用 Amazon KMS 直接加密数据,则必须通过网络传输数据。信封加密可以减少网络负载,因为只能通过网络请求和提供更小的数据密钥。数据密钥可在您的应用程序中本地使用或用于加密亚马逊云科技服务,无需将整个数据块发送到 KMS,避免遇到网络延迟。
问:我创建的主密钥和其他亚马逊云科技服务自动为我创建的主密钥之间有什么区别?
如果您希望亚马逊云科技服务代表您加密亚马逊云科技数据,您可以指定要使用的特定客户主密钥(CMK)。这些被称为客户管理的 CMK,您拥有完全控制权。您可以为每个密钥定义访问和生命周期策略,并且可以根据需要向其他账户授予使用权限。每月您需要为您账户中的其中一个密钥付费,并且需要为 KMS API 请求付费。
如果您未指定客户管理的 CMK,则在您首次尝试在该服务中创建加密资源时,相关服务将创建受亚马逊云科技管理的 CMK。亚马逊云科技代表您管理受亚马逊云科技管理的 CMK 的访问和生命周期策略;您不能修改有关这些类型的密钥的任何内容。此外,除受亚马逊云科技管理的 CMK 所在账户的用户之外,其他用户无法使用此密钥。您可以验证账户中的亚马逊云科技托管密钥,所有使用情况都会记录在 Amazon CloudTrail 中,但您无法直接控制密钥本身。您不需要为账户中存在的任何这些密钥付费。但是,您需要为 KMS API 请求付费。
问:为什么要创建自己的客户主密钥?
在 Amazon KMS 中创建自己的 CMK,可以提供比使用受亚马逊云科技管理的 CMK 更多的控制权。创建客户管理的 CMK 时,您可以为密钥定义别名和描述,还可以选择让密钥每年自动轮换一次。您还可以定义密钥的所有权限以控制谁可以使用或管理该密钥,包括账户之外的用户。
在 Amazon KMS 中创建自己的 CMK,可以提供比使用受亚马逊云科技管理的 CMK 更多的控制权。创建客户管理的 CMK 时,您可以为密钥定义别名和描述,还可以选择让密钥每年自动轮换一次。您还可以定义密钥的所有权限以控制谁可以使用或管理该密钥,包括账户之外的用户。
问:是否可以将密钥导入 Amazon KMS?
可以。您可以将密钥的副本从您自己的密钥管理基础设施导入到 Amazon KMS,并将其与任何集成的亚马逊云科技服务一起使用,也可以从您自己的应用程序中使用它。您不能将非对称 CMK 导入到 Amazon KMS。
问:是否可以轮换密钥?
可以。您可以选择让 KMS 在可配置的天数范围内 [从 90 天到 2560 天(7 年)] 自动轮换 KMS 密钥,也可以使用 RotateKeyOnDemand API 调用即时密钥轮换(每个密钥的生命周期限制为 10 次按需轮换)。
问:轮换 Amazon KMS 中的密钥后,是否必须重新加密数据?
如果您选择让 Amazon KMS 自动轮换密钥,则无需重新加密数据。Amazon KMS 会自动保留以前版本的密钥,用于解密通过旧版密钥加密的数据。Amazon KMS 中针对密钥的所有新加密请求都将通过该密钥的最新版本加密。
如果您选择让 Amazon KMS 自动轮换密钥,则无需重新加密数据。Amazon KMS 会自动保留以前版本的密钥,用于解密通过旧版密钥加密的数据。Amazon KMS 中针对密钥的所有新加密请求都将通过该密钥的最新版本加密。
问:是否可以从 Amazon KMS 删除 CMK?
可以。您可以为客户管理的 CMK 及其关联的元数据安排删除,可配置的等待时间为 7 到 30 天。在等待期间,您可以验证删除密钥对应用程序和依赖它的用户的影响。默认等待期限为 30 天。您可以在等待期间取消密钥删除。如果计划删除密钥,则在等待期间取消删除之前,无法使用该密钥。如果您不取消删除,则将在可配置的等待期限结束时删除密钥。删除密钥后,您将无法再使用它。受删除的主密钥保护的所有数据将无法访问。
问:是否可以使用 Amazon KMS 来帮助管理亚马逊云科技服务之外的数据加密?
可以。Amazon SDK、亚马逊云科技加密 SDK、Amazon DynamoDB Encryption Client 和 Amazon S3 Encryption Client 均支持 Amazon KMS,无论您自己的应用程序在哪里运行,都可以在其中加密数据。有关更多信息,请访问 在亚马逊云科技网站上进行开发。
问:是否对可在 Amazon KMS 中创建的密钥的数量有限制?
默认情况下,您在每个区域的每个账户下最多可以创建 1 万个 CMK。这是一种软限制,如果您愿意,可以提高该限额。由于启用和禁用的 CMK 都计入限额,我们建议删除不再使用的密钥。代表您创建且可以在受支持的亚马逊云科技服务中使用的受亚马逊云科技管理的 CMK 不会计入此限额。在 CMK 下可以生成和保护的数据密钥的数量没有限制。要请求提升客户主密钥的限额,您可以访问
亚马逊云科技支持中心。
问:Amazon KMS 是否提供服务等级协议(SLA)?
可以。如果客户的月度正常运行时间百分比在任何账单周期内低于我们的服务承诺,Amazon KMS SLA 将提供服务抵扣金。
计费
问:使用 Amazon KMS 如何收费和计费?
使用 Amazon KMS,您只需按实际用量付费,而且没有最低费用。开始使用服务时,没有安装费,也无需签订长期使用合约。我们将在月底自动向您收取当月的使用费。
使用 Amazon KMS,您只需按实际用量付费,而且没有最低费用。开始使用服务时,没有安装费,也无需签订长期使用合约。我们将在月底自动向您收取当月的使用费。
您需要为您创建的所有客户管理的密钥(CMK),以及每月向服务发出的 API 请求付费。您无需为代表您创建的受亚马逊云科技管理的 CMK 付费,但每次使用这些 CMK 时都会向您收取费用。
有关最新的定价信息,请访问 Amazon KMS 定价页面。
问:价格是否含税?
除非另行说明,否则我们的价格不包括适用的税费(包括适用销售税)。
安全性
问:谁可以在 Amazon KMS 中使用和管理我的密钥?
Amazon KMS 会强制执行您定义的访问和生命周期策略。您选择允许您账户或其他账户的 Amazon Identity and Access Management(IAM)用户和角色使用和管理您的密钥。
Amazon KMS 会强制执行您定义的访问和生命周期策略。您选择允许您账户或其他账户的 Amazon Identity and Access Management(IAM)用户和角色使用和管理您的密钥。
问:亚马逊云科技如何保护我在 Amazon KMS 中创建的主密钥?
Amazon KMS 的设计使得任何人(包括服务运营商)都无法从服务中检索纯文本主密钥。该服务使用由政府认可的硬件安全模块(HSM),保护密钥的机密性和完整性。您的主密钥从不会在创建它们的亚马逊云科技区域之外传输,并且只能在该区域内使用。
问:使用的 HSM 是否经过 FIPS 140-2 验证?
没有,在由光环新网运营的亚马逊云科技中国(北京)区域和由宁夏西云数据运营的亚马逊云科技中国(宁夏)区域使用的 HSM 经过了中国政府密码主管部门认证,但未经 FIPS 140-2 验证。
问:Amazon KMS 如何保护我在应用程序中导出和使用的数据密钥?
您可以请求 Amazon KMS 生成数据密钥并将其返回以便在您自己的应用程序中使用。纯文本数据密钥将与根据您定义的主密钥加密的副本一起返回。这样您就可以在使用纯文本数据密钥进行加密后安全地存储加密的数据密钥以及您的数据。您的加密数据密钥(以及您的源数据)只能由具有原始主密钥使用权限的用户解密,用于解密加密的数据密钥。
问:是否可以从 Amazon KMS 导出主密钥并在我自己的应用程序中使用?
不可以。主密钥仅在 Amazon KMS 中创建和使用,以帮助确保其安全性,使您的政策得到一致执行,并提供其使用的集中日志。
问:我的密钥存储在哪个地理区域?
Amazon KMS 生成的主密钥仅在创建它们的区域中存储和使用。不能将它们传输到其他区域。
问:如何判断谁在 Amazon KMS 中使用或更改了我的密钥配置?
Amazon CloudTrail 中的日志将显示所有 KMS API 请求,包括管理请求(如创建、轮换、禁用、策略编辑)和加密请求(如加密/解密)。在您的账户中启用 Amazon CloudTrail 即可查看这些日志。