从 heroku 访问 s3 内容时,AWS 访问密钥显示在浏览器 url 中
Posted
技术标签:
【中文标题】从 heroku 访问 s3 内容时,AWS 访问密钥显示在浏览器 url 中【英文标题】:AWS access key is showing up in browser url when accessing the s3 content from heroku 【发布时间】:2020-09-18 20:50:20 【问题描述】:我已将我的 django 应用程序部署到 heroku 并使用 Amazon s3 存储桶存储静态文件,我发现从 s3 存储桶获取数据到 heroku 没有问题。但是,当我测试查看内容存储位置时,除了 AccesskeyID 之外,我还获得了 url 路径
https://myapp.s3.amazonaws.com/img/front_cover.JPG?AWSAccessKeyId=AKIAXPKPZLYKLRB7DR4N&Signature=JzTU0DpmbGSBRpYHwV8Dvt0p1QQ%3D&Expires=1590936351
所以我担心在浏览器 URl 中显示访问 ID,我们是否可以选择在 heroku 或 django 设置或 AWS 中禁用它
【问题讨论】:
URL 生成背后的代码是什么?您使用的库应该支持公共(无签名)和预签名 URL(如您发布的那个)。要使用前者,您需要确保对象是公开的,并且您确实可以接受它们。 【参考方案1】:这是一个presigned URL,AWSAccessKeyId 实际上是其结构的一部分。
this 和 Signature 都需要匹配才能显示给最终用户。
如果安全是一个问题,只需生成最低权限的 IAM 用户。请记住,密钥应该保密,这相当于密码。然而,访问密钥实际上可以通过您的 AWS 账户中的任何人检索到,更接近用户名。
【讨论】:
在浏览了许多网页后发现,将 s3 存储桶公开是在 url 中禁用 AccessKey,这是有道理的。虽然我的是一个网络应用程序,但我仍然只想将存储桶中的文件保密,允许登录到我的应用程序的用户使用。以上是关于从 heroku 访问 s3 内容时,AWS 访问密钥显示在浏览器 url 中的主要内容,如果未能解决你的问题,请参考以下文章