• Русский
  • Генерация сетевых политик с помощью Alauda Security Service

    Alauda Security Service позволяет автоматически генерировать сетевые политики Kubernetes на основе наблюдаемых сетевых потоков, помогая защищать взаимодействие pod'ов и уменьшать поверхность атаки.

    Обзор

    Сетевые политики Kubernetes определяют, какие pod'ы могут принимать или отправлять сетевой трафик. Создание этих файлов YAML вручную может быть сложной задачей. Alauda Security Service упрощает этот процесс, генерируя политики по следующим принципам:

    • Одна политика на Deployment: Alauda Security Service генерирует сетевую политику для каждого deployment в выбранном namespace, используя pod selector этого deployment.

      • Если у deployment уже есть сетевая политика, Alauda Security Service не будет перезаписывать или удалять ее.
      • Новые deployment'ы не ограничиваются, пока вы не сгенерируете или не создадите для них новые политики.
      • Если новому deployment требуется доступ к защищенному deployment, может потребоваться обновить политику.
    • Соглашение об именовании: Каждая политика называется stackrox-generated-<deployment-name> и включает идентифицирующую метку.

    • Разрешение внешнего трафика: Alauda Security Service генерирует правило, разрешающее трафик от любого IP, если:

      • deployment получает подключения извне кластера в течение выбранного периода, или
      • deployment доступен через сервис NodePort или LoadBalancer.
    • Правила входящего трафика: Для каждого наблюдаемого входящего подключения:

      • Если оно поступает из того же namespace, Alauda Security Service использует pod selector исходного deployment.
      • Если оно поступает из другого namespace, Alauda Security Service использует namespace selector и автоматически добавляет метки namespace по мере необходимости.

    Примечание: Если у отдельного pod отсутствуют метки, сгенерированная политика может разрешать трафик от/к всему namespace.

    Как генерировать сетевые политики

    Вы можете генерировать политики для кластеров, namespace или отдельных deployment'ов на странице Network Graph.

    Чтобы сгенерировать сетевые политики, выполните следующие шаги:

    1. В портале Alauda Security Service перейдите в Network Graph.
    2. Выберите кластер и один или несколько namespace.
    3. (Необязательно) Выберите конкретные deployment'ы или используйте Filter deployments, чтобы сузить область.
    4. Нажмите Network policy generator в заголовке.
    5. Проверьте текущую область, отображаемую на панели генератора. В текущем UI сводка области может показывать количество выбранных deployment'ов, namespace и cluster.
    6. В генераторе при необходимости используйте доступные разделы:
      • Simulate network policies
      • View active YAMLS
    7. (Необязательно) Выберите Exclude ports & protocols, чтобы удалить ограничения по портам и протоколам из сгенерированных правил.
    8. Нажмите Generate and simulate network policies.
    9. (Необязательно) Используйте Upload YAML, если хотите предварительно просмотреть эффект существующего файла network policy вместо генерации нового. В текущем UI предусмотрена область загрузки с поддержкой drag-and-drop.
    10. (Необязательно) Перед сравнением или генерацией нового результата просмотрите текущие активные YAML в View active YAMLS.
    11. (Необязательно) Скопируйте или скачайте сгенерированный YAML-файл, когда результат будет готов.

    Примечание: Некоторые namespace (например, с уже существующими ingress policies или защищенными namespace) могут не иметь сгенерированных политик.

    Совет: Генератор работает в пределах текущей области графа. Сначала выберите целевой кластер и namespace, чтобы получить более сфокусированный результат, чем при слишком широкой области.

    Скачивание и применение политик

    После генерации политик вы можете скачать их и применить к своему кластеру с помощью CLI или автоматизированных инструментов.

    Чтобы применить политики:

    $ kubectl create -f "<generated_file>.yml"

    Чтобы удалить политики:

    $ kubectl delete -f "<generated_file>.yml"

    Предупреждение: Всегда тестируйте сетевые политики в среде разработки или тестирования перед применением в production, так как они могут нарушить работу запущенных приложений.

    Откат и удаление политик

    • Чтобы вернуться к предыдущей политике, используйте доступные действия revert или сравнения в портале Alauda Security Service, когда они доступны для выбранной области.

    • Чтобы удалить все автоматически сгенерированные политики:

      $ kubectl get ns -o jsonpath='{.items[*].metadata.name}' | \
      xargs -n 1 kubectl delete networkpolicies -l \
      'network-policy-generator.stackrox.io/generated=true' -n

    Дополнительные примечания

    • Network Graph не визуализирует сгенерированные политики.
    • Сгенерированные политики ограничивают только ingress traffic; egress policies не генерируются.