0

次の問題が発生しています。AWS .NETSDKを使用してアマゾンウェブサービスに接続しようとしているASP.NET(VB.NET)アプリケーションがあります。そのために、ユーザーはアクセスキーとシークレットキーを入力しています。次に、次のように構成にキーを追加します。

 Dim config As Configuration = WebConfigurationManager.OpenWebConfiguration("~")
 Dim settings As KeyValueConfigurationCollection = config.AppSettings.Settings
 settings("AWSAccessKey").Value = AmazonAccessKeyText.Text
 settings("AWSSecretKey").Value = AmazonSecretKeyText.Text
 config.Save(ConfigurationSaveMode.Modified)
 ConfigurationManager.RefreshSection("appSettings")

これによりweb.configファイルが正常に変更されますが、実行時にAccessキーが見つからないという例外がスローされます。誰かが私が間違っていることを教えてもらえますか?

4

2 に答える 2

1

私が正しく理解していれば、クライアントに代わってAWSに接続するASP.NETアプリケーションとして、クライアントのクレデンシャルをローカルに保存することがセキュリティの観点から最善のアイデアかもしれません。

あなたはどちらかをすることができます

  1. SecureStringのようなもので必要な場合にのみ、セッションのメモリにクレデンシャルを保存します
  2. 暗号化APIを使用して、暗号化してディスクに保存します。

Amazon SDKは、app/web.configに保存されているクレデンシャルを必要としません。AWSClientFactory.CreateAmazonS3Clientのようなものを見ると、これらをパラメーターとしてこの関数に渡すことができることに気付くでしょう。

于 2012-10-23T19:43:08.180 に答える
0

おそらく、アプリケーションオブジェクトのキーで受信したものを保持する方が良いですか?たとえば、静的です。これははるかに明確で単純であり、web.configが変更されたときにアプリケーションのリサイクルを引き起こしません

于 2012-10-23T19:38:44.183 に答える