はじめに
AWS Secrets ManagerとSystems Manager Parameter Storeは
どちらも認証情報、パスワード、ライセンスキーなどの重要な設定データの
整理や管理をするのに役に立つ機能。
その為どう使い分けたらいいのか?
また、AWS Systems Manager の機能である Parameter Store は Secrets Manager と統合されたため、パラメータからSecrets Manager シークレットを取得することもできる。
それぞれの特徴
AWS Systems Manager Parameter Store
- 階層型のパラメーターに保管可能
- バージョン管理が可能で、過去のパラメーター値にロールバックできる
- IAMポリシーを使用してアクセスが可能
- 暗号化され、KMSに保存
- 無料(KMSのAPI呼び出しに料金がかかる)
AWS Secrets Manager
- 自動的に機密情報のローテーションが可能
- シークレットにキーと値のペアを保管可能
- IAMポリシーを使用してアクセスが可能
- 暗号化され、KMSに保存
- 有料
どう使い分けたらいいのか?
設定とシークレットにひとつのストアが欲しい場合、パラメータストアをお使いください。ライフサイクル管理を備えたシークレット専用のストアが欲しい場合、シークレットマネージャーをお使いください。
Parameter StoreはさまざまなAWSサービスと連携できるのに対して、
Secrets Manageは多少制限がある。
ただ、Secrets Manageはシークレットのローテーションをすることができる。
どちらもKMS キーを用いて保管中の暗号化をサポートしている為、セキュリティに関する違いはない。
Parameter Store を使用して Secrets Manager のシークレットを参照する場合
- パラメータへの参照が既にサポートされている他の AWS のサービスを使用するときに、Secrets Manager シークレットを取得できる。
(EC2、ECS、Lambda、CloudFormation、CodeBuild、CodeDeploy、およびその他の Systems Manager 機能が含まれる) - GetParameter および GetParameters API オペレーションを使用して取得できるのは、Secrets Manager のシークレットのみ
- Parameter Store を使用してシークレットを取得するには、AWS Command Line Interface (AWS CLI)、AWS Tools for Windows PowerShell、および SDK を使用できる
- Parameter Store では、Secrets Manager のシークレットにアタッチされた AWS Identity and Access Management (IAM) ポリシーが尊重される
- Secrets Manager のシークレットを参照するパラメータは、Parameter Store のバージョン管理機能または履歴機能を使用できない
- Parameter Store は、Secrets Manager のバージョンステージを尊重する
終わりに
どちらも似ているのでこんがらかりそうになりますが、セキュリティに関する違いはないとのこと。
用途に合わせた使用方法とコスト面からParameter Storeを検討した上で用途がカバーできない場合はより細かい設定ができるSecrets Managerの利用するのを検討するのが良さそうです。