使い方
- main.tf
.tf を貼る(複数可)
- ブロックと指摘行番号つき
構成の一覧と指摘
- main.tf(整形後)字下げと = を揃える
整形して保存
.tf を貼り付けるか、ファイルをドロップします(複数可。「ファイルを選択」でも可)。「サンプルで試す」でも動作を確認できます。
「構成」で、ブロックの一覧と、変数(型・既定値・sensitive)、モジュールの source と version、プロバイダの version を確かめます。
「指摘」で重要度つきの一覧を見ます。ファイル名と行番号が付き、秘密らしい値そのものは表示しません。変数が別のファイルにあるときは、そのファイルも入れてください。
「整形」で字下げと = の位置を揃えた .tf をコピー・保存できます。構文エラーがあるときは整形しません。
できること
自前の HCL 解析
文字列の ${ } の補間、<<EOT と <<-EOT のヒアドキュメント、# と // と /* */ のコメント、リスト、オブジェクトを読みます。解析できない箇所は、行番号つきで示します。
根拠のある指摘だけ
秘密らしい名前の属性への文字列の直書き、sensitive のない秘密らしい変数、バージョン未固定、aws_security_group などの 0.0.0.0/0 からの 22・3389、S3 の public-read 系 ACL、未定義の参照、重複を確かめます。
秘密の値は画面に出さない
指摘には属性の名前だけを出し、直書きされた値は出しません。変数の表の既定値も、秘密らしい名前の変数では伏せます。「整形」の結果は .tf をそのまま整えるので、値も含まれます。
terraform fmt に近い整形
字下げを 2 空白に揃え、連続した 1 行の属性の = を揃えます。ヒアドキュメントの中は変えません。terraform fmt と完全に同じではありません。
複数ファイルをまとめて確認
main.tf と variables.tf など、複数のファイルをまとめて読みます。変数・ローカル値・モジュールの定義をファイルの間で突き合わせます。
こんなときに
- password や access_key などの秘密を .tf に直接書いていないか、コミットの前に確かめたい
- セキュリティグループが 0.0.0.0/0 から SSH・RDP を許していないか確かめたい
- provider と module のバージョンが固定されているか、一覧で確かめたい
- terraform を動かせない環境で、HCL の構文エラーの行を見つけたい
対応状況
| 機能 | 対応 | 補足 |
|---|---|---|
| .tf(HCL)の読み取り・ブロックの一覧(複数ファイル) | 対応 | — |
| 秘密の直書き・sensitive・バージョン未固定の確認 | 一部対応 | 名前と形で判定する項目だけです。見つからなくても安全とは言えません |
| aws_security_group などの 0.0.0.0/0 からの SSH・RDP、S3 の ACL | 一部対応 | AWS の一部のリソースだけです。変数で指定したポートは判定しません |
| 未定義の var.・local.・module. の参照と、重複した定義 | 対応 | — |
| 字下げと = の位置の整形 | 一部対応 | terraform fmt と完全に同じ結果にはなりません |
| plan・apply・state ファイルの読み込み | 非対応 | 実行も state の読み込みもしません |
| provider のスキーマ(属性名・型)の検証 | 非対応 | 属性名の誤字や型の誤りは指摘しません |
| .tf.json(JSON 形式)・.tfvars の検証 | 非対応 | .tf と同じ書き方のテキストだけを読みます |
制限・注意事項
- 入力は合計 400,000 文字まで、30 ファイルまで、1 ファイル 300 KB までです。超えた分は読み止めて通知します。
- provider のスキーマを持たないので、属性名の誤字・必須の属性の不足・値の型の誤りは指摘しません。
- 指摘は書かれた文字列と名前から判定します。変数や関数で組み立てた値、別のモジュールの中は追いません。
- 未定義の参照は、貼った範囲の中だけで探します。構文エラーがあるときは確認しません。
プライバシーと安全性
貼り付けた .tf やドロップしたファイルはお使いの端末の中だけで処理され、サーバーへ送信・保存されることはありません。ブラウザに保存もしません。使用状況の記録にも内容やファイル名は含めません。
よくある質問
terraform fmt と同じ結果になりますか?
0.0.0.0/0 から SSH を許すと何が問題ですか?
sensitive = true にすれば秘密は安全ですか?
provider のバージョンはどう固定しますか?
未定義の参照が出るのに、実際は定義してあります。
関連ツール
Kubernetes マニフェスト スタジオ(Kubernetes Studio)
Deployment・Service などの YAML を貼ると、リソースの一覧と Service がどの Deployment の Pod に当たるかを表示し、廃止された apiVersion、latest タグ、requests・limits の不足、privileged などの設定を行番号つきで指摘します。スキーマの完全な検証はしません。クラスタへ適用する前の目視確認の補助です。
GitHub Actions ワークフロー確認(GitHub Actions Studio)
ワークフローの YAML を貼ると、on(トリガー)、needs の依存の順に並んだジョブ、各手順の uses と run を表示します。利用者が書ける値を run に直接展開した箇所(スクリプト注入)、タグ・ブランチで指定された action、permissions の無いジョブなどを行番号つきで指摘します。完全なスキーマの検証や実行はしません。
.env スタジオ(.env Studio)
.env を貼る・ドロップすると、キーと値を表で確認でき、重複・空の値・書式の誤りを行番号つきで指摘します。値は既定で伏せ、.env と .env.example を比べたり、.env.example・Kubernetes の Secret に書き出したりできます。.env の書き方(dotenv 形式)を確かめたいときに使い、docker compose の変数展開などツール固有の細かい仕様までは判定しません。
lockfile 比較・依存関係ツリー
2 つの lockfile を比べて、どのパッケージが追加・削除・更新されたかを表示します。あるパッケージがなぜ入っているか(入ってくる経路)と、同じパッケージの複数バージョンも分かります。ファイルはブラウザの外へ出ません。
Docker Compose Studio
docker run のコマンドを compose.yaml に、compose.yaml を docker run に変換します。compose.yaml は構文・Compose Specification・よくある誤りを調べ、セキュリティ上の確認点も一覧にします。コンテナの起動やイメージの取得はせず、入力は端末の外へ送りません。
Dockerfile Studio
Dockerfile を貼り付けると、構文・ステージ・よくある誤りを調べ、秘密らしい値や curl | sh などの確認したい点を一覧にします。整形と、Node.js・Python・Go・静的サイト・Java の雛形の生成もできます。ビルドはせず、入力は端末の外へ送りません。
最終更新: