[Документация Yandex Cloud](../../../index.md) > [Yandex Cloud Registry](../../index.md) > [Пошаговые инструкции](../index.md) > Управление реестром > Сканирование реестра

# Сканирование реестра Cloud Registry

Сканирование реестров осуществляется с помощью [модуля управления уязвимостями (VM)](../../../security-deck/concepts/vulnerability-management.md). Вы можете настроить сканирование:
* в интерфейсе Yandex Security Deck. Для этого нажмите **Открыть Security Deck** и воспользуйтесь [инструкцией](../../../security-deck/operations/vulnerability-management/enable-vulnerability-management.md).
* в интерфейсе Cloud Registry. Для этого воспользуйтесь данной инструкцией.

{% note info %}

Сканирование можно настроить только для локальных и удаленных Docker-реестров. В удаленных реестрах сканируются только Docker-образы, которые сохранены в кеше Cloud Registry.

{% endnote %}

{% note warning %}

Сканирование реестров тарифицируется. Подробнее в [правилах тарификации Yandex Security Deck](../../../security-deck/pricing.md#prices).

{% endnote %}

## Автоматическое сканирование {#auto}

Вы можете задать настройки, по которым артефакты в реестре будут сканироваться автоматически. Настройка автоматического сканирования также доступна при [создании реестра](create.md).

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. В [консоли управления](https://kz.console.yandex.cloud) выберите [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором находится реестр.
    1. Перейдите в сервис **Cloud Registry**.
    1. На панели слева выберите ![shapes-4](../../../_assets/console-icons/shapes-4.svg) **Реестры**.
    1. Выберите реестр.
    1. Перейдите на вкладку **Сканер**.
    1. Нажмите **Настроить сканер**.
    1. (Опционально) В блоке **Сканирование языковых пакетов** включите опцию **Сканировать языковые пакеты**.
    1. (Опционально) Разверните блок **Сканирование артефактов при добавлении в реестр** и выберите:

        * `Все артефакты`, чтобы сканировать все артефакты при добавлении в реестр.
        * `Только выбранные`, чтобы указать, какие артефакты сканировать при добавлении в реестр. Нажмите **Добавить артефакты**, выберите артефакты и нажмите **Добавить**.

    1. (Опционально) Разверните блок **Периодическое сканирование артефактов** и выберите:

        * `Все артефакты`, чтобы сканировать все артефакты в реестре с заданной периодичностью.
        * `Только выбранные`, чтобы указать, какие артефакты сканировать с заданной периодичностью. Нажмите **Добавить артефакты**, выберите артефакты и нажмите **Добавить**.

        Укажите период сканирования артефактов.

    1. Нажмите **Сохранить**.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`.
    
    Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    1. Посмотрите описание команды CLI для создания политики автоматического сканирования:

        ```bash
        yc cloud-registry registry scan-policy create --help
        ```

    1. Подготовьте JSON-файл с правилами сканирования, например `scan-rules.json`:

        ```json
        {
          "pushRule": {
            "paths": ["*"],
            "disabled": false
          },
          "scheduleRules": [
            {
              "amount": "7",
              "intervalUnit": "DAYS",
              "paths": ["*"],
              "disabled": false
            }
          ]
        }
        ```

        Где:

        * `pushRule` — сканировать артефакты при добавлении в реестр:

            * `paths` — список путей до артефактов, которые нужно сканировать. Укажите `*`, чтобы сканировать все артефакты в реестре.
            * `disabled` — отключить сканирование.

        * `scheduleRules` — периодически сканировать артефакты в реестре:

            * `amount` — количество единиц времени в периоде сканирования.
            * `intervalUnit` — единица времени. Доступное значение: `DAYS`.
            * `paths` — список путей до артефактов, которые нужно сканировать. Укажите `*`, чтобы сканировать все артефакты в реестре.
            * `disabled` — отключить сканирование.

    1. Создайте политику автоматического сканирования:

        ```bash
        yc cloud-registry registry scan-policy create <имя_политики> \
          --registry-id <идентификатор_реестра> \
          --description <описание_политики> \
          --scan-lang-packages \
          --rules <путь_к_файлу_с_правилами>
        ```

        Где:

        * `<имя_политики>` — имя политики автоматического сканирования.
        * `--registry-id` — идентификатор реестра, для которого создается политика.
        * `--description` — описание политики. Необязательный параметр.
        * `--scan-lang-packages` — включить сканирование языковых пакетов. Необязательный параметр.
        * `--rules` — путь к JSON-файлу с правилами сканирования. Необязательный параметр.

- API {#api}

    Чтобы создать политику автоматического сканирования реестра, воспользуйтесь методом REST API [create](../../api-ref/ScanPolicy/create.md) для ресурса [ScanPolicy](../../api-ref/ScanPolicy/index.md) или вызовом gRPC API [ScanPolicyService/Create](../../api-ref/grpc/ScanPolicy/create.md).

{% endlist %}

## Ручное сканирование {#manual}

Вы можете запустить сканирование выбранных артефактов в реестре вручную.

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. В [консоли управления](https://kz.console.yandex.cloud) выберите [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором находится реестр.
    1. Перейдите в сервис **Cloud Registry**.
    1. На панели слева выберите ![shapes-4](../../../_assets/console-icons/shapes-4.svg) **Реестры**.
    1. Выберите реестр.
    1. Перейдите на вкладку **Сканер**.
    1. Нажмите **Новое сканирование**.
    1. Выберите артефакты, которые хотите сканировать, и нажмите **Добавить**.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`.
    
    Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    1. Посмотрите описание команды CLI для сканирования артефакта:

        ```bash
        yc cloud-registry artifact scanner scan --help
        ```

    1. Получите список артефактов в реестре:

        ```bash
        yc cloud-registry registry list-artifacts <имя_или_идентификатор_реестра>
        ```

    1. Запустите сканирование артефакта:

        ```bash
        yc cloud-registry artifact scanner scan <идентификатор_артефакта>
        ```

- API {#api}

    Чтобы запустить сканирование артефакта, воспользуйтесь вызовом gRPC API [ScannerService/Scan](../../api-ref/grpc/Scanner/scan.md).

{% endlist %}