amazon-ssm-agent アップデート方法

Amazon SSM Agent を手動で最新版に更新する方法

標準リポジトリで配布されている amazon‑ssm‑agent は、たまに 2~3 世代遅れています。
「最新版を即日入れたい」「脆弱性対応で急ぐ」という場合は RPM を直接拾ってインストール→Agent 再起動 が最短ルートです。


SSM Agent ってそもそも何?

AWS Systems Manager(SSM)の各種機能 ―― Session Manager、Run Command、Patch Manager、Inventory など ―― を EC2 やオンプレサーバー側で受け付けるデーモンが SSM Agent です。
公式に提供されている OSS で、起動中のプロセス名は amazon-ssm-agent。Linux 版は systemd サービスとして常駐しています。

用途 ざっくり役割
リモートシェル(Session Manager) SSH 不要で AWS コンソールからシェル接続
Run Command/State Manager 一斉コマンド実行、設定ドリフト修正
Patch Manager OS パッチ自動適用
Inventory/Compliance ソフトウェア資産情報の収集

何が問題か?

Amazon Linux 2023 や Rocky Linux 9 など、標準 DNF/YUM リポジトリでは最新版がすぐには流通しません
脆弱性修正や新機能が必要でも、

sudo dnf update -y amazon-ssm-agent   --releasever=2023.7.20250414

といった「いつもの手順」では古いビルドが降ってくるケースが少なくありません。


そこで “直接インストール” 作戦

最新 RPM は リージョンごとの S3 バケット に常に置かれています。
例:us-east-2 の場合

# 1) 最新 RPM を直接取得して更新
sudo yum update -y   https://s3.us-east-2.amazonaws.com/amazon-ssm-us-east-2/latest/linux_amd64/amazon-ssm-agent.rpm

# 2) Agent を再起動
sudo systemctl restart amazon-ssm-agent

# 3) バージョン確認
amazon-ssm-agent -version
# → SSM Agent version: 3.3.2299.0   (2025-04-21 時点)

スクリプト化(リージョン自動判定)

#!/usr/bin/env bash
set -euo pipefail

REGION=$(curl -s http://169.254.169.254/latest/dynamic/instance-identity/document          | jq -r '.region')
ARCH="linux_amd64"
URL="https://s3.${REGION}.amazonaws.com/amazon-ssm-${REGION}/latest/${ARCH}/amazon-ssm-agent.rpm"

echo "[INFO] Installing $URL"
sudo yum update -y "$URL"
sudo systemctl restart amazon-ssm-agent
amazon-ssm-agent -version

ポイント

  • instance‑identity メタデータでリージョンを自動取得
  • yum update 一発で依存関係も解決
  • 再起動しないと新バージョンが読まれないので忘れずに systemctl restart

ディストリ別メモ

ディストリ 標準パッケージ名 注意点
Amazon Linux 2023 amazon-ssm-agent が Core リポジトリにあるが更新は遅め dnf で除外しておくと意図せずダウングレードされない
Rocky Linux 9 Extras が無いので常に手動更新が安全 yum versionlock add amazon-ssm-agent 推奨
Ubuntu 22.04 snap 版もあるが RPM のほうが早く更新される dpkg -i で導入可能(deb ファイルは同S3にあり)

ロールバックしたいとき

RPM は /var/cache/yum/$basearch/… にキャッシュされるので、旧ビルドを指定してインストールし直すだけで戻せます。Agent の構成ファイルは /etc/amazon/ssm/ に残るため設定は引き継がれます。


トラブルシューティング

症状 よくある原因 対処
Exec format error ARM 環境に x86_64 RPM を入れた linux_arm64 ディレクトリを指定
403 Forbidden PrivateLink 経由で S3 直アクセスを遮断 VPC エンドポイントまたはプロキシ経由に変更
Status: inactive (dead) 再起動忘れ、あるいは systemd の RestartSec が短い sudo systemctl restart amazon-ssm-agent 再実行

まとめ

  • SSM Agent は AWS 運用の生命線。脆弱性情報が出たら即日アップデートが理想。
  • 標準リポジトリは“ややのんびり” → S3 から RPM 直取りが最短。
  • systemctl restart を忘れると旧バイナリが常駐したままなので要注意。
  • バージョン固定したいなら yum versionlock / dnf mark で自動ダウングレードを防ぐ。

これで 「最新版が無い!どうしよう……」問題 は解決です。
安全・快適な SSM ライフを! 🛠️

ななし: