概览

借助 AWS Key Management Service (KMS),您可以集中控制用于保护数据的加密密钥。 该服务已与其他 AWS 服务实现集成,这使得您能够轻松加密您在这些服务中存储的数据,并控制对用于解密此数据的密钥的访问权限。AWS KMS 也已与 AWS CloudTrail 实现集成,这使得您能够审核谁何时在哪些资源上使用了哪些密钥。AWS KMS 让开发人员能够直接或通过使用 AWS SDK 轻松在其应用程序代码中添加加密功能或数字签名功能。AWS Encryption SDK 支持使用 AWS KMS 作为那些需要在其应用程序本地加密/解密数据的开发人员的根密钥提供者。

集中式密钥管理

AWS KMS 使您可以对密钥的生命周期和权限进行集中控制。您可以随时创建新密钥,并且可以控制谁可以管理密钥以及谁可以使用它们。作为使用由 AWS KMS 生成的密钥的替代方法,您可以从自己的密钥管理基础设施中导入密钥,或者使用 AWS CloudHSM 集群中存储的密钥。您可以选择每年自动轮换一次 AWS KMS 中生成的根密钥,而无需重新加密之前加密的数据。该服务可自动使旧版本的根密钥保持可用,以便用于解密之前加密的数据。您可以管理根密钥并通过 AWS 管理控制台或使用 AWS 开发工具包或 AWS 命令行界面 (CLI) 审核其使用情况。

* 用于导入密钥的选项不适用于非对称密钥。

AWS 服务集成

AWS KMS 与 AWS 服务集成以对静态数据进行加密,或者利用 AWS KMS 密钥进行签名和验证。为了保护静态数据,集成的 AWS 服务利用信封加密(其中数据密钥用于加密数据),而其本身通过存储在 AWS KMS 中的 KMS 密钥进行加密。对于签名和验证,集成的 AWS 服务利用 AWS KMS 中非对称 KMS 密钥的密钥对。有关集成的服务如何利用 AWS KMS 的更多详细信息,请参阅您的 AWS 服务的相关文档。

在您的 AWS 账户中可以创建两种类型的 KMS 密钥资源:(i) 在需要时可以自动创建 AWS 托管的 KMS 密钥。您可以列示或清点 AWS 托管的 KMS 密钥,并在 AWS CloudTrail 中接收其使用记录,但资源的权限由创建以供其使用的 AWS 服务托管。(ii) 客户托管的 KMS 密钥使您可以最大程度地控制密钥的权限和生命周期。

与 AWS KMS 集成的 AWS 服务
Alexa for Business[1] Amazon Forecast Amazon Nimble Studio AWS CloudHSM[2]
Amazon AppFlow Amazon Fraud Detector Amazon Personalize AWS CloudTrail
Amazon Athena Amazon FSx Amazon QLDB AWS CodeArtifact
Amazon Aurora Amazon GuardDuty Amazon Redshift AWS CodeBuild
Amazon CloudWatch Logs Amazon HealthLake Amazon Rekognition AWS CodeCommit[1]
Amazon CloudWatch Synthetics Amazon Inspector Amazon Relational Database Service (RDS) AWS CodePipeline
Amazon CodeGuru Amazon Kendra Amazon Route 53 AWS Control Tower
Amazon Comprehend Amazon Keyspaces (for Apache Cassandra) Amazon S3 AWS Database Migration Service
Amazon Connect Amazon Kinesis Data Streams Amazon SageMaker AWS Elastic Disaster Recovery
Amazon Connect Customer Profiles Amazon Kinesis Firehose Amazon Simple Email Service (SES) AWS Elemental MediaTailor
Amazon Connect Voice ID Amazon Kinesis Video Streams Amazon Simple Notification Service (SNS) AWS Glue
Amazon Connect Wisdom Amazon Lex Amazon Simple Queue Service (SQS) AWS Glue DataBrew
Amazon DocumentDB Amazon Lightsail[1] Amazon Textract AWS IoT SiteWise
Amazon DynamoDB Amazon Location Service Amazon Timestream AWS Lambda
Amazon DynamoDB Accelerator (DAX)[1] Amazon Lookout for Equipment Amazon Transcribe AWS License Manager
Amazon EBS Amazon Lookout for Metrics Amazon Translate AWS Network Firewall
Amazon EC2 Image Builder Amazon Lookout for Vision Amazon WorkMail AWS Proton
Amazon EFS Amazon Macie Amazon WorkSpaces AWS Secrets Manager
Amazon Elastic Container Registry (ECR) Amazon Managed Blockchain Amazon WorkSpaces Web AWS Snowball
Amazon Elastic Kubernetes Service (EKS) Amazon Managed Service for Prometheus AWS Audit Manager AWS Snowball Edge
Amazon Elastic Transcoder Amazon Managed Streaming for Kafka (MSK) AWS Application Cost Profiler AWS Snowcone
Amazon ElastiCache Amazon Managed Workflows for Apache Airflow (MWAA) AWS Application Migration Service AWS Snowmobile
Amazon OpenSearch Amazon MemoryDB AWS App Runner AWS Storage Gateway
Amazon EMR Amazon Monitron AWS Backup AWS Systems Manager
Amazon EMR Serverless Amazon MQ AWS Certificate Manager[1] AWS X-Ray
Amazon FinSpace Amazon Neptune AWS Cloud9[1]  

[1] 仅支持 AWS 托管的密钥。

[2] AWS KMS 支持由 AWS CloudHSM 集群支持的自定义密钥存储。

[3] 要查看由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国(宁夏)区域与 AWS KMS 集成的服务列表,请访问中国 AWS KMS 服务集成

上方没有列出的 AWS 服务将使用各自服务拥有且托管的密钥加密客户数据。

审计功能

如果您为 AWS 账户启用了 AWS CloudTrail,则您向 AWS KMS 发出的每个请求都会记录在日志文件中,该文件会被传送到您在启用 AWS CloudTrail 时指定的 Amazon S3 存储桶。记录的信息包括用户、时间、日期、API 操作和所用密钥(如果相关)的详细信息。

可扩展性、持久性和高可用性

AWS KMS 是完全托管的服务。随着加密使用量的增长,该服务会自动扩展以满足您的需求。借助它,您能够管理账户中数千个 KMS 密钥,并能够随时使用它们。它规定密钥数量和请求速率的默认限制,但是您可以在需要时请求提高这些限制。

不论是您创建的 KMS 密钥,还是其他 AWS 服务为您创建的 KMS 密钥,都无法从服务中导出。因此,AWS KMS 需要确保这些密钥永久可用。为了帮助您确保密钥和数据具有高可用性,AWS KMS 将密钥的多个加密版副本存储在设计持久性为 99.999999999% 的系统中。

如果您将密钥导入该服务,则可以保留安全版本的 KMS 密钥,这样一来,如果它们不可用,您可以在需要使用时重新导入它们。如果您使用自定义密钥存储功能在 AWS CloudHSM 集群中创建 KMS 密钥,则系统会自动备份密钥的加密副本,并且您可以对恢复流程实施完全控制。

对于跨区域移动的加密数据或数字签名工作流(灾难恢复、多区域高可用性架构、DynamoDB 全局表和全球分布的一致数字签名),您可以创建 KMS 多区域密钥,这是一组可互操作的密钥,使用相同的密钥材料,密钥 ID 可复制到多个区域中。

AWS KMS 经过专门设计,是一项带有区域 API 终端节点的高可用性服务。大多数 AWS 服务都依靠它进行加密和解密,它的设计可提供一定级别的可用性,用于支持其他 AWS 服务,而且由 AWS KMS 服务等级协议提供支持。

安全

AWS KMS 旨在确保包括 AWS 员工在内的任何人都无法从该服务中检索您的纯文本密钥。该服务使用已经通过 FIPS 140-2 验证或正在进行验证的硬件安全模块(HSM)来保护密钥的机密性和完整性。您的纯文本密钥永远不会被写入磁盘中,只会在执行您请求的加密操作期间在 HSM 的易失性内存中使用它。无论您是请求 AWS KMS 代表您创建密钥、将其导入服务,还是在 AWS CloudHSM 集群中创建密钥,都是如此。AWS KMS 服务创建的密钥永远不会在创建密钥的 AWS 区域以外传输,并且只能在创建密钥的区域内使用。AWS KMS HSM 固件的更新由 Amazon 的内部独立小组以及符合 FIPS 140-2 规定的 NIST 认证的实验审计和审核的多方访问控件控制。

要详细了解有关 AWS KMS 的设计方式以及用于保护密钥的加密技术,请阅读《AWS Key Management Service 加密操作详解》

* 在由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国(宁夏)区域,该硬件安全模块已经中国政府批准(未通过 FIPS 140-2 认证),而上述加密操作详解白皮书并不适用。 

自定义密钥存储

AWS KMS 为您提供此选项,以使用您控制的 HSM 创建自己的密钥存储。每个自定义密钥存储都由 AWS CloudHSM 集群提供支持。当您在自定义密钥存储中创建 KMS 密钥时,该服务会在您拥有并管理的 AWS CloudHSM 集群中为 KMS 密钥生成并存储密钥材料。在自定义密钥存储中使用 KMS 密钥时,该密钥下的加密操作将在 AWS CloudHSM 集群中执行。

自定义密钥存储中存储的 KMS 密钥像任何其他 KMS 密钥一样由您进行管理,并且可用于与 AWS KMS 集成的任何 AWS 服务。

使用自定义密钥存储时,会涉及 AWS CloudHSM 集群的其他费用,并且您应负责该集群中密钥材料的可用性。若想知道自定义密钥存储是否能够满足您的要求,请参阅此博客

* “自定义密钥存储”功能尚未在由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国(宁夏)区域推出。

** “自定义密钥存储”选项不适用于非对称 KMS 密钥。

非对称密钥

AWS KMS 为您提供创建和使用非对称 KMS 密钥和数据密钥对的功能。您可以指定 KMS 密钥以用作签名密钥对或加密密钥对。采用这些 KMS 密钥进行的密钥对生成和非对称加密操作将在 HSM 内执行。您可以请求将非对称 KMS 密钥的公共部分用于您的本地应用程序,而使私有部分始终不会退出该服务。

您还可以请求该服务生成非对称数据密钥对。此操作会返回公共密钥和私有密钥的明文副本,还会返回在您指定的对称 KMS 密钥下加密的私有密钥的副本。您可以在本地应用程序中使用纯文本公有密钥或私有密钥,以及存储私有密钥的加密副本以供未来使用。

** “自定义密钥存储”选项不支持非对称密钥。

HMAC

您可以从 KMS 的 FIPS 140-2 经验证硬件安全模块 (HSM) 内生成并验证散列消息认证码 (HMAC)。HMAC 是一个加密构建块,它将密钥材料包含在哈希函数中,以创建唯一的加密消息身份验证码。HMAC KMS 密钥比来自应用程序软件的 HMAC 具有优势,因为密钥材料完全在 AWS KMS 中生成和使用,它们受您在密钥上设置的访问控制的影响。AWS KMS 使用的 HMAC KMS 密钥和 HMAC 算法符合 RFC 2104 中定义的行业标准。HMAC KMS 密钥生成于经 FIPS 140-2 密码模块验证程序认证的 AWS KMS 硬件安全模块中(中国(北京)和中国(宁夏)区域除外),而且从未使 AWS KMS 处于未加密状态。

** AWS KMS HMAC 密钥在自定义密钥存储中不受支持。

合规性

AWS KMS 中的安全性和质量控制已经过以下合规性机制验证并获得了认证:

  • AWS 服务组织控制(SOC 1、SOC 2 及 SOC 3)报告。您可以从 AWS Artifact 下载这些报告的副本。
  • PCI DSS 第 1 级。如需详细了解 AWS 中符合 PCI DSS 规定的服务,请参阅 PCI DSS 常见问题
  • FIPS 140-2。AWS KMS 加密模块已经过 FIPS 140-2 2 级整体验证和 3 级的若干其他类别(其中包括物理安全性)验证,或正在进行此验证。有关更多信息,您可以查看适用于 AWS KMS HSM 的 FIPS 140-2 证书以及相关的安全策略
  • FedRAMP。如需详细了解 AWS FedRAMP 合规性信息,请参阅 FedRAMP 合规性
  • HIPAA。有关更多详细信息,请参阅 HIPAA 合规性页面。
 
下面是 AWS KMS 经过验证和认证的其他 合规性机制的列表。
 
* FIPS 140-2 不适用于中国地区的 AWS KMS。中国地区的硬件安全模块经中国政府批准可以投入使用。
Standard Product Icons (Features) Squid Ink
详细了解产品定价信息

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

了解更多 
Sign up for a free account
注册免费账户

立即享受 AWS 免费套餐。 

注册 
Standard Product Icons (Start Building) Squid Ink
开始在控制台中构建

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

登录