LoginSignup
1
0

More than 1 year has passed since last update.

git-secretsの設定方法

Posted at

様々な記事で取り上げられておりますが備忘録として残します。

サーバーのアクセスキーの情報やシークレット情報を使って開発する際、
誤ってアクセスキーの情報をgitにコミットしないためにgit-secretsを設定します。

参考記事

git-secretsはじめました

環境

M1 MAC
macOS Ventura バージョン13.2.1

MACの設定方法

以下のコマンドの設定をすると、PC上にある全gitでバージョン管理されている対象に対して、AWSの保護を行うgit-secretsが適用されます。

git secretsのinstall

$ brew install git-secrets

端末全体のgitでバージョン管理されているリポジトリの保護

$ git secrets --install ~/.git-templates/git-secrets
$ git config --global init.templatedir '~/.git-templates/git-secrets'

AWSの保護

$ git secrets --register-aws --global

下記の様に、~/.gitconfigに設定が追記されたら成功です。

[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

エラーが出るかテスト

今回はダウンロードフォルダに「test」というフォルダを作成し、その中にAWSのアクセスキー(ダミー)を記載した「secret.txt」というファイルを作成し、git addしてcommitしてみます。

ダウンロードフォルダに移行
$ cd Downloads

testフォルダを作成し、testフォルダに移動
$ mkdir test && cd test

gitリポジトリを新規に作成(初期化の意味も持つ)
$ git init

git secretsをインストールすることで設定を行う
$ git secrets --install

AWS向けのcommit検査設定を導入
$ git secrets --register-aws

「secret.txt」ファイルを作成
$ touch secret.txt
$ echo "aws_secret_access_key = ABcDe1F2hIjkl3nop45sTUv6XYz7aBcDEFghIJKL" > secret.txt

ファイル検査
$ git secrets --scan secret.txt
secret.txt:1:aws_secret_access_key = ABcDe1F2hIjkl3nop45sTUv6XYz7aBcDEFghIJKL

[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 add .
$ git commit -m "firstcommit"

※本来であればcommitした際に検出されるようですが、私は検出されず、原因が分からなかったため、ファイル検査にて検出しました。
解決方法お分かりの方おりましたらご教示いただけますと幸いです。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0