シークレット管理の設計 Secrets ManagerとParameter Storeを使い分ける
この記事は SCS-C02 を目指す方に向けて、パスワードやAPIキーの扱いを整理します。試験では「どこに置くか」だけでなく、誰が読めるか、どう更新されるかまで含めて最適な選択を求められます。
覚え方は3つの観点です。自動ローテーションが要るか・アクセス制御をどこまで細かくするか・コストと規模。この順に判定すると迷いません。
AWS Secrets Manager を選ぶとき
最大の特徴は自動ローテーションです。RDS、Aurora、Redshift、DocumentDB については組み込みのローテーション機能があり、30日ごとにパスワードを入れ替えて新旧2つのバージョンを管理してくれます。使いどころは「データベース資格情報を定期的に変える運用を、アプリを止めずに実現したい」とき。それ以外のシークレットもLambdaでローテーション処理を書けます。リソースベースポリシーが使えるため、他アカウントのロールへ特定シークレットだけ読ませることもできます。クロスリージョンのレプリカも作れます。
Systems Manager Parameter Store を選ぶとき
設定値の保管に向き、標準パラメータは追加費用なしで大量に置けます。SecureString 型を選べばKMSで暗号化されます。使いどころは「エンドポイントURLやフィーチャーフラグなど、機密性はあるがローテーションが不要な値を数百件管理したい」とき。ローテーション機能はなく、リソースベースポリシーも使えないため、細かな共有にはIAM側で対応します。
どちらでもない答えが正解のとき
アプリケーションがAWSのAPIを呼ぶための認証情報なら、そもそも保存せずIAMロールを使うのが正解です。EC2ならインスタンスプロファイル、ECSならタスクロール、Lambdaなら実行ロール。設問に「アクセスキーをどこに保管すべきか」とあれば、保管しない選択肢を探してください。
| 観点 | Secrets Manager | Parameter Store |
|---|---|---|
| 自動ローテーション | あり(DBは組み込み) | なし |
| リソースベースポリシー | 使える | 使えない |
| 暗号化 | 既定でKMS | SecureString でKMS |
| 費用 | シークレット単位で課金 | 標準パラメータは追加費用なし |
| 向く用途 | DB資格情報、外部APIキー | 設定値、環境ごとのパラメータ |
チェックリスト
- Secrets Manager と Parameter Store の差を3点挙げられる
- RDS資格情報の自動ローテーションの流れを説明できる
- 他アカウントへ特定シークレットだけ渡す方法を言える
- アクセスキーを保存せずIAMロールを使う理由を説明できる
- 環境変数に平文で置くリスクを説明できる
まとめ
ローテーションの要否と共有の細かさで、この2つはきれいに分かれます。そして最良の答えは、そもそも保存しないIAMロールであることも忘れないでください。
理解を確かめるにはクイズで腕試しを、最新の出題範囲はAWS認定 公式ページで必ず確認してください。
SCS(セキュリティ) におすすめの教材
要点整理から攻略する AWS認定 セキュリティ−専門知識 改訂2版
AWS認定 セキュリティ−専門知識 SCS-C02 練習問題集
AWS認定SCS(SCS-C03)対策トレーニングコース
AWS認定SCS 本番模試(4回分/260問)
本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。