アマゾン ウェブ サービスで秘密鍵を秘密に保つ
-
19-09-2019 - |
質問
私は個人プロジェクトでアマゾン ウェブ サービスを使って遊んでいます。私は AWS SDK for .NET を入手し、それを使用していますが、少し混乱しています。
Web サービス (この場合は SimpleDB ですが、質問にはあまり重要ではないと思います) へのアクセスは、秘密鍵と公開鍵のペアを介して許可されます。
クライアント オブジェクトの作成に使用される AWS SDK for .NET API には、秘密キーが必要です。
AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey);
これはクライアント アプリケーションであるため、コードは完全にクライアント上で実行されます。
SimpleDB にアクセスするには、クライアントが私の秘密キーにアクセスする必要があることを示唆しています。しかし、アマゾンは私の秘密鍵を私の管理下に置いてはいけないと繰り返し強調しています。
これでは意味が分からないので、何かが足りないのではないかと思います。
クライアント側アプリケーションは、AWS SDK for .NET を使用するアマゾン ウェブ サービス全般にとって間違ったモデルなのでしょうか、それともクライアント アプリケーションを完全に合理的なものにする何かが欠けているのでしょうか?クライアントを認証してリクエストを SimpleDB に転送する独自のプロキシ サービスを作成せずに、この問題を回避する良い方法はありますか?
解決
あなたはその前線リモート(AWS)のサービスプロキシを実装する必要はありません。ただ、AWSに接続するときに使用するために、クライアントにのURLとヘッダを返す単純な、小さな、認証されたサービスを実装します。のあなたの認証されたWebサービスは、AWSの秘密を保持し、のみに署名したリクエストURLとヘッダを提供その後、行くとその返された情報を使用して、実際の作業の呼び出しを行う。クライアント、
この方法で、あなたは、サーバー上のソケットを縛られ、独自のサーバーを経由したレイテンシーを保存する、帯域幅のAWSの通話中にオーバーヘッドを避けるため、複雑さを扱う故障などあなただけのための軽量打つ前を取ります適切な手順を取得するためのクライアントます。