奥さん、大変ですよ! AmazonLinux2023に脆弱性が発見されたそうですよ!(2023/07/12)
では、kernelをupdateする方法について
kernelバージョンが6.1.25-37.47だとマズイそうなので、これを上げます。
まず、自分のところで動いているEC2のどれがAmazonLinux2023か調べます。2023年3月以降に起動された物で、一個一個以下の様にシステムログを見るか、「接続」してバナーを見ればわかります。
別に何の設定もしなくてもコマンドプロンプト画面に入れる「EC2 Instance Connect」が今春実装されているから、シスログみなくていいかな? プライベートネットワークでも踏み台なしで入れるのは嬉しいよね。プライベートネットワークもSSMでのupdateはできます。
で、対象のEC2はSSMエージェントがデフォで動いているはずだから、
sudo systemctl status amazon-ssm-agent
で、確認。あとはSSMの高速セットアップをする。インスタンスの選択は手動でできるので、入れたくないEC2には入れなくて良い。高速セットアップにはいろいろな機能があって、エージェントのインストールとIAMの設定しておけば無理に高速セットアップしなくていい(むしろ、競合する)。
なお、セットアップされたかどうかはインスタンスの「接続」で「セッションマネージャー」で接続ボタンがオレンジになったらOK。IAMの設定に5分ほど掛かるので待つこと。いつまでも「接続」がオレンジにならなかったときがあって、
sudo systemctl restart amazon-ssm-agent
したら直った。Active(Running)だったけどおかしかったらしい。
コマンドプロンプトに入って、以下を打ってリリースバージョンを確認。
sudo dnf check-update
一番下が該当リリースバージョンだったので、下記のYAMLデータに入れる。
dnf upgrade –releasever=2023.1.20230705ね。ご丁寧にコマンドを表示してくれます。これにsudoを付けます。
次にSSMの左ペインから「ドキュメント」をクリック。
「create document」で、以下のYAMLデータを流し込む。
---
description: "Update kernel and reboot"
schemaVersion: "0.3"
parameters: {}
mainSteps:
- action: "aws:runCommand"
name: "runCommands"
inputs:
DocumentName: "AWS-RunShellScript"
Targets:
- Key: "InstanceIds"
Values:
- "i-0123456789abcde"
Parameters:
commands:
- "uname -r"
- "dnf upgrade --releasever=2023.1.20230705 kernel -y"
- "sudo reboot"
i-0123456789abcdeはインスタンスIDなので自分のリソースを入れてね。複数入れることもできます。やってることはバージョン表示して、kernelのアップデートして、再起動しているだけ。
さて、これを特定の時間に動かします。SSMの左ペインから「メンテナンスウィンドウ」を指定。
時間はcronなどでこんな感じ。今回一回だけなので、週一のスケジュールで後日消す予定。
タスクを登録します。
重みとか1でいいです。あまり気にする作業じゃないんで。
で、ターゲットも選択しときましょう。ドキュメントに指定してるからって忘れてしまい、30分ほど悩みました。
5分で終わるので、その後、システムログに出ているバージョンを確かめるか、コマンドプロンプトで以下のコマンドを打って確認します。
uname -r
これで上手くkernelのアップデートができるはずです。
コメント