ruby-on-rails - 应该如何使用带有弹性 beanstalk 的亚马逊网络服务将 secret 文件推送到 EC2 Ruby on Rails 应用程序?

标签 ruby-on-rails ruby amazon-web-services amazon-s3 amazon-ec2

应该如何使用带有弹性 beanstalk 的亚马逊网络服务将 secret 文件推送到 EC2 Ruby on Rails 应用程序?

我将文件添加到 git 存储库,然后推送到 github,但我想将我的 secret 文件保留在 git 存储库之外。我正在使用以下方式部署到 aws:

git aws.push

以下文件在 .gitignore 中:

/config/database.yml
/config/initializers/omniauth.rb
/config/initializers/secret_token.rb

通过此链接,我尝试将 S3 文件添加到我的部署中: http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html

从该链接引用:

Example Snippet

The following example downloads a zip file from an Amazon S3 bucket and unpacks it into /etc/myapp:

sources:  
    /etc/myapp: http://s3.amazonaws.com/mybucket/myobject 

按照这些说明,我将文件上传到 S3 存储桶并将以下内容添加到 .ebextensions 目录中的 private.config 文件:

sources:
  /var/app/current/: https://s3.amazonaws.com/mybucket/config.tar.gz

config.tar.gz 文件将提取到:

/config/database.yml
/config/initializers/omniauth.rb
/config/initializers/secret_token.rb

但是,当部署应用程序时,S3 主机上的 config.tar.gz 文件永远不会被复制或提取。我仍然收到无法找到 database.yml 并且 EC2 日志没有配置文件记录的错误消息,这是错误消息:

Error message:
  No such file or directory - /var/app/current/config/database.yml
Exception class:
  Errno::ENOENT
Application root:
  /var/app/current

最佳答案

做我认为您想做的事情的“正确”方法是使用 IAM 角色。您可以在此处查看有关它的博客文章:http://aws.typepad.com/aws/aws-iam/

基本上,它允许您启动 EC2 实例,而无需在任何配置文件中放置任何个人凭证。当您启动实例时,它将被分配给定的角色(一组使用 AWS 资源的权限),并且轮换凭证将自动通过 Amazon IAM 放置在机器上。

关于ruby-on-rails - 应该如何使用带有弹性 beanstalk 的亚马逊网络服务将 secret 文件推送到 EC2 Ruby on Rails 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13980842/

相关文章:

arrays - 哈希值数组

php - Composer autoload.php AWS 500 错误

ruby-on-rails - FormHelper::label和FormTagHelper::label_tag有什么区别?

ruby-on-rails - 当类位于子目录中并被子类化时,Rspec 因 load_missing_constant 而失败

ruby-on-rails - Rails,如何添加到方法 html/js?

ruby-on-rails - 为什么 Rails Gemfile 默认为 https 而 http 使 bundler 更快?

amazon-web-services - 调用ModifyRule操作时AWS ELB OperationNotPermission

amazon-web-services - 出现错误 "Required option ' -K, --private-key KEY'丢失(-h 用于使用)”

ruby-on-rails - 我的脚本会发送很多请求吗?

ruby-on-rails - Rails_admin 与设计