AWS EC2 Amazon Linuxのセキュリティパッケージの自動更新設定について

日々更新されるセキュリティパッケージを手動であてるのは大変ですよね。そこでyum-cronを試したので、簡単に設定手順をまとめます。

yum-cronとは

yum update を自動で定期実行してくれる技術です。

yum-cronのインストール

sudo yum install yum-cron

これで簡単に導入できます。

yum-cronの設定

デフォルトの設定ファイルを念の為バックアップします。

sudo cp /etc/yum/yum-cron.conf /etc/yum/yum-cron.conf.backup

update_cmd の箇所でアップデート対象を選択できます。下記コマンドではセキュリティー関連のパッケージのみを対象に設定しています。

sudo sed -i "s/^update_cmd.*$/update_cmd = security/g" /etc/yum/yum-cron.conf
sudo sed -i "s/^apply_updates.*$/apply_updates = yes/g" /etc/yum/yum-cron.conf

# ↑少し頑張ってsedコマンドで正規表現に該当する行を書き換えていますが、普通にviでOKです!

デフォルトだと yum upgrade が実行されますが、既存のアプリ設定などに予期せぬ不具合が起きるケースもあるので、minimalやsecurityに設定するのが安全です。

yum-cronの起動と自動起動の設定

設定ファイルの修正が完了したら、yum-cronを起動します。ついでに、サーバーの起動時に、yum-cronも自動で起動するように設定します。

# 起動
sudo systemctl start yum-cron

# 自動起動の設定
sudo systemctl enable yum-cron

# ステータスの確認
systemctl status yum-cron

yum-cron設定方法の詳細

yum-cron.confの設定パラメータについてもう少し詳細にメモを残します。

update_messages

ダウンロードまたは適用可能なパッケージがあるときにメッセージを出すかどうかを決められます。

download_updates

利用できるパッケージがあった時にそれを自動でダウンロードするかどうかを決めます。

apply_updates

利用できるパッケージがあった時にそれを自動で適用するかどうかを決めます。前提条件として、download_updatesがyesになっている必要があります。

update_cmd

アップデート対象を選択します。

update_cmd 設定項目実行されるコマンドdefaultyum upgradesecurityyum –security upgradesecurity-severity:Criticalyum –sec-severity=Critical upgrademinimalyum –bugfix update-minimalminimal-securityyum –security update-minimalminimal-security-severity:Critical–sec-severity=Critical update-minimal

まとめ

最近はメンテナンスを嫌うエンジニアがLambdaやFirebaseに流れがちのようです。しかしサーバーレスのサービスもそのツール自体を管理する必要があり、自由度が犠牲になるデメリットを抱えています。

サーバーのメンテナンスは大変ですが、yum-cronのようなツールや自動化などをうまく行い、効率の良い運用ができたらなと思います。