• Русский
  • Просмотр и управление политиками безопасности

    Alauda Container Security предлагает как стандартные, так и настраиваемые политики безопасности, которые помогают предотвращать развертывания с высоким уровнем риска и реагировать на инциденты во время выполнения в вашей контейнерной среде.


    Категории политик

    Политики организованы по типу и функции для удобства управления и поиска. Стандартные категории включают:

    • Anomalous Activity
    • Cryptocurrency Mining
    • DevOps Best Practices
    • Docker CIS
    • Kubernetes
    • Kubernetes Events
    • Network Tools
    • Package Management
    • Privileges
    • Security Best Practices
    • Supply Chain Security
    • System Modification
    • Vulnerability Management
    • Zero Trust

    Для управления категориями:

    1. Перейдите в Platform Configuration > Policy Management.
    2. Нажмите на вкладку Policy Categories.
    3. Создавайте, просматривайте или управляйте категориями по необходимости.

    Этапы жизненного цикла политики

    При создании или редактировании политики вы можете указать один или несколько этапов жизненного цикла:

    • Build: Проверка полей образа (например, CVE, инструкции Dockerfile).
    • Deploy: Включает проверки на этапе сборки и конфигурацию кластера (например, привилегированный режим).
    • Runtime: Добавляет проверки выполнения процессов и событий во время работы.

    Критерии и атрибуты политики

    Политики срабатывают на основе определённых критериев (атрибутов). В следующих таблицах приведены распространённые атрибуты и их описания. Для подробностей о допустимых значениях, операторах и применимых фазах смотрите примечания под каждой таблицей.

    Реестр образов и содержимое

    АтрибутОписаниеДопустимые значения
    Image RegistryНазвание реестра образовString
    Image NameПолное имя образа в реестреString
    Image TagИдентификатор образаString
    Image SignatureИнтеграция подписи образаIntegration ID
    FixableОбраз содержит исправляемые CVEBoolean
    Days Since CVEДней с момента обнаружения CVEInteger
    Image AgeДней с момента создания образаInteger
    Image Scan AgeДней с момента последнего сканирования образаInteger
    Image UserДиректива USER в DockerfileString
    Dockerfile LineИнструкция/аргумент DockerfileLABEL/RUN/etc.
    Unscanned ImageСтатус сканирования образаBoolean
    CVSSОценка уязвимостиNumber
    SeverityУровень серьёзности уязвимостиLevel
    Fixed ByВерсия, исправляющая уязвимостьString
    CVEКонкретный номер CVEString
    Image ComponentКомпонент ПО в образеkey=value
    Image OSБазовая ОС образаString
    Required Image LabelОбязательная метка Docker образаkey=value
    Disallowed Image LabelЗапрещённая метка Docker образаkey=value

    Операторы: Regex, NOT, AND, OR, OR only, AND only, None и др.
    Фазы: Build, Deploy, Runtime


    Конфигурация контейнера

    АтрибутОписаниеДопустимые значения
    Environment VariableПроверка переменных окруженияRAW=key=value
    Container CPU RequestЗапрошенное количество CPUNumber
    Container CPU LimitЛимит CPUNumber
    Container Memory RequestЗапрошенная память (МБ)Number
    Container Memory LimitЛимит памяти (МБ)Number
    Privileged ContainerВключён привилегированный режимBoolean
    Read-Only Root FilesystemКорневая файловая система только для чтенияBoolean
    Seccomp Profile TypeТип профиля SeccompUNCONFINED/RUNTIME_DEFAULT/LOCALHOST
    Allow Privilege EscalationРазрешено повышение привилегийBoolean
    Drop CapabilitiesLinux capabilities для удаленияList
    Add CapabilitiesLinux capabilities, которые запрещеныList
    Container NameИмя контейнераString
    AppArmor ProfileИспользуемый профиль AppArmorString
    Liveness ProbeОпределена проверка живостиBoolean
    Readiness ProbeОпределена проверка готовностиBoolean

    Операторы: Regex, AND, OR, None и др.
    Фазы: Deploy, Runtime


    Метаданные развертывания

    АтрибутОписаниеДопустимые значения
    Disallowed AnnotationЗапрещённая аннотацияkey=value
    Required LabelОбязательная метка Kuberneteskey=value
    Required AnnotationОбязательная аннотация Kuberneteskey=value
    Runtime ClassRuntimeClass развертыванияString
    Host NetworkВключена сетевая подсистема хостаBoolean
    Host PIDОбщий PID namespace хостаBoolean
    Host IPCОбщий IPC namespace хостаBoolean
    NamespaceNamespace развертыванияString
    ReplicasКоличество реплик развертыванияNumber

    Операторы: Regex, AND, OR, NOT, None и др.
    Фазы: Deploy, Runtime


    Хранение и сеть

    АтрибутОписаниеДопустимые значения
    Volume NameНазвание хранилищаString
    Volume SourceТип предоставления томаString
    Volume DestinationПуть монтирования томаString
    Volume TypeТип томаString
    Writable Mounted VolumeТом смонтирован с правами на записьBoolean
    Mount PropagationРежим распространения монтированияNONE/HOSTTOCONTAINER/BIDIRECTIONAL
    Writable Host MountПуть хоста смонтирован с правами на записьBoolean
    Exposed Port ProtocolПротокол используемый открытым портомString
    Exposed PortНомера открытых портовNumber
    Exposed Node PortВнешне открытый Node портNumber
    Port Exposure MethodМетод экспонирования сервисаUNSET/EXTERNAL/NODE/HOST/INTERNAL/ROUTE
    Unexpected Network FlowОбнаружен сетевой трафик вне базовой линииBoolean
    Has Ingress Network PolicyНаличие политики входящего трафикаBoolean
    Has Egress Network PolicyНаличие политики исходящего трафикаBoolean

    Операторы: Regex, AND, OR, NOT, None и др.
    Фазы: Deploy, Runtime, Runtime (Network)


    Активность процессов (только Runtime)

    АтрибутОписаниеДопустимые значения
    Process NameИмя выполняемого процессаString
    Process AncestorИмя родительского процессаString
    Process ArgumentsАргументы командыString
    Process UIDUnix UID процессаInteger
    Unexpected Process ExecutedПроцесс не из заблокированной базовой линииBoolean

    Операторы: Regex, AND, OR, NOT, None и др.
    Фазы: Runtime (Process)


    Доступ и события Kubernetes

    АтрибутОписаниеДопустимые значения
    Service AccountИмя service accountString
    Automount Service Account TokenАвтоматическое монтирование токена service accountBoolean
    Minimum RBAC PermissionsМинимальный уровень прав RBACDEFAULT/ELEVATED_IN_NAMESPACE/ELEVATED_CLUSTER_WIDE/CLUSTER_ADMIN
    Kubernetes ActionНазвание действия KubernetesPODS_EXEC/PODS_PORTFORWARD
    Kubernetes User NameИмя пользователя, обращающегося к ресурсуString
    Kubernetes User GroupsНазвание группы пользователяString
    Kubernetes Resource TypeТип запрашиваемого ресурсаString
    Kubernetes API VerbИспользуемый API-методCREATE/DELETE/GET/PATCH/UPDATE
    Kubernetes Resource NameИмя запрашиваемого ресурсаString
    User AgentИспользуемый user agentString
    Source IP AddressIP-адрес источникаIPv4/IPv6
    Is Impersonated UserЗапрос от имени другого пользователяBoolean

    Операторы: Regex, AND, OR, NOT, None и др.
    Фазы: Deploy, Runtime, Runtime (K8s Events), Runtime (Audit Log)


    Принудительное применение политики

    Alauda Container Security поддерживает несколько типов принудительного применения в зависимости от фазы политики:

    • Принудительное применение на этапе сборки: CI-сборки завершаются с ошибкой, если образы нарушают политику. API возвращает ненулевой код выхода, который можно использовать для прерывания пайплайна сборки.
    • Принудительное применение на этапе развертывания: Интегрируется с admission controllers Kubernetes и admission плагинами Alauda Container Platform для блокировки несоответствующих workloads. Принудительное применение может быть:
      • Жёстким: admission controller блокирует создание или обновление нарушающих развертываний.
      • Мягким: Sensor масштабирует нарушающие развертывания до нуля реплик, предотвращая запуск pod'ов.
    • Принудительное применение во время выполнения: При включении любое нарушение политики во время работы pod'а приводит к его автоматическому удалению. Нарушения, вызванные через API-сервер, также блокируются.

    Примечание: По умолчанию административные namespace, такие как stackrox, kube-system, cpaas-system и istio-system, исключены из блокировки принудительного применения. Запросы от service account в системных namespace также обходятся.

    Для применения изменений политики к существующим развертываниям используйте Policy Management > Reassess All, чтобы инициировать принудительное применение ко всем развертываниям.


    Экспорт и импорт политик

    Вы можете обмениваться политиками безопасности между разными экземплярами Central, экспортируя и импортируя политики в формате JSON.

    Экспорт политики

    1. Перейдите в Platform Configuration > Policy Management.
    2. Выберите политику для экспорта.
    3. Нажмите Actions > Export policy to JSON.

    Импорт политики

    1. Перейдите в Platform Configuration > Policy Management.
    2. Нажмите Import Policy.
    3. Загрузите JSON-файл и нажмите Begin Import.

    Обработка импорта:

    • Если UID и имя импортируемой политики уникальны, создаётся новая политика.
    • Если UID совпадает, но имя отличается, можно сохранить обе (новый UID) или заменить существующую.
    • Если имя совпадает, но UID отличается, можно сохранить обе (переименовать) или заменить существующую.
    • Если совпадают и UID, и имя, Alauda Container Security проверяет совпадение критериев. Если они совпадают, существующая политика сохраняется; иначе можно сохранить обе (переименовать) или заменить.

    Важно:

    • При импорте в тот же экземпляр Central используются все экспортированные поля.
    • При импорте в другой экземпляр Central некоторые поля (например, исключения областей кластера, уведомления) опускаются и не могут быть перенесены.