はじめに
GitHubに間違えてAWSのSecret Keyなどを誤って公開してしまって〇〇万円請求されたという話はよく聞きます。
リポジトリをプライベートにしておけばいいだろ!という方も、そのリポジトリをパブリックしたり、Forkしたりしたら危険であることがわかると思います。
そんなとき、意図せずリポジトリにシークレット情報を残さないようにgit-secretをローカルに導入しましょう。
簡単にセッティングできます。
手順
まずはgit-secretをインストールします。
$ brew update && brew install git-secrets
対象ディレクトリで
$ git init
$ git secrets --install
これでgit-secretを利用できるようになりました。
AWS credentialのチェックはデフォルトで用意されているので、そちらを用います。
$ git secrets --register-aws --global
設定は.gitconfigに記載されています。
セキュリティチェックを追加する際には、.gitconfigに正規表現で記述します。
設定一覧を見るには
$ git secrets --list
◆指定のディレクトリをクロールする場合
$ git secrets --scan -r < directory name >
これでディレクトリ全体のチェックができます。
◆コミットに含まれていないかのチェック
$ git add .
$ git commit -m "secret check"
$git secrets --scan
secrets//test.txt:6:AWSSecretKey=wJaXXXXXXXXXX/XXXXXXX/bPxRfiCYEXAMPLEKEYsecrets//test.txt:7:AWSAccessKeyId=AKIAXXXXXXXXXXXAMPLEsecrets//test.txt:9:private_key
[ERROR] Matched one or more prohibited patterns
Possible mitigations:
Mark false positives as allowed using: git config --add secrets.allowed ...
Mark false positives as allowed by adding regular expressions to .gitallowed at repository's root directory
List your configured patterns: git config --get-all secrets.patterns
List your configured allowed patterns: git config --get-all secrets.allowed
List your configured allowed patterns in .gitallowed at repository's root directory
Use --no-verify if this is a one-time false positive
以上です。
まとめ
本当に初歩てきな導入だけを書きました。
上記のことは一瞬でできて、重大なミスを防ぐことができるので、すぐに導入することをおすすめします。
筆者のこちらのブログもぜひ見てみてください👇
ヘヴィメタル・エンジニアリング