0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

git-secretsでセキュリティ対策

Posted at

##はじめに
AWSが提供しているgit-secretsを導入して、AWSの機密情報を誤ってGitHubにあげないように設定します。
一度設定するとこれからも、わざわざ設定しなくて済むように導入していきます。

よろしくお願いします。

##git-secretsとは

git-secretsとはAWSが提供しているツールで、コードをコミットするときにパスワードだと推定されるような文字列が含まれていると、処理を中断してくれます。
つまりはうっかりミスを指摘してくれます。

##git-secrets導入

ターミナルからHomebrewを経由してgit-secretsを導入します。

ターミナル
% cd ~/ #ホームディレクトリに移動
% brew install git-secrets

続いてアプリケーションに適用します。

ターミナル
% cd アプリケーション名 #開発中のアプリに移動
% git secrets --install

次に「Access key ID」や「Secret access key」などのアップロードしたくないAWS関連の秘密情報を一括で設定します。
下記のコマンドを開発中のアプリケーションで実行します。

ターミナル
% git secrets --register-aws --global

どのような設定がされているか気になる人は下記のコマンドで内容を表示できます。
様々な正規表現を用いて設定していることがわかります。

ターミナル
% git secrets --list

# ⬇️上記コマンドを実施すると、以下の内容が表示されます
secrets.providers git secrets --aws-provider
secrets.patterns [A-Z0-9]{20}
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

これで「git secrets --install」したリポジトリで、「git commit」コマンドを実行したときに秘密情報が含まれていないかチェックされるようになりました。

##可視化ツール GitHub Desktopの場合

可視化ツールのGitHub Desktopを仕様している場合さらに設定が必要になります。
下記のコマンドで適用できます。

ターミナル
% sudo cp /usr/local/bin/git-secrets /Applications/GitHub\ Desktop.app/Contents/Resources/app/git/bin/git-secrets

もし「No such file or directory」というエラーが出る場合は、GitHub Desktopのバージョンが古いことが原因かもしれません。
下記のコマンドを実行しましょう。

ターミナル
% sudo cp /usr/local/bin/git-secrets /Applications/GitHub\ Desktop.app/Contents/Resources/git/bin/git-secrets

##自動に適用されるようにする
これから作成するリポジトリには今回のように毎回設定せずに、自動でgit-secretsが適用されるようにします。
下記コマンドを実行します。

ターミナル
% git secrets --install ~/.git-templates/git-secrets
% git config --global init.templatedir '~/.git-templates/git-secrets'

これで今後作成するアプリケーションはわざわざgit-secretsを適用させる作業する必要はありません。

##最後に
GitHubにうっかり鍵をプッシュしてしまうのはかなり危険ですので、万が一のことを考えて導入はしておいた方がいいですね。

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?