AWS KMS 经典2014年〜
安全创建和管理数据加密密钥的托管加密密钥服务
它能做什么
AWS KMS (Key Management Service) 是一项安全创建、存储和管理数据加密密钥的全托管服务。与 S3、EBS、RDS、DynamoDB 等众多 AWS 服务集成,只需几次点击即可启用数据加密。统一管理密钥的创建、轮换、禁用和删除生命周期,通过 IAM 策略和密钥策略提供精细的访问控制。使用经过 FIPS 140-2 验证的硬件安全模块 (HSM) 保护密钥。
使用场景
用于 S3 存储桶和 EBS 卷的静态数据加密、RDS 和 DynamoDB 的数据库加密、应用数据的客户端加密、数字签名的生成和验证,以及 Secrets Manager 和 Parameter Store 中密钥的加密等所有需要数据保护的场景。
日常类比
可以将其比作公寓的钥匙管理室。管理室 (KMS) 统一管理各房间 (数据) 的钥匙 (加密密钥),只有获授权的住户 (IAM 用户) 才能使用自己房间的钥匙。钥匙定期更换 (轮换),最大限度降低丢失或被盗风险。钥匙本身保存在保险箱 (HSM) 中,无法带出。
什么是 KMS
AWS Key Management Service (KMS) 是管理加密密钥生命周期的全托管服务。加密是数据保护的基础,但加密密钥的安全管理复杂且需要专业知识。KMS 将这种复杂性抽象化,通过 API 调用或控制台操作即可轻松创建和管理加密密钥。密钥受 FIPS 140-2 Level 3 认证的 HSM 保护,包括 AWS 员工在内的任何人都无法访问密钥明文。
加密密钥的类型
KMS 主要处理两种密钥。KMS 密钥 (原称 CMK) 是在 KMS 内管理的加密密钥,用于生成数据密钥或直接加解密。数据密钥是由 KMS 密钥加密的密钥,用于加密大量数据。这种机制称为信封加密,比直接用 KMS 密钥加密数据更高效。KMS 密钥有对称密钥 (AES-256) 和非对称密钥 (RSA、ECC),可根据用途选择。
与 AWS 服务的集成
KMS 与 100 多个 AWS 服务集成。在 S3 中可为存储桶默认加密指定 KMS 密钥,上传的对象自动加密。在 EBS 中只需在创建卷时启用加密,磁盘上的数据即受 KMS 密钥保护。RDS 和 Aurora 使用 KMS 密钥加密数据库实例,备份和快照也自动加密。这些集成都透明运行,无需修改应用。 如需全面了解与 AWS 服务的集成,可参考 相关书籍 (Amazon)。
定价体系
KMS 的费用由 KMS 密钥存储费和 API 请求费构成。AWS 托管密钥免费,客户托管密钥每个每月 1 美元。API 请求每 10,000 次 0.03 美元。AWS 服务调用 KMS 时也会产生 API 请求费,但通过信封加密,即使加密大量数据,对 KMS 的 API 调用也可降到最低。
注意事项
- KMS 密钥的删除设有 7-30 天的等待期以防止误删除。删除密钥后,已加密的数据将无法解密,因此请谨慎判断
- 为客户托管密钥启用自动轮换后,每年会自动生成一次新的密钥材料。旧的密钥材料会保留用于解密,因此不会影响现有数据