Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2025-09-25 SRETT #13 ConftestによるTerraformのPolic...

Avatar for SUZUKI Masashi SUZUKI Masashi
September 25, 2025

2025-09-25 SRETT #13 ConftestによるTerraformのPolicy as Codeを試してみる

[3-shake SRE Tech Talk #13 オンサイト - connpass](https://3-shake.connpass.com/event/362683/)
でLTした内容。

Conftestを軽く試してみた内容。もう少し深堀りして、再度発表したいところ。

Avatar for SUZUKI Masashi

SUZUKI Masashi

September 25, 2025
Tweet

More Decks by SUZUKI Masashi

Other Decks in Technology

Transcript

  1. Copyright © 3-shake, Inc. All Rights Reserved. おまえだれよ 2 •

    すずきまさし/masasuzu/@masasuz • 株式会社スリーシェイクSreake事業部所属 • クラウドインフラなんでも屋さんをしてます ◦ お客様の外部から ▪ 設計、運用、構築等の技術支援を行います。 ◦ お客様の内部から ▪ インフラチームの一員として内製化支援も行います。 • 得意領域 ◦ AWS ▪ AWS Community Builder Cloud Operation Since 2024 ▪ 2025 Japan All AWS Certifications Engineers ◦ Google Cloud ◦ Terraform
  2. ある程度規模が大きくなると Terraformの規約を効かせるのが難しくなる。 そのために、以下の方法を検討したが、うまくいかない。 • レビューを徹底 ◦ 人間なのでどうしても限界がある • AWS Config

    修復アクション ◦ 事後なのでTerraformとの差分が出る ◦ 作る前にチェックしたい ◦ Google Cloudで使えない GitHub ActionsなどのCI上で動くうまいポリシーチェックのソリューションがないか。 Copyright © 3-shake, Inc. All Rights Reserved. 最近の悩み 3
  3. • trivy config (tfsec) ◦ セキュリティに限らずポリシーもチェックしたい • tflint ◦ 静的解析なので限界がある

    • Sentinel ◦ HCP Terraform前提 Copyright © 3-shake, Inc. All Rights Reserved. ツール検討 4
  4. Policy as Codeとは、セキュリティ、コンプライアンス、運用などに関するポリシー (ルール)を、人間が読むため だけの文書ではなく、コードとして定義・管理・実行するアプローチです。これにより、 ITインフラやアプリケーショ ンのライフサイクル全体で、ポリシー準拠を自動的に検証・強制することが可能になります。 以下のようなメリットがあります • 自動化とフィードバック

    ◦ CI/CDパイプラインに組み込むことで早期に開発者にフィードバック • 一貫性と再現性 ◦ ポリシーがコードとして表現されるので環境全体で一貫したポリシーを実現 • 可視性と透明性 ◦ ポリシーをレポジトリ管理することで変更履歴が残る Copyright © 3-shake, Inc. All Rights Reserved. Policy as Code(PaC) 6
  5. opa evalでも同じようなことができますが、 ポリシーに準拠しているかどうかをチェックするには conftestの方が向いてそう Copyright © 3-shake, Inc. All Rights

    Reserved. opa eval VS conftest test 7 opa eval conftest test 入力形式 JSON YAML, JSON, Dockerfile, HCL 出力結果 評価結果 テスト結果 出力形式 JSON プログラムが読むことを意図 TAP, JSON, JUnit, Table 人間が読みやすい形式が選択可能
  6. Copyright © 3-shake, Inc. All Rights Reserved. 実装例 policy.rego 9

    インスタンス名が命名規則に そってるかどうかをチェックす る