Amazon web services 如何将使用AWS Amplify作为后端的前端部署到生产环境中
我的用例相当简单:我希望在生产环境中部署一个使用放大后端的前端,而不公开API密钥之类的敏感配置 我有一个使用Github Actions for CI和CD的前端,现在部署到Zeit(因为它是下一个.js项目,需要SSR支持,而Amplify目前不提供)。目前,它没有连接后端,因此部署到生产环境时不会出现任何问题 在同一个项目中,我为后端设置了AWS Amplify,并将其连接到前端。在当地环境中,一切都如预期般成功 现在我想将前端部署到生产环境中,但是用于将其连接到后端的AWS配置将保存在名为Amazon web services 如何将使用AWS Amplify作为后端的前端部署到生产环境中,amazon-web-services,server-side-rendering,aws-amplify,aws-amplify-cli,Amazon Web Services,Server Side Rendering,Aws Amplify,Aws Amplify Cli,我的用例相当简单:我希望在生产环境中部署一个使用放大后端的前端,而不公开API密钥之类的敏感配置 我有一个使用Github Actions for CI和CD的前端,现在部署到Zeit(因为它是下一个.js项目,需要SSR支持,而Amplify目前不提供)。目前,它没有连接后端,因此部署到生产环境时不会出现任何问题 在同一个项目中,我为后端设置了AWS Amplify,并将其连接到前端。在当地环境中,一切都如预期般成功 现在我想将前端部署到生产环境中,但是用于将其连接到后端的AWS配置将保存在名
AWS exports.js
的自动生成文件中,其中包含GraphQL端点及其API键。此文件已通过Amplify CLI
添加到.gitignore
如果我从.gitignore
中删除aws exports.js
文件并将其提交到存储库,我认为一旦部署到生产环境中,它可能会工作,但是我认为这不是一个好主意,因为我会公开敏感的配置数据
我不想使用AWS来部署我的前端,这是我阅读的文档中建议的解决方案。是否有任何建议的方法来保持前端和后端环境的分离?(这意味着前端现在仍在部署到Zeit,Zeit将使用AWS中部署的后端)。据我所知,AWS AppSync安全概念指定在公共应用程序或开发环境中使用auth model API_密钥 未经身份验证的API需要比经过身份验证的API更严格的限制。控制未经验证的GraphQL端点的节流的一种方法是使用API键 API密钥是应用程序中的硬编码值,在创建未经验证的GraphQL端点时由AWS AppSync服务生成 我不认为试图隐藏API密钥有任何好处。如果需要身份验证,则必须通过硬编码密码以外的其他方式提供身份验证,硬编码密码始终可以从公共应用程序(如web前端)中提取 文档中描述了更多的身份验证模型。[1]
如果您计划开发一个具有私有端点和公共前端/客户端的应用程序,那么您肯定应该使用另一种身份验证模型——最有可能的是OPENID\u CONNECT或AMAZON\u COGNITO\u用户池 我认为您应该首先阅读AWS的博客文章,标题为GraphQL API Security with AWS AppSync and Amplify[2],然后更准确地说明您的问题,如果仍然存在任何不清晰之处 工具书类 [1]
[2] 我不太了解这个场景,无法回答这个问题。我知道您想在前端隐藏凭据。但是前端应该如何针对GraphQL端点进行身份验证?通过验证模型API_密钥?我想从存储库中隐藏API密钥。例如,在Zeit Now的部署中,我使用Github secrets,以便将它们作为占位符提交到存储库,但敏感信息是隐藏的,可以使用Github操作进行部署。所以我想知道在前端和AWS Graphql后端之间是否有类似的通信方式。或者,这可能无关紧要,因为在任何情况下,当执行来自客户端的请求时,API密钥都会被公开?我希望这有助于澄清我的问题,我显然遗漏了一些谜题。