Amazon EC2のdescribe-imagesでパブリックAMIに関連付けられたSSMパラメータ名を確認できるようになりました
はじめに
2026年7月16日のアップデートで、aws ec2 describe-images のレスポンスに新フィールド PublicSsmParameterName が追加されました。関連する公開SSMパラメータが存在するパブリックAMIでは、そのパラメータ名を直接確認できます。
これまでAMI IDからSSMパラメータ名を知るには、SSM Parameter Store側からパラメータ一覧を取得して突合する必要がありました。今回のアップデートにより、describe-images の結果にSSMパラメータ名が含まれるようになりました。
| 観点 | 従来フロー | 新フロー |
|---|---|---|
| 手順 | パラメータ一覧を取得 → 目的のパラメータを特定 → 値を取得して照合 | describe-images の結果から直接確認 |
| 主なコマンド | ssm get-parameters-by-path |
ec2 describe-images |
| 逆引き可否 | AMI ID → SSMパラメータの逆引きには手作業での突合が必要 | 可能 |
本記事では、AL2023(x86_64 / arm64)と Windows Server 2022 の各AMIで PublicSsmParameterName が返ることを確認し、従来の ssm get-parameters-by-path による方法との違いを整理したうえで、CloudFormation でSSMパラメータ経由の最新AMI参照によりEC2インスタンスを起動するところまでを試しました。
検証内容
検証1: AL2023 のパブリックAMIで確認する
Amazon Linux 2023 の最新AMIに対して describe-images を実行し、新フィールドが返ることを確認します。x86_64 と arm64 の2パターンで確認しました。
aws ec2 describe-images \
--owners amazon \
--filters "Name=name,Values=al2023-ami-2023.12.20260710.0-kernel-6.1-x86_64" \
--query "Images[0]"
{
"ImageId": "ami-09b226c0a2ed06329",
"Name": "al2023-ami-2023.12.20260710.0-kernel-6.1-x86_64",
"Architecture": "x86_64",
"Description": "Amazon Linux 2023 AMI 2023.12.20260710.0 x86_64 HVM kernel-6.1",
"PublicSsmParameterName": "aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64",
"Public": true,
"CreationDate": "2026-07-10T03:20:01.000Z"
}
検証したレスポンスでは PublicSsmParameterName は先頭スラッシュなしの形式(aws/service/...)で返りました。SSMパラメータとして参照する際は先頭に / を付けます。なお、検証3で示すとおり、この時点では kernel-default と kernel-6.1 が同一のAMI IDを指しています。今回の検証では、これらのうち kernel-default のパラメータ名が返りました。
続いて arm64 です。
aws ec2 describe-images \
--owners amazon \
--filters "Name=name,Values=al2023-ami-2023.12.20260710.0-kernel-6.1-arm64" \
--query "Images[0]"
{
"ImageId": "ami-05151a526896cf708",
"Name": "al2023-ami-2023.12.20260710.0-kernel-6.1-arm64",
"Architecture": "arm64",
"Description": "Amazon Linux 2023 AMI 2023.12.20260710.0 arm64 HVM kernel-6.1",
"PublicSsmParameterName": "aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64",
"Public": true,
"CreationDate": "2026-07-10T03:11:26.000Z"
}
arm64 でも PublicSsmParameterName が返り、アーキテクチャに応じたパラメータ名(末尾が arm64)になっていました。
検証2: Windows Server 2022 でも確認する
Windows Server 2022 のAMIでも PublicSsmParameterName が返るかを確認しました。
aws ec2 describe-images \
--owners amazon \
--filters "Name=name,Values=Windows_Server-2022-English-Full-Base-2026.06.10" \
--query "Images[0]"
{
"ImageId": "ami-0a68c495d860adbec",
"Name": "Windows_Server-2022-English-Full-Base-2026.06.10",
"Architecture": "x86_64",
"Description": "Microsoft Windows Server 2022 Full Locale English AMI provided by Amazon",
"Platform": "windows",
"PublicSsmParameterName": "aws/service/ami-windows-latest/Windows_Server-2022-English-Full-Base",
"Public": true,
"CreationDate": "2026-06-10T22:17:58.000Z"
}
Windows AMI でも PublicSsmParameterName が返りました。Amazon Linux の ami-amazon-linux-latest に対し、Windows は ami-windows-latest とパスの名前空間で区別されています。
検証3: 従来のSSMパラメータ一覧取得との対比
新フィールドが追加される前は、AMIに対応するSSMパラメータを知るために Parameter Store 側を列挙する必要がありました。ssm get-parameters-by-path で /aws/service/ami-amazon-linux-latest 配下のパラメータ一覧を取得します。
aws ssm get-parameters-by-path \
--path "/aws/service/ami-amazon-linux-latest" \
--query "Parameters[].{Name:Name,Value:Value}"
このパス配下には、検証時点でAL1・AL2・AL2023を含む45個のパラメータが存在しました。このうちAL2023に関連するものを抜粋すると以下のとおりです。
[
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64", "Value": "ami-05151a526896cf708"},
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64", "Value": "ami-09b226c0a2ed06329"},
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64", "Value": "ami-05151a526896cf708"},
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64", "Value": "ami-09b226c0a2ed06329"},
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.12-arm64", "Value": "ami-00cabeadbeb4ea5b7"},
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.12-x86_64", "Value": "ami-081ad521c91aa3b34"},
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.18-arm64", "Value": "ami-08478da9da8cb5a5a"},
{"Name": "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.18-x86_64", "Value": "ami-0967230e9fa45db6d"}
]
従来、手元にあるAMI ID(例: ami-09b226c0a2ed06329)が「どのSSMパラメータに対応するか」を知りたい場合、この一覧から値を検索して突合する必要がありました。新フィールドでは describe-images の結果に関連付けられたパラメータ名が含まれるため、Parameter Store側の一覧から探すことなく確認できます。
検証4: CloudFormation でSSMパラメータ経由のEC2起動
確認したSSMパラメータを CloudFormation から参照し、最新のAL2023 arm64 AMIでEC2インスタンスを起動しました。AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> 型のパラメータを使うと、スタック作成・更新時にSSMパラメータの値が解決されます。解決された値(AMI ID)が ImageId に渡されます。
AWSTemplateFormatVersion: '2010-09-09'
Description: EC2 instance using SSM Parameter for latest AL2023 AMI (arm64)
Parameters:
LatestAmiId:
Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
Default: /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64
Resources:
EC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t4g.nano
ImageId: !Ref LatestAmiId
Tags:
- Key: Name
Value: ssm-parameter-ami-test
このテンプレートをデプロイします。
aws cloudformation deploy \
--template-file template.yaml \
--stack-name ssm-parameter-ami-test
スタックが CREATE_COMPLETE になったので、インスタンスの情報を確認します。
aws ec2 describe-instances \
--filters "Name=tag:Name,Values=ssm-parameter-ami-test" \
--query "Reservations[0].Instances[0].{InstanceId:InstanceId,ImageId:ImageId,InstanceType:InstanceType,State:State.Name,Architecture:Architecture}"
{
"InstanceId": "i-xxxxxxxxxxxxxxxxx",
"ImageId": "ami-05151a526896cf708",
"InstanceType": "t4g.nano",
"State": "running",
"Architecture": "arm64"
}
ImageId が ami-05151a526896cf708 で、SSMパラメータの値と一致しました。テンプレートにAMI IDを直書きしなくても、デプロイ時に最新の値が解決される構成です。
まとめ
describe-images のレスポンスに PublicSsmParameterName が追加され、パブリックAMIに関連付けられた公開SSMパラメータ名を直接確認できるようになりました。これにより、既存テンプレートにハードコードされたAMI IDを、SSMパラメータ参照へ置き換える際の確認がしやすくなります。
SSMパラメータを利用すると、IaCテンプレート内のAMI IDを書き換えることなく、スタックの作成・更新時に指定したAMI系列の最新AMIを参照できます。特に、古いAMIが公開されなくなるWindows AMIへの追従や、起動後に適用するセキュリティ更新・パッケージ更新を減らしたい場合に有効です。起動時に更新処理を実行している構成では、初期化時間の短縮も期待できます。
一方、CloudFormationでスタックを更新した際に、SSMパラメータが以前と異なるAMI IDへ解決されると AWS::EC2::Instance の ImageId が変更されます。その結果インスタンスが置き換えられるため、非オートスケーリングでステートフルなEC2に対して設定変更を行う構成ではご注意ください。








