Harbor#
Harbor - это реестр, который защищает образы с помощью политик и контроля доступа на основе ролей, сканирует образы на наличие уязвимостей, а также может помечать образы как надежные.
Harbor поддерживает копирование образов между реестрами, позволяет управлять пользователями, обеспечивает контроль доступа, проводит проверку активности, обеспечивает соответствие требованиям, производительность и совместимость, позволяя последовательно и безопасно управлять образами на облачных вычислительных платформах, таких как DropApp и инструментов контейнеризации.
Особенности#
Безопасность#
Особенности Harbor в сфере безопасности:
Анализ безопасности и уязвимостей;
Подписание и проверка содержимого.
Управление#
Особенности Harbor в сфере управления:
Мультитенантность;
Расширяемый API и веб-интерфейс;
Репликации во многих реестрах;
Интеграция идентификационных данных и управление доступом на основе ролей.
Настройка аутентификации Harbor через Dex#
Настройки Dex#
Добавьте в Dex клиента для Harbor, в файле
valuesв разделеhelm chart:config: staticClients:Пример записи:
- id: harbor-client redirectURIs: - https://harbor.dapp.test/c/oidc/callback name: 'Harbor' secret: changeit
Настройка доверия рабочих nodes сертификату Harbor#
Чтобы nodes кластера доверяли сертификату Harbor, на них создан каталог /etc/containers/certs.d/harbor.dapp.test:30003, в котором сохранен сертификат Harbor.
sudo mkdir /etc/containers/certs.d/harbor.dapp.test:30003
sudo nano /etc/containers/certs.d/harbor.dapp.test:30003/ca.crt
-----BEGIN CERTIFICATE-----
<cert>
-----END CERTIFICATE-----
Имя harbor.dapp.test добавлено в файлы /etc/hosts на nodes кластера.
Пример файла /etc/hosts с master node:
[linux-tester@host-172-28-21-52 ~]$ cat /etc/hosts
0.0.0.0 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
0.0.0.0 host-172-28-21-52
0.0.0.0 host-172-28-21-20 dex.example.com chart-example.local harbor.dapp.test
0.0.0.0 harbor.dapp.test
Сертификат нужно прописать в приложения, которые будут подключаться к Harbor.
Сканирование образов на наличие уязвимостей#
Подключение Harbor к сканерам уязвимостей#
Harbor можно подключить к сканерам уязвимостей с помощью встроенной службы опроса Harbor. Эти сканеры можно настроить в пользовательском интерфейсе Harbor в любое время после установки.
Чтобы подключить Harbor к дополнительным сканерам уязвимостей, необходимо установить и настроить экземпляр дополнительного сканера в соответствии с требованиями поставщика сканера. Сканер должен предоставлять API endpoint, чтобы Harbor мог запускать процесс сканирования или получать отчеты. В Harbor можно развернуть несколько различных сканеров и несколько экземпляров сканера одного типа.
Trivy в Harbor#
Одним из сканеров уязвимостей в Harbor является Trivy.
Trivy - это комплексный и универсальный сканер безопасности, обеспечивает статический анализ уязвимостей в образах.
Trivy-adapter интегрирован в Harbor и работает только с образами, находящимися в реестре Harbor.
Сканирование можно запустить вручную для определенного образа или для всех образов в Harbor. Можно настроить политику для автоматического сканирования всех образов с определенными интервалами. Проверка на уязвимости в коаксиальных подписях не поддерживается.
Подробнее в разделе «Trivy».
Подключение к Harbor по протоколу HTTP#
Если при установке Harbor используется протокол HTTP, а не HTTPS, добавьте параметр --insecure-registry в Docker daemon. По умолчанию файл daemon находится по адресу /etc/docker/daemon.json.
Например, добавьте в свой daemon.json файл:
{
"insecure-registries" : ["myregistrydomain.com:5000", "0.0.0.0"]
}
После обновления daemon.json необходимо перезапустить как Docker Engine, так и Harbor.
Перезапустите Docker Engine:
systemctl restart dockerОстановите Harbor:
docker-compose down -vПерезапустите Harbor:
docker-compose up -d
Harbor Scanner Adapter#
Образ dapp-harbor-scanner-trivy содержит службу Harbor Scanner Adapter for Trivy.
Harbor Scanner Adapter for Trivy (Trivy-adapter) - это сервис, который преобразует API-сканирования Harbor в команды Trivy и позволяет Harbor использовать Trivy для предоставления отчетов об уязвимостях образов, хранящихся в реестре Harbor, в рамках функции сканирования уязвимостей.
Harbor Scanner Adapter for Trivy - сканер уязвимостей по умолчанию.