takoizmi22
@takoizmi22

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

git-secretsがキーを検出しない。

Q&A

解決したいこと

git-secretsを導入するも、単一機能ファイルでのスキャンはブロックして機能しますが、ダミーアクセスキー、シークレットキーの組み合わせをなん度も変えても普通にコミット、プッシュを通してしまいます。なんとか通さないことを確認したいです。

症状

対象のファイルの中身。(.txtにしたり.tfにしたり拡張子なしにしたり、文字を変えてみたりしてみましたので色々ありますがベースは以下です。これだと通常だとgitconfigでは例外として許可されていることはわかります。

[default]
aws_access_key_id = AKIAIOSFODNNEXAMPLEx
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCEXAMPLEKEYz

スキャンすると検出します
git secrets --scan credentials2.txt
credentials2.txt:3:aws_secret_access_key = hJalrXUtnFEMI/Z7MDENG/aPxRfiCEXAMPLEKEYz

[ERROR] Matched one or more prohibited patterns

が、コミット、プッシュは普通にできる。
git commit -m "aaa"
[master 4a00d6c] aaa
1 file changed, 3 insertions(+)
create mode 100644 credentials2.txt

試したこと

やったことその1
1.configの確認
2.git secrets --listコマンドで出てきた内容。以下の通りで、特に問題がなさそうです。
secrets.providers git secrets --aws-provider
secrets.patterns (A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}
secrets.patterns ("|')?(AWS|aws|Aws)??(SECRET|secret|Secret)??(ACCESS|access|Access)??(KEY|key|Key)("|')?\s*(:|=>|=)\s*("|')?[A-Za-z0-9/+=]{40}("|')?
secrets.patterns ("|')?(AWS|aws|Aws)?
?(ACCOUNT|account|Account)_?(ID|id|Id)?("|')?\s*(:|=>|=)\s*("|')?[0-9]{4}-?[0-9]{4}-?[0-9]{4}("|')?
secrets.allowed AKIAIOSFODNN7EXAMPLE
secrets.allowed wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

やったことその2
1..git/hooksディレクトリに移動してpre-commitファイルが存在することを確認
2.1.の内容を確認
#!/usr/bin/env bash
git secrets --pre_commit_hook -- "$@"
3.ファイルの最初に echo "pre-commit hook is running!" を追加
4..git/hooks/pre-commit を実行して、エコーメッセージが表示されるかどうかを確認します。
5.表示されたので、実行はしていることがわかった。

やったことその3
1.OSを変えて別機体で同様に実行しました。
2.結果は変わらず。OS依存ではないことがわかりました。

0

No Answers yet.

Your answer might help someone💌