我的用例相当简单:我想要部署一个前端到生产,使用一个放大器后端,而不像API键那样公开敏感的配置。
我有一个前端,它为CI和CD使用,现在部署到Zeit (因为它是一个Next.js项目,需要SSR支持,而放大器目前不提供这种支持)。目前,它没有一个后端连接,因此它部署到生产没有任何问题。
在同一个项目中,我已经为后端设置了AWS扩容,并将其连接到前端。从本地环境来看,一切工作都很成功。
现在我想将前端部署到生产中,但是,用于将其连接到后端的AWS配置,它保存在一个名为aws-exports.js的自动生成文件中,该文件除其他外包含GraphQL端点及其API键。此文件已被.gitignore添加到Amplify CLI中。
如果我从aws-exports.js中删除.gitignore文件并将其提交到存储库,我认为一旦部署到生产中,它可能会工作,但是我认为这不是一个好主意,因为我将公开敏感的配置数据。
我不想使用AWS来部署我的前端,这就是我所读到的文档中建议的解决方案。是否有任何建议的方法来做到这一点,保持前端和后端环境分离?(这意味着前端现在仍然部署到Zeit,它将使用部署在AWS中的后端)。
发布于 2020-05-09 00:35:10
据我所知,AWS AppSync安全概念指定auth模型API_KEY用于公共应用程序或开发环境。
未经身份验证的API需要比经过验证的API更严格的节流。控制未经身份验证的GraphQL端点节流的一种方法是使用API键。
API键是应用程序中由AWS AppSync服务在创建未经身份验证的GraphQL端点时生成的硬编码值。
我不认为试图隐藏API密钥有任何好处。如果需要身份验证,则必须通过其他方式提供,而不是硬编码的秘密,它总是可以从公共应用程序(如web前端)中提取出来。
在文档中描述了更多的模型。1
如果您计划开发一个带有私有端点和公共前端/客户端的应用程序,那么您肯定应该使用另一个auth模型--很可能是OPENID_CONNECT或AMAZON_COGNITO_USER_POOLS。
我认为您应该首先阅读AWS博客文章,标题为和GraphQL 2,然后更准确地说明您的问题是否仍然缺乏清晰性。
参考文献
https://stackoverflow.com/questions/61545245
复制相似问题