Frage Automatisches Anwenden von Sicherheitsupdates für AWS Elastic Beanstalk


Ich bin ein Fan von Heroku seit den frühesten Tagen. Aber ich mag die Tatsache, dass AWS Elastic Beanstalk mehr Kontrolle über die Eigenschaften der Instanzen gibt. Eine Sache, die ich an Heroku liebe, ist die Tatsache, dass ich eine App bereitstellen kann und mich nicht darum kümmern muss, sie zu verwalten. ich bin angenommen Heroku stellt sicher, dass alle OS-Sicherheitsupdates rechtzeitig angewendet werden. Ich muss nur sicherstellen, dass meine App sicher ist.

Meine ersten Nachforschungen zu Beanstalk zeigen, dass die Instanzen zwar für Sie erstellt und konfiguriert werden, danach aber in einen manuelleren Managementprozess übergeht. Sicherheitsupdates werden nicht automatisch auf die Instanzen angewendet. Es scheint, dass es zwei Bereiche gibt, in denen Bedenken bestehen:

  • Neue AMI-Veröffentlichungen - Wenn neue AMI-Veröffentlichungen auf den Markt kommen, scheint es, als wollten wir die neuesten (vermutlich sichersten) Versionen herausbringen. Aber meine Forschung scheint darauf hinzuweisen Sie müssen ein neues Setup manuell starten, um die neueste AMI-Version zu sehen, und dann eine neue Umgebung erstellen, um diese neue Version zu verwenden. Gibt es eine bessere automatische Möglichkeit, Ihre Instanzen in neue AMI-Versionen zu verwandeln?
  • Zwischen den Releases werden Sicherheitsupdates für Pakete veröffentlicht. Scheint, wir wollen diese auch verbessern. Meine Forschung scheint darauf hinzuweisen Leute installieren Befehle, um gelegentlich ein yum-Update auszuführen. Aber da neue Instanzen basierend auf der Verwendung erstellt / zerstört werden, scheint es, dass die neuen Instanzen nicht immer die Aktualisierungen (d. H. Die Zeit zwischen der Instanzerstellung und der ersten yum-Aktualisierung) aufweisen würden. Sie haben also gelegentlich Instanzen, die nicht gepatcht sind. Und Sie werden auch Instanzen haben, die sich ständig selbst patchen, bis die neue AMI-Version angewendet wird. Meine andere Sorge ist, dass diese Sicherheitsupdates möglicherweise nicht die Überprüfung von Amazon durchlaufen haben (wie die AMI-Releases) und es könnte meine App brechen, um sie automatisch zu aktualisieren. Ich weiß, dass Dreamhost einmal einen 12-stündigen Ausfall hatte, weil sie Debian-Updates vollständig automatisch und ohne Überprüfung anwendeten. Ich möchte sicherstellen, dass mir dasselbe nicht passiert.

Also meine Frage ist, bietet Amazon eine Möglichkeit, vollständig gemanagte PaaS wie Heroku anzubieten? Oder ist AWS Elastic Beanstalk wirklich mehr als nur ein Installationsskript, und danach sind Sie allein (abgesehen von den von ihnen bereitgestellten Überwachungs- und Bereitstellungstools)?


20
2018-06-26 18:17


Ursprung


Ich suche auch nach diesen Antworten, aber es scheint, als müssten Sie sich um die Updates kümmern. In Bezug auf den Artikel zum Lesen Macht Elastic Beanstalk die Note als PaaS? AWS Elastic Beanstalk ist kein PaaS, sondern eher eine "Konfigurationsfunktion für IaaS". - Alexander Taubenkorb


Antworten:


Erstens, um klar zu sein, keine Elastic Beanstalk ist nicht PaaS in der Art, wie Sie darüber nachdenken. Wenn Sie es in Einzelteile zerlegen, ist es eher so, dass Sie virtualisierte Instanzvorlagen und eine Automatisierung der Anwendungsbereitstellung wie Puppet oder Chef haben. Darüber hinaus erhalten Sie einen automatischen Zugriff auf den Load-Balancer-Service von awe und die Cloud-Überwachung, mit der Sie neue Anwendungsserver starten oder vorhandene basierend auf Messwerten herunterfahren können.

Was das Gefühl von PaaS ausmacht, ist, dass das Haupteinsatzgebiet das Anwendungsbereitstellungssystem ist, das Ihren Code übernimmt und ihn auf alle Anwendungsserver in Ihrem Cluster kopiert.

Eine der Beschwerden einiger Leute über PaaS ist, dass der PaaS-Anbieter Entscheidungen über die Anwendungsumgebung für Sie trifft. Dies erscheint mir wie das Wertversprechen von PaaS: Als Kunde konzentriert man sich auf die Anwendungsfunktionalität und überlässt alle weiteren Details dem PaaS-Anbieter. Sie bezahlen dafür, dass jemand anderes die Infrastruktur verwaltet und die Systemverwaltung bereitstellt. Für diese Einfachheit zahlen Sie eine Prämie, wie im Fall von Heroku, die ihre Infrastruktur auch auf ec2 führt, nur auf eine Weise, die für Sie transparent ist.

Amazon bietet Elastic Beanstalk zusätzlich zu Ec2 und seinen REST-APIs an und macht sich nicht viel Mühe, das vor Ihnen zu verbergen. Das liegt daran, dass sie ihr Geld über IaaS verdienen, und EB organisiert nur das Setup einer Gruppe von ec2-Ressourcen, die Sie selbst einrichten könnten, mit der Zeit und dem Know-how.

Nun, in Bezug auf die Besonderheiten eines AMI, sind AMIs wiederum eines der vielen ec2-Stücke, die zur Unterstützung von EB eingesetzt werden. Es gibt nichts Magisches an einem EB AMI - es ist nur ein Amazon Linux ami vorkonfiguriert, um mit EB zu arbeiten. Wie jedes andere AMI können Sie es in EC2 starten, optimieren und eine neue benutzerdefinierte AMI von Ihrer laufenden Instanz ableiten. Amazon Linux ist im Grunde eine Kreuzung zwischen Centos und Fedora, mit Paravirtualisierung Patches und vorkonfigurierten yum Repos von Amazon gepflegt.

Wie Sie wahrscheinlich wissen, ist Amazon Linux bereits so konfiguriert, dass beim Start Sicherheits-Patches installiert werden. Laufende Instanzen unterscheiden sich jedoch in Bezug auf das Patchen nicht von anderen Servern. Patchen kann den Dienst unterbrechen. Wenn Sie extrem besorgt sind über Sicherheitspatching, können Sie immer einen Containerbefehl verwenden und cron einrichten, um yum update --security mit einer gewissen Periodizität auszuführen.

Sie können auch die EB-API verwenden, um die EB-Konfiguration zu ändern oder die Erstellung einer neuen EB-Umgebung zu automatisieren. Sie können dann zu ihr wechseln, sobald sie fertig ist, und anschließend die alte herunterfahren. Dies wird hier beschrieben: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html

Wie der Rest von AWS gibt es eine Möglichkeit, programmgesteuert auf alle Nicht-SaaS-Funktionen zuzugreifen und diese zu steuern. Sie können also keine gepatchten AMIs erstellen, die dann zum Erstellen neuer EB-Umgebungen und zum Ausrollen verwendet werden. EB wird keine Konfigurationsspezifikationen für Sie erzwingen oder Ihnen eine Systemadministrationsgruppe für die Wartung der Infrastruktur bereitstellen.


18
2017-11-18 05:50



Danke für die Antwort. Klingt wie Ihre Meinung ist, dass Bohnenstange kein PAAS ist, also hören Sie auf, es als eins zu behandeln. Ich denke das ist leider die richtige Antwort. Obwohl Sie beispielsweise ein "yum update" für einen Cron-Job ausführen oder die APIs verwenden können, um automatisch in eine neue AMI-Version zu rotieren, ist dies im Vergleich zu einem echten PAAS, der für eine sichere Lösung ausgelegt ist, immer eine untergeordnete Lösung Umgebung automatisch. Ich werde fortfahren und Ihre Antwort als richtig markieren, da diese Frage seit mehreren Monaten besteht und es die einzige Antwort ist. - Eric Anderson
Eric, hast du Opsworks angeschaut? Es ist etwas konsolengesteuert, und obwohl es nicht unbedingt die Probleme behandelt, die Sie über die Basis laufender Server haben, fühlt es sich viel mehr wie PaaS an. - gview


Ab April 2016 unterstützt Elastic Beanstalk automatische Plattform-Updates:

https://aws.amazon.com/about-aws/whats-new/2016/04/aws-elastic-beanstalk-introduces-managed-platform-updates/


4
2017-07-13 00:12





Alle Beanstalk-Anwendungen und -Umgebungen können über EBEXTENSIONS-Dateien konfiguriert werden, die mit Ihrem Anwendungsimplementierungspaket (z. B. WAR-Datei für Java-Anwendungen) mit YAML-basierter Konfiguration zum Aktualisieren oder Neukonfigurieren eines beliebigen Teils Ihrer Anwendung, Ihres Containers, Ihres Betriebssystems usw. enthalten sind. Beanstalk ist PaaS, da es eine Plattform ist, mit der Sie Anwendungen bereitstellen können, ohne sich um die zugrunde liegenden IaaS kümmern zu müssen. Alle PaaS-Anbieter verschleiern am Ende des Tages die zugrunde liegende IaaS durch eine Form der Automatisierung. Da es sich hier jedoch um Informatik handelt, gibt es keinen einzigen optimalen Zustand für alle Anwendungen und ohne die Möglichkeit, die IaaS unter PaaS zu optimieren, sind Sie dem PaaS-Dienstanbieter ausgeliefert, um sicherzustellen, dass Ihre Anwendungen reibungslos ablaufen. schnell und sicher.

Heroku läuft auf AWS mit einer anderen Verwaltungsebene. Aber es wird ein Schmerz in den Arsch, wenn Sie Dinge wie die Sicherung Ihrer Anwendung tun müssen. Während sie sich bemühen, ihre Lösung effizient zu verwalten und die Sicherheit aufrechtzuerhalten, können und werden sie am Ende des Tages nicht das Risiko und die Folgen einer Schwachstelle in Ihrer App übernehmen. Sie wollen ihre Dienste als Cookie-Cutter wie möglich machen.

Die Fähigkeit, den der Plattform zugrunde liegenden IaaS zu optimieren, ist eine Stärke und Anziehungskraft von Beanstalk IMO.


1
2017-12-26 23:37



Ich denke nicht, dass dies tatsächlich die Frage beantwortet. - Drew Khoury