Tag: git-secrets
brew install git-secrets
make install
cd /path/to/my/repo git secrets --install git secrets --register-aws
[secrets] providers = git secrets --aws-provider patterns = (A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16} patterns = (\"|')?(AWS|aws|Aws)?_?(SECRET|secret|Secret)?_?(ACCESS|access|Access)?_?(KEY|key|Key)(\"|')\ ?\\s*(:|=>|=)\\s*(\"|')?[A-Za-z0-9/\\+=]{40}(\"|')? 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
git secrets --add-provider -- cat SECRET_WORDS.txt
providers = cat SECRET_WORDS.txt
まず、git-secrets はファイルから禁止されたマッチを含むすべての行を抽出します。マッチした結果に含まれるのは、マッチしたファイル名のフルパスの後に ':' が続き、マッチした行番号が続き、シークレットパターンでマッチしたファイルの行全体が続きます。そして、許可される正規表現を定義している場合は、git-secrets はマッチしたすべての行が登録した許可される正規表現の少なくともひとつにマッチするかどうかを調べます。秘密と判定された行がすべて許可されたマッチで打ち消された場合は、そのサブジェクトテキストには秘密が含まれていません。一致した行のどれかが許可された正規表現に一致しなかった場合、git-secrets はコミット/マージ/メッセージを失敗させます。
[default] aws_access_key_id = AKIAIOSFODNN7EXAMPLo aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEo
(\"|')?(AWS|aws|Aws)?_?(ACCOUNT|account|Account)_?(ID|id|Id)?(\"|')?\\s*(:|=>|=)\\s*(\"|')?[0-9]{4}\\-?[0-9]{4}\\-?[0-9]{4}(\"|')?