git-secretsの設定を手元の全Repositoryに反映する。
クラウド破産という言葉が知られて久しい世の中です。
その対策としてよく利用されているのがgit-secretsだと思います。
各種秘密鍵をcommitしてしまう場合に警告を出すようにしてくれるツールです。
自分も利用していますが、設定を手元のすべてのrepositoryや、新しく作るRepositoryにも反映したかったので、その手順を書きます。
Install
brew経由でinstallが出来る。
$ brew install git-secrets
全repositoryへのルールの追加
$ git secrets --add 'your rule' で追加をすることが出来る。
更に--global optionをつけることで、repositoryの垣根を超えてglobalに反映される。
# for AWS
$ git secrets --register-aws --global
# for GCP @see https://cloudplatform-jp.googleblog.com/2017/08/help-keep-your-Google-Cloud-service-account-keys-safe.html
git secrets --add 'private_key' --global
git secrets --add 'private_key_id' --global
内容としては、~/.gitconfigに追加される。
各種repositoryはこの設定を見ることになるので、手元のgit repoは全て設定したルールに従うことになる。
teitei.tk >> (master) ~/.golang/src/github.com/teitei-tk/MyDotfiles
$ git secrets --add hoge --global
teitei.tk >> !(master) ~/.golang/src/github.com/teitei-tk/MyDotfiles
$ git diff
diff --git a/.gitconfig b/.gitconfig
index 3fbffb3..df8002c 100644
--- a/.gitconfig
+++ b/.gitconfig
@@ -37,3 +37,4 @@
patterns = (\"|')?(AWS|aws|Aws)?_?(ACCOUNT|account|Account)_?(ID|id|Id)?(\"|')?\\s*(:|=>|=)\\s*(\"|')?[0-9]{4}\\-?[0-9]{4}\\-?[0-9]{4}(\"|')?
allowed = AKIAIOSFODNN7EXAMPLE
allowed = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+ patterns = hoge
~/.gitconfigをgithubで管理することで、別のPCでもpullさえしたら反映される。
新規Repositoryでもgit-secretsを適応する。
特定のDirectoryにinstallをし、globalなgit configに設定を追加することで、新規にrepositoryを追加(git init、git clone)した際にもhookされるようになる。
$ git secrets --install ~/.git-templates/secrets
$ git config --global init.templatedir '~/.git-templates/secrets'
手前味噌ですが、自分のdotfiles repositoryに追加をしたので何か参考になれば幸いです。
Ref
Software Engineer. https://teitei-tk.com