目的
AWSのアクセスキーなどをenvファイルなどに直接書き込んでいると簡単にそのキーを利用してS3を不正利用され、高額請求されるというケースがよくある。
作成していたdjangorestframeworkのAPIをデプロイするにあたって、この問題を避けるためにenvファイルをgitignoreを使ってgitの管理対象から外そうと思う。
問題発生
調べた通りにgitignoreに.envを無視するように記述するも、githubのGUIをみると.envが残っている!!!!!
gitignoreファイル↓
/.env
envファイル↓
.env
# SECRET_KEY=xxxxxxxxxxxxxxx
# AWS Settings
# DJANGO_AWS_S3_BUCKET_NAME=huga-storage
# DJANGO_AWS_ACCESS_KEY=xxxxxxxxxxxxxxxxxx
# DJANGO_AWS_SECRET_KEY=xxxxxxxxxxxxxxxxxx
解決策
実はこれまでに.envをすでにpushしていたためキャッシュが残っていたことが問題だった。
そのため$ git rm -r --cached .env
を使って、キャッシュに残っているインデックスを削除する必要がある。
$ git rm -r --cached .env
$ git commit -m"ignore .env file"
$ git push ~~~
githubのGUIからも.envがなくなった。
万事解決。
参考