• Русский
  • Использование Scan

    Scan — это ресурс для запуска и управления одним сканированием соответствия для одного профиля.

    Когда использовать Scan

    Используйте Scan, когда необходимо:

    • запустить один профиль отдельно
    • быстро проверить одну цель без создания ресурса batch
    • управлять выполнением напрямую для одной базовой линии соответствия
    • запустить автономное сканирование ОС, например stig-os-microos

    Используйте Using ScanSuite, если нужно управлять несколькими профилями одновременно или планировать повторяющиеся запуски.

    Пример базового Scan

    apiVersion: compliance.security.alauda.io/v1alpha1
    kind: Scan
    metadata:
      name: cis-controlplane-scan
      namespace: compliance-system
    spec:
      profile: cis-k8s-controlplane
      scanType: node
      nodeScopeStrategy: auto
      targetNodeRoles:
        - control-plane
      maxHistoricalResults: 3

    Пример сканирования ОС

    apiVersion: compliance.security.alauda.io/v1alpha1
    kind: Scan
    metadata:
      name: os-scan
      namespace: compliance-system
    spec:
      profile: stig-os-microos
      scanType: node

    Параметры Scan

    В следующей таблице описаны основные параметры ресурса Scan:

    ПараметрТипОписание
    spec.profilestringПрофиль, связанный с этим Scan. Scan ссылается ровно на один профиль.
    spec.scanTypestringНеобязательно. Поддерживает значения platform, node и all. В режиме platform система сканирует только ресурсы Kubernetes. В режиме node — только файлы узла.
    spec.nodeScopeStrategystringНеобязательно для сканирования Kubernetes. Поддерживает auto и manual. В режиме auto узлы выбираются на основе определений области действия правил. В режиме manual все правила выполняются на указанных узлах.
    spec.targetNodeRolesarrayНеобязательно. Ограничивает роли узлов. Допустимые значения: control-plane и worker. При настройке участвует в фильтрации узлов вместе с nodeScopeStrategy.
    spec.nodeSelectorobjectНеобязательно. Использует метки узлов для выбора. При настройке участвует в фильтрации узлов вместе с nodeScopeStrategy.
    spec.maxHistoricalResultsintНеобязательно. Количество сохраняемых исторических результатов для этого Scan (по умолчанию: 5).
    spec.reportDeliveryobjectНеобязательно. Конфигурация доставки сгенерированных отчетов. В настоящее время поддерживается доставка по электронной почте.

    Параметры доставки отчетов

    Если настроен spec.reportDelivery, для доставки по электронной почте используются следующие поля:

    ПараметрТипОписание
    spec.reportDelivery.email.enabledbooleanВключает доставку отчетов по электронной почте, сгенерированных Scan.
    spec.reportDelivery.email.recipientsRef.namestringИмя ConfigMap, определяющего получателей электронной почты.

    Примечания по выбору узлов

    Для Scan поля выбора узлов и планирования настраиваются непосредственно в spec.

    Подробное поведение scanType, nodeScopeStrategy, targetNodeRoles и nodeSelector описано в Node Selection and Scheduling.

    Важные замечания:

    • Сканирование ОС требует scanType: node.
    • CIS поддерживает только scanType: node; platform и all не поддерживаются, так как kube-bench не поддерживает выбор узлов на уровне правил.
    • STIG поддерживает platform, node и all.

    Аннотации Scan

    Следующая аннотация может использоваться для управления выполнением Scan:

    АннотацияОбластьОписание
    compliance.security.alauda.io/force-scan: "true"k8s, osРучной запуск немедленного выполнения Scan. Автоматически сбрасывается в false после завершения.

    Мониторинг результатов Scan

    Чтобы проверить статус и результаты Scan:

    # Проверить один Scan
    kubectl get scan os-scan -n compliance-system -o wide
    
    # Проверить все Scan
    kubectl get scan -n compliance-system -o wide