Secrets Manager・Parameter Storeの違いを初心者向けに解説
AWSで設定値や機密情報を管理するSecrets ManagerとSystems Manager Parameter Storeの違いを、用途、暗号化、自動ローテーション、コスト、試験ポイントの観点で整理します。
比較対象サービス
サービス名をクリックすると、用語詳細ページで復習できます。
結論
Secrets ManagerとSystems Manager Parameter Storeは、どちらもアプリケーションの設定値や秘密情報を管理できます。
ただし、得意分野が違います。
- DBパスワードやAPIキーなど、ローテーションが必要な秘密情報はSecrets Manager
- 環境変数、エンドポイントURL、軽量な設定値はParameter Store
- SecureStringで暗号化した軽量な値を扱うならParameter Storeも候補
AWS試験では、「自動ローテーション」が出てきたらSecrets Managerを優先して考えます。
比較表
| 項目 | Secrets Manager | Parameter Store |
|---|---|---|
| 正式名 | AWS Secrets Manager | AWS Systems Manager Parameter Store |
| 主な用途 | 秘密情報管理 | 設定値管理 |
| 代表的な保存内容 | DBパスワード、APIキー、OAuthトークン | 環境名、URL、ARN、設定値 |
| 暗号化 | 対応 | SecureStringで対応 |
| 自動ローテーション | 得意 | 主目的ではない |
| 階層管理 | 可能 | 得意 |
| バージョン管理 | 可能 | 可能 |
| コスト | シークレット単位で課金対象 | Standard parameterは追加料金なしの範囲がある |
| 試験キーワード | secret, rotation, database credentials | parameter, configuration, SecureString |
初学者向け説明
Secrets Managerは、秘密情報を管理するためのサービスです。
Lambda
↓ 実行時に取得
Secrets Manager
↓
DB password / API keyアプリのソースコードにパスワードを書かず、実行時に取得できます。
Parameter Storeは、設定値を管理するための機能です。
Lambda
↓ 実行時に取得
Parameter Store
↓
/prod/api/base-url
/prod/app/log-level環境ごとの設定値を階層構造で管理できます。
試験で問われるポイント
Secrets Managerが正解になりやすいケース
- データベース認証情報を保存したい
- APIキーを安全に保存したい
- シークレットの自動ローテーションが必要
- ハードコードされた認証情報をなくしたい
- Lambda実行時に秘密情報を取得したい
Parameter Storeが正解になりやすいケース
- アプリケーション設定値を保存したい
- 環境ごとのパラメータを階層管理したい
- URL、ARN、環境名などを管理したい
- SecureStringで軽量な暗号化パラメータを使いたい
- CloudFormationやLambdaから設定値を参照したい
実務での使い分け
DBパスワードを管理する場合
Secrets Managerを使います。
RDS password
↓
Secrets Manager
↓
Lambda / ECS / EC2自動ローテーションや監査が必要な機密情報に向いています。
APIのベースURLを管理する場合
Parameter Storeを使います。
/prod/api/base-url = https://api.example.com
/dev/api/base-url = https://api-dev.example.com秘密情報ではないが、環境ごとに変わる設定値に向いています。
このプロジェクトでの位置づけ
このプロジェクトのMVPでは、秘密情報をコードに直書きしません。
フロントエンドでは .env.local を使いますが、Gitにはコミットしません。
将来的に外部APIキーやJWT_SECRETなどを本番で扱う場合、Secrets ManagerまたはParameter Storeを検討します。
よくある間違い
間違い1:すべてSecrets Managerに入れる
Secrets Managerは秘密情報管理に強いですが、単なる設定値まで全部入れるとコストと管理が重くなります。
設定値はParameter Store、秘密情報はSecrets Managerと分けると整理しやすいです。
間違い2:Parameter Storeなら何でも安全と思う
Parameter StoreのStringやStringListは平文の設定値です。
秘密情報を保存するならSecureStringを使うか、Secrets Managerを検討します。
間違い3:環境変数に秘密情報を直書きする
ローカル開発では .env.local を使うことがあります。
ただし、本番運用では秘密情報をコードやGitHubに出さない設計が必要です。
関連用語
- AWS Secrets Manager
- AWS Systems Manager
- AWS Key Management Service
- AWS Lambda
- AWS Identity and Access Management
関連問題
まとめ
Secrets ManagerとParameter Storeは、目的で分けると判断しやすいです。
- Secrets Manager:秘密情報、認証情報、自動ローテーション
- Parameter Store:設定値、環境変数、軽量なSecureString
SAAでは、セキュリティ設計と運用設計の両方で問われる比較です。
次に学ぶ内容
比較で違いを理解したら、関連用語と模擬問題で知識を確認してください。 資格試験では「似ているサービスの使い分け」が問われます。