1
1

More than 3 years have passed since last update.

credential.ymlの設定方法使い方など

Posted at

久しぶりにrails記事書きます。

credential.ymlのことです。
version 5.2~実装されたsecrets.ymlの後継に当たるものですね。

理解が曖昧だったのでまとめました。

credential.ymlの作成

作成されるタイミングは rails newした時。
create config/master.keyと出てました。
しかし、create credential.ymlのような記述は探してもなかったですけどrails newしたら作られてましたので同じタイミングですね。
* create master.keyしたすぐに.gitignoreにappend処理が行われるので、gitの管轄から自動的に外されます。

もしも、どちらかもしくはどっちのfileも削除してしまった際には
$EDITOR='vi' rails credentials:edit コマンドで再作成できます。
このコマンドは主に、credentialsを編集するときに使います。
(おそらく、fileがなければ、作成しあれば編集するような条件をかけているのかな?)

credentials.ymlの編集

編集は$EDITOR='vi' rails credentials:editのコマンドを使います。

aws:
   access_key_id: 123
   secret_access_key: 345

# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.

初期はこんな画面です。おそらく、初期では全てコメントアウト扱いです。
使いたい値を組み込んでみましょう。

Google:
  google_spred_key_id: AAABBBCCC

気をつけるのは、google:の前の空欄を空けること。空けないと値がnilになりました。

設定できているかを確認するときには、
rails cで Rails.application.credentials.awsやRails.application.credentials.googleなどで取れます。(ハッシュ)
さらに、googleの中のgoogle_spred_key_idを取得したい時Rails.application.credentials.google[:google_spred_key_id]と記述します。

削除してしまった際

ActiveSupport::MessageEncryptor::InvalidMessage
こんなエラーが出るときがあります。credential.yml or master.keyがない。それか、整合性が合わない時に起こりうるので、そんな時は再発行などを試してみてはいかがでしょうか。
$EDITOR='vi' rails credentials:edit

最後に感想

最後に、運用方法ですが
credentialはmasterkeyとニコイチです。一緒にないと動きません。
credentialがなくてもrails cなどは動きますがmasterkeyがなくなれば何もできなくなります。
なので、大人しく$EDITOR='vi' rails credentials:editして作成してあげましょう。
credentialを他の人が作成して、自分が編集したい時には作成した時点のmasterkeyが必要です。
なので、gitなどにはあげずに全員に配ってあげてください。(多分)

credentialが公開鍵
mastekeyが秘密鍵の役割かな?

なので秘密鍵は絶対に後悔しないようにしましょう。

1
1
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
1
1