INTEGRITY Документация

Настройка блокировки последовательностей через API

Настройка блокировки последовательностей через API заключается в формировании объекта правила: нужно выбрать последовательность и задать тип правила и его действие.

Пример объекта правила
{
    "id": "d4909253-390f-4956-89fd-92a5b0cd86d8",
    "title": "<RULE_TITLE>",
    "kind": "allow",
    "action": "block",
    "sequence": [
     "0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
     "b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
    ],
    "priority": 0,
    "last_updated": "2023-07-24T12:06:51.796286Z",
    "created_at": "2023-07-24T12:06:51.796286Z"
}

Это правило требует, чтобы запрос к конечной точке 0d9bf70c-92e1-4bb3-9411-34a3bcc59003 должен предшествовать запросу к конечной точке b704ab4d-5be0-46e0-9875-b2b3d1ab42f9.

В противном случае запрос к конечной точке b704ab4d-5be0-46e0-9875-b2b3d1ab42f9 блокируется.

Поля

Название поля
Описание Возможные значения Пример
id Непрозрачный идентификатор, обозначающий правило. UUID "d4909253-390f-4956-89fd-92a5b0cd86d8"
title Строка, которая помогает идентифицировать правило. Значение длиной от 1 до 50 символов "Allow checkout sequence"
kind Определяет семантику этого правила. Правила типа Block используют негативную модель безопасности и позволяют явно запретить последовательность. Правила типа Allow используют позитивную модель безопасности и запрещают всё, кроме настроенной последовательности. block, allow "block"
action Какое действие файрвола следует выполнить при срабатывании правила. block,log "log"
sequence Обозначает операции (из Endpoint Management), которые образуют последовательность для этого правила. Сейчас поддерживаются только последовательности длиной два. Первая операция это начальная конечная точка, вторая операция это завершающая конечная точка. Массив с двумя действительными идентификаторами операций из Endpoint Management ["0d9bf70c-92e1-4bb3-9411-34a3bcc59003", "b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"]
priority Обозначает приоритет этого правила относительно всех остальных правил. Правила с более высоким значением приоритета обрабатываются раньше правил с более низким значением. Если у двух правил одинаковый приоритет, они обрабатываются в порядке добавления. Допустимое целое число 10
last_updated Когда это правило было изменено в последний раз. Строка даты 2023-05-02T12:06:51.796286Z
created_at Когда это правило было создано. Строка даты 2023-05-02T12:06:51.796286Z

Найти ID операции конечной точки можно, экспортировав схему в Endpoint Management либо через API.

Список правил последовательностей

Используйте GET команда для получения списка правил.

команда cURL
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules"

Добавление одного правила последовательности

Используйте POST команда для создания одного правила.

Это добавляет одно правило к уже существующим. С помощью параметра priority правило можно разместить между другими правилами, перед ними или после них.

В ответе будет отражено записанное правило с его ID. Если с правилом что-то не так, будет возвращено соответствующее сообщение об ошибке с json будет предоставлен путь, указывающий на проблему.

Пример с использованием cURL
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules/rules" \
--header "Content-Type: application/json" \
--data '{
  "title": "string",
  "kind": "block",
  "action": "block",
  "sequence": [
    "0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
    "b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
  ],
  "priority": 0
}'

Добавление нескольких правил последовательностей

Используйте PUT команда для массового создания новых правил.

Это приведёт к перезаписи существующих правил: они будут заменены правилами, указанными в теле запроса. Если передать пустой массив, все правила будут удалены.

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

Пример с использованием cURL
curl --request PUT "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules" \
--header "Content-Type: application/json" \
--data '{
  "rules": [
    {
      "title": "<RULE_TITLE>",
      "kind": "block",
      "action": "block",
      "sequence": [
        "0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
        "b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
      ],
      "priority": 0
    }
  ]
}'

Удаление правила

Используйте DELETE команда с идентификатором правила для удаления правила.

команда cURL
curl --request DELETE "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules/rules/d4909253-390f-4956-89fd-92a5b0cd86d8"