[Rails] Credentials
除了設定環境變數以外,Rails 5.2 以後提供了在專案編輯環境變數的方式,是為environment credentials,而Rails 6以後又針對不同環境設定不同的環境變數。
上述編輯的檔案為開發環境的檔案(development.yml.enc
)。打開檔案看到的內容為加密過的一串密文,大概會長這樣 ⬇️
d2P4J0Pu6c82C0JjCvPCJBndrITBwv4IvPpt+EG2rZvbJO57cZzsRS3tbXtyBtH013pfhGad1/KFJL3BWB1lj9gT7thhsF5/i3Z1g6BsOI00cdrnUw3I1j2Ut0i3INT6pl0dkFvBJhK8foY7DYPEDcekNJYUvHArqtSlAJbcwImKwGUnnjOYlRTVOl953R/wsjKwpICmh+GKq5aoDzKmdx04OCwaUEO/rK+LvwM9o41VamZrn7Z2yxuuX/3wbYdVCN49lAI2SuGKrr5Ovtqn58/qiBIuod7ZF56MjQH0fmZ4NehXE1kEt0H/fbNDESYd6SVA2wUYrDiPQs29nVoXaxnPgW62oVsX5kaxWDX13YSC10kItOox4pP78DRINfPl5n0eQGY5escDTmnB5bXsRtZddadMd/alnUsn--lwSswcVgRWGXuvJq--RujDipuQ5p1bWWXh5YgSDg==
上面這串密文需要鑰匙才可以解開,在rails 6中每個環境都有各自的鑰匙,舉例來說,有development,也有production的鑰匙。
環境變數為透過命令列來編輯,編輯前我們需要一組key來解開鑰匙,用鑰匙解開[正式環境鑰匙]credentials.yml.enc
/ [開發環境鑰匙] development.yml.enc
,進去了以後就會進到下面編輯器的畫面。
編輯器的部分我選擇的是nano,因為小時候習慣用telnet連進台大的PTT,所以比較沒有用比較主流的vim。
每個環境都有key,如果沒有的話就沒有鑰匙可以進去,所以平時要保管好。除此之外,key千萬不要推上去分支,即使設定私有,還是有洩密的可能性。