株式会社インテックの小西です。
この記事は「2025 Japan AWS Jr. Chanpions 夏のQiitaリレー 」の7日目の記事です。
過去の投稿(リンク集)はこちらからご覧ください!
記事の概要
- AWS Systems Manager Patch Managerでパッチ適用したが失敗した。
- /etc/python/tarfile.cfgで適切なフィルタリング設定を行い、AWS SSMが安全にtarファイルを展開できるようにすることでパッチ適用が成功した。
問題の概要:パッチ適用に失敗した!?
パッチ適用後、すべてのEC2がパッチコンプライアンスに準拠していることを確認し、ステータスも「成功」になっていたため、パッチ適用は問題なく完了したと思っていました。
しかし、Security HubのSSM.2が失敗していることに気づきました。
どうやらパッチ適用が正常に完了していないようです。
[SSM.2] EC2 instances managed by Systems Manager should have a patch compliance status of COMPLIANT after a patch installation
Systems Managerによって管理されるEC2インスタンスは、パッチのインストール後にパッチのコンプライアンスステータスがCOMPLIANTになる必要があります。
環境・前提条件
- OS:RHEL 8.8.0
- AWS環境:Systems Managerエージェントインストール済みのEC2インスタンス
- OS権限:sudo権限(設定ファイル作成のため)
※ 他のOSバージョンでは手順が異なる場合があります
エラー内容の確認
- Patch Managerのパッチポリシーに基づかない繰り返しタスク
> [AWS-PatchNowAssociation]
エラーの詳細
Linuxのエラー内容は以下の通りです。
Unable to extract tar file: /var/log/amazon/ssm/patch-baseline-operations/patch-baseline-operations-1.153.tar.gz.failed to run commands: exit status 155
AWS Systems Manager(SSM)のパッチベースライン操作に関連するtarファイルの展開に失敗していることが分かりました。
コマンド実行が失敗し、終了ステータス155で終了しています。
解決方法
Red Hat公式ナレッジベース(# Python tarfile ライブラリーにおけるディレクトリートラバーサル攻撃の軽減 (CVE-2007-4559))に記載されている通り、tarファイルの展開に関する設定を変更します。
tarfileのディレクトリトラバーサル攻撃に関する脆弱性があるため、以下の対応を行います。
-
/etc
配下にpython
ディレクトリを作成するcd /etc sudo mkdir python
-
python
ディレクトリに移動し、tarfile.cfg
ファイルを作成するcd python sudo vi tarfile.cfg
-
tarfile.cfg
に下記を記載する[tarfile] PYTHON_TARFILE_EXTRACTION_FILTER=data
-
再度パッチ適用を実施し、パッチコンプライアンスに準拠していることを確認する
エラーの原因
このエラーはセキュリティ強化のために意図された動作であり、システムの脆弱性ではなく、設定を変更することで解決できます。
- CVE-2007-4559はtarファイルのディレクトリトラバーサル攻撃に対する脆弱性です。
- RHEL 8.8.0ではCVE-2007-4559のセキュリティ強化のため、tarファイル展開時のフィルタリングが厳格化しました。その影響で、SSMエージェントがPythonのtarfileライブラリを使用してパッチ関連ファイルを展開する際にセキュリティ制限に引っかかるようです。
参考:Red Hat ナレッジベースポータルに入れない場合の確認方法
このエラーで苦労した原因の一つが、Red HatのライセンスがないためRed Hat公式ナレッジベースを見れないことでした。
しかし Red Hat公式ナレッジベースを開けない場合でも、ナレッジベースにアクセスする方法があります。
- AWS Systems Manager コンソール を開く
- ナビゲーションペインで「Fleet Manager」を選択
- Red Hat ナレッジベースポータルへの接続に使用するRHELインスタンスを選択
- 「アカウント管理」で「Red Hat ナレッジベースへアクセス」を選択し、Red Hat ナレッジベースのページを開く
上記でRed Hat公式ナレッジベースにアクセスすることができました!
まとめ
- RHELでパッチ適用に失敗した場合、tarファイルの展開に関する設定を変更することで解決できる場合があることが分かりました。
Views: 0