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

Security Groups

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

Terraform module представляет собой высокоуровневую абстракцию над terraform resources, которая упрощает работу с ресурсами Terraform, скрывая сложность их непосредственного использования. Он предлагает простой и понятный интерфейс для взаимодействия, позволяя пользователям легко интегрироваться и управлять компонентами инфраструктуры без необходимости глубоко погружаться в детали каждого ресурса.

Далее везде в документе подразумевается что все места, содержащие переменную $transport подразумевается одно из двух значений: icmp, icmp6.

название параметраописаниетип данныхзначение по умолчанию
nameНазвание Security GroupString
cidrs[]Список CIDR, связанных с Security GroupString[][]
default_rules

Структура, описывающая правила по умолчанию, для пакетов не соответствующих ни одному из установленных правил в цепочке.

Object
default_rules.access

Структура, описывающая взаимодействие с пакетами не соответствующими ни одному из установленных правил в таблице.

Object
default_rules.access.default.logsВключить/отключить логирование.Booleanfalse
default_rules.access.default.traceВключить/отключить трассировку.Booleanfalse
default_rules.access.default.action

Определяет действие по умолчанию для пакетов, не соответствующих ни одному из установленных правил в цепочке.

Enum("ACCEPT", "DROP")ACCEPT
default_rules.access.$transport

Структура, описывающая взаимодействие с ICMP-трафиком по умолчанию. Для обработки ICMP-трафика добавляется соответствующее правило в начало цепочки.

Object
default_rules.access.$transport.logsВключить/отключить логирование.Booleanfalse
default_rules.access.$transport.traceВключить/отключить трассировку.Booleanfalse
default_rules.access.$transport.type[]Список, определяющий допустимые типы ICMP запросов.Integer[][]
default_rules.access.$transport.actionДействие для пакетов в сформированных правил в цепочке.Enum("ACCEPT", "DROP")ACCEPT

Ограничения

  • name:

    • Длина значения поля не должна превышать 256 символов.
    • Значение поля должно начинаться и заканчиваться символами без пробелов.
    • Значение должно быть уникальным в рамках типа ресурса.
  • cidrs[]:

    • Значение элемента должно начинаться и заканчиваться символами без пробелов.
    • Повторения значений в списке не допускаются.
    • Необходимо указать минимум одно значение.
    • В пределах одной Security Group и направления трафика (I/E), необходимо обеспечить, непересекаемость диапазонов адресов подсетей.
    • Подсеть должна соответствовать формату записи, определенному в RFC 4632.
  • default_rules.access.icmp.type:

    • Значение должно быть числом в диапазоне от 0 до 255.
    • Повторения значений в списке не допускаются.
  • default_rules.access.icmp6.type:

    • Значение должно быть числом в диапазоне от 0 до 255.
    • Повторения значений в списке не допускаются.

Пример использования

name: sg-example
cidrs:
- 10.0.0.0/24
- 11.0.0.0/24
default_rules:
access:
default:
logs: true
trace: true
action: ACCEPT

icmp:
action: DROP
logs: true
trace: true
type: [0, 8]

icmp6:
action: DROP
logs: true
trace: true
type: [0, 8]