10

私は個人的なプロジェクトでアマゾンウェブサービスを使って遊んでいます。AWS SDK for .NETを入手して使用していますが、少し混乱しています。

  1. Webサービス(この場合、SimpleDBですが、これは質問にとって重要ではないと思います)へのアクセスは、秘密鍵と公開鍵のペアを介して許可されます。

  2. クライアントオブジェクトの作成に使用されるAWSSDKfor .NET APIには、秘密鍵が必要です。

    AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey);
    
  3. これはクライアントアプリケーションであるため、コードは完全にクライアント上で実行されます。

  4. SimpleDBにアクセスするには、クライアントが私の秘密鍵にアクセスできる必要があることを示唆しています。しかし、amazonは、私の秘密鍵が私の制御を離れてはならないことを繰り返し強調しています。

これは私には意味がないので、何かが足りないに違いないと思います。

クライアントサイドアプリケーションは、AWS SDK for .NETを使用するために、一般的にアマゾンウェブサービスの間違ったモデルですか、それともクライアントアプリケーションを完全に合理的にする何かが欠けていますか?クライアントを認証してリクエストをSimpleDBに転送する独自のプロキシサービスを作成せずにこれを回避する良い方法はありますか?

4

1 に答える 1

6

リモート(AWS)サービスの前にプロキシを実装する必要はありません。AWSに接続するときに使用するURLとヘッダーをクライアントに返す、シンプルで小さな認証済みサービスを実装するだけです。認証されたウェブサービスはAWSの秘密を保持し、署名されたリクエストURLとヘッダーのみをクライアントに提供します。クライアントはその後、返された情報を使用して実際のワークコールを行います。

このようにして、AWS呼び出し中に独自のサーバーを経由する必要があるというオーバーヘッドを回避し、レイテンシー、帯域幅、サーバー上のソケットの拘束、障害処理の複雑さなどを節約します。適切な指示を取得します。

于 2010-05-13T00:44:59.817 に答える