Сохранение секретного ключа с помощью Amazon Web Services

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

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

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

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

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

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

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

Ответ 1

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

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