17

Tôi đang sử dụng các công cụ của Amazon để xây dựng một ứng dụng web. Tôi rất hạnh phúc với họ, nhưng tôi có một mối quan tâm về an ninh.Tác động của số nhận dạng tài khoản AWS

Hiện tại, tôi đang sử dụng nhiều phiên bản EC2, S3, SimpleDB và SQS. Để xác thực yêu cầu đối với các dịch vụ khác nhau, bạn bao gồm Access Identifiers (yêu cầu đăng nhập).

Ví dụ, để tải lên một tập tin để S3 từ một thể hiện EC2, dụ EC2 của bạn cần có bạn Tiếp cận khóa ID và bạn bí mật Access Key.

Điều đó về cơ bản có nghĩa là tên người dùng và mật khẩu của bạn cần phải có trong trường hợp của bạn.

Nếu một trong các trường hợp của tôi bị xâm phạm, tất cả tài sản Amazon của tôi sẽ bị xâm phạm. Các khóa có thể được sử dụng tải lên/thay thế dữ liệu S3 và SimpleDB, bắt đầu và dừng các phiên bản EC2, v.v.

Làm cách nào để giảm thiểu thiệt hại của một máy chủ bị xâm phạm?

Suy nghĩ đầu tiên của tôi là nhận nhiều số nhận dạng cho mỗi tài khoản để tôi có thể theo dõi các thay đổi được thực hiện và nhanh chóng thu hồi tài khoản 'bị tấn công'. Amazon không hỗ trợ nhiều hơn một bộ thông tin đăng nhập cho mỗi tài khoản.

Suy nghĩ thứ hai của tôi là tạo nhiều tài khoản và sử dụng ACL để kiểm soát quyền truy cập. Thật không may, không phải tất cả các dịch vụ hỗ trợ cấp quyền truy cập tài khoản khác vào dữ liệu của bạn. Cộng với băng thông là rẻ hơn càng nhiều mà bạn sử dụng, do đó, có tất cả đi qua một tài khoản là lý tưởng.

Có ai bị xử lý hoặc ít nhất nghĩ về vấn đề này không?

Trả lời

5

Những gì bạn có thể làm là có một 'máy chủ xác thực' đã được khóa, siêu khóa. Khóa bí mật chỉ tồn tại trên một máy chủ này và tất cả các máy chủ khác sẽ cần phải yêu cầu nó cho phép. Bạn có thể gán các khóa của riêng bạn cho các máy chủ khác nhau và khóa nó theo địa chỉ IP. Bằng cách đó, nếu một máy chủ bị xâm nhập, bạn chỉ cần rút lại khóa của nó từ 'máy chủ xác thực'.

Điều này là có thể, vì cách thức hoạt động của xác thực AWS. Giả sử máy chủ web của bạn cần tải tệp lên S3. Đầu tiên, nó sẽ tạo yêu cầu AWS và gửi yêu cầu đó cùng với khóa máy chủ tùy chỉnh của bạn tới 'máy chủ xác thực'. Máy chủ xác thực sẽ xác thực yêu cầu, thực hiện các công cụ ma thuật mã hóa và trả về chuỗi đã được xác thực trở lại máy chủ web. Sau đó, máy chủ web có thể sử dụng điều này để thực sự gửi yêu cầu cùng với tệp để tải lên S3.

+0

"Máy chủ xác thực" của riêng bạn thuộc loại này có thể dẫn đến lỗi bảo mật không mong muốn và không được chú ý. AWS bây giờ (nhưng không trở lại khi điều này lần đầu tiên được hỏi) có cơ sở để quản lý rủi ro từ câu hỏi. Đặc biệt, các vai trò IAM (như được mô tả bởi câu trả lời của @ cudds) là phù hợp cho vấn đề này. –

1

AWS cung cấp "Thanh toán tổng hợp" giải quyết mối quan ngại của bạn trong suy nghĩ thứ hai.

https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=consolidated-billing

"Thanh toán tổng hợp cho phép bạn để củng cố thanh toán cho nhiều Amazon Web Services (AWS) chiếm trong công ty của bạn bằng cách chỉ định một tài khoản trả tiền duy nhất. Bạn có thể thấy một cái nhìn tổng hợp của chi phí AWS phát sinh bởi tất cả các tài khoản, Hợp nhất Thanh toán cũng có thể làm giảm chi phí tổng thể của bạn kể từ khi sử dụng cuộn lên trên tất cả các tài khoản của bạn có thể giúp bạn đạt được các mức giá thấp hơn một cách nhanh chóng hơn . "

5

AWS cho phép bạn tạo nhiều người dùng với Identity and Access Management. Điều này sẽ cho phép bạn thực hiện một trong hai kịch bản của bạn.

Tôi khuyên bạn nên xác định người dùng IAM trên mỗi trường hợp EC2, điều này cho phép bạn thu hồi quyền truy cập vào một người dùng cụ thể (hoặc chỉ các khóa truy cập của họ) nếu trường hợp EC2 tương ứng bị xâm phạm và sử dụng các quyền hạn chế để hạn chế API nào người dùng có thể gọi và tài nguyên nào họ có thể truy cập (ví dụ: chỉ cho phép người dùng tải lên một nhóm cụ thể).

+2

Vâng, IAM là con đường để đi. Quyền IAM có thể được tinh chỉnh thêm để chỉ những gì chính xác trường hợp cần làm (tải lên hoặc đọc dữ liệu từ một thùng rất cụ thể, vv) –

+0

Cảm ơn ý kiến ​​Daniel, tôi đã cập nhật câu trả lời để kết hợp đề xuất của bạn. – BenM

+2

Bây giờ, vai trò có sẵn, chúng là lựa chọn tốt hơn người dùng IAM cho vấn đề này. –

Các vấn đề liên quan