AWS Systems Manager Parameter Store のアイコン

AWS Systems Manager Parameter Store 人気2017年〜

設定データやシークレットを安全に格納・管理する階層型ストア

何ができるか

AWS Systems Manager Parameter Store は、アプリケーションの設定値、データベース接続文字列、API キーなどを安全に格納・管理するサービスです。パラメータを階層的に整理でき、KMS による暗号化、IAM によるアクセス制御、変更履歴の追跡が可能です。

どのような場面で使うか

アプリケーションの環境変数の管理、データベースのパスワードや API キーの安全な格納、Lambda 関数や ECS タスクへの設定値の注入、環境ごと (dev/stg/prod) の設定の切り替えなどに利用されます。

身近な例え

鍵付きの書類棚に例えられます。フォルダ (階層) ごとに書類 (パラメータ) を整理し、鍵 (暗号化) をかけて保管します。誰がいつ書類を取り出したか (アクセスログ) も記録されます。

Parameter Store とは

Parameter Store は、設定データとシークレットを一元管理するサービスです。ハードコードされた設定値やシークレットをコードから分離し、安全に管理できます。パラメータは `/app/prod/db-password` のような階層パスで整理でき、IAM ポリシーでパス単位のアクセス制御が可能です。

パラメータの種類

Parameter Store は 3 種類のパラメータをサポートしています。String は平文の文字列です。StringList はカンマ区切りの文字列リストです。SecureString は KMS で暗号化された文字列で、パスワードや API キーの格納に使用します。Standard パラメータは無料で最大 10,000 個まで作成でき、Advanced パラメータは有料で TTL (有効期限) やパラメータポリシーが利用可能です。 パラメータの種類を実務で活用するためのヒントは 技術書 (Amazon) にも掲載されています。

はじめかた

Systems Manager コンソールの「パラメータストア」で「パラメータの作成」を選択します。名前 (階層パス)、種類、値を指定して作成します。Lambda 関数や ECS タスクから AWS SDK の GetParameter API でパラメータを取得できます。CloudFormation の動的参照 ({{resolve:ssm:...}}) でテンプレートから直接参照することも可能です。

注意点

  • Standard パラメータは無料で最大 10,000 個まで作成可能。多くのユースケースでは Standard で十分
  • シークレットのローテーションが必要な場合は Secrets Manager の方が適している。Parameter Store にはローテーション機能がない
  • SecureString パラメータの暗号化・復号に KMS の料金が発生する
共有するXB!