Хранение секретного ключа в секрете с Amazon Web Services - PullRequest
10 голосов
/ 10 февраля 2010

Я играю с использованием веб-сервисов Amazon в моем личном проекте. Я взял их AWS SDK для .NET, и я использую это, но я немного запутался.

  1. Доступ к веб-службе (в данном случае SimpleDB, хотя я не думаю, что это действительно существенный вопрос) разрешается через пару секретный / открытый ключ.

  2. Для AWS SDK для .NET API, используемого для создания объекта клиента, требуется закрытый ключ:

    AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey);
    
  3. Это клиентское приложение, поэтому код будет полностью выполняться на клиенте.

  4. Предполагается, что клиент должен иметь доступ к моему личному ключу, чтобы иметь доступ к SimpleDB. Но Амазонка неоднократно и решительно заявляет, что мой закрытый ключ не должен выходить из-под контроля.

Это не имеет смысла для меня, поэтому я полагаю, что я что-то упускаю.

Является ли клиентское приложение неподходящей моделью для веб-сервисов amazon в целом для использования их AWS SDK для .NET или я упускаю что-то, что делает клиентское приложение совершенно разумным? Есть ли хороший способ обойти это без создания собственной прокси-службы, которая будет аутентифицировать клиентов и пересылать их запросы в SimpleDB?

1 Ответ

7 голосов
/ 13 мая 2010

Вам не нужно внедрять прокси-сервер, который работает с удаленной службой (AWS). Просто внедрите простую небольшую аутентифицированную службу, которая возвращает клиенту URL-адрес и заголовки, которые будут использоваться при обращении в AWS. Ваш аутентифицированный веб-сервис сохраняет секретность AWS и предоставляет только подписанный URL-адрес запроса и заголовки клиенту , который затем отправляется и выполняет фактический рабочий вызов, используя эту возвращенную информацию.

Таким образом, во время вызова AWS вы избегаете накладных расходов, связанных с необходимостью проходить через ваши собственные серверы, сохраняя задержку, пропускную способность, связанные сокеты на вашем сервере, сложность обработки сбоев и т. Д. клиент, чтобы получить правильные инструкции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...