【ポートフォリオ作成・トラブル克服録】Railsのmaster.keyファイルをGithubに公開してしまった


ちょっと唐突ではあるが、
Qiitaへの投稿を再開。

タイミングとしては、
web appのポートフォリオを作るための学習がある程度一巡したことと、
ポートフォリオを作成&ネット上にデプロイする過程で、
エラーとかトラブルに見舞われることが多くなったため、
どんなエラー起こして・どのように解決したかを記録していつか見返す備忘録を作っておこうと思ったから。

誰かに読んでもらうことを想定してないので、
とりあえず記録のために内容を書き殴って、
気が向いた際に文章構成等をみやすく整えていく予定。

<本日の作業 その1>

TravisCIを経由してHerokuにAppをデプロイ

<本日のトラブル その1>

GitGuardianというメルアドから「Rails Master Key exposed on Github」(対象アプリのRailsのMaster KeyがGithubに出ちゃってますけど…)というメールが来てる…。
あぁ、そういうことか。昨日、手動でmaster.keyをコピーして追加したから、
その後のプッシュで公開されちゃったのか…
いや、でもmaster.keyのファイルってgitignoreにリストされてなかったっけ?

vs codeでフォルダを確認 → gitignoreファイルが無い…

一応terminalからも確認 → やっぱり無い…
ありゃ、そもそも元々のファイルからGit Cloneしたときにgitignoreファイルが入ってなかったのか??

clone元のGithubリポジトリ確認したら、きちんとGitignoreファイルは存在していた…
どこかで削除してしまったのか?

これ以上やると沼に嵌りそうなので、とりあえず原因調査はここで一時中止…
(またいつか時間があるときに再捜査するからね〜♪)
clone元のgitignoreファイルのコードをコピペして、ローカルディレクトリにも同じものを作成→再度push

よし、これでmasterkeyはGithubから消えるはず!? いや待てよ、Githubで過去のコードって残るんじゃなかったっけ?そうだよね、だって過去のソースコードを辿って復旧できるんだもん…(これもあとで調べないと…)
調べた結果 → 一度コミットされたファイルは、あとから.gitignoreに追加してもGitに残り続け、git rmで削除しないと削除されたということがコミットで反映されない()

下記の記事を参考にファイル削除後、Gitにフォースプッシュ
GitHubに誤って自宅WiFiパスワードをPushしてしまったので対処した件(https://thom.hateblo.jp/entry/2021/02/27/145223)
GitHub にパスワードとかセンシティブなファイルを push してしまったときの対処法
https://qiita.com/dtan4/items/34e41e3bd40a43fd8cbf)

<本日の反省点>

・gitignoreファイルを確認する習慣をつける
・パスワード関連の情報に対してもっと敏感になる

<今後の対策>

・どんなに注意しても人為ミスが起きることを前提にインシデントが起きた際の対処策に対する理解を含める
・GitGuardianのような、リスク管理をサポートするソフト・アプリについて学ぶ