Какие функции, кроме хранения, предоставляет реестр контейнеров Harbor?

«Какие функции, кроме хранения, предоставляет реестр контейнеров Harbor?» — вопрос из категории Docker, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Harbor — это корпоративный реестр контейнеров с открытым исходным кодом, который предлагает целый набор функций для безопасного и эффективного управления жизненным циклом артефактов (не только Docker-образов).

  1. Сканирование уязвимостей (Vulnerability Scanning):

    • Интеграция со сканерами (Clair, Trivy) для автоматического анализа образов на наличие известных CVE (уязвимостей) в базовых слоях и зависимостях.
    • Можно настроить политику, запрещающую развертывание образов с критическими уязвимостями.
  2. Подпись и проверка содержимого (Content Trust & Signing):

    • Интеграция с Notary (или Cosign) для цифровой подписи образов.
    • Гарантирует, что развертывается именно тот образ, который был собран и протестирован, защищая цепочку поставок от подмены (supply chain attacks).
      # Пример подписания образа с помощью Cosign (вне Harbor)
      cosign sign --key cosign.key mycompany/nginx:latest
  3. Репликация (Replication):

    • Автоматическая синхронизация образов и артефактов между несколькими инстансами Harbor (например, между dev- и prod-окружениями, или между разными регионами).
    • Поддерживает push/pull репликацию, фильтрацию по тегам.
  4. Политики хранения и жизненного цикла (Retention & Lifecycle Policies):

    • Immutable Tags: Запрещает перезапись тега (например, latest или v1.0), что критично для воспроизводимости сборок.
    • Автоматическая очистка: Удаление старых образов по правилам (например, "оставлять только 5 последних тегов для репозитория frontend" или "удалять образы старше 90 дней").
  5. Управление артефактами (Artifact Management):

    • Поддержка не только OCI-образов, но и Helm-чартов, образов OPA (Open Policy Agent), что делает Harbor единым центром для всех артефактов Kubernetes.
  6. Роботы-аккаунты и контроль доступа (Robot Accounts & RBAC):

    • Создание служебных аккаунтов (robot accounts) с ограниченными правами для CI/CD-пайплайнов (только push в определенный проект).
    • Детальное управление ролями (Role-Based Access Control) для команд разработки и эксплуатации.
  7. Webhook-уведомления:

    • Отправка событий (push/pull образов, сканирование) во внешние системы: Slack, Teams, или собственные CI/CD-инструменты для запуска следующих этапов пайплайна.

Пример сценария: После успешного прохождения тестов CI-пайплайн пушит образ в Harbor. Срабатывает webhook, который запускает деплой в staging-окружение. Параллельно запускается сканирование на уязвимости. Если сканирование выявляет критическую CVE, образ помечается как небезопасный, что блокирует его продвижение в production.