Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете, как установить, включить и настроить непрерывное исправление. Непрерывное исправление, при включении функции в реестре контейнеров, автоматически обнаруживает и исправляет уязвимости уровня операционной системы для образов контейнеров.
Предпосылки
- Azure Cloud Shell или локальную установку Azure CLI можно использовать с минимальной версией 2.15.0 или более поздней.
- У вас есть группа ресурсов с реестром контейнеров Azure (ACR).
- У вас есть реестр контейнеров Azure с включенными задачами ACR (задачи ACR не поддерживаются на бесплатном уровне ACR).
Установка рабочего процесса непрерывного патчинга
Выполните следующую команду, чтобы установить расширение CLI:
az extension add -n acrcssc
Включение рабочего процесса непрерывного исправления
- Войдите в Azure CLI с помощью az login.
az login
- Войдите в ACR.
az acr login -n <myRegistry>
- Выполните следующую команду, чтобы создать файл с именем
continuouspatching.json, содержащий JSON непрерывного исправления. Имя ФАЙЛА JSON является гибким.
cat <<EOF > continuouspatching.json
{
"version": "v1",
"tag-convention" : "<incremental|floating>",
"repositories": [{
"repository": "<Repository Name>",
"tags": ["<comma-separated-tags>"],
"enabled": <true|false>
}]
}
EOF
Схема обрабатывает определенные репозитории и теги в формате массива. Каждая переменная определена здесь:
versionпозволяет команде ACR отслеживать, на какой версии схемы вы находитесь. Не изменяйте эту переменную, если не указано.tag-conventionявляется необязательным полем. Допустимые значения — "инкрементный" или "плавающий". Дополнительную информацию можно найти в разделе Основные понятия непрерывного исправления.repositories— это массив, состоящий из подробных сведений о репозитории и тегах-
repositoryссылается на имя репозитория -
tags— это массив тегов, разделенных запятыми. Подстановочный знак*можно использовать для обозначения всех тегов в этом репозитории. -
enabled— логическое значение true или false, определяющее, включен ли указанный репозиторий.
-
Ниже приведен пример конфигурации для клиента, который хочет исправить все теги (используя символ *) в репозитории python, а также конкретно исправить теги jammy-20240111 и jammy-20240125 в репозитории ubuntu.
Пример JSON
{
"version": "v1",
"tag-convention" : "incremental",
"repositories": [{
"repository": "python",
"tags": ["*"],
"enabled": true
},
{
"repository": "ubuntu",
"tags": ["jammy-20240111", "jammy-20240125"],
"enabled": true,
}]
}
- После создания файла конфигурации рекомендуется сначала выполнить пробный запуск, чтобы убедиться, что выбранные объекты соответствуют условиям JSON. Для проверочного запуска требуется параметр, называемый
schedule, который определяет частоту выполнения непрерывного процесса исправления. Флаг расписания измеряется в днях с минимальным значением одного дня и максимальным значением 30 дней. Например, если вы хотите, чтобы изображение было исправлено ежедневно, можно указать расписание как1dили 1 день. Если вы хотите еженедельное исправление (один раз в неделю), вы заполните расписание как7dили 7 дней.
Схема команд:
az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilepath> --schedule <number of days> --dry-run
Пример команды:
az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --dry-run
Флаг --dry-run обеспечивает вывод всех артефактов, указанных в конфигурации JSON-файла. Клиенты могут убедиться, что выбраны правильные артефакты. В примере конфигурации ubuntu следующие результаты должны отображаться в виде выходных данных.
Ubuntu: jammy-20240111
Ubuntu: jammy-20240125
Команда помощи для отображения всех обязательных или необязательных флагов:
az acr supply-chain workflow create --help
- После того как вы удовлетворены результатами пробного запуска, выполните команду
createеще раз без флага--dry-run, чтобы официально создать процесс непрерывного исправления.
Замечание
Параметр --schedule использует множитель, основанный на фиксированном дне, начиная с первого дня месяца. Это означает:
- Если вы укажете
--schedule 7dи выполните команду 3-го числа, следующий запланированный запуск будет выполнен 7-го, так как 7 является первым кратным 7 (дней) после 3-го, начиная с 1-го числа месяца. - Если
--scheduleявляется 3d, и сегодня 7 число, то следующий запланированный запуск будет 9-го, так как 9 — это следующее кратное 3, которое следует за 7. - При добавлении флага
--run-immediatelyвы активируете немедленный запуск исправления. Последующий запланированный запуск по-прежнему будет выравниваться с ближайшему дню, кратному первому числу месяца, на основании вашего значения--schedule. - Счетчик расписания сбрасывается каждый месяц. Независимо от указанного расписания рабочий процесс будет выполняться в первом из каждого месяца, а затем следуйте указанному значению расписания в течение оставшегося месяца. Если мои исправления выполняются 28 января, и мое расписание составляет 7 дней, следующее исправление будет выполняться первого февраля, затем восьмого, и продолжит каждые 7 дней.
Схема команд:
az acr supply-chain workflow create -r <registryname> -g <resourcegroupname> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days> --run-immediately
Пример команды:
az acr supply-chain workflow create -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d --run-immediately
После успешной команды (независимо от того, включаете ли вы --run-immediately или нет), вы увидите следующее:
Сообщение об успехе, подтверждающее, что задачи вашего рабочего процесса поставлены в очередь.
Выходной параметр, указывающий, когда планируется следующий запуск рабочего процесса, чтобы вы могли точно отслеживать, когда снова произойдет установка исправлений.
Команда помощи для обязательных и необязательных флагов.
az acr supply-chain workflow create --help
Использование портала Azure для просмотра задач рабочего процесса
После успешного выполнения рабочего процесса перейдите на портал Azure, чтобы просмотреть выполняемые задачи. В меню службы в разделе "Службы" выберите **Репозитории. Вы увидите новый репозиторий с именем
csscpolicies/patchpolicy. Этот репозиторий размещает артефакт конфигурации JSON, который непрерывно используется для постоянного обновления.Затем в разделе "Службы" выберите "Задачи". Вы увидите три новых задачи:
Задачи:
- cssc-trigger-workflow — эта задача сканирует файл конфигурации и вызывает задачу сканирования на каждом соответствующем изображении.
- cssc-scan-image — эта задача сканирует образ для уязвимостей операционной системы. Эта задача активирует задачу исправления, только если обнаружены уязвимости операционной системы.
- cssc-patch-image — эта задача исправляет изображение. Эти задачи работают совместно с выполнением рабочего процесса непрерывного исправления.
- Вы также можете выбрать "Запуски" в представлении "Задачи" для просмотра конкретных запусков задач. Здесь вы можете увидеть информацию о том, была ли задача выполнена успешно или неудачно, а также просмотреть журнал отладки.
Использование интерфейса командной строки для просмотра задач рабочего процесса
Вы также можете запустить следующую команду CLI, чтобы просмотреть дополнительные сведения о каждой задаче и общем рабочем процессе. Выходные данные команды:
- Расписание
- Дата создания
- Системные данные, такие как дата последнего изменения, кто и т. д.
Схема команд:
az acr supply-chain workflow show -r <registry> -g <resourceGroup> -t continuouspatchv1
Пример команды:
az acr supply-chain workflow show -r myRegistry -g myResourceGroup -t continuouspatchv1
Команда помощи для всех обязательных и необязательных параметров:
az acr supply-chain workflow show --help
Обновление рабочего процесса непрерывного патчинга
В сценариях, в которых требуется внести изменения в рабочий процесс непрерывного исправления, команда обновления — самый простой способ сделать это. Вы можете напрямую обновить расписание или схему конфигурации JSON с помощью команды CLI обновления.
Схема команд:
az acr supply-chain workflow update -r <registry> -g <resourceGroup> -t continuouspatchv1 --config <JSONfilename> --schedule <number of days>
Пример команды:
az acr supply-chain workflow update -r myRegistry -g myResourceGroup -t continuouspatchv1 --config ./continuouspatching.json --schedule 1d
Команда помощи для всех обязательных и необязательных параметров:
az acr supply-chain workflow update --help
Чтобы обновить расписание, выполните предыдущую команду с новыми входными данными для расписания. Чтобы обновить конфигурацию JSON, рекомендуется внести изменения в файл, выполнить сухой запуск и выполнить команду обновления.
Удаление процесса непрерывного обновления
Чтобы удалить рабочий процесс непрерывного исправления, выполните следующую команду CLI.
Схема команд:
az acr supply-chain workflow delete -r <registry> -g <resourceGroup> -t continuouspatchv1
Пример команды:
az acr supply-chain workflow delete -r myregistry -g myresourcegroup -t continuouspatchv1
Команда помощи для всех обязательных и необязательных параметров:
az acr supply-chain workflow delete --help
После успешного удаления рабочего процесса репозиторий "csscpolicies/patchpolicy" будет автоматически удален. Три задачи, запускающие рабочий процесс, также будут удалены вместе с любыми текущими запланированными запусками.