🎃

AWS Secrets ManagerとSystems Manager Parameter Storeの違いを徹底比較

に公開

概要

AWS環境で機密情報(パスワード、APIキー、認証トークンなど)を安全に管理するための代表的なサービスとして、AWS Secrets ManagerAWS Systems Manager Parameter Store(以下、SSM Parameter Store) があります。

これらは、AWS認定試験(SAA, SOA, DVA)でも頻出のテーマであり、システム設計や運用管理において必ず理解しておくべき重要なサービスです。

どちらも「設定値やシークレットの安全な保存と取得」を目的としていますが、用途や機能、コスト面で明確な違いがあります。

本記事では、両者の特徴を整理し、ユースケースを交えながら比較していきます。

🔐 AWS Secrets Managerの特徴

特徴①:自動ローテーション機能

Secrets Managerの最大の強みは、RDSやAuroraなどの認証情報を自動的にローテーション(更新)できることです。
Secrets Managerは内部的にAWS Lambdaを利用して認証情報を更新します。
テンプレートが用意されており、ユーザーが新規でLambdaを開発する必要はありません。

ユースケース

DBパスワードを定期的に自動更新したい場合
→ 手動更新による人的ミスを防ぎ、セキュリティポリシーを自動的に適用できます。

特徴②:バージョン管理とロールバック

Secrets Managerはシークレットのバージョンを自動で管理します。
必要に応じて**過去の値にロールバック(再指定)**することが可能です。
UI上で直接の「ロールバック」機能はありませんが、API経由で旧バージョンを再有効化できます。

ユースケース

シークレット更新に失敗した際、直前の状態に戻したい場合
→ アプリケーション停止を最小限に抑え、迅速に復旧可能です。

特徴③:監査・追跡が容易

Secrets ManagerはCloudTrailとの統合により、「誰が」「いつ」「どのシークレットを取得したか」を完全に追跡できます。
これにより、セキュリティ監査対応も容易になります。

ユースケース

アクセスログを厳密に管理する必要がある金融・医療システム
→ 機密情報のアクセス証跡を残すことで監査要件を満たせます。

特徴④:コストは高めだが機能も豊富

Secrets Managerは1シークレットあたり月額$0.40+API呼び出し課金が発生します。
しかし、自動ローテーションや監査性の高さを考慮すると、高機密情報向けの運用コストとして妥当です。

⚙️ AWS Systems Manager Parameter Storeの特徴

特徴①:構成情報の集中管理

Parameter Storeは、アプリケーションの設定値や構成情報を階層的に整理・管理できます。
例:/prod/db/password/staging/api/endpoint

ユースケース

複数環境(dev, staging, prod)で設定を統一管理したい場合
→ 環境ごとに異なる設定を階層で整理し、運用の見通しを良くできます。

特徴②:暗号化も可能(SecureString)

Parameter Storeでは、KMSを使ってパラメータを暗号化(SecureString) として保存できます。
AWS管理キー(aws/ssm)を利用する場合は追加コストが発生せず、Secrets Managerと同等のセキュリティを確保可能です。
一方、カスタマー管理キー(CMK)を利用する場合は、KMSのリクエスト課金が適用されます。

ユースケース

アプリケーションのAPIキーやパスワードを安全に保存したい場合(頻繁な更新不要)
→ 暗号化しても追加コストが発生しないため、低コスト運用に最適です。

特徴③:AWSサービスとの統合性が高い

Parameter Storeは、AWS CLI・CloudFormation・Lambda・EC2など多くのサービスで標準サポートされています。
特別なSDKを使わずに値を取得でき、Infrastructure as Codeとの親和性も高いです。

ユースケース

Lambda関数やEC2インスタンスから環境変数的に設定値を参照したい場合
→ 運用負荷を減らし、デプロイ時の設定管理を簡素化できます。

特徴④:コストを抑えたい場合に最適

Parameter Storeは標準パラメータ(Standard Parameter)なら無料で利用可能です。
ただし、Advancedパラメータを使用する場合は、$0.05/パラメータ/月 の課金が発生します。
高度なパラメータでは、TTL(有効期限)設定や最大100KBの値サイズが利用可能です。

ユースケース

多くの設定値を一元管理したいが、コストは最小限にしたい場合
→ 数百〜数千のパラメータを扱う場合でもコストを抑えられます。

💰 コスト比較(参考)

項目 Secrets Manager Parameter Store
基本料金 $0.40/secret/月 無料(標準) / $0.05/パラメータ/月(高度)
API呼び出し $0.05/1,000回 無料(標準) / $0.05/10,000回(高度)
自動ローテーション あり(追加費用あり) なし
暗号化 デフォルト有効(KMS) 任意(KMSオプション、CMKは課金)

🧩 まとめ:どう使い分けるべきか

AWS Secrets ManagerとSystems Manager Parameter Storeの使い分けを整理すると次のようになります。

  • 自動ローテーションが必要 → Secrets Manager
  • 設定値の一元管理や低コスト重視 → Parameter Store
  • 高機密情報の厳密なアクセス管理 → Secrets Manager
  • 大量の設定を階層的に管理 → Parameter Store

以下のフローチャートで、どちらを使うべきかを簡単に判断できます👇

📚 参考資料

Discussion