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.

【環境構築】terraform導入

Last updated at Posted at 2021-05-09

【環境】

ProductName:	macOS
ProductVersion:	11.3

brewから(tfenvインストール)

$ brew install tfenv

version確認

$ tfenv --version
tfenv 2.1.0

インストール可能なバージョンを確認

$ tfenv list-remote

0.15.3
 ・
 ・
 ・
0.1.0

複数のTerraformバージョンインストール

$ tfenv install 0.15.3
$ tfenv install 0.15.2
# tfenv 0.15.3 インストール

~$ tfenv install 0.15.3
Installing Terraform v0.15.3
Downloading release tarball from https://releases.hashicorp.com/terraform/0.15.3/terraform_0.15.3_darwin_amd64.zip
######################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.15.3/terraform_0.15.3_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
Archive:  tfenv_download.SuqcbJ/terraform_0.15.3_darwin_amd64.zip
  inflating: /usr/local/Cellar/tfenv/2.1.0/versions/0.15.3/terraform
Installation of terraform v0.15.3 successful. To make this your default version, run 'tfenv use 0.15.3'

## tfenv 0.15.2 インストール

$ tfenv install 0.15.2
Installing Terraform v0.15.2
Downloading release tarball from https://releases.hashicorp.com/terraform/0.15.2/terraform_0.15.2_darwin_amd64.zip
######################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.15.2/terraform_0.15.2_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
Archive:  tfenv_download.vGB3t7/terraform_0.15.2_darwin_amd64.zip
  inflating: /usr/local/Cellar/tfenv/2.1.0/versions/0.15.2/terraform
Installation of terraform v0.15.2 successful. To make this your default version, run 'tfenv use 0.15.2'

このままだと、最後にインストールした0.15.2が選択されてしまう
0.15.3を使用したいので、バージョンを切り替る

% tfenv use 0.15.3
Switching default version to v0.15.3
Switching completed
$ tfenv list
* 0.15.3 (set by /usr/local/Cellar/tfenv/2.1.0/version)
  0.15.2

git-secrets設定

gitをインストール

$ git init

全リポジトリにAWS認証情報のパターンを設定する

$ git secrets --register-aws --global

git-secrets設定

全リポジトリにAWS認証情報のパターンを設定します。

$ git secrets --register-aws --global

設定ファイルの内容を確認する

% cat ~/.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
aws_access_key_id = "AKIAIOSFODNN7EXAMPLE"
|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

allowedはAWS公式ドキュメントのAWSアクセスキーを管理するためのベストプラクティスに記載されている、サンプルキー

動作確認

  • AWS認証情報が記載されていた場合に、Gitのコミットを防ぐことができるのかを確認
  • まずはテスト用のディレクトリを作成し、移動する
$ mkdir aws-secrets-test
$ cd aws-secrets-test
  • テスト用のAWS認証情報は~/.gitconfigのallowedのサンプルキーを参考にする
  • 数字の部分を7から8に変更してmain.tfを作成する
% echo "aws_access_key_id = \"AKIAIOSFODNN8EXAMPLE\"\naws_secret_access_key = \"wJalrXUtnFEMI/K8MDENG/bPxRfiCYEXAMPLEKEY\"" > main.tf

main.tfをコミット対象にします。

$ git add main.tf

Gitにコミットしてエラーになることを確認する

$ git commit -m "secrets test"
main.tf:1:aws_access_key_id = "AKIAIOSFODNN8EXAMPLE"
main.tf:2:aws_secret_access_key = "wJalrXUtnFEMI/K8MDENG/bPxRfiCYEXAMPLEKEY"

[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

まとめ

以上、Terraform環境導入でした

参考資料(いつもありがとうございます!)

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?