在 Secrets Manager 中存储凭证
安全地存储并轮换数据库凭证和 API 密钥,绝不将其写入代码。
在 Secrets Manager 中存储凭证 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
硬编码机密的问题
硬编码在代码或配置文件中的数据库密码和 API 密钥,是导致数据泄露的主要原因之一。它们可能通过代码仓库、日志和备份泄露。
AWS Secrets Manager 可以安全地存储机密,使用 IAM 控制访问,并且能够自动轮换机密,使机密不必存在于代码中。
Secrets Manager 的功能
Secrets Manager 可以存储、加密、检索和轮换数据库凭证、API 密钥等机密。
- 机密会使用 KMS 进行静态加密。
- 应用程序在运行时通过 API 调用获取机密,而不是将其嵌入代码。
加密与访问控制
每个机密都会使用 KMS 密钥加密,并受到 IAM 和可选的基于资源的策略保护。
您只应向需要访问某个机密的特定角色授予权限,并且每次检索都会记录在 CloudTrail 中,从而实现完整的责任追踪。
自动轮换
其中最突出的功能是自动轮换。
- Lambda 函数会按计划更改机密并更新存储内容。
- 内置轮换支持 RDS 和其他数据库。
如果凭证意外泄露,轮换可以缩短其造成影响的时间窗口。
轮换的工作方式
对于数据库,轮换通常使用两组凭证或交替用户策略,这样应用程序在凭证更换期间始终不会遇到无效密码。
Lambda 会创建新的机密值,对其进行测试,然后将其提升为当前值;配置正确时,整个过程无需停机。
在运行时检索机密
应用程序会在需要时调用 GetSecretValue 获取机密,并且通常会进行短暂缓存。
由于应用程序持有 IAM 角色,因此无需静态凭证即可检索机密,从而完整实现将长期密钥从代码中移除。
aws secretsmanager get-secret-value \
--secret-id prod/db/credentials \
--query SecretStringSecrets Manager 与 Parameter Store
SSM Parameter Store 也可以存储配置和机密(SecureString),并且标准参数免费。
- 如果需要内置的自动轮换和跨账户共享机密,请选择 Secrets Manager。
- 如果需要不带轮换功能的简单、免费配置,请选择 Parameter Store。
跨账户与跨区域
Secrets Manager 支持使用资源策略与其他账户共享机密,也可以将机密复制到其他区域。
这适用于多区域应用程序和灾难恢复,可以在工作负载运行的区域提供一致的机密。
审计与监控
使用 CloudTrail 监控密钥的使用情况(谁检索或轮换了密钥),并检测异常。
例如,GuardDuty 可以标记异常的访问模式,而配置规则可以检查是否启用了轮换,从而让密钥管理状况变得可衡量。
与其他服务集成
许多 AWS 服务可以原生使用密钥管理器中的密钥。
- RDS 和 Redshift 可以在那里存储和管理其主凭证。
- ECS、Lambda 和 CodeBuild 可以在运行时注入密钥。
这意味着工作负载可以安全地获得凭证,而无需在代码中嵌入或手动获取凭证。
最佳实践
要安全地使用密钥:
- 切勿硬编码密钥;应从密钥管理器中获取。
- 启用轮换,并使用专用的 KMS 密钥。
- 针对每个密钥授予最低权限访问权,并审计检索操作。
快速检查
选择正确的服务。
总结
您已经了解了密钥管理器。
- 它会自动存储、加密(使用 KMS)和轮换密钥。
- 应用通过 IAM 控制的 API 调用在运行时获取密钥,绝不会将密钥硬编码。
- 当您需要轮换或跨账户共享时,应选择它,而不是参数存储。
常见问题解答
「在 Secrets Manager 中存储凭证」课时是免费的吗?
是的 — 「在 Secrets Manager 中存储凭证」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「在 Secrets Manager 中存储凭证」这节课中我会学到什么?
安全地存储并轮换数据库凭证和 API 密钥,绝不将其写入代码。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「在 Secrets Manager 中存储凭证」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- S3、EBS 和 RDS 静态数据加密
- 全面强制启用默认加密
- 使用 AWS Certificate Manager 配置 TLS 证书
- 在 Secrets Manager 中存储凭证