7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Elastic Beanstalkの環境変数の一部をEncrypted secretに置き換える

Last updated at Posted at 2017-07-16

概要

AWS Elastic Beanstlak (以下EBS)でRailsを起動する時の環境変数をRails 5.1で新たに導入されたEncrypted secretを使った仕組みに変更する

環境

手順

Raisl:encrypted secretのセットアップ

Rails:環境変数を編集する

置き換える前にAWSで設定していた環境変数は以下の6つ

  • SECRET_KEY_BASE
  • RDS_DB_NAME
  • RDS_USERNAME
  • RDS_HOSTNAME
  • RDS_PASSWORD
  • RDS_PORT

database.ymlを編集する

config/database.yml
production:
  <<: *default
  adapter: postgresql
  database: <%= Rails.application.secrets.rds_db_name %>
  username: <%= Rails.application.secrets.rds_username %>
  password: <%= Rails.application.secrets.rds_password %>
  host: <%= Rails.application.secrets.rds_hostname %>
  port: <%= Rails.application.secrets.rds_port %>

secrets.yml.encを編集

secrets.ymlは暗号化されて保存される必要があるため、直接ファイルを開いて編集する事が出来ないので、下記のようにrailsのコマンドを経由して編集する。(以下はatomで編集するときの例)

EDITOR="atom --wait" bin/rails secrets:edit

atomで開いた後、下記の通り編集して保存する。

config/secrets.yml.enc
# See `secrets.yml` for tips on generating suitable keys.
production:
  secret_key_base: 6fawijfoaijea96181ajwejfaokw111jfpwpw93232a004330ecd91fafiweof29321541e2bbf35ca5502dfd7675b28fwj93jfjw992joijaf9w1aa41d(Railsのシークレットキーのベース)
  rds_db_name: ebdb(RDSのデータベース名)
  rds_username: username(RDSのユーザー名)
  rds_hostname: a9fsfswowp12.ksj9js2s.ap-northeast-1.rds.amazonaws.com(RDSのホスト名)
  rds_password: diwdLsLdww926tdiw91ksq(RDSのパスワード)
  rds_port: 5432(RDSのポート番号)

secrets.ymlを編集

secret_key_baseは config/secrets.yml.enc から読み取るので config/secrets.yml の該当箇所を削除

config/secrets.yml
#production:
#  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> ここを削除する

EBSの環境変数を編集する

Rails:secrets.yml.keyの文字列をコピーする

secrets.yml.keyを開いて文字列をコピーする

config/secrets.yml.key
11212kjiu9u9jafwajeifwjaefafaf

AWS:Environment Properties

  1. EBS→Configuration→Software Configuration→Environment Propertiesを開く。
  2. secrets.yml.enc に移した環境変数を削除する。
  3. Property Nameに RAILS_MASTER_KEY を追加する。この環境変数により、暗号化された secrets.yml.enc を解除することができる
  4. Property Valueに secrets.yml.keyの文字列を追加する
  • 設定例

https://gyazo.com/642bd2de9e1c9fee92d64f5f3f3807d6

ApplyしてEBSに設定を反映させる。

以上。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?