Рубрики
Uncategorized

Сканировать изображения контейнера в Kubernetes Yaml

Ранее я сканировал изображения Ad-Hoc, используя тривею. Теперь я могу сканировать все в моих гитапсах репо … Теги с Showdev, DevOps, Kubernetes, Docker.

Ранее я сканировал изображения Ad-Hoc, используя тривею. Теперь я могу отсканировать все в моих гитапсах репо.

Предыдущий пост о Trivey это здесь Отказ

Найти изображения для сканирования

Так как я отслеживаю все мои развертывания в Git в Kasuboski/K8S-Gitops Я могу найти все изображения из файлов в этом репо. Для простого случая просто найти его из объектов Kubernetes, я могу использовать команду ниже, которая находит изображения, удаляет цитаты и обеспечивает уникальную. Magic 🧙♂️.

ack --type yaml 'image: (.*)' --output '$1' -h --nobreak | tr -d \"\' | sort -u

Это выводит все после «изображения:». Это работает для ресурсов Kubernetes, и он также поднял некоторые значения в файле значений HELM. Я оказываю проявления, используя kustomize, что может изменить изображения и удалять удаленно. Это означает, что я действительно должен управлять этой командой на представленных проявлениях.

Я рассматривал возможность оказания всего в Git вместо того только на кластере (в аргуциде). Это будет захватывать точный YAML, который был применен и облегчает этот анализ.

Сканирование с тривея

Вы можете использовать Скаргс Чтобы запустить сканирование для каждого изображения. Я сделал это изначально просто трубопроводом к Trivey Image. , но немедленно ударил предел скорости GitHub. Я думал, что тривея повторно использует кэш базы данных, но, похоже, это не происходило. Они позволяют вам пройти Github токен Увеличить предел, но это казалось больше усилий.

Вместо этого я решил использовать режим клиентского сервера Trivey. Это давайте запустим сервер, который выполняет сканирование, и ваш клиент общается с ним.

Чтобы запустить сервер:

trivy server

Затем (в другом терминале) запустите Trivey Client Для каждого изображения:

ack --type yaml 'image: (.*)' --output '$1' -h --nobreak | tr -d \"\' | sort -u | xargs -L1 trivy client --severity HIGH,CRITICAL --ignore-unfixed

Это дает вывод как ниже:

Он не проанализировал изображение, который имел только манифест руки (Я побежал это на своем рабочем столе AMD64)

Следующие шаги 🦶.

Я хотел бы провести это неоднократно, как действие GitHub на самом репо. Может быть легче просто использовать токен GitHub для ограничения скорости в этом случае. Я также хочу проанализировать оказанные проявления.

Я рассматриваю возможность создания собственного реестра, чтобы отразить мои изображения, такие как Гавань Отказ Гавань может запустить периодические кривые сканы сама по себе и сделать доступные результаты. Также есть экспериментальная Trivy-Enforcer Проект, который работает в кластере и может обеспечить обеспечение того, чтобы все изображения, работающие в вашем кластере, безопасны.

Эта комбинация статического анализа и исполнения времени выполнения должна принести его довольно сложно иметь известное плохое изображение.

Оригинал: «https://dev.to/kasuboski/scan-container-images-found-in-files-557k»