AWS Systems Manager Parameter Store
設定データやシークレットを安全に格納・管理する階層型ストア
何ができるか
AWS Systems Manager Parameter Store は、アプリケーションの設定値、データベース接続文字列、API キーなどを安全に格納・管理するサービスです。パラメータを階層的に整理でき、KMS による暗号化、IAM によるアクセス制御、変更履歴の追跡が可能です。
どのような場面で使うか
アプリケーションの環境変数の管理、データベースのパスワードや API キーの安全な格納、Lambda 関数やECS タスクへの設定値の注入、環境ごと (dev/stg/prod) の設定の切り替えなどに利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
鍵付きの書類棚に例えられます。フォルダ (階層) ごとに書類 (パラメータ) を整理し、鍵 (暗号化) をかけて保管します。誰がいつ書類を取り出したか (アクセスログ) も記録されます。
Parameter Store とは
Parameter Store は、設定データとシークレットを一元管理するサービスです。ハードコードされた設定値やシークレットをコードから分離し、安全に管理できます。パラメータは `/app/prod/db-password` のような階層パスで整理でき、IAM ポリシーでパス単位のアクセス制御が可能です。
パラメータの種類
Parameter Store は 3 種類のパラメータをサポートしています。String は平文の文字列です。StringList はカンマ区切りの文字列リストです。SecureString は KMS で暗号化された文字列で、パスワードや API キーの格納に使用します。Standard パラメータは無料で最大 10,000 個まで作成でき、Advanced パラメータは有料で TTL (有効期限) やパラメータポリシーが利用可能です。
はじめかた
Systems Manager コンソールの「パラメータストア」で「パラメータの作成」を選択します。名前 (階層パス)、種類、値を指定して作成します。Lambda 関数や ECS タスクから AWS SDK の GetParameter API でパラメータを取得できます。CloudFormation の動的参照 ({{resolve:ssm:...}}) でテンプレートから直接参照することも可能です。
注意点
- Standard パラメータは無料で最大 10,000 個まで作成可能。多くのユースケースでは Standard で十分
- シークレットのローテーションが必要な場合は Secrets Manager の方が適している。Parameter Store にはローテーション機能がない
- SecureString パラメータの暗号化・復号に KMS の料金が発生する
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。