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のようなツールや自動化などをうまく行い、効率の良い運用ができたらなと思います。