关于 implementing-envelope-encryption-with-aws-kms
该技能介绍使用 AWS KMS 实现信封加密,面向需要加密大量数据并管理密钥的开发者和安全人员。内容涵盖本地数据加密、密钥缓存、轮换及多区域灾难恢复。
主要功能
- 01通过 GenerateDataKey 生成 DEK
- 02使用 AES-256-GCM 本地加密
- 03将加密后的 DEK 与密文一同存储
- 04缓存密钥以减少 KMS 调用
- 05处理密钥轮换和多区域加密
适用场景
- 01为大量数据实施信封加密
- 02降低加密操作对 KMS 请求的依赖
- 03规划密钥轮换与灾难恢复
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill implementing-envelope-encryption-with-aws-kms安装后在 Claude Code 中输入/implementing-envelope-encryption-with-aws-kms确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py详细介绍
使用 AWS KMS 实现信封加密
概述
信封加密是一种策略:数据使用数据加密密钥(DEK)加密,而 DEK 本身则由 AWS KMS 管理的主密钥(KEK)加密。这种方法允许在本地加密大量数据,同时将主密钥安全地保存在由 AWS 管理的硬件安全模块(HSM)中。本技能涵盖使用 AWS KMS GenerateDataKey API 实现信封加密。
何时使用
- 在您的环境中部署或配置使用 aws kms 实现信封加密的能力时
- 在建立与合规要求一致的安全控制时
- 在为该领域构建或改进安全架构时
- 在进行需要此实现的安全评估时
前提条件
- 熟悉密码学概念和工具
- 可访问测试或实验环境以安全执行
- 安装有所需依赖的 Python 3.8+
- 对任何测试活动具有适当的授权
目标
- 理解信封加密模式及其优势
- 使用 AWS KMS GenerateDataKey 生成数据加密密钥
- 使用 DEK 在本地加密/解密数据
- 将加密的 DEK 与密文一同存储
- 实现密钥缓存以减少 KMS API 调用
- 通过自动重新加密处理密钥轮换
- 实现多区域加密以支持灾难恢复
关键概念
信封加密流程
- 调用
kms:GenerateDataKey获取明文 DEK + 加密的 DEK - 使用明文 DEK 在本地加密数据(AES-256-GCM)
- 将加密的 DEK 与密文一同存储
- 从内存中丢弃明文 DEK
- 解密时:对加密的 DEK 调用
kms:Decrypt,然后解密数据
相比直接 KMS 加密的优势
| 方面 | 直接 KMS | 信封加密 |
|---|---|---|
| 最大数据大小 | 4 KB | 无限制 |
| 延迟 | 每次操作网络往返 | 本地加密 |
| 成本 | $0.03/10,000 次请求 | 更少的 KMS 请求 |
| 离线 | 不可能 | 可以(使用缓存的 DEK) |
KMS 密钥类型
- AWS 托管:由 AWS 创建和管理(
aws/s3、aws/ebs) - 客户托管:您创建和管理策略
- 自定义密钥存储:由 CloudHSM 集群支持
安全注意事项
- 切勿存储明文 DEK;仅保留加密的 DEK
- 使用密钥策略限制谁可以调用 GenerateDataKey 和 Decrypt
- 为所有 KMS API 调用启用 AWS CloudTrail 日志记录
- 实现密钥轮换(CMK 的自动年度轮换)
- 使用加密上下文作为经过身份验证的加密元数据
- 使用指数退避处理 KMS 节流
验证标准
- GenerateDataKey 返回明文和加密的 DEK
- 数据使用明文 DEK 通过 AES-256-GCM 正确加密
- 加密的 DEK 可通过 KMS Decrypt API 解密
- 解密后的 DEK 可恢复原始数据
- 明文 DEK 在使用后从内存中擦除
- 解密期间验证加密上下文
- 密钥轮换使用新主密钥重新加密 DEK
评论
支持 Markdown