Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何将使用AWS Amplify作为后端的前端部署到生产环境中_Amazon Web Services_Server Side Rendering_Aws Amplify_Aws Amplify Cli - Fatal编程技术网

Amazon web services 如何将使用AWS Amplify作为后端的前端部署到生产环境中

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配置将保存在名

我的用例相当简单:我希望在生产环境中部署一个使用放大后端的前端,而不公开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密钥都会被公开?我希望这有助于澄清我的问题,我显然遗漏了一些谜题。