POST /v2/sync
- Networks
- Hosts
- Services
- Security Groups
- Rules
Ресурс Networks представляет собой введенную нами абстракцию, которая позволяет определять группы IP-адресов или
подсетей, доступных для управления Host Based NGFW. Эти подсети затем могут быть связаны с конкретными группами
безопасности для логического разделения и использоваться в правилах для разрешения или блокирования доступа к
определенным ресурсам в вашей сети.
Более подробно по организации БД можно посмотреть здесь.
Входные параметры
networks.networks[]- Массив/Список подсетей типа IP.networks.networks[].name- Название подсети.networks.networks[].network- Объект содержащий CIDR подсетиnetworks.networks[].network.CIDR- Подсеть типа IP.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| networks[] | да | Object[] | |
| networks[].name | да | String | |
| networks[].network | да | Object | |
| networks[].network.CIDR | да | String | |
| syncOp | да | Enum("Delete", "Upsert", "FullSync") |
Ограничения
networks.networks[].name:- Значение не может быть пустым.
- Длина значения поля не должна превышать 256 символов.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- Значение должно быть уникальным в рамках типа ресурса.
networks.networks[].network.CIDR:- Значение не может быть пустым.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- В пределах одной Security Group и направления трафика (I/E) диапазоны адресов подсетей могут пересекаться, присутствует auto-merge.
- Подсеть должна соответствовать формату записи, определенному в RFC 4632.
Пример использования
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"networks": {
"networks": [
{
"name": "nw-1",
"network": {
"CIDR": "10.0.0.0/24"
}
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
Ресурс SGroups представляет собой введенную нами абстракцию, которая позволят объединить подсети в логические группы
и применять к ним единые правила сетевого взаимодействия.
Входные параметры
groups.groups[]- Структура, содержащая описание создаваемых Security Group.groups.groups[].name- Название Security Group.groups.groups[].networks- Список имен подсетей.groups.groups[].hosts- Список имен хостов.groups.groups[].services- Список имен сервисов.groups.groups[].defaultAction- представляет действие по умолчанию в конце цепочек для SGgroups.groups[].logs- Включить/отключить логирование.groups.groups[].trace- Включить/отключить трассировку.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | Значение по умолчанию |
|---|---|---|---|
| groups.groups[] | да | Object[] | |
| groups.groups[].name | да | String | |
| groups.groups[].networks | нет | String[] | [] |
| groups.groups[].hosts | нет | String[] | [] |
| groups.groups[].services | нет | String[] | [] |
| groups.groups[].defaultAction | да | ||
| groups.groups[].logs | нет | Boolean | false |
| groups.groups[].trace | нет | Boolean | false |
| syncOp | да | Enum("Upsert", "Delete", "FullSync") |
Ограничения
groups.groups[].name:- Значение не может быть пустым.
- Длина значения поля не должна превышать 256 символов.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- Значение должно быть уникальным в рамках типа ресурса.
groups.groups[].networks[]:- Значения имен подсетей не должны начинаться или заканчиваться пробелами
- Значение не может быть пустой строкой
- Можно добавить только существующие networks к Security Group
- В пределах одной Security Group и направления трафика (I/E) диапазоны адресов network могут пересекаться, присутствует auto-merge.
groups.groups[].hosts[]:- Значения имен хостов не должны начинаться или заканчиваться про белами
- Значение не может быть пустой строкой
- Можно добавить только существующие хосты к Security Group
- Один хост может принадлежать только к одной Security Group
groups.groups[].services[]:- Значения имен подсетей не должны начинаться или заканчиваться пробелами
- Значение не может быть пустой строкой
- Можно добавить только существующие сервисы к Security Group
- Один сервис может принадлежать разным Security Group
Пример использования
curl '127.0.0.1:9007/v2/list-security-groups' \
--header 'Content-Type: application/json' \
--data '{
"groups": {
"groups": [
{
"name": "sg-example",
"networks": [
"nw-example-0",
"nw-example-1"
],
"defaultAction": "DROP",
"trace": true,
"logs": true,
"hosts": [
"host-emample-0",
"host-example-1"
],
"services": [
"svc-example-0",
"svc-example-1"
]
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
Ресурс Hosts представляет собой введенную нами абстракцию, позволяющая описывать Linux-узлы, на которых работает HBF-Agent.
Эти узлы можно связывать с группами безопасности для логического разделения и использовать в правилах,
определяющих разрешение или блокировку доступа к конкретным ресурсам сети.
Более подробно по организации БД можно посмотреть здесь.
Входные параметры
hosts.hosts[]- Структура, содержащая список хостов.hosts.hosts[].name- Имя хоста.hosts.hosts[].uuid- uuid хоста.hosts.hosts[].sgName- Имя Security Grouphosts.hosts[].ipList.IPs- Cписок ip адресов, которыми оперирует Host.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| hosts[] | да | Object[] | |
| hosts[].name | нет | String | |
| hosts[].uuid | да | String | |
| hosts[].sgName | нет | String | |
| hosts[].ipList | нет | Object | |
| hosts[].ipList.IPs | нет | Array | [] |
| syncOp | да | Enum("Delete", "Upsert", "FullSync") |
Ограничения
hosts.hosts[].name:- Значение не может быть пустым
- Длина значения поля не должна превышать 256 символов.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
hosts.hosts[].uuid:- Значение не может быть пустым
- UUID должен быть 4 версии
- Значение должно быть уникальным в рамках типа ресурса.
- UUID должен соответствовать формату, описанному в RFC 4122.
hosts.hosts[].sgName:- Длина значения не должна превышать 256 символов.
- Значение должно начинаться и заканчиваться символами без пробелов.
- Возможно указать только существующий Security Group.
hosts[].ipList.IPs:- IP должен соответствовать форматам, описанным в RFC 791 (IPv4) и RFC 4291 (IPv6) .
Пример использования
curl '127.0.0.1:9006/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"hosts": {
"hosts": [
{
"name": "web-04",
"uuid": "bd7f0c2e-1a0b-4ad0-9c52-1f1b3a7c2c14",
"sgName": "sg-example3",
"ipList": {
"IPs": [
"10.10.1.16",
"2001:470:1f0a:10d2::1"
]
}
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
Ресурс Services представляет собой введенную нами абстракцию, используемую для опи сания приложений, работающих на узлах,
а также портов, на которых они принимают соединения (в случае реализации серверной логики).
Сервисы могут быть связаны с группами безопасности и использоваться в правилах, определяющих разрешение или ограничение доступа к конкретным сетевым ресурсам.
Более подробно по организации БД можно посмотреть здесь.
Входные параметры
services.services[]- Структура, содержащая список сервисов.services.services[].name- Имя сервиса.services.services[].sgNames- Массив/Список имен Security Group(s).services.services[].protocols- Список используемых протоколов.services.services[].protocols.tcp- Структура, содержащая список портов для протокола TCP.services.services[].protocols.tcp.ports- Блок описывающий набор пар портов (source-destination).services.services[].protocols.tcp.ports[].d- Набор открытых портов получателяservices.services[].protocols.tcp.ports[].s- Набор открытых портов отправителя.services.services[].protocols.udp- Структура, содержащая список портов для протокола UDP.services.services[].protocols.udp.ports- Блок описывающий набор пар портов (source-destination).services.services[].protocols.udp.ports[].d- Набор открытых портов получателяservices.services[].protocols.udp.ports[].s- Набор открытых портов отправителя.services.services[].protocols.icmpv4- Объект, определяющий параметры настройки ICMP для сетей, использующих IPv4.services.services[].protocols.icmpv4.types- Список, определяющий допустимые типы ICMP запросов для сетей, использующих IPv4.services.services[].protocols.icmpv6- Объект, определяющий параметры настройки ICMP для сетей, использующих IPv6.services.services[].protocols.icmpv6.types- Список, определяющий допустимые типы ICMP запросов для сетей, использующих IPv6.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| services[] | да | Object[] | |
| services[].name | да | String | |
| services[].sgNames | нет | Array | [] |
| services[].protocols | нет | Object | null |
| services[].protocols.tcp | нет | Object | null |
| services[].protocols.tcp.ports | да | Array | |
| services[].protocols.tcp.ports[].d | да/нет | String | |
| services[].protocols.tcp.ports[].s | да/нет | String | |
| services[].protocols.udp | нет | Object | null |
| services[].protocols.udp.ports | да | Object[] | |
| services[].protocols.udp.ports[].d | да/нет | String | |
| services[].protocols.udp.ports[].s | да/нет | String | |
| services[].protocols.icmpv4 | нет | Object | null |
| services[].protocols.icmpv4.types | нет | Array | [] |
| services[].protocols.icmpv6 | нет | Object | null |
| services[].protocols.icmpv6.types | нет | Array | [] |
| syncOp | да | Enum("Delete", "Upsert", "FullSync") |
Ограничения
services.services[].name:- Значение не может быть пустым.
- Длина значения поля не должна превышать 256 символов.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- Значение должно быть уникальным в рамках типа ресурса.
services.services[].sgNames:- Длина значения элемента не должна превышать 256 символов.
- Значение элемента должно начинаться и заканчиваться символами без пробелов.
- Повторения значений в списке не допускаются.
- Возможно привязать только к существующим Security Groups.
- Сервис не может быть связан с Security Group, если в этой SG уже подключён другой сервис и диапазоны портов пересекаются.
services.services[].protocols.tcp.ports:- Source порты не должны пересекаться в разных пачках в рамках ресурса
- Source || destination порт обязателен для заполнения
services.services[].protocols.tcp.ports[].d:- Значения портов должно находиться в интервале от 1 до 65535.
- Если значение не будет указано то будет использоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально используя '-'.
- Интервал прописывается от меньшего к большему (9090-1010)
- Допускаются пересечения портов destination для ресурса.
services.services[].protocols.tcp[].s:- Значения портов должно находиться в интер вале от 1 до 65535.
- Если значение не будет указано то будет использоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально, используя '-'.
- Не допускаются пересечения портов для ресурса.
- Интервал прописывается от меньшего к большему (99-110)
services.services[].protocols.udp[].d:- Значения портов должно находиться в интервале от 1 до 65535.
- Если значение не будет указано то будет использоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально используя '-'.
- Интервал прописывается от меньшего к большему (9090-1010)
- Допускаются пересечения портов destination для ресурса.
services.services[].protocols.udp[].s:- Значения портов должно находиться в интервале от 1 до 65535.
- Если значение не будет указано то будет использоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально, используя '-'.
- Не допускаются пересечения порто в для ресурса.
- Интервал прописывается от меньшего к большему (99-110)
services.services[].protocols.icmpv4.types[]:- Значения должны быть числами в диапазоне от 0 до 255.
- Повторения значений в списке не допускаются.
- Пустой массив разрешает все types
- Принимает значения (число) в виде string || integer
services.services[].protocols.icmpv6.types[]:- Значения должны быть числами в диапазоне от 0 до 255.
- Повторения значений в списке не допускаются.
- Пустой массив разрешает все types
- Принимает значения (число) в виде string || integer
Пример использования
curl '127.0.0.1:9006/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"services": {
"services": [
{
"name": "svc-0",
"protocols": {
"icmpv4": {
"types": [
63,
254,
3,
11,
22
]
},
"icmpv6": {
"types": [
250,
99,
9,
111,
222
]
},
"tcp": {
"ports": [
{
"d": "56000-56500, 56502",
"s": "58000-58300, 58309"
}
]
},
"udp": {
"ports": [
{
"d": "57000-57500, 57502",
"s": "59000-59300, 59309"
}
]
}
},
"sgNames": [
"sg-2",
"sg-3"
]
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
- Sgroup to Sgroup (TCP/UDP)
- Sgroup to Sgroup (ICMP)
- Sgroup to ICMP
- Sgroup to Sgroup (I/E) TCP/UDP
- Sgroup to Sgroup (I/E) ICMP
- Sgroup to CIDR (I/E) TCP/UDP
- Sgroup to CIDR (I/E) ICMP
- Sgroup to FQDN
- Service to Service
- Service to FQDN
- Service to CIDR (I/E)
Данный тип правил управляет обменом данными между различными группами безопасности. Он автоматически создает два правила на хостах: одно для исходящего трафика от инициирующей стороны и другое для входящего трафика от группы безопасности, к которой предоставлен доступ, используя протоколы TCP, UDP
Более подробно по организации БД можно посмотреть здесь.
Входные параметры
sgSgRules.rules[]- Структура, содержащая описание создаваемых правил.sgSgRules.rules[].sgFrom- Имя Security Group откуда уходит трафик (Egress)sgSgRules.rules[].sgTo- Имя Security Group куда приходит трафик (Ingress)sgSgRules.rules[].logs- Включить/отключить логирование.sgSgRules.rules[].trace- Включить/отключить трассировку.sgSgRules.rules[].ports- Блок описывающий набор пар портов (source-destination).sgSgRules.rules[].ports[].d- Набор открытых портов получателяsgSgRules.rules[].ports[].s- Набор открытых портов отправителя.sgSgRules.rules[].transport- Протокол L3/L4 уровня модели OSI.sgSgRules.rules[].action- Действие для пакетов в сформированных правил в цепочке.sgSgRules.rules[].priority- Структура, содержащая описание порядка применения правил в цепочке.sgSgRules.rules[].priority.some- Поле, определяющее порядок применения правил в цепочке.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| sgSgRules.rules[] | да | Object[] | |
| sgSgRules.rules[].sgFrom | да | String | |
| sgSgRules.rules[].sgTo | да | String | |
| sgSgRules.rules[].logs | нет | Boolean | false |
| sgSgRules.rules[].trace | нет | Boolean | false |
| sgSgRules.rules[].ports | нет | Object[] | null |
| sgSgRules.rules[].ports[].d | нет | String | |
| sgSgRules.rules[].ports[].s | нет | String | |
| sgSgRules.rules[].transport | нет | Enum("TCP", "UDP") | TCP |
| sgSgRules.rules[].action | да | ||
| sgSgRules.rules[].priority | нет | Object | |
| sgSgRules.rules[].priority.some | нет | Integer | |
| syncOp | да |
Ограничения
sgSgRules.rules[].sgFrom:- Значение не может быть пустым.
- Длина значения поля не должна превышать 256 символов.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- Значение должно быть уникальным в рамках типа ресурса.
sgSgRules.rules[].sgTo:- Значение не может быть пустым.
- Длина значения поля не должна превышать 256 символов.
- Значение поля должно начинаться и заканчиваться символами без пробелов.
- Значение должно быть уникальным в рамках типа ресурса.
sgSgRules.rules[].ports:- Source порты не должны пересекаться в разных пачках в рамках ресурса
- Source || destination порт обязателен для заполнения
sgSgRules.rules[].ports[].d:- Значения портов должно находиться в интервале от 1 до 65535.
- Если значение не будет указано то будет использоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально используя '-'.
- Интервал прописывается от меньшего к большему (9090-1010)
- Допускаются пересечения портов destination для ресурса.
sgSgRules.rules[].ports[].s:- Значения портов должно находиться в интервале от 1 до 65535.
- Если значение не будет указано то будет использоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально, используя '-'.
- Не допускаются пересечения портов для ресурса.
- Интервал прописывается от меньшего к большему (99-110)
sgSgRules.rules[].priority.some:- Значения должны находиться в интервале от -32768 до 32767
- Принимает значения (число) в виде string || integer
Пример использования
- TCP
- UDP
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"sgSgRules": {
"rules": [
{
"ports": [
{
"s": "33-55",
"d": "5000"
},
{
"s": "144-166",
"d": "5010"
}
],
"sgFrom": "sg-1",
"sgTo": "sg-0",
"transport": "TCP",
"priority": {
"some": 0
},
"action": "DROP",
"logs": true
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"sgSgRules": {
"rules": [
{
"ports": [
{
"s": "33-55",
"d": "5000"
},
{
"s": "144-166",
"d": "5010"
}
],
"sgFrom": "sg-1",
"sgTo": "sg-0",
"transport": "UDP",
"priority": {
"some": 0
},
"action": "DROP",
"logs": true
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
Данный тип правил разрешает передачу ICMP сообщений для Security Group.
Более подробно по организации БД можно посмотреть здесь.
Входные параметры
sgIcmpRules.rules[]- Структура, содержащая описание создаваемых правил.sgIcmpRules.rules[].SG- Имя Security GroupsgIcmpRules.rules[].logs- Включить/отключить логирование.sgIcmpRules.rules[].trace- Включить/отключить трассировку.sgIcmpRules.rules[].ICMP- Структура, содержащая описание создаваемых правил типа ICMP.sgIcmpRules.rules[].ICMP.IPv- Версия IP для ICMP (IPv4 или IPv6).sgIcmpRules.rules[].ICMP.Types- Список, определяющий допустимые типы ICMP запросов.sgIcmpRules.rules[].action- Действие для пакето в в сформированных правил в цепочке.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| sgIcmpRules.rules[] | да | Object[] | |
| sgIcmpRules.rules[].SG | да | String | |
| sgIcmpRules.rules[].logs | нет | Boolean | false |
| sgIcmpRules.rules[].trace | нет | Boolean | false |
| sgIcmpRules.rules[].ICMP | да | Object | |
| sgIcmpRules.rules[].ICMP.IPv | да | Enum("IPv4", "IPv6") | |
| sgIcmpRules.rules[].ICMP.Types | нет | Integer[] | [] |
| sgIcmpRules.rules[].action | да | ||
| syncOp | да |
Ограничения
sgIcmpRules.rules[].SG:- Длина значения не должна превышать 256 символов.
- Значение должно начинаться и заканчиваться символами без пробелов.
- Возможно указать только существующий Security Group.
sgIcmpRules.rules.ICMP.types[]:- Значения должны быть числами в диапазоне от 0 до 255.
- Повторения значений в списке не допускаются.
- Пустой массив разрешает все types
- Принимает значения (число) в виде string || integer
Пример использования
- ICMP4
- ICMP6
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"sgIcmpRules": {
"rules":[
{
"ICMP": {
"IPv": "IPv4",
"Types": [0, 8]
},
"SG": "sg-0",
"logs": false,
"trace": true,
"action": "DROP"
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"sgIcmpRules": {
"rules":[
{
"ICMP": {
"IPv": "IPv6",
"Types": [0, 8, 18]
},
"SG": "sg-0",
"logs": false,
"trace": true,
"action": "DROP"
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
Данный тип правил управляет обменом данными между различными группами безопасности. Он автоматически создает два правила на хостах: одно для исходящего трафика от инициирующей стороны и другое для входящего трафика от группы безопасности, к которой предоставлен доступ, используя протокол ICMP
Более подробно по организации БД можно посмотреть здесь.
Входные параметры
sgSgIcmpRules.rules[]- Структура, содержащая описание создаваемых правил.sgSgIcmpRules.rules[].sgFrom- Имя Security Group откуда уходит трафик (Egress)sgSgIcmpRules.rules[].sgTo- Имя Security Group куда приходит трафик (Ingress)sgSgIcmpRules.rules[].logs- Включить/отключить логирование.sgSgIcmpRules.rules[].trace- Включить/отключить трассировку.sgSgIcmpRules.rules[].ICMP- Структура, содержащая описание создаваемых правил типа ICMP.sgSgIcmpRules.rules[].ICMP.IPv- Версия IP для ICMP (IPv4 или IPv6).sgSgIcmpRules.rules[].ICMP.Types- Список, определяющий допустимые типы ICMP запросов.sgSgIcmpRules.rules[].action- Действие для пакетов в сформированных правил в цепочке.sgSgIcmpRules.rules[].priority- Структура, содержащая описание порядка применения правил в цепочке.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| sgSgIcmpRules.rules[] | да | Object[] | |
| sgSgIcmpRules.rules[].sgFrom | да | String | |
| sgSgIcmpRules.rules[].sgTo | да | String | |
| sgSgIcmpRules.rules[].logs | нет | Boolean | false |
| sgSgIcmpRules.rules[].trace | нет | Boolean | false |
| sgSgIcmpRules.rules[].ICMP | да | Object | |
| sgSgIcmpRules.rules[].ICMP.IPv | да | Enum("IPv4", "IPv6") | |
| sgSgIcmpRules.rules[].ICMP.Types | нет | Integer[] | [] |
| sgSgIcmpRules.rules[].action | да | ||
| sgSgIcmpRules.rules[].priority | нет | Object | |
| sgSgIcmpRules.rules[].priority.some | нет | Integer | |
| syncOp | да |
Ограничения
sgSgIcmpRules.rules[].sgFrom:- Длина значения не должна превышать 256 символов.
- Значение должно начинаться и заканчиваться символами без пробелов.
- Возможно указать только существующий Security Group.
sgSgIcmpRules.rules[].sgTo:- Длина значения не должна превышать 256 символов.
- Значение должно начинаться и заканчиваться символами без пробелов.
- Возможно указать только существующий Security Group.
sgSgIcmpRules.rules.ICMP.types[]:- Значения должны быть числами в диапазоне от 0 до 255.
- Повторения значений в списке не допускаются.
- Пустой массив разрешает все types
- Принимает значения (число) в виде string || integer
sgSgIcmpRules.rules[].priority.some:- Значения должны находиться в интервале от -32768 до 32767
- Принимает значения (число) в виде string || integer
Пример использования
- ICMP4
- ICMP6
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"sgSgIcmpRules": {
"rules":[
{
"ICMP": {
"IPv": "IPv4",
"Types": [0, 8]
},
"sgFrom": "sg-0",
"sgTo": "sg-1",
"logs": true,
"trace": true,
"action": "DROP",
"priority": {
"some": 500
}
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"sgSgIcmpRules": {
"rules":[
{
"ICMP": {
"IPv": "IPv6",
"Types": [0, 8]
},
"sgFrom": "sg-0",
"sgTo": "sg-1",
"logs": true,
"trace": true,
"action": "DROP",
"priority": {
"some": "500"
}
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
Ресурс Security Group to Security Group представляет собой введенную нами абстракцию, которая обеспечивает гибкое
управление и контроль сетевого трафика между разными группами безопасности, используя протоколы TCP, UDP. Этот
ресурс позволяет точно настраивать, какой трафик может передаваться между группами, обеспечивая таким образом высокий
уровень защиты и контроля в сетевой инфраструктуре.
Более подробно по организации БД можно посмотреть здесь
Входные параметры
ieSgSgRules.rules[]- Структура, содержащая описание создаваемых правил.ieSgSgRules.rules[].SG- Имя Security GroupieSgSgRules.rules[].sgLocal- Security Group относительно которой рассматриваются правила.ieSgSgRules.rules[].logs- Включить/отключить логирование.ieSgSgRules.rules[].trace- Включить/отключить трассировку.ieSgSgRules.rules[].ports- Блок описывающий набор пар портов (source-destination).ieSgSgRules.rules[].ports[].d- Набор открытых портов получателяieSgSgRules.rules[].ports[].s- Набор открытых портов отправителя.ieSgSgRules.rules[].traffic- Поле описывающий направление трафика.ieSgSgRules.rules[].transport- Протокол L3/L4 уровня модели OSI.ieSgSgRules.rules[].action- Действие для пакетов в сформированных правил в цепочке.ieSgSgRules.rules[].priority- Структура, содержащая описание порядка применения правил в цепочке.ieSgSgRules.rules[].priority.some- Поле, определяющее порядок применения правил в цепочке.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| ieSgSgRules.rules[] | да | Object[] | |
| ieSgSgRules.rules[].SG | да | String | |
| ieSgSgRules.rules[].sgLocal | да | String | |
| ieSgSgRules.rules[].logs | нет | Boolean | false |
| ieSgSgRules.rules[].trace | нет | Boolean | false |
| ieSgSgRules.rules[].ports | нет | Object[] | [] |
| ieSgSgRules.rules[].ports[].d | да / нет (когда нет массива ports) | String | |
| ieSgSgRules.rules[].ports[].s | да / нет (когда нет массива ports) | String | |
| ieSgSgRules.rules[].traffic | да | Enum("Ingress", "Egress") | |
| ieSgSgRules.rules[].transport | нет | Enum("TCP", "UDP") | TCP |
| ieSgSgRules.rules[].action | да | ||
| ieSgSgRules.rules[].priority | нет | Object | |
| ieSgSgRules.rules[].priority.some | нет | Integer | |
| syncOp | да |
Ограничения
ieSgSgRules.rules[].SG:- Длина значения не должна превышать 256 символов.
- Значение должно начинаться и заканчиваться символами без пробелов.
- Возможно указать только существующий Security Group.
ieSgSgRules.rules[].sgLocal:- Длина значения не должна превышать 256 символов.
- Значение должно начинаться и заканчиваться символами без пробелов.
- Возможно указать только существующий Security Group.
ieSgSgRules.rules[].ports:- Source порты не должны пересекаться в разных пачках в рамках ресурса
- Source || destination порт обязателен для заполнения
ieSgSgRules.rules[].ports[].d:- Значения портов должно находиться в интервале от 1 до 65535.
- Если значение не будет указано то будет использоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально используя '-'.
- Интервал прописывается от меньшего к большему (9090-1010)
- Допускаются пересечения портов destination для ресурса.
ieSgSgRules.rules[].ports[].s:- Значения портов должно находиться в интервале от 1 до 65535.
- Если значение не будет указано то будет исполь зоваться весь диапазон портов.
- Значения портов прописываются по одному или интервально, используя '-'.
- Не допускаются пересечения портов для ресурса.
- Интервал прописывается от меньшего к большему (99-110)
Пример использования
- TCP
- UDP
Ingress
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"ieSgSgRules": {
"rules": [
{
"SG": "sg-2",
"sgLocal": "sg-3",
"logs": false,
"ports": [
{
"d": "50001",
"s": "51000"
},
{
"d": "50300",
"s": "52000"
}
],
"trace": true,
"traffic": "Ingress",
"transport": "TCP",
"action": "DROP",
"priority": {
"some": 350
}
}
]
},
"syncOp": "Upsert"
}'
Egress
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"ieSgSgRules": {
"rules": [
{
"SG": "sg-2",
"sgLocal": "sg-3",
"logs": false,
"ports": [
{
"d": "50001",
"s": "51000"
},
{
"d": "50300",
"s": "52000"
}
],
"trace": true,
"traffic": "Egress",
"transport": "TCP",
"action": "DROP",
"priority": {
"some": -350
}
}
]
},
"syncOp": "Upsert"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Диаграмма последовательности
Ingress
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"ieSgSgRules": {
"rules": [
{
"SG": "sg-2",
"sgLocal": "sg-3",
"logs": false,
"ports": [
{
"d": "50001",
"s": "51000"
},
{
"d": "50300",
"s": "52000"
}
],
"trace": true,
"traffic": "Ingress",
"transport": "UDP",
"action": "DROP",
"priority": {
"some": -300
}
}
]
},
"syncOp": "FullSync"
}'
Egress
curl '127.0.0.1:9007/v2/sync' \
--header 'Content-Type: application/json' \
--data '{
"ieSgSgRules": {
"rules": [
{
"SG": "sg-2",
"sgLocal": "sg-3",
"logs": false,
"ports": [
{
"d": "50001",
"s": "51000"
},
{
"d": "50300",
"s": "52000"
}
],
"trace": true,
"traffic": "Egress",
"transport": "UDP",
"action": "DROP",
"priority": {
"some": 650
}
}
]
},
"syncOp": "FullSync"
}'
Выходные параметры
| название | тип данных | описание |
|---|---|---|
| - | Object | в случае успеха возвращается пустое тело |
Возможные ошибки API
Пользователь указал некорректные значения агрументов
- HTTP code: 400
- gRPC code: INVALID_ARGUMENT
- gRPC number: 3
Не найден метод
- HTTP code: 404
- gRPC code: NOT_FOUND
- gRPC number: 5
Ошибка в указанных данных
- HTTP code: 500
- gRPC code: INTERNAL
- gRPC number: 13
Диаграмма последовательности
Ресурс Security Group to Security Group представляет собой введенную нами абстракцию, которая обеспечивает гибкое
управление и контроль сетевого трафика между разными группами безопасности, используя протокол ICMP. Этот
ресурс позволяет точно настраивать, какой трафик может передаваться между группами, обеспечивая таким образом высокий
уровень защиты и контроля в сетевой инфраструктуре.
Более подробно по организации БД можно посмотреть здесь
Входные параметры
ieSgSgIcmpRules.rules[]- Структура, содержащая описание создаваемых правил.ieSgSgIcmpRules.rules[].SG- Имя Security GroupieSgSgIcmpRules.rules[].sgLocal- Security Group относительно которой рассматриваются правила.ieSgSgIcmpRules.rules[].logs- Включить/отключить логирование.ieSgSgIcmpRules.rules[].trace- Включить/отключить трассировку.ieSgSgIcmpRules.rules[].ICMP- Объект, определяющий параметры настройки ICMP.ieSgSgIcmpRules.rules[].ICMP.IPv- Версия IP для ICMP (IPv4 или IPv6).ieSgSgIcmpRules.rules[].ICMP.Types- Список, определяющий допустимые типы ICMP запросов.ieSgSgIcmpRules.rules[].traffic- Поле описывающий направление трафика.ieSgSgIcmpRules.rules[].action- Действие для пакетов в сформированных правил в цепочке.ieSgSgIcmpRules.rules[].priority- Структура, содержащая описание порядка применения правил в цепочке.ieSgSgIcmpRules.rules[].priority.some- Поле, определяющее порядок применения правил в цепочке.syncOp- Поле определяющее действие с данными из запроса.
| название | обязательность | тип данных | значение по умолчанию |
|---|---|---|---|
| ieSgSgIcmpRules.rules[] | да | Object[] | |
| ieSgSgIcmpRules.rules[].SG | да | String | |
| ieSgSgIcmpRules.rules[].sgLocal | да | String | |
| ieSgSgIcmpRules.rules[].logs | нет | Boolean | false |
| ieSgSgIcmpRules.rules[].trace | нет | Boolean | false |
| ieSgSgIcmpRules.rules[].ICMP | да | Object | |
| ieSgSgIcmpRules.rules[].ICMP.IPv | да | Enum("IPv4", "IPv6") | |
| ieSgSgIcmpRules.rules[].ICMP.Types | нет | Integer[] | [] |
| ieSgSgIcmpRules.rules[].traffic | да | Enum("Ingress", "Egress") | |
| ieSgSgIcmpRules.rules[].action | да | ||
| ieSgSgIcmpRules.rules[].priority | нет | Object | |
| ieSgSgIcmpRules.rules[].priority.some | нет | Integer | |
| syncOp | да |
Ограничения
ieSgSgIcmpRules.rules[].SG:- Длина значения не должна превышать 256 символов.