以下の内容はhttps://dk521123.hatenablog.com/entry/2025/09/26/143659より取得しました。


【Terraform】Terraform ~ terraform linter ~

◾️はじめに

https://dk521123.hatenablog.com/entry/2025/09/25/213557

で、terraform validate を知れる機会ができたが
それ以外のもツールがあるっぽいので、メモ。

目次

【0】Terraform linter一覧
【1】terraform validate
【2】tflint(Terraform Linter)
【3】checkov(セキュリティスキャナ)

【0】Terraform linter一覧

ツール 目的 チェック範囲 ベストプラクティス セキュリティ
terraform validate 基本構文検証 HCL構文・依存関係 × ×
tflint コード品質向上 HCL構文 + プロバイダー依存
checkov セキュリティ検査 リソースの設定値まで検証

【1】terraform validate

* Terraform公式の 基本バリデーションツール
 => Terraformの構文チェックと基本的な論理チェックを行う
 => リソースの存在や構文ミスを検出

https://developer.hashicorp.com/terraform/cli/commands/validate

1)チェック例

* HCL構文の正当性
* 参照関係の整合性(例: 未定義の変数を使っていないか)

2)例

terraform validate

【2】tflint(Terraform Linter)

*Terraform用の拡張可能なLintツール
 => 構文チェック以上に、ベストプラクティスやプロバイダー依存の警告が可能

1)インストール

https://github.com/terraform-linters/tflint?tab=readme-ov-file#installation

# Linux
curl -s https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | bash

# Mac
brew install tflint

2)設定例

.tflint.hcl

plugin "aws" {
  enabled = true
  region  = "us-west-2"
}

3)特徴

* AWS/GCP/Azureなどプロバイダー向けのプラグイン対応
* 無駄な変数・冗長な記述・非推奨な属性の警告なども対応
* .tflint.hcl にルール定義が可能(ルールのON/OFF、カスタムルールも)

4)チェック例

* aws_instance に不要な属性が指定されていないか
* count の使い方が正しいか
* terraform fmt では補足できないフォーマット警告

【3】checkov(セキュリティスキャナ)

* セキュリティとコンプライアンスに特化した IaC用スキャナ。
* Open Policy Agent(OPA)ライクなポリシールールを持っている
* Terraform/CloudFormation/Kubernetesなどにも対応。

https://www.checkov.io/1.Welcome/What%20is%20Checkov.html

1)特徴

* デフォルトで大量のセキュリティルールが組み込まれている
* 公開設定、暗号化、タグ付け、IAMポリシーの安全性などを自動チェック
* CI/CDに組み込みやすい(JSON/HTMLなどでレポート出力可)

2)インストール

pip install checkov

https://www.checkov.io/2.Basics/Installing%20Checkov.html

3)チェック例

* S3バケットが公開されていないか
* RDSに暗号化が有効か
* IAMに *:* 権限が含まれていないか
* ログが有効になっているか

4)使い方

checkov -d .

関連記事

Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/09/222057
Terraform ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/05/03/000000
Terraform ~ terraformコマンド ~
https://dk521123.hatenablog.com/entry/2025/09/25/213557
Terraform ~ Module ~
https://dk521123.hatenablog.com/entry/2023/05/19/113544
Terraform ~ AWS Glue ~
https://dk521123.hatenablog.com/entry/2023/04/08/220411




以上の内容はhttps://dk521123.hatenablog.com/entry/2025/09/26/143659より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14