Обновлена: 12 июля 2023 г. в 13:52
Создание сетей и изменение групп безопасности
Чтобы создать сеть или группу безопасности, создайте файл 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).
1data "vkcs_networking_network" "extnet" { 2 name = "ext-net" 3} 4 5resource "vkcs_networking_network" "network" { 6 name = "net" 7} 8 9resource "vkcs_networking_subnet" "subnetwork" { 10 name = "subnet_1" 11 network_id = vkcs_networking_network.network.id 12 cidr = "192.168.199.0/24" 13} 14 15resource "vkcs_networking_router" "router" { 16 name = "router" 17 admin_state_up = true 18 external_network_id = data.vkcs_networking_network.extnet.id 19} 20 21resource "vkcs_networking_router_interface" "db" { 22 router_id = vkcs_networking_router.router.id 23 subnet_id = vkcs_networking_subnet.subnetwork.id 24} 25 26 27resource "vkcs_networking_secgroup" "secgroup" { 28 name = "security_group" 29 description = "terraform security group" 30} 31 32resource "vkcs_networking_secgroup_rule" "secgroup_rule_1" { 33 direction = "ingress" 34 ethertype = "IPv4" 35 port_range_max = 22 36 port_range_min = 22 37 protocol = "tcp" 38 remote_ip_prefix = "0.0.0.0/0" 39 security_group_id = vkcs_networking_secgroup.secgroup.id 40 description = "secgroup_rule_1" 41} 42 43resource "vkcs_networking_secgroup_rule" "secgroup_rule_2" { 44 direction = "ingress" 45 ethertype = "IPv4" 46 port_range_max = 3389 47 port_range_min = 3389 48 remote_ip_prefix = "0.0.0.0/0" 49 protocol = "tcp" 50 security_group_id = vkcs_networking_secgroup.secgroup.id 51} 52 53resource "vkcs_networking_port" "port" { 54 name = "port_1" 55 admin_state_up = "true" 56 network_id = vkcs_networking_network.network.id 57 58 fixed_ip { 59 subnet_id = vkcs_networking_subnet.subnetwork.id 60 ip_address = "192.168.199.23" 61 } 62} 63 64resource "vkcs_networking_port_secgroup_associate" "port" { 65 port_id = vkcs_networking_port.port.id 66 enforce = "false" 67 security_group_ids = [ 68 vkcs_networking_secgroup.secgroup.id, 69 ] 70}
-
-
Добавьте пример в файл
network.tf
и выполните следующие команды:
terraform init
terraform apply