目次Category
はじめに
今回は以下のAWSサービスを組み合わせて
パラメータストアに文字列を保存し、Lambda から取得する
環境を構築します
| サービス | 役割 |
|---|---|
| Systems Manager(パラメータストア) | 文字列の保存・取得 |
| Lambda | パラメータを読み出すコードの実行 |
| IAM | Lambda が SSM を読む権限 |
前提条件
- ・操作・確認は AWS コンソール(Web) で進めます
- ・Python 3.14 + boto3(Lambda 標準のPythonライブラリ)を使用します
- ・VPC 設定は不要です(Lambda をVPC外に置くため不要)
今回構築する全体像
flow.txt
Phase 1 パラメータストアに文字列を 1 件作成
↓
Phase 2 Lambda 作成 → IAM 権限付与 → get_parameter テスト
構築手順
Step1 パラメータストアで値を保存する
Systems Manager パラメータストアに、演習用の文字列を作成します
① パラメータストアを開く
AWS コンソールからパラメータストアの画面を開きます
設定手順
- AWS コンソール → Systems Manager を開きます
- 左メニュー → アプリケーション管理 → パラメータストア を選択します
- パラメータの作成 をクリックします

② String パラメータを作成する
以下の内容で String パラメータを作成します
設定内容
| 項目 | 値 |
|---|---|
| 名前 | /ojt/{your-name}/sample-message |
| 説明 | OJT 演習用サンプルメッセージ |
| ティア | Standard(無料) |
| タイプ | 文字列(String) |
| データ型 | text |
| 値 | Hello from Parameter Store!(任意の文字列で OK) |


ポイント
- ・名前を
/で始まる階層形式(例:/ojt/tanaka/db-host)にすると、確認・管理しやすくなります
③ 作成結果を確認する
パラメータが正しく作成されたことを確認します
確認手順
- パラメータ一覧で
/ojt/{your-name}/sample-messageを選択 - 名前をクリックし、値 タブで入力した文字列が表示されることを確認します

Step2 Lambda から値を取得する
VPC 外の Lambda を作成し、Step1 で保存した値が取得できるかを確認します
① Lambda 関数を作成する
AWS コンソールから Lambda 関数を新規作成
設定内容
| 項目 | 値 |
|---|---|
| 関数名 | ojt-lambda-ssm-{your-name}-01 |
| ランタイム | Python 3.14 |

② IAM ロールに SSM 読み取り権限を付与する
Lambda の実行ロールに、パラメータストアを読み取る権限を付与します
設定手順
- Lambda → 設定 → アクセス権限 → 実行ロール名をクリック
- 許可を追加 → ポリシーをアタッチ をクリック
AmazonSSMReadOnlyAccessを検索してアタッチします(演習用)




ポイント
- ・本番では
ssm:GetParameterのみに絞ったカスタムポリシーを推奨します
③ 環境変数を設定する
Lambda内のパラメータ名をハードコードせず、環境変数で管理します
設定内容
| キー | 値 |
|---|---|
PARAM_NAME |
|
設定手順
- Lambda → 設定 → 環境変数 → 編集 をクリックします
- 上記のキーと値を追加します
- 保存 をクリックします


④ テストコードを貼り付ける
Lambda 関数に、パラメータストアから値を取得する Python コードを設定します
設定手順
- Lambda → コード タブを開きます
lambda_function.pyの内容を以下に置き換えます- Deploy をクリックします
lambda_function.py
import json
import os
import boto3
def lambda_handler(event, context):
param_name = os.environ.get("PARAM_NAME", "/ojt/{your-name}/sample-message")
client = boto3.client("ssm")
try:
response = client.get_parameter(
Name=param_name,
WithDecryption=True,
)
value = response["Parameter"]["Value"]
param_type = response["Parameter"]["Type"]
return {
"statusCode": 200,
"body": json.dumps(
{
"ok": True,
"message": "パラメータストアから取得できました",
"param_name": param_name,
"type": param_type,
"value": value,
},
ensure_ascii=False,
),
}
except Exception as e:
return {
"statusCode": 500,
"body": json.dumps(
{"ok": False, "error": str(e)},
ensure_ascii=False,
),
}
⑤ テスト実行する
Lambda コンソールからテストイベントを実行し、パラメータが取得できることを確認します
設定手順
- Lambda → テスト タブ → 新しいイベント をクリックします
- イベント名:
ssm-test、JSON:{}を設定します - テスト をクリックします

成功例
このような記述がでれば成功です

まとめ
今回の構築では、
- ・パラメータストア に文字列を保存し
- ・Lambda から
get_parameter()で取得し - ・IAM で必要最小限の読み取り権限を付与する
という一連の流れを実践しました
片付け(任意)
演習が終わったら、不要なリソースを削除します
- Lambda →
ojt-lambda-ssm-{your-name}-01→ 削除 - Systems Manager → パラメータストア →
/ojt/{your-name}/sample-message→ 削除
同じカテゴリーの記事
同じカテゴリの記事を読む