【发布时间】:2018-02-10 11:20:05
【问题描述】:
我在 S3 上托管一个使用 API 的静态网站。我的 API 身份验证令牌存储在一个 JS 文件中,但我希望对公共用户隐藏它,而不是对我的应用程序。
目前,您似乎需要让每个人都可以公开访问 S3 存储桶(及其所有文件),但我想屏蔽我的配置文件。这可能吗?如果可以,最好的方法是什么?
谢谢!
【问题讨论】:
标签: api amazon-web-services amazon-s3 key
我在 S3 上托管一个使用 API 的静态网站。我的 API 身份验证令牌存储在一个 JS 文件中,但我希望对公共用户隐藏它,而不是对我的应用程序。
目前,您似乎需要让每个人都可以公开访问 S3 存储桶(及其所有文件),但我想屏蔽我的配置文件。这可能吗?如果可以,最好的方法是什么?
谢谢!
【问题讨论】:
标签: api amazon-web-services amazon-s3 key
亚马逊提供名为Lambda 的服务。它是一种无服务器计算。你用可以用这个来解决。
您可以在 Lambda 中编写一个身份验证函数,您可以在其中放置 api 身份验证令牌。
【讨论】:
无论您通过屏蔽它等做什么,您实际上都无法完全隐藏您的令牌,最终您的浏览器会发出 API 调用并传递任何愿意寻找它的人都可以看到的凭据它。
您想要做的是使用类似 aws cognito 的工具为每个用户(甚至是匿名用户)生成临时的受限令牌。
Cognito Identity 支持为 未经身份验证的用户和经过身份验证的用户。这消除了 在您的应用程序中增加一个登录屏幕的摩擦,但仍然启用 您使用临时的、有限的特权凭证来访问 AWS 资源。
https://aws.amazon.com/cognito/faqs/
如果你这样做,有人仍然可以看到正在使用的令牌,但它是时间和权限有限的 - 不是王国的钥匙,所以他们不能用它做很多事情。
【讨论】: