Недавно я написал обзор о работе с Harbor через REST API. На основе этого материала разработан пакет интеграции Harbor и vRealize Orchestrator. В повседневных задачах администрирования используются только несколько основных операций. Этот набор-минимум реализован в виде пакета процессов для оркестратора.
Подготовка REST-операций
Обычная практика подготовки REST-операций в vRO – последовательная регистрация всех используемых операций (или регистрация полного набора операций, подгружая swagger-файл) и создание вызывающих их процессов. Предлагаю другой подход. Чтобы не создавать каждую операцию вручную, разработан процесс, автоматизирующий это. На входе процесс принимает массив параметров для REST-операций, по которым они создаются на REST-хосте или обновляются при изменении параметров в массиве. Пример массива параметров на входе процесса:
restOpsTemplates = [{name:"getProjectList", urlTemplate:"/projects", method:"GET"}, {name:"getProjectById", urlTemplate:"/projects/{project_id}", method:"GET"}, {name:"newProject", urlTemplate:"/projects", method:"POST"}, ... {name:"getCert", urlTemplate:"/systeminfo/getcert", method:"GET"}, {name:"getGroupByDn", urlTemplate:"/usergroups", method:"GET"}]; countOps = restOpsTemplates.length;
И второе, чтобы не указывать вручную ссылки на REST-операции в каждом процессе, имя операции задаётся в атрибуте restOperationName, а сама она ищется на REST-хосте через action getRestOperationByName:
if (restHost) { var restHostOpsIds = restHost.getOperations(); for each (opsId in restHostOpsIds) { var ops = restHost.getOperation(opsId); if (ops.name == restOperationName) { return ops; } } } return null;
В итоге, для подготовки к использованию этого пакета нужно:
- Скачать и установить пакет в vRO;
- Добавить Harbor в оркестратор как REST-хост;
- Выбрать его в конфигурационном элементе PKS/harbor.rest.server;
- Запустить процесс регистрации операций: “Add or update Harbor operations”;
- Настроить параметры отправки почты (конфигурационный элемент Library/Mail/send.email) или заменить процесс отправки писем на свой.
vRO-Harbor package
v1.0.0
Регистрация REST-операций
- “Add or update Harbor operations” – добавление REST-операций для хоста Harbor;
- “Add or update REST operations” – основной процесс управления REST-операциями (пригодится не только для Harbor).
Работа с проектами
- “Get all projects” – получение списка всех проектов;
- “Get project by ID” – получение информации о проекте по его ID;
- “Get project by name” – получение информации о проекте по его имени;
- “New project” – создание нового проекта с заданными параметрами доступности, безопасности и сканирования образов.
Репозитории и теги
- “Get repositoies by project ID” – получение списка репозиториев по ID проекта;
- “Get tags from repository” – получение всех тегов соответствующего хранилища;
- “Get tag by name” – получение информации о теге по имени репозитория и тега.
Пользователи
- “Get project members” – получение информации об участниках проекта;
- “Get user by name” – получение информации о зарегистрированном пользователе Harbor по имени;
- “Get group by DN” – получение информации о группе Harbor по её DN;
- “New project member” – добавление нового участника проекта;
- “New user” – создание/регистрация новой учетной записи пользователя на сервере Harbor.
Сканирование на уязвимости
Сканирование docker-образов на уязвимости выполняет Clair, и в интерфейсе Harbor формируются отчеты по каждому тегу. Но получить общую “картину” по Вашему проекту или по всем проектам на сервере будет очень сложно, нужного функционала пока нет. Для упрощения жизни руководителям проектов и сотрудникам отделов ИБ созданы процессы, формирующие такие сводные отчеты:
- “Get vulnerability details” – получение информации об уязвимостях по заданному имени образа и тегу;
- “Get vulnerability report (project)” – создание сводного отчета об уязвимостях в проекте;
- “Get vulnerability report (server)” – создание сводного отчета об уязвимостях во всех проектах на сервере Harbor;
- Send vulnerability report” – создание отчета по проекту, генерирование и отправка сообщения по электронной почте.
Дополнительные процессы
- “Get root certificate” – получение корневого сертификата Harbor;
- “Send root certificate” – получение корневого сертификата и отправка пользователям по почте.
Разработанных процессов более чем достаточно для большинства задач администрирования реестра Harbor на PKS. Ну а кому мало – пишите ещё и не забывайте делиться результатами.
Файлы к статье
vRO-Harbor-Integration.zip – пакет интеграции;
Harbor.pdf – документация к процессам пакета.