Создать группу безопасности
Важно
Группы безопасности действуют по принципу «запрещено все, что не разрешено». Если назначить сетевому интерфейсу ВМ группу безопасности без правил, ВМ не сможет передавать и принимать трафик.
Чтобы создать новую группу безопасности:
- В консоли управления
перейдите в каталог, где требуется создать группу безопасности. - В списке сервисов выберите Virtual Private Cloud.
- На панели слева выберите
Группы безопасности. - Нажмите кнопку Создать группу безопасности.
- Введите имя группы безопасности.
- В поле Сеть выберите сеть, которой будет назначена группа безопасности.
- В блоке Правила создайте правила для управления трафиком:
- Выберите вкладку Исходящий трафик или Входящий трафик.
- Нажмите кнопку Добавить правило.
- В открывшемся окне в поле Диапазон портов укажите один порт или диапазон портов, куда или откуда будет поступать трафик.
- В поле Протокол укажите нужный протокол или оставьте
Любой, чтобы разрешить передачу трафика по всем протоколам. - В поле Назначение или Источник выберите назначение правила:
CIDR— правило будет применено к диапазону IP-адресов. В поле CIDR блоки укажите CIDR и маски подсетей, в которые или из которых будет поступать трафик. Чтобы добавить несколько CIDR, нажимайте кнопку Добавить CIDR.Группа безопасности— альтернатива полюCIDR. Выберите:Текущая— чтобы разрешить сетевое взаимодействие между ресурсами, на которые применена текущая группа безопасности.Из списка— чтобы разрешить сетевое взаимодействие с ресурсами, на которые применена выбранная группа.
Проверки состояния балансировщика.
- Нажмите кнопку Сохранить. Если требуется, добавьте другие правила.
- Нажмите кнопку Сохранить.
Чтобы создать группу с правилом для IPv4 CIDR, выполните команду:
yc vpc security-group create \
--name test-sg-cli \
--rule "direction=ingress,port=443,protocol=tcp,v4-cidrs=[10.0.0.0/24]" \
--network-id c645mh47vscb********
Где:
name— имя группы безопасности.rule— описание правила:direction— направление трафика.ingress— входящий трафик,egress— исходящий.port— порт для получения или передачи трафика. Также можно указать диапазон портов с помощью параметровfrom-portиto-port.protocol— протокол передачи данных. Возможные значения:tcp,udp,icmp,esp,ah,any.v4-cidrs— список CIDR IPv4 и масок подсетей, откуда или куда будет поступать трафик.network-id— идентификатор сети, к которой будет подключена группа безопасности.
Чтобы создать группу с правилом разрешающим трафик от всех ресурсов другой группы безопасности, выполните команду:
yc vpc security-group create \
--name allow-connection-from-app \
--rule "direction=ingress,port=5642,protocol=tcp,security-group-id=enp099cqehlfvabec36d" \
--network-name infra2
Где:
name— имя группы безопасности.rule— описание правила:direction— направление трафика.ingress— входящий трафик,egress— исходящий.port— порт для получения или передачи трафика. Также можно указать диапазон портов с помощью параметровfrom-portиto-port.protocol— протокол передачи данных. Возможные значения:tcp,udp,icmp,esp,ah,any.security-group-id— идентификатор группы безопасности, для которой разрешен трафик в сторону создаваемой группы безопасности по порту 443.
network-name— имя сети, к которой будет подключена группа безопасности.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать группу безопасности с несколькими правилами:
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
name– имя группы безопасности.description– опциональное описание группы безопасности.network_id– идентификатор сети, которой будет назначена группа безопасности.ingressиegress– параметры правил для входящего и исходящего трафика:protocol– протокол передачи трафика. Возможные значения:tcp,udp,icmp,esp,ah,any.description– опциональное описание правила.v4_cidr_blocks— список CIDR и масок подсетей, откуда или куда будет поступать трафик.port– порт для трафика.from-port— первый порт из диапазона портов для трафика.to-port— последний порт из диапазона портов для трафика.
Пример структуры конфигурационного файла:
provider "yandex" { token = "<OAuth_или_статический_ключ_сервисного_аккаунта>" folder_id = "<идентификатор_каталога>" zone = "kz1-a" } resource "yandex_vpc_security_group" "test-sg" { name = "Test security group" description = "Description for security group" network_id = "<идентификатор_сети>" ingress { protocol = "TCP" description = "Rule description 1" v4_cidr_blocks = ["10.0.1.0/24", "10.0.2.0/24"] port = 8080 } ingress { protocol = "ANY" description = "Разрешает взаимодействие между ресурсами текущей группы безопасности" predefined_target = "self_security_group" from_port = 0 to_port = 65535 } ingress { protocol = "TCP" description = "Разрешает подключение по порту 27017 со стороны ресурсов с группой безопасности sg-frontend" security_group_id = yandex_vpc_security_group.sg-frontend.id port = 27017 } egress { protocol = "ANY" description = "Rule description 2" v4_cidr_blocks = ["10.0.1.0/24", "10.0.2.0/24"] from_port = 8090 to_port = 8099 } }Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
Проверьте корректность конфигурационных файлов.
- В командной строке перейдите в папку, где вы создали конфигурационный файл.
- Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Разверните облачные ресурсы.
- Если в конфигурации нет ошибок, выполните команду:
terraform apply - Подтвердите создание ресурсов.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. - Если в конфигурации нет ошибок, выполните команду:
Воспользуйтесь методом REST API create для ресурса SecurityGroup или вызовом gRPC API SecurityGroupService/Create и передайте в запросе:
-
Идентификатор каталога, в котором будет размещена группа безопасности, в параметре
folderId. -
Идентификатор сети, в которой будет размещена группа безопасности, в параметре
networkId. -
Настройки правил группы безопасности в массиве
ruleSpecs[]:-
Направление трафика, для которого задается правило, в параметре
ruleSpecs[].direction. Возможные значения:ingress— входящий трафик;egress— исходящий трафик.
-
Имя протокола передачи трафика в параметре
ruleSpecs[].protocolName. Возможные значения:tcp,udp,icmp,esp,ah,any. -
Список CIDR и масок подсетей, откуда или куда будет поступать трафик, в параметре
ruleSpecs[].cidrBlocks.v4CidrBlocks[]. Если правило задается для передачи трафика в группу безопасности, то вместо этого передайте идентификатор группы безопасности в параметреruleSpecs[].securityGroupId. -
Первый порт из диапазона портов для трафика в параметре
ruleSpecs[].ports.fromPort. Возможные значения: от0до65535. -
Последний порт из диапазона портов для трафика в параметре
ruleSpecs[].ports.toPort. Возможные значения: от0до65535.
-