代码之家  ›  专栏  ›  技术社区  ›  Greg D

使用Amazon Web服务保守秘密密钥

  •  10
  • Greg D  · 技术社区  · 14 年前

    我在我的个人项目中使用亚马逊网络服务。我抓到了他们的.NET的AWS SDK,我正在使用它,但我有点困惑。

    1. 对Web服务的访问(在本例中是simpledb,尽管我认为这并不是问题的实质性内容)是通过私有/公共密钥对授权的。

    2. 用于创建客户端对象的.NET API的AWS SDK需要私钥:

      AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey);
      
    3. 这是一个客户机应用程序,因此代码将完全在客户机上运行。

    4. 建议客户端需要访问我的私钥才能访问simpledb。但是亚马逊一再强调我的私人钥匙不能离开我的控制。

    这对我来说没有意义,所以我想我一定错过了什么。

    对于Amazon Web服务,一般来说,客户端应用程序使用其用于.NET的AWS SDK是否是错误的模型,或者我是否缺少使客户端应用程序完全合理的东西?在不创建自己的代理服务来验证客户机并将其请求转发到simpledb的情况下,是否有一种很好的方法来解决这个问题?

    1 回复  |  直到 14 年前
        1
  •  7
  •   Yetanotherjosh    14 年前

    您不需要实现面向远程(AWS)服务的代理。只需实现一个简单的、小的、经过身份验证的服务,它将 联系AWS时要使用的URL和头。 经过身份验证的Web服务对AWS保密,只向客户机提供签名的请求URL和头,然后客户机使用返回的信息进行实际的工作调用。

    这样,您就可以避免在AWS调用期间的开销,即必须通过您自己的服务器、节省延迟、带宽、服务器上的绑定套接字、故障处理复杂性等。您只需提前轻量级的访问,让客户机获得正确的指令。