なにそれ
awslabs/git-secrets: Prevents you from committing secrets and credentials into git repositories
- AWS の認証情報を Git でコミットするとエラーで弾く Git のプラグイン
- AWS が作ってる
やり方
参考: リポジトリ: awslabs/git-secrets の説明
以下は macOS の場合。
$ brew install git-secrets
既存のリポジトリに設定する方法。
$ cd /path/to/my/repo $ git secrets --install $ git secrets --register-aws
git init
or git clone
時にデフォルトで有効にする設定。
$ git secrets --register-aws --global $ git secrets --install ~/.git-templates/git-secrets $ git config --global init.templateDir ~/.git-templates/git-secrets
試しにアクセスキーをコミット。
$ echo "AKIXXXXXXXXXXXXXXXXXXXX" > unsafe
弾かれた。
$ git add unsafe $ git commit -m unsafe unsafe:1:AKIXXXXXXXXXXXXXXXXXXXX [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
過去の全コミットを調べる方法。
$ git secrets --scan-history
独自のパターンも定義できるぞ。
$ cat ~/.gitconfig [init] templatedir = ~/.git-templates/git-secrets [secrets] providers = git secrets --aws-provider patterns = [A-Z0-9]{20} 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}(\"|')? # 独自の禁止パターン patterns = internal\.example\.com # 独自の許可パターン allowed = www\.example\.com