AWS Secrets Manager と Parameter Store
AWS データストアの活用
Dunieski Otano
AWS Solutions Architect
パスワードの直接記述による被害
- 開発者がデータベースのパスワードをコードに直接記述
- コードをパブリックな GitHub リポジトリにプッシュ
- 攻撃者が12分でパスワードを発見
- データベースが消去され、身代金を要求される
シークレットを直接記述してはいけない理由
- よくある間違い
- ソースコードへの直接記述
- 設定ファイルへの平文記録
- バージョン管理へのコミット
- 結果
- パブリックリポジトリでの漏洩
- ローテーションが困難
- 監査ログが残らない
AWS Secrets Manager の概要
- 目的
- 保存対象
- データベースパスワード、API キー、OAuth トークン
- 主な機能
Secrets Manager の自動ローテーション
- ローテーションの仕組み
- ローテーションのタイミング
- 実行タイミングを設定(rate または cron)
- ゼロダウンタイム
JSON 形式でシークレットを保存する
- 構造化されたシークレット
- JSON 形式
- {"username": "admin", "password": "...", "host": "db.example.com"}
- 取得とパース
Parameter Store の概要
- 所属 AWS Systems Manager
- 目的
- 階層的な構成
- /app/prod/db/password
- /app/dev/api-key
- 無料枠
- 標準パラメータ最大10,000件(最大4 KB)
- 高度なパラメータ(最大8 KB)は有料
Parameter Store のパラメータタイプ
- String
- StringList
- SecureString
Secrets Manager vs Parameter Store 選択ガイド
- Secrets Manager を使う場面
- 自動ローテーションが必要な場合
- データベース認証情報を保存する場合
- Parameter Store を使う場面
- 静的な設定値を扱う場合
- コストを抑えたい場合(無料枠あり)
- 両方を組み合わせる
Preparing Video For Download...