После недавнего heartbleed уязвимости OpenSSL, я хотел бы, чтобы мои EC2 машины обновляются на регулярной основе. Наивным подходом было бы установить почасовую работу cron для обновлений безопасности ( sudo apt-get update && sudo unattended-upgrade
).
Есть ли риск сделать это? Есть ли рекомендуемый механизм обновления для машин EC2?
источник
Мы использовали
unattended-upgrades
с 2015 по 2020 год без проблем. У нас есть небольшая установка (на DigitalOcean) с:nginx
mysql-server
php5-fpm
php5-curl
php5-mysql
Основываясь на хороших прошлых результатах, делать обновления таким образом удобнее, чем не делать это. Но это не обязательно гарантия будущего!
Это может быть не очень хорошая идея
apache
, основываясь на отчетах других пользователей и моем прошлом опытеapache
обновлений. [См выше и здесь ]При этом
unattended-upgrades
, ручное вмешательство все еще потребуется, когда выпуск приближается к EOL .(Помимо вопроса: по моему опыту работы с TWiki, WordPress и Jenkins, актуальность этих приложений на самом деле является более серьезной проблемой, чем сама ОС, хотя, конечно, мы должны действительно делать и то, и другое. Для спокойствия, Вы можете помещать приложения, работающие в Интернете, как «некорневые» процессы, работающие внутри контейнера Docker.)
Но так как вы спросили о передовой практике , основной подход, рекомендуемый в документации AWS :
Это можно сделать в рамках сине-зеленой стратегии развертывания . Преимущество здесь в том, что вы можете запускать тесты на своем новом сервере, прежде чем переключать трафик. Если ваши тесты тщательные, то теоретически ваши обновления могут быть полностью автоматизированы, проверены перед запуском и без простоев.
Другие преимущества:
Тесты могут дать вам предварительное предупреждение, если требуется человеческое внимание (в отличие от того
unattended-upgrades
, когда предупреждения приходят от ваших пользователей только тогда, когда проблема существует!)Если ваша система скомпрометирована или вы решили сменить провайдера, этот подход должен облегчить развертывание нового развертывания. Ваша стратегия развертывания основана на сценариях, а не на древней памяти.
Но, конечно, для этого подхода требуется больше настроек, чем просто установка
unattended-upgrades
, и сложность, поэтому все еще есть место для ошибки.AWS также упоминает о выполнении «команды стека обновления зависимостей», которая, по-видимому, является их официальным способом сделать нечто подобное
unattended-upgrades
. Кажется, что это может быть вызвано из их интерфейса Instances, но я не уверен, может ли это быть автоматизировано.источник