Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex SmartCaptcha
  • Начало работы
    • Все инструкции
    • Создать капчу
    • Удалить капчу
    • Получить ключи
    • Добавить виджет расширенным методом
    • Проверить капчу
    • Посмотреть операции с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  1. Пошаговые инструкции
  2. Создать капчу

Создать капчу

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.

SmartCaptcha позволяет создавать капчи нескольких уровней сложности для разных входящих запросов. Уровень сложности запроса определяется по базовым параметрам входящего трафика.

При создании капчи вы можете:

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

Примечание

Чтобы сделать вашу защиту более эффективной, мы используем информацию об HTTP-запросах для развития моделей машинного обучения (ML). Вы можете отключить использование этой информации в консоли управления при создании капчи или позднее в ее настройках.

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите каталог.

  2. Выберите сервис Yandex SmartCaptcha.

  3. Нажмите Создать капчу.

    screen01

  4. Укажите Имя создаваемой капчи:

    • длина — от 2 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.
  5. (Опционально) Выберите Отключить проверку домена.

  6. Введите Список хостов в формате IP-адресов или доменных имен. Указывайте адрес без протокола и без / в конце, например, example.com.

    Капча будет работать и во всех поддоменах указанных доменных имен.

  7. Настройте Внешний вид кнопки Я не робот и окна с заданием:

    • Стандартный — внешний вид по умолчанию.
    • Серый.
    • Темная тема.
    • Синий.

    В разделе Настройка внешнего вида вы можете задать свои параметры окна задания и других элементов: через форму или через описание стилей в формате JSON.

    Все изменения будут отображаться в окне предпросмотра.

    screen02

  8. Настройте Варианты заданий. Вы можете указать только капчу по умолчанию или добавить дополнительные варианты, если по разным входящим запросам нужно показывать разную капчу.

  9. Для варианта По умолчанию укажите:

    • Основное задание — тип основного задания, которое предлагается решить пользователю.

    • Дополнительное задание — тип дополнительного задания, которое предлагается решить пользователю.

    • Сложность — сложность задания, которое увидит пользователь:

    • Легкая — простое задание.

    • Средняя — задание среднего уровня сложности.

    • Высокая — сложное задание.

    • Максимальная — сложное задание с дополнительным вопросом. От пользователя требуется решение дополнительного задания, вне зависимости от результатов выполнения основного задания.

      Пример задания можно посмотреть в окне предпросмотра.

      Примечание

      Функциональность вариантов заданий и правил показа находится на стадии Preview.

  10. Чтобы по разным запросам показывать разную капчу:

    1. Нажмите кнопку Добавить вариант и задайте настройки аналогично капче по умолчанию.

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

    2. Добавьте правила для входящего трафика, которые будут определять, какой вариант капчи показывать:

      • Нажмите кнопку Добавить правило.

      • Введите имя и описание правила.

      • Выберите вариант капчи.

      • Укажите приоритет правила от 1 до 999999.

        Правила проверяются в порядке приоритета от меньшего к большему: 1, 2 и так далее. Если трафик соответствует нескольким правилам, к нему применится первое сработавшее правило.

      • Укажите одно или несколько условий для входящего трафика:

        • IP — IP-адрес, диапазон адресов или регион IP-адресов;
        • HTTP header — строка в заголовке HTTP;
        • URI — путь входящего запроса к сайту;
        • Host — домен, на который пришел запрос.
      • Нажмите кнопку Добавить.

        Чтобы удалить правило, нажмите . Правило по умолчанию удалить нельзя.

    3. Таким же способом добавьте другие варианты капчи и правила для входящего трафика.

  11. (Опционально) Включите или отключите использование информации об HTTP-запросах для улучшения моделей машинного обучения в разделе Обучение ML-моделей.

  12. Нажмите Создать.

    screen03

Капча отобразится на странице сервиса в разделе Список капч.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

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

    yc smartcaptcha captcha create --help
    
  2. Создайте капчу:

    yc smartcaptcha captcha create \
      --name <имя_капчи>
      --turn-off-hostname-check \
      --allowed-site <первый_хост>,<второй_хост> \
      --style-json '<внешний_вид_капчи>' \
      --pre-check-type <тип_основного_задания> \
      --challenge-type <тип_дополнительного_задания> \
      --complexity <сложность_задания> \
      --override-variants-file <путь_к_файлу_с_правилами>.yaml \
      --security-rules-file <путь_к_файлу_с_вариантами>.yaml
    

    Где:

    • --name — имя капчи.

    • --turn-off-hostname-check — отключение проверки домена. Необязательный параметр.

    • --allowed-site — список хостов в формате IP-адресов или доменных имен. Указывайте адрес без протокола и без / в конце, например, example.com. Капча будет работать и во всех поддоменах указанных доменных имен. Необязательный параметр.

    • --style-json — внешний вид окна задания и других элементов в формате JSON. Подробнее смотрите в JSON, сгенерированном с помощью консоли управления. Необязательный параметр.

    • --pre-check-type — тип основного задания по умолчанию, которое предлагается решить пользователю.

    • --challenge-type — тип дополнительного задания по умолчанию, которое предлагается решить пользователю.

    • --complexity — сложность задания по умолчанию. Возможные значения:

      • EASY — простое задание.
      • MEDIUM — задание среднего уровня сложности.
      • HARD — сложное задание.
      • FORCE_HARD — сложное задание с дополнительным вопросом. От пользователя требуется решение дополнительного задания, вне зависимости от результатов выполнения основного задания.

      Примечание

      Функциональность вариантов заданий и правил показа находится на стадии Preview.

    • --security-rules-file — путь к файлу в формате YAML с правилами для входящего трафика, которые будут определять, какой вариант капчи показывать. Необязательный параметр.

      Пример файла с правилами для входящего трафика
      - name: <название_правила_1>
        priority: "<приоритет_правила_1>"
        description: <описание_правила_1>
        override_variant_uuid: <идентификатор_варианта_задания>
        condition:
          host:
            hosts:
              - exact_match: example.com
              - exact_match: example.net
      - name: <название_правила_2>
        priority: "<приоритет_правила_2>"
        description: <описание_правила_2>
        override_variant_uuid: <идентификатор_варианта_задания>
        condition:
          source_ip:
            geo_ip_match:
              locations:
                - ru
                - es
      

      Где:

      • name — имя правила.

      • priority — приоритет правила от 1 до 999999.

        Правила проверяются в порядке приоритета от меньшего к большему: 1, 2 и так далее. Если трафик соответствует нескольким правилам, к нему применится первое сработавшее правило.

      • description — описание правила. Необязательный параметр.

      • override_variant_uuid — идентификатор варианта задания, которое будет отображаться в случае соответствия трафика правилу. Если параметр не указан, будет отображаться задание по умолчанию.

      • condition — одно или несколько условий для входящего трафика. Необязательный параметр.

    • --override-variants-file — путь к файлу в формате YAML с вариантами заданий. Необязательный параметр.

      Пример файла с вариантами заданий
      - uuid: <идентификатор_варианта_1>
        description: <описание_варианта_1>
        complexity: <сложность_задания>
        pre_check_type: <основное_задание>
        challenge_type: <дополнительное_задание>
      - uuid: <идентификатор_варианта_2>
        description: <описание_варианта_2>
        complexity: <сложность_задания>
        pre_check_type: <основное_задание>
        challenge_type: <дополнительное_задание>
      

      Где:

      • uuid — уникальный идентификатор варианта задания.
      • description — описание варианта задания.
      • complexity — сложность задания, которое увидит пользователь.
      • pre_check_type — тип основного задания, которое предлагается решить пользователю.
      • challenge_type — тип дополнительного задания, которое предлагается решить пользователю.

Результат:

id: bpnd6cm6qpr5********
folder_id: b1g0ijbfaqsn********
cloud_id: b1gia87mbaom********
client_key: ysc1_2lla0Yn6dhlnEaTv2QNg2BhuA8Nqlyk4L7pZk3dz********
created_at: "2025-03-02T21:38:48.830498Z"
name: my-first-captcha
allowed_sites:
  - exmaple.com
  - exmaple.net
complexity: MEDIUM
style_json: '{"focus-color":"rgb(250, 192, 0)","base-background-color":"#fff"}'
turn_off_hostname_check: true
pre_check_type: CHECKBOX
challenge_type: IMAGE_TEXT
security_rules:
  - name: rule1
    priority: "11"
    description: My first security rule.
    condition:
      host:
        hosts:
          - exact_match: example.com
          - exact_match: example.net
    override_variant_uuid: variant-1
  - name: rule2
    priority: "12"
    condition:
      source_ip:
      geo_ip_match:
        locations:
          - ru
          - es
    override_variant_uuid: variant-2
override_variants:
  - uuid: variant-1
    description: override variant 1
    complexity: EASY
    pre_check_type: CHECKBOX
    challenge_type: SILHOUETTES
  - uuid: variant-2
    description: override variant 2
    complexity: HARD
    pre_check_type: CHECKBOX
    challenge_type: KALEIDOSCOPE

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать капчу:

  1. Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:

    resource "yandex_smartcaptcha_captcha" "demo-advanced-smartcaptcha" {
      name                = "<имя_капчи>"
      style_json          = "<внешний_вид_капчи>"
      complexity          = "<сложность_задания>"
      pre_check_type      = "<тип_основного_задания>"
      challenge_type      = "<тип_дополнительного_задания>"
    
      allowed_sites = [
        "<первый_хост>",
        "<второй_хост>"
      ]
    
      # Первый вариант задания
      override_variant {
        uuid        = "<идентификатор_варианта_1>"
        description = "<описание_варианта_1>"
    
        complexity     = "<сложность_задания>"
        pre_check_type = "<основное_задание>"
        challenge_type = "<дополнительное_задание>"
      }
    
      # Второй вариант задания 
      override_variant {
        uuid        = "<идентификатор_варианта_2"
        description = "<описание_варианта_2>"
    
        complexity     = "<сложность_задания>"
        pre_check_type = "<основное_задание>"
        challenge_type = "<дополнительное_задание>"
      }
    
      # Первое правило
      security_rule {
        name                  = "<название_правила_1>"
        priority              = <приоритет_правила_1>
        description           = "<описание_правила_1>"
        override_variant_uuid = "<идентификатор_варианта_задания>"
    
        condition {
          host {
            hosts {
              exact_match = "example.com"
            }
            hosts {
              exact_match = "example.net"
            }
          }
        }
      }
    
      # Второе правило
      security_rule {
        name                  = "<название_правила_2>"
        priority              = <приоритет_правила_2>
        description           = "<описание_правила_2>"
        override_variant_uuid = "<идентификатор_варианта_задания>"
    
        condition {
          source_ip {
            geo_ip_match {
              locations = ["ru", "es"]
            }
          }
        }
      }
    }
    

    Где:

    • name — имя капчи.

    • style_json — внешний вид окна задания и других элементов в формате JSON. Подробнее смотрите в JSON, сгенерированном с помощью консоли управления. Необязательный параметр.

    • complexity — сложность задания по умолчанию, которое увидит пользователь. Возможные значения:

      • EASY — простое задание.
      • MEDIUM — задание среднего уровня сложности.
      • HARD — сложное задание.
      • FORCE_HARD — сложное задание с дополнительным вопросом. От пользователя требуется решение дополнительного задания, вне зависимости от результатов выполнения основного задания.

      Примечание

      Функциональность вариантов заданий и правил показа находится на стадии Preview.

    • pre_check_type — тип основного задания по умолчанию, которое предлагается решить пользователю.

    • challenge_type — тип дополнительного задания по умолчанию, которое предлагается решить пользователю.

    • allowed_sites — список хостов в формате IP-адресов или доменных имен. Указывайте адрес без протокола и без / в конце, например, example.com. Капча будет работать и во всех поддоменах указанных доменных имен. Необязательный параметр.

    • override_variant — блок с описанием варианта задания. Необязательный параметр.

      • uuid — уникальный идентификатор варианта задания.
      • description — описание варианта задания. Необязательный параметр.
      • complexity — сложность задания, которое увидит пользователь.
      • pre_check_type — тип основного задания, которое предлагается решить пользователю.
      • challenge_type — тип дополнительного задания, которое предлагается решить пользователю.
    • security_rule — блок с описанием правила для входящего трафика, которое будет определять, какой вариант капчи показывать. Необязательный параметр.

      • name — имя правила.

      • priority — приоритет правила от 1 до 999999.

        Правила проверяются в порядке приоритета от меньшего к большему: 1, 2 и так далее. Если трафик соответствует нескольким правилам, к нему применится первое сработавшее правило.

      • description — описание правила. Необязательный параметр.

      • override_variant_uuid — идентификатор варианта задания, которое будет отображаться в случае соответствия трафика правилу. Если параметр не указан, будет отображаться задание по умолчанию.

      • condition — одно или несколько условий для входящего трафика. Необязательный параметр.

    Более подробную информацию о параметрах ресурса yandex_smartcaptcha_captcha, см. в документации провайдера.

  2. Создайте ресурсы:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

    Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в консоли управления или с помощью команды CLI:

    yc smartcaptcha captcha list
    

Чтобы создать капчу, воспользуйтесь методом REST API create для ресурса Captcha или вызовом gRPC API Captcha/Create.

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

Предыдущая
Все инструкции
Следующая
Удалить капчу
Проект Яндекса
© 2025 ООО «Яндекс.Облако»