【问题标题】:AWS access key is showing up in browser url when accessing the s3 content from heroku从 heroku 访问 s3 内容时,AWS 访问密钥显示在浏览器 url 中
【发布时间】: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(如您发布的那个)。要使用前者,您需要确保对象是公开的,并且您确实可以接受它们。

标签: django amazon-web-services heroku amazon-s3 django-settings


【解决方案1】:

这是一个presigned URL,AWSAccessKeyId 实际上是其结构的一部分。

this 和 Signature 都需要匹配才能显示给最终用户。

如果安全是一个问题,只需生成最低权限的 IAM 用户。请记住,密钥应该保密,这相当于密码。然而,访问密钥实际上可以通过您的 AWS 账户中的任何人检索到,更接近用户名。

【讨论】:

  • 在浏览了许多网页后发现,将 s3 存储桶公开是在 url 中禁用 AccessKey,这是有道理的。虽然我的是一个网络应用程序,但我仍然只想将存储桶中的文件保密,允许登录到我的应用程序的用户使用。
猜你喜欢
  • 2020-12-19
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 2016-01-16
  • 1970-01-01
相关资源
最近更新 更多