KMS 密钥是什么以及能做什么
了解客户管理的密钥、AWS 管理的密钥和自有密钥。
KMS 密钥是什么以及能做什么 是 CoddyKit 上的免费 AWS Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AWS Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AWS Security Academy 课程共包含 4 节课。
使用托管密钥的必要性
加密的强度取决于您保护密钥的方式。将密钥存储在代码或文件中存在风险,也难以审计。
AWS KMS(密钥管理服务)会在硬件安全模块中创建、存储和控制加密密钥,并将每次使用都关联到 IAM 权限和审计日志。
KMS 密钥是什么
KMS 密钥(以前称为 CMK,即客户主密钥)是 KMS 内部对加密密钥的逻辑表示。
- 密钥材料始终以加密形式留在 KMS 内。
- 您请求 KMS 执行加密或解密;原始密钥不会暴露给您。
这是 AWS 加密的基础。
客户托管密钥
客户托管密钥是由您创建并完全控制的 KMS 密钥。
- 您可以设置密钥策略、启用或禁用密钥,并安排删除。
- 您可以控制轮换和授权。
这类密钥每月收取少量费用,另加按请求计费,并提供最强的控制能力。
AWS 托管密钥
AWS 托管密钥由 AWS 服务代表您创建,名称类似于 aws/s3。
- AWS 负责管理其策略和轮换。
- 您无法更改其密钥策略,也无法直接删除它们。
这类密钥使用方便,但控制能力低于客户托管密钥。
AWS 所有的密钥
AWS 所有的密钥是 AWS 在多个账户之间使用的共享密钥池。
它们在您的账户中不可见、免费,并且完全由 AWS 管理。您无法查看、审计或控制这些密钥,因此它们适用于不需要查看密钥的场景。
加密和解密操作
您可以通过 Encrypt、Decrypt 和 GenerateDataKey 等 API 调用与 KMS 交互。
KMS 在服务器端执行加密运算并返回结果。直接加密仅限于较小的数据(最多约 4 KB);较大的数据会使用数据密钥,稍后将对此进行介绍。
aws kms encrypt \
--key-id alias/my-app-key \
--plaintext fileb://secret.txt \
--output textCloudTrail 集成
每次 KMS API 调用都会记录在 CloudTrail 中。
您可以获得完整的审计轨迹,了解谁在何时使用了哪个密钥执行什么操作。这使 KMS 既是控制点,也是责任追踪机制,对事件调查至关重要。
别名
别名是指向 KMS 密钥的易记名称,例如 alias/prod-db。
- 应用程序引用别名,而不是密钥 ID。
- 您可以将别名重新指向新密钥,而无需修改应用程序代码。
别名可以简化轮换和管理。
密钥状态
KMS 密钥会经历不同的状态:已启用、已禁用、等待删除,以及(对于导入的材料)等待导入。
禁用密钥会阻止其使用,但不会删除它。删除操作会安排一个等待期(7 到 30 天),这样如果仍需要相关数据,您可以取消删除,因为删除操作不可逆。
KMS 的作用
KMS 是几乎所有 AWS 加密功能背后的中央密钥管理机构:S3、EBS、RDS、Secrets Manager 等服务都会在底层调用 KMS。
了解密钥类型和控制方式非常重要,因为考试问题往往取决于谁管理某个密钥,以及谁可以使用该密钥。
选择密钥类型
请根据控制需求进行选择:
- 需要完全控制、自定义策略或审计轮换时,选择客户托管密钥。
- 需要便捷的服务加密时,选择AWS 托管密钥。
- 完全不需要查看密钥时,选择AWS 所有的密钥。
快速检查
区分密钥类型。
回顾
您已经了解KMS 密钥是什么。
- 密钥材料保留在 KMS 内;您调用 Encrypt/Decrypt。
- 客户托管密钥提供完全控制;AWS 托管密钥由服务创建;AWS 所有的密钥不可见。
- 别名、密钥状态和 CloudTrail 支持安全管理。
常见问题解答
「KMS 密钥是什么以及能做什么」课时是免费的吗?
是的 — 「KMS 密钥是什么以及能做什么」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AWS Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 AWS Security Academy 课程共包含 4 节课。
「KMS 密钥是什么以及能做什么」这节课中我会学到什么?
了解客户管理的密钥、AWS 管理的密钥和自有密钥。 你通过在浏览器中直接运行的动手代码来练习 AWS Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AWS Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AWS Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「KMS 密钥是什么以及能做什么」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AWS Security Academy 课中编写并运行代码吗?
能。每节 AWS Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- KMS 密钥是什么以及能做什么
- 对称、非对称和多区域密钥
- 密钥策略、授权和条件
- 信封加密与数据密钥