0
0

More than 1 year has passed since last update.

Terraformを使って覚える。(その2:git-secretsとVS Codeのインストール)

Last updated at Posted at 2022-07-26

はじめに

今回はTerraformの内容とは若干外れますが、Terraformで開発していくために使用するツール類のインストールとセットアップを行ってみようと思います。

今回インストールするツール

今回は以下2つのインストール&セットアップを行います。

  • git-secrets
  • Visual Studio Code(VS Code)

インストール環境

前回と同様、Windows端末にインストールしていきます。

種別 内容
OS Windows 11 Home
アーキテクチャ AMD Ryzen 7 3700U

git-secretsとは

AWSGitHubで公開しているツールで、AWSのクレデンシャル情報(アクセスキー&シークレットアクセスキー)を含むファイルがGitでコミットされないようにするツールとなります。

仕組みとしてはGitのフック機能を使用して、Gitのコミット実行時にコミットメッセージやマージした際の履歴等に所定の文字列(アクセスキー&シークレットアクセスキーの文字列)が含まれていればコミットを拒否する動作を行う仕組みとなります。

AWSのクレデンシャル情報だけではなく、自分で拒否パターンを追加することもできるようなので、うまく使えば所定の文字列チェックツールとしても使えそうです。

公式ページにも記載されている通り、git-secretsはあくまでも保険的なツールとなります。
git-secretsをインストールしたとしても誤検知でコミットされてしまう可能性もあるため、過信しすぎないようにしてください。

git-secretsのインストール&セットアップ

git-secretsは以下の流れでインストールとセットアップを行っていきます。

  1. git-secretsのインストール
  2. git-secretsのセットアップ
  3. git-secretsの動作確認
  4. 既存のGitリポジトリへのgit-secretsインストール

git-secretsのインストール

git-secretsをインストールするためには、上述のGitHubからクローンでダウンロードし、リポジトリ内に含まれるインストールスクリプトを実行することでインストールできます。

操作端末はWindowsとなるため、PowerShellで実行していきますが、インストールスクリプトはWindowsのデフォルトだと実行できないため、管理者権限でPowerShellを起動して、以下コマンドを実行しておきます。

スクリプト実行の許可
Set-ExecutionPolicy RemoteSigned

git cloneコマンドでGitHubからgit-secretsをダウンロードして、中にある「install.ps1」を実行します。

尚、git-secretsはユーザのホームディレクトリとなる「C:\Users\[ユーザ名]」の配下にダウンロードするものとします。

git-secretsのインストール
git clone https://github.com/awslabs/git-secrets.git
cd ./git-secrets
./install.ps1

git-secretsのセットアップ

以下の手順を実行し、git-secretsのセットアップを行います。

  1. AWS用検査パターンの追加
  2. Gitフック用テンプレート作成
  3. テンプレートディレクトリ設定

git-secretsは上述の通り、Gitのフック機能を使用してコミット時にチェックする仕組みとなるため、言い換えると上記セットアップはGitフックを使用するための設定を追加していることとなります。

もう少し詳細に見ていくと下記のようなことが行われております。

  • 上記1
    Gitインストールを行った端末のホームディレクトリに存在する.gitconfigファイルに、コミット時に参照される検査パターンを追加。

  • 上記2
    所定のディレクトリ配下(今回はユーザのホームディレクトリ配下)にフック用テンプレートを作成。

  • 上記3
    .gitconfigにテンプレート用ディレクトリを追加。

AWS用検査パターンの追加

.gitconfigに検査パターンを追加するため、以下コマンドを実行します。

検査パターンの追加
git secrets --register-aws --global

以下コマンドでsecrets.providerssecrets.patternsの内容が表示されればOKです。

登録確認
git config --global --list

Gitフック用テンプレート作成

所定のディレクトリ配下にGitフック用テンプレートをインストールします。

今回はユーザのホームディレクトリ配下となる「C:\Users\UserName\.git-templates\git-secrets」に各種フック用ファイルをインストールします。

Gitフック用テンプレートのインストール
git secrets --install $env:userprofile/.git-templates/git-secrets

テンプレートディレクトリ設定

ユーザが作成したフック用テンプレートを指定する際に使用されるinit.templatedir変数に、先ほどフック用ファイルをインストールした場所を指定します。

Gitフック用テンプレートディレクトリ指定
git config --global init.templatedir $env:userprofile/.git-templates/git-secrets

git-secretsの動作確認

git-secretsの動作を確認するため、適当な場所にテスト用Gitリポジトリを作成し、AWSクレデンシャル情報があった場合コミットできないかを確認します。

以下はユーザのホームディレクトリにterraformディレクトリを作成してローカルリポジトリを作成&コミットを行ってみます。

AWSのクレデンシャル情報はAWS CLIセットアップ時に作成されているクレデンシャル情報を持ってきて実行することとします。

git-secretsの動作確認
mkdir terraform
cd terraform
git init
cp $env:userprofile/.aws/credentials ./
git add .
git commit -m "test commit"

コミット実行時、以下のようにエラーメッセージが表示されれば成功です。

コミット実行時のエラーメッセージ例
credentials:2:aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
credentials:3:aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

[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リポジトリへのgit-secretsインストール

上記「git-secretsの動作確認」と同様、新たにgit initコマンドでリポジトリを作成する場合は、リポジトリ作成時に各リポジトリ内に作成される.git/hooksinit.templatedirで設定したテンプレートが読み込まれるため、いちいちgit-secretsの設定を行う必要はありませんが、既存のGitリポジトリには今回作成したフック用テンプレートが設定されていないため、別途設定する必要があります。

既存Gitリポジトリへインストールを行うためには以下コマンドを実行します。

尚、複数Gitリポジトリが存在する場合は、それぞれのリポジトリ配下で実行する必要があります。

既存Gitリポジトリへのgit-secretsインストール
cd [既存Gitリポジトリ]
git secrets --install
git secrets --register-aws

設定し終わったら先ほどと同様git-secretsの動作確認を行い、先ほどと同様のエラーが表示されれば完了です。

既存Gitリポジトリでのgit-secretsの動作確認
cd [既存Gitリポジトリ]
cp $env:userprofile/.aws/credentials ./
git add .
git commit -m "test commit"

VS Codeのインストールとセットアップ

開発用としてVisual Studio Code(以下VS Code)をインストールして、追加で拡張機能などの設定を行います。

  1. VS Codeのインストール
  2. 拡張機能のインストール
  3. VS Codeのデフォルトターミナル変更

VS Codeのインストール

以下よりWindows用VS Codeをダウンロードし、インストールします。

インストール自体はインストーラを実行するだけなので割愛。

拡張機能のインストール

インストールしたVS Codeを起動し、画面左の拡張機能から以下を検索してインストールします。

  • Japanese Language Pack for Visual Studio Code
  • HashiCorp Terraform

これも検索して「インストール」をクリックするだけなので割愛。

VS Codeのデフォルトターミナル変更

WindowsTerraformを使用する場合、Git Bashによる使用が推奨されているそうなので、VS CodeのデフォルトのターミナルをGit Bashに変更します。

最初にVS Codeを起動して、「ファイル」→「ユーザー設定」→「設定」を開き、「設定の検索」で以下を入力して検索します。

【検索文字列】
terminal integrated default profile windows

表示された設定のプルダウンメニューを確認すると、以下のように「Git Bash」が選択できると思うので、「Git Bash」を選択します。

001.jpg

変更後、「ターミナル」→「新しいターミナル」を開き、以下のようにGit Basahのプロンプトが表示されれば完了です。

002.jpg

おわりに

今回はTerraformの開発環境を整えるところまで実施しました。

次回はVS Codeで実際にTerraformのコードを作成して実行するところまで進めようと思います。

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