Security groups

This section addresses the use of ‘Security groups’ as one of the tools for managing and organising network security and providing access to project instances. In this section we will consider:

  • the definition of the concept of a ‘security group’;
  • managing and configuring the rules of security groups;
  • assigning the required security groups when launching instances;
  • organising network access to an instance or configuring networking between instances of the project.

About security groups

Security groups - are a set of rules for IP filtering that are applied to an instance, or more precisely, are assigned to the network interfaces of the instance. Each security group is unique and performs its functions only within the project in which it was created. The functionality of security groups enables IPv4 and IPv6 protocol network traffic to be allowed to pass or restricted.

Management functions of security groups

The following management functions of security groups are available to project users:

  • Changing the group, the management interfaces allow the addition of new rules or the removal of existing ones;
  • Security groups support the option of creating permissive rules with an ‘inheritance’ function that allows access to the IP addresses of instances to which a given security group has been assigned;
  • Creating new groups;
  • Editing user groups, i.e. changing the name and description of a security group, with the exception that the ‘default’ group does not permit editing;
  • Assigning one or several security groups to an instance;

Note

When using a combination of multiple security groups it is important to understand that the groups that will be matched together in a single instance or instance port must comply with the following norms:

  • The rules that are maintained in each security group must not conflict with one another;
  • If mutually exclusive rules are present in the groups, they cannot be used in this combination. In this case we recommend that one of the groups shall be expanded with additional rules, of which there were insufficient to enable the necessary access;
  • The rules of each group must complement each other; only in this way can the necessary level of security, reliability and stable operation of the network infrastructure be achieved.
  • Disabling all groups or specific groups for a given instance;
  • Assigning a security group to a specific port of the instance;
  • Disabling a security group from the port (network interface) of an instance.
  • Removal of security groups (all except the default);

Warning

Attempts to delete the default group will result in an error message: ‘Deletion of the default security group is forbidden’.

Configuring security groups

The rules determine which traffic is permitted to the instances to which the security group is assigned. A security group rule consists of three basic components:

Rule: the settings allow the user to set the desired rule template or to use configurable rules by means of the ‘Configurable TCP rule’, ‘Configurable UDP rule’ or ‘Configurable ICMP rule’ options.

Port/port range enabled: For TCP a UDP rules, it is possible to enable a specific port or range of ports. Choosing the ‘Port Range’ option provides a dialog in which to enter the first and last port in the range. For ICMP rules, it will be necessary to specify the ICMP type and code in the dialog that appears.

Удаленная сторона: в этом разделе необходимо указать источник трафика который будет разрешен этим правилом. Вы можете указать блок IP адресов (CIDR) или группу безопасности. Выбор группы безопасности предоставит доступ любым машинам из указанной группы к любым машинам к которым применится это правило. Функция “наследования” позволяет упрощать процесс создания разрешающих правил при большом количестве адресов проекта, для которых нужно открыть доступ. Мы рекомендуем создавать отдельные группы безопасности под каждую группу инстансов с одинаковым функционалом, это может быть: кластер web-серверов, сервера баз данных, почтовые сервера и т.д., при этом сами группы безопасности следует именовать с определенной смысловой нагрузкой, что позволит легче и быстрее понимать ее назначение.

Используя наследование группы, можно открывать доступ между инстансом и группой инстансов, по необходимому протоколу или порту, без необходимости перечислять каждый хост группы (которому была назначена эта группа безопасности) или стороннему инстансу (который использует эту же группу), достаточно в поле “Удаленный адрес” указать группу безопасности сервиса, так как всей группе инстансов назначена одна и та же группа безопасности. Другими словами, правило с наследованием группы безопасности будет использовать IP адреса инстансов проекта, которым эта группа была назначена.

При последующих добавлениях или удалениях инстансов из условной сервисной группы проекта, правила будут автоматически наследоваться, при этом необходимость в дополнительных настройках отсутствует, что делает настройку сетевой инфраструктуры в Облаке более простой и эффективной.

Note

Количество правил в группе безопасности определяется квотой secgroup-rules, а число доступных для проекта групп безопасности - управляется квотой secgroups. Дефолтные (умолчательные) квоты описаны в статье Ограничения

Назначение групп безопасности инстансу

Все проекты имеют “установленную по умолчанию” группу безопасности - “default”, которая применяется ко всем инстансам, для которых не определена никакая другая группа безопасности. Пока она не изменена, эта группа безопасности отклоняет весь входящий трафик.

Note

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

Это позволяет ответить на вопрос, почему после создания инстанса, многие пользователи сталкиваются с проблемой отсутствия доступа к этому инстансу, а также помогает понять, почему инстансы не доступны между собой в одном проекте без дополнительных настроек групп безопасности.

Ниже представлен табличный вид дефолной (умолчательной) группы безопасности default:

Направление Тип сети IP протокол Диапазон Портов Префикс удаленного IP Удаленная группа безопасности
Входящий трафик IPv6 Любой Любой
default
Входящий трафик IPv4 Любой Любой
default
Исходящий трафик IPv6 Любой Любой ::/0
Исходящий трафик IPv4 Любой Любой 0.0.0.0/0

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

Назначение групп безопасности на порт

Платформа OpenStack, на базе которой развернут сервис SIM-Cloud, позволяет назначать группы безопасности на разные порты одного инстанса. Эта операция может быть выполнена как через веб-интерфейс Облака, так и через другие интерфейсы управления: “OpenStackClient” или “API”. Возможность назначать разные правила на разные порты позволяет более гибко управлять исходящим и входящим сетевым трафиком, обеспечивая тем самым безопасность, управляемость проектом.

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

Более детально ознакомиться с процессом использования, изменения, назначения групп безопасности можно в нашей статье.