Обновлена 15 апреля 2024 г. в 11:13
Создание сетей и изменение групп безопасности
Чтобы создать сеть или группу безопасности, создайте файл network.tf
, где будет описана конфигурация создаваемых сущностей. Добавьте текст из примера ниже и исправьте значения настроек для ваших сетей и групп безопасности.
-
Для создания сети и групп безопасности потребуются следующие объекты:
-
Ресурсы (resource):
vkcs_networking_network
: сеть, в которую будут вноситься изменения.vkcs_networking_subnet
: подсеть из сети. В примере:subnetwork
.vkcs_networking_router
: роутер для внешней сети и взаимодействия с внешним миром. В примере:router
.vkcs_networking_router_interface
: подключить роутер к внутренней сети.vkcs_networking_secgroup
: группа безопасности, в которую будут включены правила доступа.vkcs_networking_secgroup_rule
: правило для группы безопасности. В примере открывается доступ к сети с любого IP-адреса по портам 22 и 3389.vkcs_networking_port
: создать ресурс сетевого порта внутри VK Cloud.vkcs_networking_port_secgroup_associate
: привязать порт к группе безопасности.
-
Источники данных (data source):
vkcs_networking_network
: внешняя сеть для получения плавающего IP-адреса (floating IP).
data "vkcs_networking_network" "extnet" {
name = "internet"
}
resource "vkcs_networking_network" "network" {
name = "net"
}
resource "vkcs_networking_subnet" "subnetwork" {
name = "subnet_1"
network_id = vkcs_networking_network.network.id
cidr = "192.168.199.0/24"
}
resource "vkcs_networking_router" "router" {
name = "router"
admin_state_up = true
external_network_id = data.vkcs_networking_network.extnet.id
}
resource "vkcs_networking_router_interface" "db" {
router_id = vkcs_networking_router.router.id
subnet_id = vkcs_networking_subnet.subnetwork.id
}
resource "vkcs_networking_secgroup" "secgroup" {
name = "security_group"
description = "terraform security group"
}
resource "vkcs_networking_secgroup_rule" "secgroup_rule_1" {
direction = "ingress"
ethertype = "IPv4"
port_range_max = 22
port_range_min = 22
protocol = "tcp"
remote_ip_prefix = "0.0.0.0/0"
security_group_id = vkcs_networking_secgroup.secgroup.id
description = "secgroup_rule_1"
}
resource "vkcs_networking_secgroup_rule" "secgroup_rule_2" {
direction = "ingress"
ethertype = "IPv4"
port_range_max = 3389
port_range_min = 3389
remote_ip_prefix = "0.0.0.0/0"
protocol = "tcp"
security_group_id = vkcs_networking_secgroup.secgroup.id
}
resource "vkcs_networking_port" "port" {
name = "port_1"
admin_state_up = "true"
network_id = vkcs_networking_network.network.id
fixed_ip {
subnet_id = vkcs_networking_subnet.subnetwork.id
ip_address = "192.168.199.23"
}
}
resource "vkcs_networking_port_secgroup_associate" "port" {
port_id = vkcs_networking_port.port.id
enforce = "false"
security_group_ids = [
vkcs_networking_secgroup.secgroup.id,
]
}
-
-
Добавьте пример в файл
network.tf
и выполните следующие команды:
terraform init
terraform apply