Amazon web services 从桌面应用程序安全访问AWS S3

Amazon web services 从桌面应用程序安全访问AWS S3,amazon-web-services,amazon-s3,boto,Amazon Web Services,Amazon S3,Boto,我在一个S3帐户中有来自多个用户的数据。我的桌面应用程序有一个身份验证系统,可以让应用程序知道用户是谁以及在S3上访问哪个文件夹。但是桌面应用程序拥有对整个S3文件夹的访问代码 有人告诉我这是不安全的,因为黑客可以破坏从应用程序到S3的请求,并使用凭据下载所有数据 这是真的吗?如果是这样,我该如何避免呢?(他说我需要在AWS云中安装一个客户端服务器,但我不清楚……) 顺便说一句,我正在使用Boto python库访问S3 谢谢我刚刚发现: 不要在应用程序中存储您的AWS密钥。一个坚定的黑客最终会

我在一个S3帐户中有来自多个用户的数据。我的桌面应用程序有一个身份验证系统,可以让应用程序知道用户是谁以及在S3上访问哪个文件夹。但是桌面应用程序拥有对整个S3文件夹的访问代码

有人告诉我这是不安全的,因为黑客可以破坏从应用程序到S3的请求,并使用凭据下载所有数据

这是真的吗?如果是这样,我该如何避免呢?(他说我需要在AWS云中安装一个客户端服务器,但我不清楚……)

顺便说一句,我正在使用Boto python库访问S3

谢谢

我刚刚发现:

  • 不要在应用程序中存储您的AWS密钥。一个坚定的黑客最终会找到它。一种想法是,您在某个地方托管了一个web服务,其唯一目的是使用密钥对客户端的S3请求进行签名,然后将这些请求转发到S3服务。因此,您可以让用户使用您控制的凭据对您的web服务进行身份验证。重新迭代:客户机直接与S3对话,但得到您的“橡皮图章”批准/批准

  • 我认为S3不一定是一个平面结构——如果您使用文件系统符号“folder/subfolder/file.ext”作为键的话

  • S3支持虚荣URL请参见-基本上URL“变为”,然后您可以在DNS中设置一个CNAME,将“www.myname.com”映射到“mybucket.S3.amazonaws.com”,结果是“”

  • 我刚刚发现:

  • 不要在应用程序中存储您的AWS密钥。一个坚定的黑客最终会找到它。一种想法是,您在某个地方托管了一个web服务,其唯一目的是使用密钥对客户端的S3请求进行签名,然后将这些请求转发到S3服务。因此,您可以让用户使用您控制的凭据对您的web服务进行身份验证。重新迭代:客户机直接与S3对话,但得到您的“橡皮图章”批准/批准

  • 我认为S3不一定是一个平面结构——如果您使用文件系统符号“folder/subfolder/file.ext”作为键的话

  • S3支持虚荣URL请参见-基本上URL“变为”,然后您可以在DNS中设置一个CNAME,将“www.myname.com”映射到“mybucket.S3.amazonaws.com”,结果是“”


  • 正是时候!AWS昨天刚刚发布了一个功能,它可能会在这里帮助您:


    您要做的是为每个用户创建一个IAM帐户。这将允许您为每个用户拥有单独的访问密钥和密钥。然后,您将为bucket分配一个策略,该策略基于用户名限制对bucket的一部分的访问。(我上面链接的例子就是这个用例的好例子)。

    完美的时机!AWS昨天刚刚发布了一个功能,它可能会在这里帮助您:

    您要做的是为每个用户创建一个IAM帐户。这将允许您为每个用户拥有单独的访问密钥和密钥。然后,您将为bucket分配一个策略,该策略基于用户名限制对bucket的一部分的访问。(我上面链接的例子就是这个用例的好例子)