Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка безопасности DAG в Airflow

Проверьте DAG Apache Airflow и airflow.cfg перед развёртыванием: учётные данные в коде DAG, dag_run.conf в bash и SQL, открытые конфигурацию и API, секреты в airflow.cfg, удалённые возможности Airflow 3, catchup, тайм-ауты и вызовы на верхнем уровне.

$5.00

Что вы получите: 1 файл · 36.88 KB · ZIP

Варианты покупки

Описание товара

bash_command="./export.sh --region {{ dag_run.conf['region'] }}" позволяет любому, кто может запустить DAG с конфигурацией, выполнять свои команды на ваших рабочих узлах, поскольку Airflow не экранирует команду после подстановки шаблона. expose_config = True показывает fernet_key и пароль базы данных на странице конфигурации. Этот навык находит эти и ещё десять ошибок Airflow до развёртывания и объясняет, как исправить каждую.

Ваш агент запускает сканер для проекта Airflow: файлов DAG и плагинов (каждого файла .py с импортом airflow), webserver_config.py и airflow.cfg. Он разбирает Python стандартным модулем ast, поэтому не принимает комментарии и строки за код, и читает airflow.cfg по разделам, как сам Airflow. Он понимает Airflow 2.x и 3.x (airflow.sdk), DAG(...) и @dag, default_args, ограничения Param, шаблоны Jinja и безопасный подход с env= из документации Airflow, а также читает заданные в проекте значения по умолчанию для повторных попыток, тайм-аутов и catchup из airflow.cfg. Сканер никогда не импортирует и не запускает DAG. Результат: БЛОКИРОВКА, ПРОВЕРКА или НЕ ОТМЕЧЕНО с указанием файла, строки, причины и более безопасного подхода. Секретные данные никогда не выводятся.

Что проверяется

БЛОКИРОВКА (исправить до выпуска)

  • A01: пароли, токены и ключи в коде DAG (password=, значения env=, JSON extra=, URI подключения с паролем, известные форматы токенов) или внутри команд (PGPASSWORD=..., export API_TOKEN=..., --password=..., curl -u user:password, URL с паролем)

  • A02: dag_run.conf, подставляемый шаблоном в bash_command, @task.bash, команды SSH, Docker и подов Kubernetes либо текст SQL

  • A03: expose_config = True (в [webserver] для 2.x и [api] для 3.x), бэкенд API, пропускающий все запросы, AUTH_ROLE_PUBLIC и режим all-admins в Airflow 3

  • A04: fernet_key, secret_key, jwt_secret, пароли и URL базы данных с паролем, записанные в airflow.cfg

ПРОВЕРКА (проверить до выпуска)

  • A11: start_date, вычисляемый при разборе (datetime.now(), days_ago())

  • A12: schedule_interval, timetable и days_ago, удалённые в Airflow 3

  • A13: DAG Airflow 2 с запуском по расписанию, оставляющие catchup по умолчанию (True в 2.x)

  • A14: DAG с запуском по расписанию без execution_timeout или dagrun_timeout

  • A15: DAG с запуском по расписанию без повторных попыток

  • A16: Variable.get, получение подключений, запросы через хуки, HTTP-вызовы и обращения к базе данных на верхнем уровне файлов DAG

  • A17: load_examples = True и test_connection = Enabled

  • A18: params, подставляемые шаблоном в команды или SQL без enum или числового ограничения (конфигурация запуска может их заменить)

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)

  • Руководство по правилам с обоснованием и более безопасным подходом для каждого правила

  • Примеры проекта с уязвимостями и безопасного проекта (по два DAG, airflow.cfg и webserver_config.py в каждом), а также реальный отчёт сканера для примера с уязвимостями

Ограничения

Сканер читает каждый файл в исходном виде: значения, попадающие в команду через несколько переменных или другие модули, файлы .sh, загружаемые bash_command, переменные среды AIRFLOW__ в файлах Docker Compose, Helm или Kubernetes, а также подключения и переменные из базы данных или хранилища секретов не проверяются. Статус НЕ ОТМЕЧЕНО не даёт гарантий.

Содержимое архива

Один ZIP-архив с 16 файлами: SKILL.md, сканер в scripts/ (5 файлов Python), references/rules.md (все правила с обоснованием и более безопасным подходом), а также examples/ (8 файлов примеров и report.md, реальный результат сканирования примера с уязвимостями).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами Python, которые может запускать ИИ-агент для разработки, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить проект. Скрипты можно запускать и отдельно с Python 3.9 или новее, без установки дополнительных компонентов. Они только читают ваши файлы: не обращаются к сети и ничего никуда не отправляют.

Что вы получите

1 файл · 36.88 KB

  • airflow-dag-safety-check-1.0.0.zipZIP · 36.88 KB

Включено в Getly ProПолучить Pro

ЛицензияКоммерческое использование разрешено
Опубликовано12 нояб. 2026 г.
Размер файла36.88 KB
Формат файлаZIP
Версияv1.0

Теги

airflowdata-engineeringdagssecuritydevopsai agent skill
R
RR HH

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

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 36.88 KB.

Обновления бесплатны?

Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.

Цена

$5.00