AWS Secrets Manager とは?機密情報管理と自動ローテーション
AWS Secrets Manager は DB 認証情報・API キー・OAuth トークン等の機密情報を中央管理するサービス。自動ローテーション機能で RDS / Aurora のパスワードを定期的に自動更新でき、コードへのハードコーディングを排除できる。Paramet...
機密情報(DB パスワード・API キー等)を管理し、自動ローテーションを提供するサービス。
1. 概要(端的に)
AWS Secrets Manager は DB 認証情報・API キー・OAuth トークン等の機密情報を中央管理するサービス。自動ローテーション機能で RDS / Aurora のパスワードを定期的に自動更新でき、コードへのハードコーディングを排除できる。Parameter Store の上位機能版。
2. 何ができるか
- 機密情報の保管:JSON / 文字列で任意の値
- 暗号化保管:KMS で自動暗号化
- 自動ローテーション:RDS / Aurora パスワードを定期更新
- クロスリージョンレプリ:複数リージョンで利用可
- VPC Endpoint:プライベート接続
- IAM ベースアクセス制御
3. 特徴
| 観点 | 特徴 |
|---|---|
| 追加料金 | シークレット $0.40/月 + API $0.05/1 万 |
| 暗号化 | KMS で自動 |
| 自動ローテ | Lambda 関数経由 |
| 対応 DB | RDS(MySQL/Postgres/MariaDB/Oracle/SQL Server)/ Aurora / DocumentDB |
vs Parameter Store
| 観点 | Secrets Manager | Parameter Store |
|---|---|---|
| 料金 | 有料($0.40/月) | 無料(標準) |
| 自動ローテ | ○ | × |
| クロスリージョン | ○ | × |
| 用途 | DB パスワード・本番機密 | 設定値・非機密値 |
4. 仕組み
Secrets Manager は 暗号化されたシークレット保管 + ローテーション Lambda の組合せ。
動作の流れ
- シークレット作成(KMS で自動暗号化)
- アプリが API で取得(IAM 認証)
- 自動ローテ:定期的に Lambda 起動
- Lambda が DB パスワード変更 + Secrets Manager 更新
- アプリは常に最新シークレットを取得
ローテーション仕組み
旧パスワード(current)
↓ ローテ実行
1. 新パスワード生成
2. DB に新パスワード適用
3. 新パスワードを Secrets Manager に保存
4. アプリは取得時に新パスワード使用
5. ユースケース
ユースケース 1:RDS パスワード管理
ハードコーディング撤廃、自動ローテで運用負荷ゼロ。
ユースケース 2:API キー管理
サードパーティ API(Stripe・SendGrid 等)のキー管理。
ユースケース 3:マルチリージョン本番
レプリ機能で全リージョンに同一シークレット配信。
ユースケース 4:Lambda の環境変数代替
Lambda コードからオンデマンドで取得 → 暗号化済み環境変数より安全。
6. 関連用語
- KMS — 暗号化キー
- Parameter-Store — 無料代替(自動ローテなし)
- RDS / Aurora — ローテ対象
- Lambda — ローテ実装
7. 関連サイト
AWS 公式
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 中 | シークレット管理の概念 |
| SAA | 高 | DB パスワード自動ローテ設計 |
| DVA | 高 | アプリからの API 利用 |
| SOA | 中 | 運用・監査 |