Хуки

Хук infra: обнаружение ошибок конфигурации IaC

Проверьте Terraform, Dockerfile и GitHub Actions на ошибки конфигурации или оцените отдельный фрагмент из командной строки.

Хук infra помечает ошибки конфигурации инфраструктуры как кода, которые можно определить по самому файлу: сеть, открытую всему миру, разрешение с подстановочным знаком, секрет в манифесте, контейнер, работающий от root, недоверенное значение в оболочке CI. Он читает только файлы IaC (.tf/.tf.json/.hcl, Dockerfile*, .github/workflows/**). Это детерминированный движок, стоящий за специализацией infra, в режиме scan или check.

Запуск​

npx lagune read infra # scans every IaC file
npx lagune read infra --dir infra # scans a directory
npx lagune read infra --file Dockerfile # scans a single file

Сканирование выводит до двух разделов. Infrastructure risks found дает ненулевой код выхода и содержит дефекты, которые можно определить однозначно (входящий трафик 0.0.0.0/0 на чувствительный порт, инструкцию IAM с подстановочным знаком, секрет в манифесте, encrypted = false, незакрепленный git-модуль, образ, который явно запускается от root, curl | sh, внедрение в скрипт CI, permissions: write-all). Infrastructure hardening advisories не меняет код выхода (изменяемый тег базового образа, action, закрепленный по тегу). Если ничего не найдено, выводится no infrastructure risks found.

Как читать вердикт​

Режим проверки выводит совпавший тег с наивысшей критичностью (например, public-ingress, iam-wildcard, root-user, curl-pipe, script-injection, write-all), рекомендательный тег (mutable-tag, unpinned-action) или safe. Ненулевой код выхода дает только тег уровня находки.

Параметры CLI​

ПараметрЗначениеОписание
--patternфрагментПроверяет один фрагмент. Требует --kind. Повторите для нескольких.
--kindterraform | dockerfile | github-actionsТип, по которому оценивается фрагмент.
--dirдиректорияОграничивает сканирование директорией. Можно повторять и сочетать с --file.
--fileфайлОграничивает сканирование одним файлом. Можно повторять и сочетать с --dir.

Без параметров хук сканирует каждый файл IaC в проекте. --pattern не сочетается с --dir или --file.

подсказка

Хук ловит грубые, однозначно определяемые случаи: отсутствие шифрования, открытость через pull_request_target и правильный охват IAM остаются вопросами суждения, которые по-прежнему охватывает специализация infra.

Частые вопросы

Terraform и HCL (.tf, .tf.json, .hcl), Dockerfile, а также YAML рабочих процессов и actions GitHub Actions в .github/. Он добирается до этих файлов, хотя сканеры исходного кода их пропускают.