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

时间:2016-03-25 19:29:19

标签: amazon-s3

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

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

我查看了aws-cli工具,但它只显示了AWS特定环境变量的示例。 AWS / S3控制台中是否存在可以设置的位置?

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

2 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:0)

大多数知名电子邮件营销公司甚至不允许从可能暴露密钥的前端调用他们的服务,例如MailChimp。您可以阅读below

  

注意:MailChimp不支持使用CORS请求的客户端API实现,因为暴露帐户API密钥可能存在安全风险。

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