Tự động áp dụng Cập nhật bảo mật cho BeanSalk AWS


21

Tôi đã là một fan hâm mộ của Heroku kể từ những ngày đầu tiên. Nhưng tôi thích thực tế là AWS Elastic Beanstalk cho phép bạn kiểm soát nhiều hơn các đặc điểm của các thể hiện. Một điều tôi thích về Heroku là tôi có thể triển khai một ứng dụng và không lo lắng về việc quản lý nó. Tôi cho rằng Heroku đang đảm bảo tất cả các cập nhật bảo mật hệ điều hành được áp dụng kịp thời. Tôi chỉ cần đảm bảo ứng dụng của tôi được an toàn.

Nghiên cứu ban đầu của tôi về Beanstalk cho thấy mặc dù nó xây dựng và định cấu hình các phiên bản cho bạn, sau đó nó chuyển sang quy trình quản lý thủ công hơn. Cập nhật bảo mật sẽ không tự động được áp dụng cho các trường hợp. Dường như có hai lĩnh vực quan tâm:

  • Các bản phát hành AMI mới - Khi các bản phát hành AMI mới đạt được, có vẻ như chúng tôi muốn chạy bản mới nhất (có lẽ là an toàn nhất). Nhưng nghiên cứu của tôi dường như chỉ ra rằng bạn cần phải tự khởi chạy một thiết lập mới để xem phiên bản AMI mới nhất và sau đó tạo một môi trường mới để sử dụng phiên bản mới đó . Có cách nào tự động tốt hơn để xoay phiên bản của bạn thành các bản phát hành AMI mới không?
  • Ở giữa các bản phát hành sẽ có bản cập nhật bảo mật được phát hành cho các gói. Có vẻ như chúng tôi muốn nâng cấp những người là tốt. Nghiên cứu của tôi dường như chỉ ra rằng mọi người cài đặt các lệnh để thỉnh thoảng chạy cập nhật yum. Nhưng vì các thể hiện mới được tạo / hủy dựa trên việc sử dụng, có vẻ như các thể hiện mới sẽ không phải lúc nào cũng có các bản cập nhật (tức là thời gian giữa lần tạo cá thể và bản cập nhật yum đầu tiên). Vì vậy, đôi khi bạn sẽ có những trường hợp không được vá. Và bạn cũng sẽ có những trường hợp liên tục tự vá cho đến khi bản phát hành AMI mới được áp dụng. Mối quan tâm khác của tôi là có lẽ các bản cập nhật bảo mật này đã không được xem xét bởi chính Amazon (giống như các bản phát hành AMI đã làm) và nó có thể phá vỡ ứng dụng của tôi để tự động cập nhật chúng. Tôi biết Dreamhost đã từng bị ngừng hoạt động 12 giờ vì họ đang áp dụng các bản cập nhật debian hoàn toàn tự động mà không có bất kỳ đánh giá nào. Tôi muốn chắc chắn rằng điều tương tự không xảy ra với tôi.

Vì vậy, câu hỏi của tôi là Amazon có cung cấp một cách để cung cấp PaaS được quản lý hoàn toàn như Heroku không? Hoặc AWS Elastic Beanstalk thực sự không chỉ là một tập lệnh cài đặt và sau đó bạn tự mình làm việc (không phải là các công cụ giám sát và triển khai mà họ cung cấp)?


1
Tôi cũng đang tìm kiếm những câu trả lời này, nhưng có vẻ như bạn phải chăm sóc cho các bản cập nhật. Liên quan đến bài viết đã đọc, liệu Bean Beanalk có làm cho lớp như một PaaS không? AWS Elastic Beanstalk không phải là PaaS mà là "tính năng cấu hình cho IaaS".
Alexander Taubenkorb

Câu trả lời:


18

Trước hết, rõ ràng, không có Bean Beanalk nào không phải là PaaS theo cách bạn đang nghĩ về nó. Nếu bạn chia nó thành từng mảnh, nó thực sự giống như có các mẫu cá thể ảo hóa và tự động triển khai ứng dụng như con rối hoặc đầu bếp. Cùng với điều này, bạn có quyền truy cập tự động vào dịch vụ cân bằng tải của chúng tôi và giám sát đồng hồ trên đám mây, cho phép bạn khởi động các máy chủ ứng dụng mới hoặc tắt máy chủ hiện có dựa trên số liệu.

Điều khiến PaaS cảm thấy là điểm bán hàng chính là hệ thống triển khai ứng dụng lấy mã của bạn và sao chép nó tới tất cả các máy chủ ứng dụng trong cụm của bạn.

Một trong những phàn nàn của một số người về PaaS là ​​nhà cung cấp PaaS đưa ra quyết định cho bạn về môi trường ứng dụng. Điều này đối với tôi giống như đề xuất giá trị của PaaS: với tư cách là một khách hàng bạn tập trung vào chức năng ứng dụng và để lại tất cả các chi tiết khác cho nhà cung cấp PaaS. Bạn đang trả tiền cho người khác để quản lý cơ sở hạ tầng và cung cấp quản trị hệ thống. Vì đơn giản, bạn đang trả cho họ một khoản phí bảo hiểm, như trong trường hợp Heroku, công ty đang điều hành cơ sở hạ tầng của họ trên đỉnh ec2, chỉ theo cách minh bạch với bạn.

Amazon thực sự đang cung cấp đàn hồi Beanstalk trên đầu trang Ec2 và api REST của họ và không nỗ lực che giấu điều đó với bạn. Điều này là do họ đang kiếm tiền thông qua IaaS và EB chỉ sắp xếp việc thiết lập một nhóm tài nguyên ec2 mà bạn có thể tự thiết lập, cho thời gian và biết cách.

Bây giờ, về các chi tiết cụ thể của AMI, một lần nữa AMI là một trong nhiều phần ec2 được sử dụng để tạo điều kiện cho EB. Không có gì kỳ diệu về EB AMI - nó chỉ là một Amazon linux được cấu hình sẵn để hoạt động với EB. Giống như bất kỳ AMI nào khác, bạn có thể khởi động nó trong EC2, điều chỉnh nó và lấy ra một AMI tùy chỉnh mới từ thể hiện đang chạy của bạn. Amazon Linux về cơ bản là sự giao thoa giữa Centos và Fedora, với các bản vá ảo hóa và các repos yum được cấu hình sẵn được duy trì bởi Amazon.

Như bạn có thể biết, Amazon linux đã được cấu hình để cài đặt các bản vá bảo mật khi khởi động. Tuy nhiên, các phiên bản đang chạy không khác gì bất kỳ máy chủ nào khác liên quan đến vá lỗi. Vá có thể làm gián đoạn dịch vụ. Nếu bạn cực kỳ lo lắng về việc vá bảo mật, bạn luôn có thể sử dụng lệnh container và cron thiết lập để chạy cập nhật yum - bảo mật tại một số định kỳ.

Bạn cũng có thể sử dụng API EB để thay đổi cấu hình EB hoặc tự động hóa việc tạo môi trường EB mới, sau đó bạn có thể trao đổi với nó một khi nó sẵn sàng và sẵn sàng, tiếp theo là tắt cái cũ. Điều này được mô tả ở đây: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/USE-features.CNAMESwap.html

Giống như phần còn lại của AWS, có một cách để lập trình truy cập và kiểm soát mọi tính năng không phải SaaS, vì vậy không có gì ngăn bạn tạo ra các AMI đã vá, sau đó được sử dụng để tạo môi trường EB mới và đưa chúng ra ngoài. EB sẽ không ép buộc các chi tiết cụ thể về cấu hình đối với bạn, cũng như không cung cấp cho bạn một nhóm quản trị hệ thống để duy trì cơ sở hạ tầng.


2
Cảm ơn vì sự trả lời. Âm thanh như ý kiến ​​của bạn là Beanstalk không phải là PAAS, vì vậy hãy ngừng coi nó là một. Tôi nghĩ rằng đây không may là phản ứng chính xác. Mặc dù bạn có thể thực hiện những việc như "cập nhật yum" cho công việc định kỳ hoặc sử dụng API để tự động xoay sang phiên bản mới của AMI, đây sẽ luôn là một giải pháp dưới chuẩn so với PAAS thực được xây dựng để cung cấp bảo mật môi trường tự động. Tôi sẽ tiếp tục và đánh dấu câu trả lời của bạn là chính xác vì câu hỏi này đã được đưa ra trong vài tháng và đó là câu trả lời duy nhất được cung cấp.
Eric Anderson

Eric, bạn đã xem Opsworks chưa? Đó là một giao diện điều khiển nhiều hơn một chút, và mặc dù nó không nhất thiết phải giải quyết các vấn đề bạn đưa ra về cơ sở của các máy chủ đang chạy, nhưng nó cảm thấy giống PaaS hơn nhiều.
gview


1

Tất cả các ứng dụng và môi trường của Beanstalk có thể được cấu hình thông qua các tệp EBEXTENSION được đóng gói cùng với gói triển khai ứng dụng của bạn (ví dụ: tệp WAR cho các ứng dụng Java) với cấu hình dựa trên YAML để cập nhật hoặc cấu hình lại bất kỳ phần nào trong ứng dụng, bộ chứa, HĐH của bạn, v.v. PaaS vì đây là một nền tảng cho phép bạn triển khai các ứng dụng mà không phải lo lắng về IaaS cơ bản. Tất cả các nhà cung cấp PaaS vào cuối ngày làm xáo trộn IaaS cơ bản thông qua một số hình thức tự động hóa. Tuy nhiên, vì đây là khoa học máy tính, chúng tôi đang nói về việc không có trạng thái tối ưu duy nhất cho tất cả các ứng dụng và không có khả năng điều chỉnh IaaS theo PaaS, bạn rất hài lòng với nhà cung cấp dịch vụ PaaS để đảm bảo rằng các ứng dụng của bạn chạy trơn tru, nhanh chóng và an toàn

Heroku chạy trên AWS bằng cách sử dụng một lớp quản lý khác. Tuy nhiên, nó trở thành một nỗi đau ở mông khi bạn phải làm những việc như bảo mật ứng dụng của mình. Mặc dù họ nỗ lực hết sức để quản lý giải pháp của họ một cách hiệu quả và duy trì bảo mật, v.v. họ không thể và sẽ không gặp rủi ro và hậu quả của lỗ hổng trong ứng dụng của bạn vào cuối ngày. Họ muốn làm cho dịch vụ của họ là máy cắt cookie càng tốt.

Khả năng tinh chỉnh IaaS bên dưới nền tảng là một thế mạnh và sức hấp dẫn của Beanstalk IMO.


Tôi không nghĩ rằng điều này thực sự trả lời câu hỏi.
Drew Khoury
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.