是否可以以某种方式限制对 Amazon S3 帐户的访问。我不太喜欢将我的秘密访问密钥分发给所有应用程序,这些应用程序只想访问我帐户上的一个存储桶。如果有人获得其中一个应用程序的访问权限,我可能会丢失存储在 S3 上的所有数据。
我想到的一个方法是创建第二个 S3 帐户并允许其访问主帐户的一个存储桶,但这并不是一个很好的解决方案。
对我来说,另一件好事是只给辅助帐户写入(但不能修改/删除)和读取权限。这样我就可以上传备份或其他文件,并确保它们不会丢失。
答案1
我认为这将回答你的问题:
向下滚动并开始阅读 Michael Fisher 的回答。
不要在客户端上硬编码您的密钥。正确的做法是(通过安全通道)发送带有加密签名的预构建请求 - 此签名可以使用 S3 提供的 API 构建。
您可以从 S3.cs 类中的一个请求对象中提取加密签名请求的组成(我指的是 C# 实现 - 不确定您使用的是哪种实现,但它们应该非常相似)。然后让您的客户端安全地从服务器端请求对象,而不是返回对象,而是返回格式化的请求。我相信这是最安全的技术,再次假设您已经正确保护了通道(SSL,或您选择的任何方案)。