Trả lời

5

Có và không. Vì bạn cần phải bảo vệ khóa bí mật của mình cho AWS (tin tặc có thể sử dụng nó để lạm dụng tài khoản của bạn), bạn không thể xác thực các yêu cầu trong JS một cách trực tiếp.

Trong khi bạn có thể tạo một triển khai trong JS, nó sẽ vốn không an toàn. Thực tế cho một số sử dụng nội bộ, nó không bao giờ có thể được triển khai một cách an toàn (vì điều đó sẽ tiết lộ khóa bí mật của bạn). Thay vào đó, những gì bạn có thể làm là sử dụng máy chủ của bạn để xác thực các yêu cầu tới SimpleDB và để cho JS thực hiện yêu cầu thực tế tới Amazon. Mặc dù nó là một vòng xoay, nó sẽ hoạt động.

Nhược điểm là bạn cần thực hiện một loạt các quy trình ở phía máy khách. Bạn cũng có khả năng tìm nạp nhiều dữ liệu hơn so với tiêu thụ/đầu ra của ứng dụng, vì vậy việc xử lý dữ liệu trên máy khách thay vì trên máy chủ có khả năng gặp nhiều thời gian hơn đơn giản vì bạn đang chuyển nhiều dữ liệu hơn cho người dùng và xử lý dữ liệu chậm hơn.

Hope this helps

+1

Bây giờ bạn có thể (chủ yếu) thực hiện điều này phía máy khách, an toàn mà không tiết lộ khóa bí mật. Xem câu trả lời của tôi bên dưới và câu trả lời liên quan của tôi http://stackoverflow.com/questions/4988367/anonymous-read-with-amazon-simpledb. Bạn nhận được 99% cuộc gọi phía khách hàng với 1% còn lại với thành phần nhỏ, an toàn, phía máy chủ. – toolbear

2

Nếu không, làm thế nào?

Bảo mật. Bạn xác thực với DB bằng tài khoản nhà phát triển của mình. Amazon không biết về người dùng cuối của bạn (mà nó sẽ cần, để xác thực quyền truy cập trực tiếp từ trình duyệt). Đó là vào mã ứng dụng để xác định những gì người dùng cuối được phép làm và những gì không.

Điều đó nói rằng, có ứng dụng mẫu Javascript Scratchpad for Amazon SimpleDB. Nó truy cập trực tiếp vào SimpleDB từ trình duyệt (bạn phải gõ vào các bản tin AWS của bạn).

+0

Có thể couchdb là những gì tôi đang tìm kiếm? – JSNewbie

+0

Vâng, bạn vẫn cần phải định cấu hình quyền truy cập ở đâu đó bên ngoài trình duyệt (nơi nó không thể bị tấn công). – Thilo

+0

Cảm ơn, như thường lệ tất cả các câu trả lời đều tốt. – JSNewbie

1

SimeplDBAdmin là một Javascript/PHP dựa trên giao diện:

http://awsninja.com/2010/07/08/simpledbadmin-a-phpmyadmin-like-interface-for-amazon-simpledb/

Phía PHP là một kịch bản tiếp [relay.php] mà sẽ vượt qua các yêu cầu làm từ Javascript khách hàng và gửi chúng lên máy chủ, nhận phản hồi từ máy chủ và định dạng lại cho máy khách. Điều này là để dễ dàng nhận được xung quanh các vấn đề tên miền chéo với Javascript [nếu khách hàng web đã tải xuống trang web có chứa mã javascript từ www.example.com, nó sẽ chỉ cho phép javascript kết nối lại với www.example.com theo mặc định] .

Mọi thứ khác, bao gồm cả yêu cầu ký, được thực hiện bằng mã Javascript.

Cũng lưu ý rằng Amazon đã phát hành một dịch vụ beta mới gần đây để cho phép bạn thiết lập các tài khoản phụ trong tài khoản Amazon của bạn. Việc bảo vệ simpleDB là rất cơ bản [hoặc bật hoặc tắt cho mỗi tài khoản] nhưng vì nó cung cấp một số dạng theo dõi yêu cầu hạn chế, có thể lập luận rằng việc sử dụng Javascript và cung cấp cho mỗi người dùng khóa người dùng và khóa riêng của họ để yêu cầu ký được an toàn hơn. Do đó, mọi người dùng đều sử dụng userid và chứng chỉ CÙNG, sẽ không an toàn.

0

Xem this answer cho câu hỏi tương tự về việc cho phép truy cập an toàn, ẩn danh, chỉ đọc đối với SimpleDB từ các ứng dụng không tin cậy: anonymous read with amazon simpledb.

Một số biến thể từ câu trả lời rằng:

  • không thiết lập chính sách truy cập vào read-only. Tuy nhiên, nó cho phép kiểm soát hạt mịn, vì vậy bạn có thể vẫn muốn giới hạn loại viết được phép
  • không ẩn danh. AWS docs on token based authexample apps hiển thị đường dẫn song song: truy cập ẩn danh hoặc truy cập AWS/không liên kết ẩn danh bằng thông tin xác thực của bạn nhưng không hiển thị khóa bí mật của bạn.