2.8 KiB
2.8 KiB
title, type, tags
| title | type | tags | ||||
|---|---|---|---|---|---|---|
| SecretRotation | concept |
|
Definition
Secret Rotation(密钥轮换)是指定期自动更换敏感凭据(密码、API Key、证书等)的安全机制,旨在防止长期密钥泄露导致的安全风险。
Why Rotate Secrets?
- 降低泄露风险:即使密钥被意外泄露,轮换机制可限制暴露窗口
- 合规要求:满足 SOC 2、PCI-DSS 等安全合规标准
- 密钥生命周期管理:遵循安全最佳实践中的密钥生命周期原则
- 应对内部威胁:限制离职员工或恶意内部人员的凭据滥用
AWS Secrets Manager Rotation Strategies
Built-in Rotation Lambdas
AWS Secrets Manager 为以下服务提供开箱即用的轮换 Lambda 函数:
- RDS 数据库:MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Aurora
- Redshift
- DocumentDB
Custom Rotation Patterns
Oracle Database Password Rotation
用户密码存储在 Secrets Manager
↓
Lambda 函数被触发(或定时)
↓
Lambda 连接 Oracle 实例(使用当前凭据)
↓
生成新密码
↓
更新数据库中的用户密码
↓
更新 Secrets Manager 中的密码
↓
完成轮换
关键优势:无需通过邮件发送新密码,通过 AWS 角色授权访问 Secrets
SendGrid API Key Rotation
- 问题:多个团队各自管理 SendGrid API Key,轮换需要代码变更和重启应用
- 解决方案:集中式 SMTP 服务统一处理 SendGrid 轮换,应用只连接内部 SMTP 服务器
- 实现:SMTP 服务在端口 1025 提供服务,应用无需感知后端 API Key 变更
Rotation Triggers
| 触发方式 | 说明 |
|---|---|
| 定时轮换 | 按固定间隔(天数)自动触发 |
| 手动触发 | 通过 AWS CLI 或 Console 手动启动 |
| API 调用 | 通过 rotateSecret API 编程触发 |
| 事件驱动 | CloudWatch Events 触发 Lambda |
Best Practices
- 先集中,后轮换:先完成 Secrets 集中化管理,再启用轮换
- 测试回滚:轮换失败时的回滚机制测试
- 应用兼容性:确保应用支持动态获取新凭据(使用 JDBC Wrapper、SDK 等)
- 监控告警:轮换失败时的告警通知机制
- 分阶段实施:先低风险系统试点,再推广至生产环境
Related Concepts
- SecretsManagement:敏感信息管理的整体框架
- JDBCWrapper:数据库应用获取动态凭据的方式
- Lambda:用于执行轮换逻辑的无服务器函数
- ControlTower:企业级 Secrets 管理的治理框架
Sources
- CTP-Topic-62-AWS-Secrets-Manager — Oracle 数据库和 SendGrid API Key 轮换实施案例
Aliases
- Key Rotation
- Credential Rotation
- Password Rotation
- API Key Rotation