Secrets ManagerとParameter Storeの違いについてまとめてみた

2024.02.01

はじめに

こんにちは!AWS事業本部コンサルティング部の和田響です。
この記事ではSecrets ManagerとAWS Systems Manager Parameter Storeという似て非なる2つのサービスについてまとめてみました。
それぞれのユースケースについて理解していただければ幸いです。

先にまとめ

ざっくりと両者の違いを整理しました。(2024.2.1時点)

Secrets Manager Parameter Store
暗号化 可能(KMS) 可能(KMS)
パラメータ(シークレット)ごとの料金 0.40USD/月 無料(Standard)
0.05 USD(Advanced)
API使用料金 1 万回ごとに 0.05USD 無料(Standard)
1 万回ごとに 0.05 USD(Advanced)
自動ローテーション 不可
アクセス制御 IAMで可能 IAMで可能

Secrets Manager

AWS Secrets Manager

Secrets Manager とは

AWS Secrets Manager とは
AWS Secrets Manager は、アプリケーション、サービス、および IT リソースへのアクセスを管理するのに役立ちます。

これだけではよくわからないと思うので、特徴について整理します。

Secrets Manager の機能

シークレットの保存と管理

Secrets Manager は、セキュリティが重要な情報を暗号化して保存し、必要に応じてアクセスを提供します。AWS KMS(Key Management Service)を使用してシークレットを暗号化することで、データの安全性を確保します。

自動ローテーション

シークレットを定期的に変更することはセキュリティのベストプラクティスです。Secrets Manager は、特定のスケジュールに基づいてシークレットを自動的にローテーション(更新)する機能を提供します。これにより、セキュリティリスクを低減し、シークレットの管理を自動化できます。

バージョン管理

シークレットの変更履歴を追跡し、以前のバージョンのシークレットにアクセスすることができます。これにより、変更が原因で問題が発生した場合に、簡単に以前の状態に戻すことが可能です。

アクセス制御

AWS Identity and Access Management (IAM) と連携して、シークレットへのアクセス権限を細かく制御できます。これにより、シークレットへのアクセスを必要なユーザーやサービスに限定することができます。

監査とモニタリング

AWS CloudTrail と統合することで、シークレットへのアクセスや変更を監視し、ログを記録できます。これにより、コンプライアンス要件を満たすための監査証跡を確保できます。

クロスアカウントアクセス

Secrets Manager は、AWS アカウント間でシークレットを共有する機能も提供します。これにより、複数のアカウントが同じシークレットを使用する場合に、それらを一元的に管理できます。

Secrets Manager の料金

Secrets Managerの課金要素は以下の二つです。

  • シークレットあたり 0.40USD/月
  • 10,000 件の API コールあたり0.05USD

Parameter Store

AWS Systems Manager

Parameter Store とは

Parameter Store とは
AWS Systems Manager の一機能である Parameter Store は、設定データ管理と機密管理のための安全な階層型ストレージを提供します。パスワード、データベース文字列、Amazon Machine Image (AMI) ID、ライセンスコードなどのデータをパラメータ値として保存することができます。値はプレーンテキストまたは暗号化されたデータとして保存できます。パラメータの作成時に指定した一意の名前を使用して、スクリプト、コマンド、SSM ドキュメント、設定およびオートメーションワークフローの Systems Manager パラメータを参照できます。

Parameter Store の機能

パラメータの保存と階層化

パラメータストアでは、構成データや秘密情報をパラメータとして保存できます。これらのパラメータは階層的に整理することができ、例えば /application/production/database/password のようなパスを使用して整理されます。

セキュアな情報の暗号化

機密性の高い情報は、AWS Key Management Service (KMS) を使用して暗号化されます。これにより、パスワードやデータベース接続文字列などの秘密情報が保護されます。

バージョン管理

パラメータの各変更をバージョンとして保存します。これにより、過去のバージョンに簡単に戻すことができ、変更管理が容易になります。

アクセス制御

AWS Identity and Access Management (IAM) との統合により、個々のパラメータへのアクセスを制御できます。特定のユーザーやロールがパラメータにアクセスできるように設定することが可能です。

監査とモニタリング

AWS CloudTrail との統合により、パラメータストアへのアクセスやパラメータの変更に関する監査ログを取得できます。これにより、コンプライアンスとセキュリティの監視が強化されます。

Parameter Store の料金

パラメーター保持の料金

料金
Standard 無料
Advanced 1つ当たり 0.05 USD/1ヶ月

API使用の料金

料金
Standard 無料
Advanced 1 万回ごとに 0.05 USD

※スループットの上限を緩和すると、AdvancedだけではなくStandardのパラメーターに対する操作も課金対象となります。

Advancedパラメータについては以下の記事を参照ください!

両者の比較

Secrets Manager Parameter Store
暗号化 可能(KMS) 可能(KMS)
パラメータ(シークレット)ごとの料金 0.40USD/月 無料(Standard)
0.05 USD(Advanced)
API使用料金 1 万回ごとに 0.05USD 無料(Standard)
1 万回ごとに 0.05 USD(Advanced)
自動ローテーション 不可
アクセス制御 IAMで可能 IAMで可能

ユースケース

Advanced Parameterの登場により、Secrets ManagerとParameter Storeのどっちを使ったら良いかは、暗号化必須の場合は基本的に「自動ローテーションするかしないか」で考えることになりそうです。
自動ローテーションする場合はSecrets Managerを使用し、自動ローテーションしない場合は料金の低いParameter Storeを利用を検討しましょう。

最後に

今回は「Secrets ManagerとParameter Storeの違い」について記載しました。
どなたかの参考になれば幸いです。