Điểm:11

Cách an toàn và thân thiện với người dùng để chỉ cung cấp cho một số ít người dùng quyền truy cập vào ứng dụng web trên Amazon EC2 là gì?

lá cờ cn

Tình huống

Chúng tôi có một ứng dụng web được lưu trữ trên Amazon EC2. Nó dự định chỉ được sử dụng bởi một vài người dùng trong một công ty.

Làm thế nào chúng ta đối phó với điều này

  • Chúng tôi chia sẻ địa chỉ IP (Co giãn) của phiên bản với người dùng.
  • Chúng tôi thêm địa chỉ IP của từng người dùng vào nhóm bảo mật của phiên bản khi cần.

Khi tôi nói như và khi cần thiết, ý tôi là email từ người dùng phàn nàn rằng cổng web đang hiển thị trang lỗi. Họ quên rằng bước đưa IP vào nhóm bảo mật này là bắt buộc (và tôi không trách họ; họ là người dùng cuối).

Vì câu hỏi này, giả sử chúng ta có tổng cộng 5 người dùng trong một công ty cần quyền truy cập này. Địa chỉ IP của Người dùng-1 và Người dùng-2 đã được thêm vào nhóm bảo mật.

Các vấn đề

  1. Người dùng-3 truy cập trực tiếp vào địa chỉ IP, nhưng không thể truy cập địa chỉ đó vì địa chỉ IP của người dùng chưa được thêm vào nhóm bảo mật.
  2. Nếu Người dùng-1 hoặc Người dùng-2 khởi động lại internet của họ, địa chỉ IP của họ có thể sẽ thay đổi (IP động do ISP cung cấp) và địa chỉ IP mới sẽ phải được thêm vào nhóm bảo mật (và địa chỉ IP cũ sẽ phải được thu hồi vào tránh truy cập của người khác).

Các lựa chọn khác tôi đang xem xét

  1. Chỉ cung cấp quyền truy cập vào VPN văn phòng của họ và yêu cầu tất cả người dùng kết nối qua đó.
  2. (Rất cồng kềnh cho người dùng) Yêu cầu người dùng đăng nhập vào bảng điều khiển quản lý AWS, truy cập dịch vụ EC2, đến phần Nhóm bảo mật và thêm địa chỉ IP của họ theo cách thủ công (người dùng đã có người dùng AWS IAM và có quyền thích hợp để thực hiện việc này) .
  3. Tạo tập lệnh thêm IP hiện tại của người dùng vào nhóm bảo mật (sử dụng AWS CLI/SDK) - nghe có vẻ rất nguy hiểm và không phù hợp vì chúng tôi sẽ phải đưa thông tin đăng nhập API của ai đó vào tập lệnh.
barbecue avatar
lá cờ br
Những loại ứng dụng web? Thật dễ dàng để triển khai xác thực HTTP cơ bản cho các máy chủ web phổ biến nhất.
m01010011 avatar
lá cờ cn
Đó là một ứng dụng React (với API back-end được viết bằng Flask).Người dùng đã sử dụng OneLogin SSO. Vì vậy, tôi đang cố gắng tích hợp ứng dụng web này với ứng dụng đó.
Điểm:29
lá cờ id
MLu

Tùy chọn 4 - ngừng kiểm soát quyền truy cập thông qua Nhóm bảo mật và thay vào đó triển khai một số cơ chế xác thực phù hợp.

Ví dụ đặt một Cân bằng tải ứng dụng trước ứng dụng web và định cấu hình ALB để yêu cầu xác thực nhận thức. Chỉ những người dùng được xác thực mới có thể truy cập ALB vào ứng dụng web của bạn - sự cố đã được giải quyết. Cognito có thể có người dùng cục bộ hoặc có thể được sử dụng cùng với Azure AD của bạn hoặc nếu bạn sử dụng Office365 trong tổ chức của mình. Đây là một cách khá minh bạch không yêu cầu bất kỳ thay đổi nào đối với ứng dụng.

Ngoài ra, nếu ứng dụng web của bạn hỗ trợ, bạn nên định cấu hình ứng dụng để yêu cầu xác thực SAML đối với bất kỳ thư mục người dùng nào mà tổ chức của bạn đang sử dụng - Office365, G-Suite, v.v.

Hy vọng rằng sẽ giúp :)

m01010011 avatar
lá cờ cn
Tôi sẽ khám phá Cognito và xem cách nó tích hợp với OneLogin SSO.
Điểm:6
lá cờ um

Tùy chọn 5 - ngừng quản lý Nhóm bảo mật (về cơ bản là tường lửa dựa trên IP) và sử dụng Chứng chỉ ứng dụng khách TLS.

Nếu bạn đang sử dụng các hệ thống quản lý người dùng hiện đại như Azure AD hoặc LDAP, thì bạn đã có công cụ phù hợp để cấp và phân phối chứng chỉ. Bạn sẽ thiết lập một CA riêng và định cấu hình máy chủ HTTP (Nginx, Apache2 hoặc AWS ALB) để xác thực bằng chứng chỉ. Bất kỳ ai không có chứng chỉ hoặc có chứng chỉ không hợp lệ (kể cả những chứng chỉ đã hết hạn) sẽ không thể truy cập qua máy chủ HTTP. Điều này đòi hỏi số không thay đổi đối với chính ứng dụng web và thậm chí bạn có thể bỏ bất kỳ xác thực nào trong ứng dụng vì chứng chỉ có thể phục vụ mục đích đó ngoài kiểm soát truy cập.

Một điểm thưởng là điều này hoạt động mọi nơi - có thể là AWS, Azure hoặc cơ sở hạ tầng tại chỗ của bạn. Bạn thậm chí có thể sử dụng lại cùng một chồng thông tin xác thực và cấu hình (ngoại trừ AWS ALB).

m01010011 avatar
lá cờ cn
Tôi không biết họ đang sử dụng hệ thống quản lý người dùng nào. Nếu có liên quan, họ sử dụng OneLogin SSO để duy trì thông tin đăng nhập của mình. Tôi chưa bao giờ nghĩ rằng chứng chỉ có thể được sử dụng làm cơ chế xác thực. Tôi chắc chắn sẽ thử điều này (vì tôi không phải thay đổi bất kỳ thứ gì trong ứng dụng).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.