Иногда, например при внедрении anti-DDoS сервисов, возникает необходимость ограничения доступа к публичному сервису в облаке, при этом сам сервис в рамках архитектуры решения находится за  простейшим 5-tuple балансировщиком NLB (Network Load Balancer),  где создание привычных правил, как например в ALB(Application Load Balancer (aka  L7-балансировщик) в принципе невозможно. В окружении  Яндекс облака  конечно можно задуматься об "апгрейде" на ALB, но в условиях mk8s это влечет за собой принудительное использование "кастомного" Ingress-контроллера от облачного провайдера с необходимостью адаптации имеющейся конфигураций Ingress. В этом случае на помощь приходят относительно новый функционал   Яндекс облака  - группы безопасности (Security Group (SG)). Конфигурации последних можно создавать как в GUI,  как  при помощи CLI, API так и  при помощи terraform/opentofu сценариев. Рассмотрим какие необходимы конфигурации для создания групп в terraform :
"Основная" группа  - правила этой  группы обеспечивают базовую работоспособность кластера. Применяется к кластеру и группам узлов.
resource "yandex_vpc_security_group" "k8s-main-sg" {
  name        = "k8s-main-sg"
  description = "Правила группы обеспечивают базовую работоспособность кластера. Применяется к кластеру и группам узлов."
  network_id  = yandex_vpc_network.network.id
  ingress {
    protocol          = "TCP"
    description       = "Правило разрешает проверки доступности с диапазона адресов балансировщика нагрузки. Нужно для работы отказоустойчивого кластера и сервисов балансировщика."
    predefined_target = "loadbalancer_healthchecks"
    from_port         = 0
    to_port           = 65535
  }
  ingress {
    protocol          = "ANY"
    description       = "Правило разрешает взаимодействие мастер-узел и узел-узел внутри группы безопасности."
    predefined_target = "self_security_group"
    from_port         = 0
    to_port           = 65535
  }
  ingress {
    protocol       = "ANY"
    description    = "Правило разрешает взаимодействие под-под и сервис-сервис. Указываются подсети кластера и сервисов. (где находятся узлы mk8s и вспомогательные ВМ)"
    v4_cidr_blocks = ["10.96.0.0/16", "10.112.0.0/16", "10.100.0.0/16","10.101.0.0/16" ]
    from_port      = 0
    to_port        = 65535
  }
  ingress {
    protocol       = "ICMP"
    description    = "Правило разрешает отладочные ICMP-пакеты из внутренних подсетей."
    v4_cidr_blocks = ["172.16.0.0/12", "10.0.0.0/8", "192.168.0.0/16"]
  }
  egress {
    protocol       = "ANY"
    description    = "Правило разрешает весь исходящий трафик. Узлы могут связаться с Yandex Container Registry, Object Storage, Docker Hub и т. д."
    v4_cidr_blocks = ["0.0.0.0/0"]
    from_port      = 0
    to_port        = 65535
  }
}
 
Группа, определяющая правила подключения к публичным сервисам
resource "yandex_vpc_security_group" "k8s-public-services" {
  name        = "k8s-public-services"
  description = "Правила группы разрешают подключение к сервисам из интернета. Правила применяются только для групп узлов."
  network_id  = yandex_vpc_network.network.id
  ingress {
    protocol       = "TCP"
    description    = "Правило разрешает входящий трафик из интернета на диапазон портов NodePort."
    v4_cidr_blocks = ["1.1.1.0/24", "2.2.2.2/32"] # разрешенные для подключения IP
    from_port      = 30000
    to_port        = 32767
  }
}
 
Далее необходимо указать используемые SG в конфигурации master узла(ов) в рамках описания ресурса yandex_kubernetes_cluster :
resource "yandex_kubernetes_cluster" "k8s_megacluster" {
...
master {
...
    security_group_ids = [ yandex_vpc_security_group.k8s-main-sg.id ]
...
}
и  в конфигурации network_interface необходимых  групп узлов, где требуется действие правил (ресурс yandex_kubernetes_node_group) 
resource "yandex_kubernetes_node_group" "k8s_node_group_highloadmegaservice" {
  ...
  instance_template {
    ...
    network_interface {
    ...
    security_group_ids = [ yandex_vpc_security_group.k8s-main-sg.id, yandex_vpc_security_group.k8s-public-services.id ]
    ...
    }
  }
}