概览

借助 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 外部的外部密钥管理器中的密钥。您可以选择每年自动轮换一次 AWS KMS 中生成的根密钥,而无需重新加密之前加密的数据。该服务可自动使旧版本的根密钥保持可用,以便用于解密之前加密的数据。您可以管理根密钥并通过 AWS 管理控制台或使用 AWS 软件开发工具包或 AWS 命令行界面(CLI)审核其使用情况。

AWS 服务集成

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

与 AWS KMS 集成的 AWS 服务
企业版 Alexa[1] Amazon FSx Amazon Rekognition AWS CodePipeline
Amazon AppFlow Amazon GuardDuty Amazon Relational Database Service (RDS) AWS Control Tower
Amazon Athena Amazon HealthLake Amazon Route 53 AWS Data Exchange
Amazon Aurora Amazon Inspector Amazon Simple Storage Service (Amazon S3)[3] AWS Database Migration Service
Amazon Chime SDK Amazon Kendra Amazon SageMaker AWS 弹性灾难恢复
Amazon CloudWatch Logs Amazon Keyspaces(适用于 Apache Cassandra) Amazon Simple Email Service (SES) AWS Elemental MediaTailor
Amazon CloudWatch Synthetics Amazon Kinesis Data Streams Amazon Simple Notification Service (SNS) AWS Entity Resolution 数据匹配服务
Amazon CodeGuru Amazon Kinesis Firehose Amazon Simple Queue Service (SQS) AWS GameLift
Amazon CodeWhisperer Amazon Kinesis Video Streams Amazon Textract AWS Glue
Amazon Comprehend Amazon Lex Amazon Timestream AWS Glue DataBrew
Amazon Connect Amazon Lightsail[1] Amazon Transcribe AWS Ground Station
Amazon Connect Customer Profiles Amazon Location Service Amazon Translate AWS IoT SiteWise
Amazon Connect Voice ID Amazon Lookout for Equipment Amazon WorkMail AWS Key Management Service (AWS KMS)
Amazon Connect Wisdom Amazon Lookout for Metrics Amazon WorkSpaces AWS Lambda
Amazon DocumentDB Amazon Lookout for Vision Amazon WorkSpaces 瘦客户端 AWS License Manager
Amazon DynamoDB Amazon Macie Amazon WorkSpaces Web AWS Mainframe Moderization
Amazon DynamoDB Accelerator(DAX)[1] Amazon Managed Blockchain AWS AppConfig AWS Network Firewall
Amazon EBS Amazon Managed Service for
Prometheus
AWS AppFabric AWS Proton
Amazon EC2 Image Builder Amazon Managed Streaming for Kafka (MSK) AWS Application Cost Profiler AWS Secrets Manager
Amazon EFS Amazon Managed Workflows for Apache Airflow (MWAA) AWS Application Migration Service AWS Snowball  
Amazon Elastic Container Registry (ECR) Amazon MemoryDB AWS App Runner AWS Snowball Edge
Amazon Elastic Kubernetes Service (EKS) Amazon Monitron AWS Audit Manager AWS Snowcone
Amazon Elastic Transcoder Amazon MQ AWS Backup AWS Storage Gateway
Amazon ElastiCache Amazon Neptune AWS Certificate Manager[1] AWS Systems Manager
Amazon EMR Amazon Nimble Studio AWS Cloud9[1] AWS Supply Chain
Amazon EMR Serverless Amazon OpenSearch AWS CloudHSM[2] AWS Verified Access
Amazon EventBridge 调度器 Amazon Omics AWS CloudTrail AWS X-Ray
Amazon FinSpace Amazon Personalize AWS CodeArtifact  
Amazon Forecast Amazon QLDB AWS CodeBuild  
Amazon Fraud Detector Amazon Redshift AWS CodeCommit[1]  

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

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

[3] S3 Express One Zone 未与 AWS KMS 集成,但支持使用 Amazon S3 托管密钥(SSE-S3)进行服务器端加密。要了解有关 S3 Express One Zone 对象加密的更多信息,请访问 S3 Express One Zone 数据保护和加密

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

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

审核监控

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

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

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

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

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

AWS KMS 经过专门设计,是一项带有区域 API 端点的高可用性服务。大多数 AWS 服务都依靠适用于加密和解密的 AWS KMS,它的设计目标就是提供一定级别的可用性。这种可用性可支持其他 AWS 服务,并得到AWS KMS 服务级别协议的支持

安全

AWS KMS 旨在确保包括 AWS 员工在内的任何人都无法从该服务中检索您的纯文本密钥。该服务使用硬件安全模块(HSM),这些模块根据美国国家标准与技术研究院(NIST)联邦信息处理标准(FIPS)140-2 加密模块验证程序不断进行验证,以保护您的密钥的机密性和完整性。AWS KMS HSM 是保护 KMS 密钥的加密信任根。这些模块为 KMS 中发生的所有加密操作创建了安全的硬件保护边界。在 AWS KMS HSM 中生成的 KMS 密钥的所有密钥材料以及需要解密 KMS 密钥材料的所有操作都严格在这些 HSM 的 FIPS 140-2 Security Level 3 边界内进行。AWS KMS HSM 固件的更新由 Amazon 内部独立小组审核和审查的多方访问控件控制;根据 FIPS 140 要求,KMS HSM 的所有固件更改都提交给 NIST 认可的实验室进行验证,以符合 FIPS 140-2 Security Level 3。

您的纯文本密钥永远不会被写入磁盘中,只会在执行您请求的加密操作期间在 HSM 的易失性内存中使用它。无论您是请求 AWS KMS 代表您创建密钥、将其导入服务,还是在 AWS CloudHSM 集群中创建密钥,都是如此。您可以选择创建单区域密钥还是多区域密钥。单区域密钥永远不会在创建密钥的 AWS 区域以外传输,并且只能在创建密钥的区域内使用。

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

* 在由北京光环新网科技股份有限公司(光环新网)运营的 AWS 中国(北京)区域和由宁夏西云数据科技有限公司(西云数据)运营的 AWS 中国(宁夏)区域,该 HSM 已获得中国政府批准(未通过 FIPS 140-2 认证),而上述加密操作详解白皮书并不适用。 

非对称密钥

AWS KMS 可帮助您创建和使用非对称 KMS 密钥和数据密钥对。您可以指定 KMS 密钥以用作签名密钥对或加密密钥对。采用这些 KMS 密钥进行的密钥对生成和非对称加密操作将在 HSM 内执行。您可以请求将非对称 KMS 密钥的公共部分用于您的本地应用程序,而使私有部分始终不会退出该服务。您可以从自己的密钥管理基础设施导入非对称密钥的私有部分。

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

* 自定义密钥存储不支持非对称密钥。

HMAC

您可以从 AWS 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 处于未加密状态。您也可以从自己的密钥管理基础设施导入自己的 HMAC 密钥。

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

** FIPS 140-2 不适用于由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国(宁夏)区域中的 AWS KMS。中国区域的 HSM 经中国政府批准可以投入使用。

合规性

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

  • AWS 系统和组织控制(SOC)报告(SOC 1、SOC 2 和 SOC 3)。您可以从 AWS Artifact 下载报告的副本。
  • 云计算合规控制目录(C5)。详细了解德国政府支持的认证计划 C5
  • 支付卡行业数据安全标准(PCI DSS)第 1 级。在 AWS 的 PCI DSS 常见问题解答中了解有关 PCI DSS 兼容服务的更多信息。
  • 美国联邦信息处理标准(FIPS)140-2。 AWS KMS 加密模块已在 FIPS 140-2 Security Level 3 下由美国国家标准与技术研究院(NIST)验证。请参阅适用于 AWS KMS HSM 的 FIPS 140-2 证书以及相关的安全策略,了解更多信息。
  • 联邦风险和授权管理计划(FedRAMP)。了解有关 AWS FedRAMP 合规性的更多信息,请参阅 FedRAMP 合规性
  • 《健康保险流通与责任法案》(HIPAA)规定的范围。在“HIPAA 合规性”网页上了解更多信息。
此处列出了 AWS KMS 经过验证和认证的其他合规性机制。
 
* FIPS 140-2 不适用于由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国(宁夏)区域中的 AWS KMS。中国区域的 HSM 经中国政府批准可以投入使用。

自定义密钥存储

自定义密钥存储结合了 AWS KMS 的便捷和全面的密钥管理界面,并拥有和控制发生密钥材料和密码操作的设备的功能。因此,您需要对加密密钥的可用性和持久性以及 HSM 的操作承担更多的责任。AWS KMS 提供了两种类型的自定义密钥存储:

CloudHSM 支持的密钥存储

您可以在 AWS CloudHSM 自定义密钥存储中创建一个 KMS 密钥,其中所有密钥都生成并存储在您拥有和管理的 AWS CloudHSM 集群中。在自定义密钥存储中使用 KMS 密钥时,该密钥下的加密操作将仅在 AWS CloudHSM 集群中执行。

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

外部密钥存储

如果您有在本地或 AWS Cloud 之外存储和使用您的加密密钥的监管需求,可以在 AWS KMS 外部密钥存储(XKS)中创建一个 KMS 密钥,所有密钥都生成并存储在您拥有和管理的 AWS 之外的外部密钥管理器中。使用 XKS 时,您的密钥材料将始终存储在 HSM 中。

与标准 KMS 密钥或 CloudHSM 自定义密钥存储中的密钥不同,在使用外部密钥存储时,您需要对密钥材料的持久性、可用性、延迟、性能和安全性以及外部密钥的加密操作负责。KMS 操作的性能和可用性可能会受到您使用的 XKS 基础设施的硬件、软件或网络组件的影响。要了解有关 XKS 的更多信息,可阅读此 AWS 新闻博客

* 自定义密钥存储在由光环新网运营的 AWS 中国(北京)区域和由西云数据运营的 AWS 中国(宁夏)区域不可用。
**自定义密钥存储不适用于非对称 KMS 密钥。
* CodeArtifact 不支持 XKS 中的 KMS 密钥。

客户端加密

您可以将 AWS KMS 与客户端加密库一起使用,直接在 AWS 上保护应用程序中的数据,或者在混合和多云环境中保护数据。您可以使用这些库对数据进行加密,然后再将数据存储在 AWS 服务或任何其他存储介质和所需的第三方服务中。这些库旨在帮助您使用行业标准和最佳实践加密和解密数据。加密库使您可以专注于应用程序的核心功能,而不是如何加密和解密数据。

AWS Encryption SDK 是一个通用型加密库,用于对所有类型的数据执行加密和解密操作。
AWS 数据库加密 SDK 是一个加密库,可帮助您保护存储在数据库中的敏感数据,并提供有关搜索和查询加密数据的其他功能。
Amazon S3 Encryption Client 是一个加密库,用于加密和解密存储在 S3 存储桶中的对象。

要了解更多信息,请访问 AWS Crypto Tools 文档

了解有关产品定价的更多信息

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

了解更多 
注册免费账户

立即享受 AWS Free Tier。 

注册 
开始在控制台中构建

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

登录