Перейти к основному содержимому

Security Groups

Ресурс SGroups представляет собой введенную нами абстракцию, которая позволят объединить подсети в логические группы и применять к ним единые правила сетевого взаимодействия.

Более подробную документацию по API можно посмотреть здесь.
Более подробно по организации БД можно посмотреть здесь и здесь.

Входные параметры

  • groups.groups[] - Структура, содержащая описание создаваемых Security Group.
  • groups.groups[].name - Название Security Group.
  • groups.groups[].networks - Список имен подсетей.
  • groups.groups[].hosts - Список имен хостов.
  • groups.groups[].services - Список имен сервисов.
  • groups.groups[].defaultAction - представляет действие по умолчанию в конце цепочек для SG
  • groups.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даEnum("ACCEPT", "DROP")
groups.groups[].logsнетBooleanfalse
groups.groups[].traceнетBooleanfalse
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

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