Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Практические руководства
    • Все руководства
    • Разграничение прав доступа для групп пользователей
    • Приглашение нового пользователя и назначение ролей
    • Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer
    • Создание распределенной инфраструктуры с защищенным доступом
    • Централизованная публикация в интернете и защита приложений от DDoS
    • Базовая настройка SWS
    • Экстренная защита сервисов в Application Load Balancer от DDoS на уровне L7
    • Передача логов с виртуальной машины в Cloud Logging
    • Запись логов балансировщика в PostgreSQL
    • Безопасное хранение паролей для GitLab CI в виде секретов Yandex Lockbox
    • Сервисный аккаунт с профилем OS Login для управления ВМ с помощью Ansible
    • Передача логов с Container Optimized Image в Cloud Logging
    • Добавление HTML-страницы для работы SmartCaptcha
    • Настройка алертов и дашбордов в Monitoring
    • Загрузка аудитных логов в MaxPatrol SIEM
    • Загрузка аудитных логов в SIEM Splunk
    • Загрузка аудитных логов в SIEM ArcSight
    • Шифрование для бакета Object Storage на стороне сервера
    • Шифрование секретов в HashiCorp Terraform
    • Управление ключами KMS с HashiCorp Terraform
    • Auto Unseal в HashiCorp Vault
    • Передача логов кластера Yandex MPP Analytics for PostgreSQL в Yandex Cloud Logging

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Установите Ingress-контроллер Application Load Balancer
  1. Безопасность
  2. Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer

Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer

Статья создана
Yandex Cloud
Обновлена 23 октября 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Установите Ingress-контроллер Application Load Balancer

Приложения в кластере Yandex Managed Service for Kubernetes можно защитить от DDoS-атак и ботов с помощью сервиса Yandex Smart Web Security. Для этого опубликуйте приложения через ресурс Ingress, которому назначен профиль безопасности Smart Web Security и который использует Ingress-контроллер Application Load Balancer.

Совет

Вместо Ingress-контроллера Application Load Balancer рекомендуется использовать новый контроллер Yandex Cloud Gwin.

Опираясь на ресурс Ingress будет развернут L7-балансировщик с профилем безопасности, подключенным к виртуальным хостам балансировщика. Бэкенды приложений, которые указаны в ресурсе Ingress, будут защищены с помощью Smart Web Security: все поступающие к бэкендам HTTP-запросы будут обработаны в соответствии с правилами в профиле безопасности.

Чтобы через Ingress создать L7-балансировщик с подключенным профилем безопасности:

  1. Установите Ingress-контроллер Application Load Balancer.
  2. Создайте тестовое приложение.
  3. Создайте профиль безопасности.
  4. Создайте ресурс Ingress.
  5. Создайте DNS-запись для домена.
  6. Проверьте результат.

Если созданные ресурсы вам больше не нужны, удалите их.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за DNS-зону и DNS-запросы (см. тарифы Cloud DNS).
  • Плата за кластер Managed Service for Kubernetes: использование мастера и исходящий трафик (см. тарифы Managed Service for Kubernetes).
  • Плата за узлы кластера (ВМ): использование вычислительных ресурсов, операционной системы и хранилища (см. тарифы Compute Cloud).
  • Плата за использование вычислительных ресурсов L7-балансировщика (см. тарифы Application Load Balancer).
  • Плата за публичные IP-адреса для узлов кластера и L7-балансировщика (см. тарифы Virtual Private Cloud).
  • Плата за количество запросов в сервис Smart Web Security (см. тарифы Smart Web Security).

Перед началом работыПеред началом работы

  1. Подготовьте необходимую инфраструктуру:

    Вручную
    Terraform
    1. Создайте сервисный аккаунт, который будет использоваться Ingress-контроллером Application Load Balancer.

      Назначьте аккаунту следующие роли на каталог, в котором будет создан кластер:

      • alb.editor,

      • vpc.publicAdmin,

      • compute.viewer,

      • smart-web-security.editor.

        Важно

        Эта роль необходима для корректной интеграции L7-балансировщика Application Load Balancer с профилем безопасности.

    2. Создайте сервисный аккаунт, который будет использоваться кластером и группой узлов.

      Назначьте аккаунту следующие роли на каталог, в котором будет создан кластер:

      • k8s.clusters.agent,
      • vpc.publicAdmin.
    3. Создайте группы безопасности для кластера Managed Service for Kubernetes и входящих в него групп узлов.

      Также настройте группы безопасности, необходимые для работы Application Load Balancer.

      Важно

      От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.

    4. Создайте кластер. При создании кластера выберите:

      • Cозданный ранее сервисный аккаунт. Используйте его для ресурсов и для узлов.
      • Созданные ранее группы безопасности, которые должны быть назначены кластеру.
      • Опцию, которая назначает кластеру публичный адрес. Такой адрес нужен, чтобы можно было использовать Kubernetes API из интернета.
    5. Создайте группу узлов в кластере. При создании группы узлов выберите:

      • Созданные ранее группы безопасности, которые должны быть назначены группе узлов.
      • Опцию, которая назначает узлам публичный адрес. Такой адрес нужен, чтобы можно было скачивать образы из интернета.
    1. Если у вас еще нет Terraform, установите его.

    2. Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.

    3. Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

    4. Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.

    5. Скачайте в ту же рабочую директорию файл конфигурации кластера alb-ready-k8s-cluster.tf. В файле описаны:

      • Сеть.

      • Подсеть.

      • Кластер Kubernetes.

      • Сервисный аккаунт, необходимый для работы кластера и группы узлов Managed Service for Kubernetes.

      • Сервисный аккаунт, необходимый для работы Ingress-контроллера Application Load Balancer.

      • Группы безопасности, которые содержат необходимые правила для кластера Managed Service for Kubernetes и входящих в него групп узлов.

        Часть правил необходима для работы Application Load Balancer.

        Важно

        От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.

      • Профиль безопасности Smart Web Security с правилом Smart Protection и простым правилом для проверки работы профиля, которое будет разрешать трафик только с определенного IP-адреса.

        Базовое правило по умолчанию не указывается в манифесте и создается автоматически.

    6. Укажите в файле конфигурации:

      • Идентификатор каталога.
      • Версию Kubernetes для кластера и групп узлов Kubernetes.
      • CIDR кластера Kubernetes, CIDR сервисов.
      • Имя сервисного аккаунта кластера Managed Service for Kubernetes.
      • Имя сервисного аккаунта Application Load Balancer.
      • Имя профиля безопасности Smart Web Security.
      • IP-адрес, трафик с которого будет разрешен.
    7. Проверьте корректность файлов конфигурации Terraform с помощью команды:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    8. Создайте необходимую инфраструктуру:

      1. Выполните команду для просмотра планируемых изменений:

        terraform plan
        

        Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

      2. Если вас устраивают планируемые изменения, внесите их:

        1. Выполните команду:

          terraform apply
          
        2. Подтвердите изменение ресурсов.

        3. Дождитесь завершения операции.

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

    Примечание

    Если вы развернули инфраструктуру с помощью Terraform, выполнять шаг с Созданием профиля безопасности не нужно.

  2. Убедитесь, что у вас есть домен и вы можете управлять ресурсными записями в зоне DNS для этого домена. Тестовое приложение будут доступно через Ingress на поддомене этого домена.

    Если у вас еще нет домена, зарегистрируйте домен у любого регистратора доменных имен. Чтобы управлять ресурсными записями домена с помощью Yandex Cloud DNS, создайте публичную зону DNS и делегируйте домен.

    Примечание

    В качестве примера используется домен example.com и поддомен demo.example.com.

    Используйте ваши домены при прохождении этого практического руководства.

  3. Установите kubectl и настройте его на работу с созданным кластером.

Установите Ingress-контроллер Application Load BalancerУстановите Ingress-контроллер Application Load Balancer

  1. Установите Ingress-контроллер Application Load Balancer в пространство имен yc-alb.

    При установке укажите сервисный аккаунт, который был создан ранее для использования с контроллером.

    Использование отдельного пространства имен yc-alb позволит отделить ресурсы контроллера от ресурсов тестового приложения и Ingress.

  2. Убедитесь, что контроллер был успешно установлен:

    kubectl logs deployment.apps/yc-alb-ingress-controller -n yc-alb
    

    В логах должны содержаться сообщения об успешном старте Ingress-контроллера.

    ...    INFO    Starting EventSource    {"controller": "ingressgroup", ...}
    ...    INFO    Starting Control

Была ли статья полезна?

Предыдущая
Terraform
Следующая
Создание распределенной инфраструктуры с защищенным доступом
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»