AWS Secrets Manager 与 Parameter Store

在 AWS 中使用数据存储

Dunieski Otano

AWS Solutions Architect

硬编码密码的惨案

  • 开发者将数据库密码硬编码进代码
  • 代码推送到公共 GitHub 仓库
  • 攻击者 12 分钟内发现密码
  • 数据库被清空并被勒索

attack

在 AWS 中使用数据存储

为何绝不硬编码密文

  • 常见错误
    • 硬编码在源代码中
    • 配置文件明文存储
    • 提交到版本控制
  • 后果
    • 暴露在公共仓库
    • 难以轮换
    • 缺少审计追踪

dont

在 AWS 中使用数据存储

AWS Secrets Manager 概览

  • 用途
    • 自动存储并轮换凭证
  • 可存内容
    • 数据库密码、API 密钥、OAuth 令牌
  • 关键特性
    • 自动轮换、KMS 加密、审计日志

sm

在 AWS 中使用数据存储

Secrets Manager 自动轮换

  • 轮换流程
    • 由 Lambda 函数更新凭证
  • 轮换窗口
    • 设置轮换时间(rate 或 cron)
  • 零停机
    • 轮换期间新旧密码均可用

rotation

在 AWS 中使用数据存储

以 JSON 格式存储密文

  • 结构化密文
    • 在一个 secret 中存多值
  • JSON 格式
    • {"username": "admin", "password": "...", "host": "db.example.com"}
  • 获取与解析
    • 使用 GetSecretValue API

get

在 AWS 中使用数据存储

Parameter Store 概览

  • 隶属 AWS Systems Manager
  • 用途
    • 存储配置与静态密文
  • 分层组织
    • /app/prod/db/password
    • /app/dev/api-key
  • 免费层
    • 最多 10,000 个标准参数(最大 4 KB)
    • 高级参数(最大 8 KB)计费

ps

在 AWS 中使用数据存储

Parameter Store 参数类型

  • String
    • 纯文本配置(功能开关、端点)
  • StringList
    • 逗号分隔值(IP 地址)
  • SecureString
    • 使用 KMS 加密(密码、API 密钥)

types

在 AWS 中使用数据存储

Secrets Manager vs Parameter Store 决策指南

  • 在以下情况下用 Secrets Manager
    • 需要自动轮换
    • 存储数据库凭证
  • 在以下情况下用 Parameter Store
    • 静态配置值
    • 注重成本(免费层)
  • 配合使用
    • 生产中常见模式

advanced

在 AWS 中使用数据存储

让我们练习吧!

在 AWS 中使用数据存储

Preparing Video For Download...