EC2 Ubuntuマシンを最新の状態に保つためのベストプラクティス


12

最近、次のハートブリードの OpenSSLの脆弱性の、私は定期的に更新され、私のEC2のマシンを維持したいと思います。単純なアプローチは、セキュリティ更新のために1時間ごとにcronジョブを設定することです(sudo apt-get update && sudo unattended-upgrade)。

それを行うリスクはありますか?EC2マシンに推奨される更新メカニズムはありますか?

回答:


13

無人アップグレードパッケージは、Ubuntuで重要なバグ修正とセキュリティパッチを自動的に適用する標準的な方法です。

すべてのUbuntuシステムにこれをインストールすることをお勧めします。

sudo apt-get update &&
sudo apt-get install unattended-upgrades

独自のcronジョブを作成する必要はありません。パッケージによりインストールされます。

動作を変更する場合は、デフォルト構成を編集できます:https : //help.ubuntu.com/lts/serverguide/automatic-updates.html


運用サーバーでこれを行うことの推奨事項についての考えはありますか?変更を静かに適用し、更新が失敗したり、問題が発生したりする危険性があります。
ianjs

3
「すべて」とは、本番システムも意味していました。私は長年Ubuntuセキュリティパッチを自動で適用してきましたが、深刻な問題を覚えていません。既知のセキュリティ問題へのパッチなしで本番サーバーをそこに置いて、それらが悪用される可能性を危険にさらすのは緊張します。つまり、それぞれの状況には異なるニーズがあるため、各パッチの厳密なテストフェーズを実行した方がよい場合があります。ただし、それらは常に解放されるため、忙しいことに注意してください。
エリックハモンド14

1
冗長/クラスタ設定がない限り、これはお勧めしません。Ubuntuの更新手順は完璧ではありません。サービスを何度も停止し、最近ではブートセクタが壊れていました。
dualed

1

unattended-upgrades2015年から2020年まで問題なく使用しています。以下の小さなセットアップ(DigitalOcean上)があります。

  • nginx
  • mysql-server
  • php5-fpm php5-curl php5-mysql

過去の良好なパフォーマンスに基づいて、この方法で更新を行うことは、それを行わないよりも安全であると感じています。しかし、それは必ずしも将来を保証するものではありません!

これはapache、他のユーザーのレポートとapache更新の私の過去の経験に基づいて、にとってあまり良い考えではないかもしれません。[上記およびここを参照 ]

を使用unattended-upgradesすると、リリースがEOLに近づくと、手動による介入が必要になります


(質問とは別に、TWiki、WordPress、およびJenkinsでの私の経験では、これらのアプリを最新の状態に保つことは、OS自体よりも実際に大きな懸念事項ですが、もちろん両方を実行する必要があります。 Dockerコンテナ内で実行される非ルートプロセスとしてインターネットに接続されたアプリをサンドボックス化できます。)


ただし、ベストプラクティスについて尋ねたので、AWSドキュメントで推奨される主なアプローチは次のとおりです。

  • 新しいインスタンスを作成して起動し、現在のオンラインインスタンスを置き換えます。次に、現在のインスタンスを削除します。

    新しいインスタンスには、セットアップ中にセキュリティパッチの最新セットがインストールされます。

(2020年2月)

これは、青緑展開戦略の一部として実行できます。ここでの利点は、トラフィックを切り替える前に新しいサーバーに対してテストを実行できることです。テストが徹底的であれば、理論上、更新は完全に自動化され、稼働前に検証され、ダウンタイムは発生しません。

その他の利点:

  • テストは、人間の注意が必要な場合に高度な警告を与えることができます(unattended-upgrades問題が発生した後にのみユーザーから警告が出される場合とは対照的に!)。

  • システムが危険にさらされた場合、またはプロバイダーを切り替えることにした場合、このアプローチにより、新しい展開を簡単に展開できます。配備戦略は、古代の記憶ではなくスクリプト化されています。

しかし、もちろん、このアプローチには単純なインストールよりも多くのセットアップが必要unattended-upgradesであり、より複雑であるため、まだエラーの余地があります。


AWSは、「Update Dependencies stackコマンド」の実行についても言及しています。これは、に類似しunattended-upgradesた何かを行う公式の方法のようです。Instancesインターフェイスからトリガーできるようですが、自動化できるかどうかはわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.