анонимный читатель с амазонкой - PullRequest
4 голосов
/ 14 февраля 2011

Я хотел бы запросить Simpledb непосредственно с клиента, используя JavaScript.Мое приложение предназначено для чтения, и я скорее не направляю запрос через сервер приложений.Можно ли выполнить запрос на выборку без аутентификации?

Я мог бы настроить сервер аутентификации, но это довольно нелегко, поскольку он будет просто говорить «да» каждому запросу на чтение и вводить другое узкое место / speedbump / pointсбоя.

Имеют ли другие облачные решения db (microsoft, google) эту функцию?

Ответы [ 3 ]

3 голосов
/ 22 ноября 2011

Это возможно при использовании AWS IAM ( Управление идентификацией и доступом ) и на стороне сервера " торговый автомат токенов ".В документации AWS есть статья, специально написанная для варианта использования Аутентификация пользователей мобильных приложений AWS с помощью токен-автомата и образца кода для сервера, iOS и Android в GitHub.Общий метод может использоваться для немобильных и / или для клиентов JavaScript.

Примечание : для продажи маркеров временного доступа по-прежнему требуется компонент сервера.Однако объем этих запросов может быть значительно уменьшен (до одного раза в 36 часов).Остальные запросы поступают от ненадежного клиента к SimpleDB напрямую, без посредников.

Общая техника

  1. анонимный клиент вызывает ваш торговый автомат токенов (ваш сервер)
  2. торговый автомат токеновмашина знает секретный ключ, вызывает AWS для генерации временного токена
  3. торговый автомат возвращает клиенту токен
  4. клиент вызывает API simpleDB с использованием анонимного временного токена;невозможно выполнить запись в SimpleDB

Политика доступа только для чтения

Из примера кода AWS " Политика доступа только для чтения "

{
  "Statement": [
    {
      "Action": ["sdb:GetAttributes", "sdb:List*", "sdb:Select*"],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Это расширяетза пределы SimpleDB.Вы можете установить политику доступа для нескольких других ресурсов AWS (см. пример политики полного доступа ).

Вариант для замены динамических вызовов клиент-сервер статическим ресурсом

Хотя выне может удалить серверный компонент, клиентам не обязательно общаться напрямую с торговым автоматом:

  1. запланированное задание генерирует token каждые N секунд, когда N + fudge == token expiry
  2. записывает заданиеtoken в общедоступную корзину S3 (или любой другой статический ресурс)
    • установить соответствующий заголовок управления кэшированием maxAge на основе fudge
  3. чтения анонимного клиента tokenиз статического URI
  4. клиент аутентифицируется с token, делает вызовы SimpleDB
только для чтения
1 голос
/ 14 февраля 2011

Вам необходимо подписать все запросы на вашем сервере. Я думаю, это то, что вы имеете в виду в любом случае. Вы все еще можете сэкономить пропускную способность.

Я бы сказал, как только клиент JavaScript сможет аутентифицировать себя, каждый сможет.

0 голосов
/ 25 февраля 2011

Требуется сервер аутентификации, для этого вы можете использовать EC2.

...