AWS Elastik Beanstalk için Güvenlik Güncellemelerini Otomatik Olarak Uygulama


21

En eski günlerinden beri Heroku hayranıyım. Ancak AWS Elastik Beanstalk'ın örneklerin özellikleri üzerinde daha fazla kontrol sağlaması gerçeğini seviyorum. Heroku hakkında sevdiğim bir şey, bir uygulamayı dağıtabilmem ve yönetme konusunda endişelenmemem. Ben am varsayarak Heroku tüm OS güvenlik güncellemeleri zamanında uygulandığından emin olmaktır. Sadece uygulamamın güvenli olduğundan emin olmalıyım.

Beanstalk ile ilgili ilk araştırmam, sizin için örnekleri oluşturmasına ve yapılandırmasına rağmen, daha sonra daha manuel bir yönetim sürecine geçtiğini gösteriyor. Güvenlik güncelleştirmeleri örneklere otomatik olarak uygulanmaz. İki endişe alanı var gibi görünüyor:

  • Yeni AMI sürümleri - Yeni AMI sürümleri isabet ettikçe, en son sürümü (muhtemelen en güvenli) çalıştırmak istiyoruz. Ancak araştırmam , en son AMI sürümünü görmek için manuel olarak yeni bir kurulum başlatmanız gerektiğini ve ardından bu yeni sürümü kullanmak için yeni bir ortam oluşturmanız gerektiğini gösteriyor . Örneklerinizi yeni AMI sürümlerine dönüştürmenin daha iyi bir otomatik yolu var mı?
  • Sürümler arasında paketler için yayınlanan güvenlik güncellemeleri olacaktır. Bunları da yükseltmek istiyoruz. Araştırmam, insanların zaman zaman yum güncellemesi yapmak için komutlar yüklediklerini gösteriyor. Ancak yeni örnekler kullanıma dayalı olarak oluşturulduğundan / yok edildiğinden, yeni örneklerin her zaman güncellemelere sahip olmayacağı anlaşılmaktadır (örneğin, örnek oluşturma ile ilk yum güncellemesi arasındaki zaman). Bu nedenle, bazen yamalanmamış örnekleriniz olur. Ayrıca, yeni AMI sürümü uygulanana kadar sürekli kendilerini yamalayan örneklere sahip olacaksınız. Diğer endişem, belki de bu güvenlik güncellemelerinin Amazon'un kendi incelemesinden geçmediği (AMI sürümleri gibi) ve bunları otomatik olarak güncellemek için uygulamamı kırabilir. Dreamhost bir kez 12 saatlik bir kesinti olduğunu biliyorum çünkü onlar debian güncellemeleri herhangi bir inceleme olmadan tamamen otomatik olarak uygulamak. Aynı şeyin başıma gelmediğinden emin olmak istiyorum.

Benim sorum Amazon, Heroku gibi tam olarak yönetilen PaaS sunmak için bir yol sunuyor mu? Yoksa AWS Elastik Beanstalk gerçekten sadece bir yükleme komut dosyası mı ve bundan sonra kendi başınıza (sağladıkları izleme ve dağıtım araçları dışında)?


1
Ben de bu cevapları arıyorum, ama güncellemelere dikkat etmeniz gerekiyor gibi görünüyor. Readwrite makalesiyle ilgili olarak Elastik Beanstalk Sınıfı PaaS Yapıyor mu? AWS Elastik Beanstalk bir PaaS değil, daha çok bir "IaaS için yapılandırma özelliği" dir.
Alexander Taubenkorb

Yanıtlar:


18

Öncelikle, açıklamak gerekirse, hiçbir Elastik Beanstalk, düşündüğünüz şekilde PaaS değildir. Parçalara ayırırsanız, sanallaştırılmış örnek şablonlarına ve kukla veya şef gibi uygulama dağıtım otomasyonuna sahip olmak gerçekten daha iyidir. Bununla birlikte, huşu yük dengeleyici hizmetine ve yeni uygulama sunucularını başlatmanıza veya mevcut olanları metriklere dayalı olarak kapatmanıza olanak tanıyan bulut izleme izlemesine otomatik erişim elde edersiniz.

PaaS gibi hissettiren şey, ana satış noktasının, kodunuzu alan ve kümenizdeki tüm uygulama sunucularına kopyalayan uygulama dağıtım sistemidir.

Bazı kişilerin PaaS ile ilgili şikayetlerinden biri, PaaS tedarikçisinin sizin için uygulama ortamı hakkında kararlar almasıdır. Bu bana PaaS'ın değer önerisi gibi görünüyor: Bir müşteri olarak uygulama işlevselliğine odaklanıp diğer tüm ayrıntıları PaaS satıcısına bırakıyorsunuz. Altyapıyı yönetmek ve sistem yönetimi sağlamak için başkasına para ödüyorsunuz. Bu basitlik için, altyapılarını ec2'nin üstünde de işleten Heroku örneğinde olduğu gibi, yalnızca size şeffaf bir şekilde prim ödüyorsunuz.

Amazon, Ec2 ve REST api'lerinin üstünde Elastik Beanstalk sunuyor ve bunu sizden gizlemek için fazla çaba sarf etmiyor. Çünkü paralarını IaaS aracılığıyla kazanıyorlar ve EB sadece zaman ve nasıl yapılacağını bildiğiniz bir grup ec2 kaynağının kurulumunu düzenliyor.

Şimdi, bir AMI'nin özellikleri açısından, yine AMI'ler EB'yi kolaylaştırmak için kullanılan birçok ec2 parçasından biridir. EB AMI hakkında büyülü bir şey yok - sadece EB ile çalışmak üzere önceden yapılandırılmış bir Amazon linux ami. Diğer tüm AMI'ler gibi EC2'de başlatabilir, ayarlayabilir ve çalışan örneğinizden yeni bir özelleştirilmiş AMI elde edebilirsiniz. Amazon Linux temel olarak Centos ve Fedora arasında paravirtualization yamaları ve Amazon tarafından önceden yapılandırılmış yum depolarıyla bir haç.

Muhtemelen bildiğiniz gibi, Amazon linux zaten önyükleme sırasında güvenlik yamaları yüklemek üzere yapılandırılmıştır. Ancak, çalışan örnekler yama ile ilgili olarak diğer sunuculardan farklı değildir. Düzeltme eki hizmeti kesintiye uğratabilir. Güvenlik yamasıyla ilgili son derece endişe duyuyorsanız, yum güncelleştirmesini --güvenliği bazı periyodikliklerde çalıştırmak için her zaman bir kapsayıcı komutu ve kurulum cronu kullanabilirsiniz.

Ayrıca EB yapılandırmasını değiştirmek veya yeni bir EB ortamının oluşturulmasını otomatikleştirmek için EB API'yi kullanabilirsiniz, daha sonra hazır ve hazır olduğunda onu değiştirebilir, ardından eski olanı kapatabilirsiniz. Bu, burada açıklanmaktadır: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html

AWS'nin geri kalanı gibi, SaaS olmayan her özelliğe programlı olarak erişmenin ve kontrol etmenin bir yolu vardır, bu nedenle daha sonra yeni EB ortamları oluşturmak ve bunları yaymak için kullanılan yamalı AMI'ler oluşturmanızı engelleyen bir şey yoktur. EB, yapılandırma özelliklerini size zorlamayacak veya altyapıyı korumak için size bir sistem yönetim grubu sunmayacaktır.


2
Yanıt için teşekkürler. Fikriniz Beanstalk'ın bir PAAS olmadığı gibi görünüyor, bu yüzden ona bir muamele etmeyi bırakın. Bence bu ne yazık ki doğru cevap. Bir cron işinde "yum güncellemesi" gibi şeyler yapabilir veya otomatik olarak AMI'nin yeni sürümüne dönmek için API'leri kullanabilirsiniz, ancak bu, güvenli sağlamak için oluşturulan gerçek bir PAAS ile karşılaştırıldığında her zaman alt standart bir çözüm olacaktır. otomatik olarak çevre. Bu soru birkaç aydır devam ettiği ve verilen tek cevap olduğu için cevabınızı doğru olarak işaretleyeceğim.
Eric Anderson

Eric, Opsworks'e baktın mı? Biraz daha konsol odaklı ve çalışan sunucuların tabanıyla ilgili getirdiğiniz sorunları mutlaka ele almasa da, PaaS gibi daha fazla hissettiriyor.
gview


1

Tüm Beanstalk uygulamaları ve ortamları, uygulamanızın, kapsayıcınızın, işletim sisteminizin vb. Herhangi bir bölümünü güncellemek veya yeniden yapılandırmak için YAML tabanlı yapılandırmaya sahip uygulama dağıtım paketinizle (örn. Java uygulamaları için WAR dosyası) paketlenmiş EBEXTENSIONS dosyaları aracılığıyla yapılandırılabilir. PaaS, temeldeki IaaS hakkında endişelenmenize gerek kalmadan uygulamaları dağıtmanıza izin veren bir platform olduğu için. Günün sonunda tüm PaaS sağlayıcıları, temeldeki IaaS'yi bir tür otomasyon yoluyla gizliyor. Bununla birlikte, bahsettiğimiz bilgisayar bilimi olduğundan, tüm uygulamalar için tek bir optimum durum olmadığından ve PaaS altında IaaS'yi ayarlama yeteneği olmadan, uygulamalarınızın sorunsuz çalışmasını sağlamak için PaaS servis sağlayıcısının merhametindesiniz, hızlı ve güvenli.

Heroku, farklı bir yönetim katmanı kullanarak AWS'nin üstünde çalışır. Ancak, uygulamanızı güvence altına almak gibi şeyler yapmanız gerektiğinde, kıçta bir ağrı haline gelir. Çözümlerini verimli bir şekilde yönetmek ve güvenliği vb. Korumak için en iyi çabayı gösterirken, gün sonunda uygulamanızdaki bir güvenlik açığının riskini ve sonuçlarını alamazlar. Hizmetlerini mümkün olduğunca çerez kesici yapmak istiyorlar.

Platformun altında yatan IaaS'yi değiştirme yeteneği, Beanstalk IMO'nun gücü ve çekiciliğidir.


Bunun aslında soruyu cevapladığını sanmıyorum.
Drew Khoury
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.