irodimazak

!= '主に日々学んだ事を書き留めます。'

credentials.yml.enc

railsでGoogleAPIを使い、youtubeの動画を取得し、表示させようとした時に

GOOGLE_API_KEY = Rails.application.credentials.google[:api_key]

という記述を見つけた。 GOOGLE_API_KEYにAPI keyを代入しているみたいなんだけど、
初めて見たコードだったのでせっかくだから調べてみようと思う。
早速先生にリクエストを送る。

もういい感じにまとめられてた❗️

qiita.com

以下記事より抜粋

Rails5.2では新規アプリを作成した時にconfig/secrets.ymlが生成されず、代わりにconfig/credentials.yml.encが生成されるようになりました。

ふーん🤔
railsガイドでも確認して見る

railsguides.jp
以下ガイドより抜粋

config/credentials.yml.encファイルが追加され、productionアプリケーションの秘密情報(secret)をここに保存できるようになりました。これによって、外部サービスのあらゆる認証credentialを、config/master.keyファイルまたはRAILS_MASTER_KEY環境変数にあるキーで暗号化した形で直接リポジトリに保存できます。Rails.application.secretsやRails 5.1で導入された暗号化済み秘密情報は、最終的にこれによって置き換えられます。

そうなんだ。
ちなみに

master.keyファイルやRAILS_MASTER_KEY環境変数にあるキーでの形に暗号化した形で直接リポジトリに保存できます。

の部分はQiitaの記事の方でうまくまとめられているのでここでは割愛💔

自分はenvファイルで管理するのと何が違うのかが気になっていたんだけど , envファイルで管理すると環境変数の数が多くなってしまって管理しづらいって事だよね。
credentials.yml.encファイルに設定しておけばリポジトリにあげられるのでローカルでの管理がしやすくなったよ👍て事なんだと思う。

では現場ではどのように運用するの? それもすでにまとめられていたよ❗️

tech.libinc.co.jp こちらの記事は未経験で入社された方が執筆されたとの事ですのであまり鵜呑みにするのも良くないと思いますが、 一つの一例という事で。
というか、あんまりあてにするなよな😘