在AWS S3上为静态网站配置环境变量



我正试图根据以下信息在S3上建立一个简单的静态Angular网站:http://docs.aws.amazon.com/gettingstarted/latest/swh/website-hosting-intro.html

我想通过一个需要发送sendgridapi密钥的表单发送电子邮件。显然,我想使用环境变量来避免代码中有键。如何在S3中设置环境变量?

我研究了aws-cli工具,但它只显示了aws特定环境变量的示例。AWS/S3控制台中是否有可以设置的地方?

BTW-我想使用这个Angular服务,它演示了sendgrid服务:https://github.com/onaclovtech/sendgrid/blob/master/sendgrid.js

您不能在S3中设置环境变量。S3只是一个静态对象存储,而不是一个动态内容服务器。评估变量值将是动态内容的定义,而S3只提供静态内容。

请注意,AngularJS代码在浏览器中运行,而不是在服务器上运行,因此,任何知道如何查看代码的人都可以在浏览器中查看您想要保留在代码之外的密钥。如果您想从客户端框架调用SendGrid,则无法隐藏这些值。

大多数知名的电子邮件营销公司甚至不允许从可能暴露密钥的前端(如MailChimp)呼叫他们的服务。您可以阅读以下内容:

注意:由于暴露帐户API密钥的潜在安全风险,MailChimp不支持使用CORS请求的API客户端实现。

现在,这种情况可能会发生很多次,您仍然希望使用环境变量来分隔环境和此类(非敏感信息)。在这种情况下,您应该在机器上使用环境变量,并在webpack或其他构建工具的帮助下生成构建。

最新更新